EE 3122 Numerical
Methods and Statistics
Sessional Credit: 0.75
BY RBM GEORGE EEE_2K11
11/12/2015 RBM 1
Bisection Method (in Matlab)
11/12/2015 2
clc;
f=input ('Enter the co-efficient of function:');
xl=input ('Enter the value of lower limit:');
xu=input ('Enter the value of upper limit:');
fl=polyval(f,xl);
fu=polyval(f,xu);
if fl*fu>0
fprintf ('error We must have f(xl)f(xu)<0 to find a root');
break;
end
err=abs((xu-xl)/xu);
while err>.0001
xc=(xl+xu)/2;
fc=polyval(f,xc);
if fl*fc<0
xu=xc;
else
xl=xc;
end
err=abs((xu-xl)/xu);
fprintf ('xl:%f || xu:%f || Error:%f || Xc:%fn',xl,xu,err,xc);
end
RBM
Bisection Method (in C++)
11/12/2015 3
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main()
{
cout.setf(ios::fixed,ios::floatfield); // set fixed floating format
cout.precision(4); // for fixed format, five decimal places
float xl,xu,fl,fu,xc,fc,err;
int i;
cout<<"Enter the value of lower limit & upper limit:"<<endl;
cin>>xl>>xu;
fl=xl*xl-4*xl-10;
fu=xu*xu-4*xu-10;
if (fl*fu>0)
{
cout<<"Error We must have f(xl)f(xu)<0 to find a root"<<endl;
}
else
{
i=0;
err=abs((xu-xl)/xu);
while (err>.0001)
{
xc=(xl+xu)/2;
fc=xc*xc-4*xc-10;
i++;
cout<<"Xl:"<<xl<<"|| Xu:"<<xu<<"|| Xc:"<<xu<<"|| Error:"<<err<<"|| Iteration:"<<i<<endl;
if (fl*fc<0)
xu=xc;
else
xl=xc;
err=abs((xu-xl)/xu);
}
}
return 0;
}
RBM
False Position method (in C++)
11/12/2015 4
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main()
{
cout.setf(ios::fixed,ios::floatfield); // set fixed floating format
cout.precision(4); // for fixed format, five decimal places
float xl,xu,fl,fu,xc,fc,err;
int i;
cout<<"Enter the value of lower limit & upper limit:"<<endl;
cin>>xl>>xu;
fl=xl*xl-4*xl-10;
fu=xu*xu-4*xu-10;
if (fl*fu>0)
{
cout<<"Error We must have f(xl)f(xu)<0 to find a root"<<endl;
}
else
{
i=0;
err=abs((xu-xl)/xu);
while (err>.0001)
{
xc=xl-fl*(xu-xl)/(fu-fl);
fc=xc*xc-4*xc-10;
i++;
cout<<"Xl:"<<xl<<"|| Xu:"<<xu<<"|| Xc:"<<xu<<"|| Error:"<<err<<"|| Iteration:"<<i<<endl;
if (fl*fc<0)
xu=xc;
else
xl=xc;
err=abs((xu-xl)/xu);
}
}
return 0;
}
RBM
Newton_Raphson method (in C++)
11/12/2015 5
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main()
{
cout.setf(ios::fixed,ios::floatfield);
cout.precision(4);
float x_initial,x_iterative,fini,fiter,d_f,err;
int i;
cout<<"Enter the initial value:";
cin>>x_initial;
fini=x_initial*x_initial*x_initial-4*x_initial*x_initial+x_initial+6;
d_f=3*x_initial*x_initial-8*x_initial+1;//diff form of function
x_iterative=x_initial-fini/d_f;
i=0;
err=abs((x_iterative-x_initial)/x_iterative);
while (err>.0001)
{
i++;
cout<<"X_initial:"<<x_initial<<"|| X_iter:"<<x_iterative<<"|| Error:"<<err<<"|| Iteration:"<<i<<endl;
x_initial=x_iterative;
fini=x_initial*x_initial*x_initial-4*x_initial*x_initial+x_initial+6;
d_f=3*x_initial*x_initial-8*x_initial+1;
x_iterative=x_initial-fini/d_f;
err=abs((x_iterative-x_initial)/x_iterative);
}
return 0;
}
RBM
Secant method (in C++)
11/12/2015 6
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main()
{
cout.setf(ios::fixed,ios::floatfield);
cout.precision(4);
float x1,x2,f1,f2,x3,err;
int i;
cout<<"Enter two initial values:"<<endl;
cin>>x1>>x2;
f1=x1*x1-4*x1-10;
f2=x2*x2-4*x2-10;
x3=(f2*x1-f1*x2)/(f2-f1);
i=0;
err=abs((x3-x2)/x3);
while (err>.0001)
{
i++;
cout<<"X1:"<<x1<<"|| X2:"<<x2<<"|| Estimated Root:"<<x3<<"|| Error:"<<err<<"|| Iteration:"<<i<<endl;
x1=x2;
x2=x3;
f1=x1*x1-4*x1-10;
f2=x2*x2-4*x2-10;
x3=(f2*x1-f1*x2)/(f2-f1);
err=abs((x3-x2)/x3);
}
return 0;
}
RBM
Convert ungrouped data to grouped data (in C++)
11/12/2015 7
#include <iostream>
using namespace std;
int main()
{
int n,i,range,g,ini;
cout<<"Assign total data elements: ";
cin>>n;
float a[n];
cout<<"Enter datas one by one then press "Enter":"<<endl;
for (i=1; i<=n; i++)
{
cin>>a[i];
}
cout<<"Assign group Range: ";
cin>>range;
cout<<"Assign initial value of the group:";
cin>>ini;
g=ini;
cout<<"n"Group: "<<g<<"-"<<g+range<<"": "<<endl;
for (i=1; i<=n; i++)
{
cout <<" Data:"<<i<<" ="<<a[i]<<endl;
if(((i%range)==0)&&(i<n))
{
cout<<"nn"Group: "<<g+range<<"-"<<g+range+range<<"": "<<endl;
g=g+range;
}
}
return 0;
}
RBM
Calculate Mean (AM,GM,HM),mode median from ungrouped data (in C++)
11/12/2015 8
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
//For UnGrouped:
int i,j,n;
cout<<"Assign total Datas' Num: ";
cin>>n;
float a[n],sum=0,mul=1,inv=0,median,t;
cout<<"Enter Datas one by one & then Press "Enter" :"<<endl;
for(i=1; i<=n; i++)
{
cin>>a[i];
sum=sum+a[i];
mul=mul*a[i];
inv=inv+(1/a[i]);
}
cout<<"For ungrouped data elements:"<<endl;
cout<<"AM:"<<(sum/n)<<" GM:"<<pow(mul,(float)1/n)<<" HM:"<<(n/inv);
////Median values:
for(i=1; i<=n; i++)
{
for (j=i+1; j<=n; j++)
{
if(a[i]>=a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
if (n%2==0)
{
median=a[n/2];
}
else
{
median=a[(n+1)/2];
}
cout<<"nMedian value: "<<median;
return 0;
}
RBM
Calculate Mean (AM,GM,HM),mode median from grouped data(in C++)
11/12/2015 9
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
//For Grouped:
int i,n;
cout<<"Assign total Datas' Num: ";
cin>>n;
float a[n],sum=0,mul=1,inv=0,f,freq[n];
cout<<"nnEnter "Data" <space> "frequency" <Enter>:"<<endl;
for(i=1; i<=n; i++)
{
cin>>a[i]>>freq[i];
f=freq[i];
sum=sum+(a[i]*f);
mul=mul*pow(a[i],(float)f);
inv=inv+(f/a[i]);
}
for(i=1; i<=n; i++)
{
cout<<"X"<<i<<"= "<<a[i]<<" & f"<<i<<"= "<<freq[i]<<endl;
}
cout<<"nnFor grouped data elements:"<<endl;
cout<<"AM:"<<(sum/n)<<"nGM:"<<pow(mul,(float)1/n)<<"nHM:"<<(n/inv);
RBM
//Median
int range,ini[n],fin[n],fc[n],m_index;
float median_class,median_value;
cout<<"nEnter group range: ";
cin>>range;
cout<<"Set initial value of Group :";
cin>>ini[1];
fc[0]=0;
for (i=1; i<=n; i++)
{
ini[i+1]=ini[i]+range;
fin[i]=ini[i+1];
fc[i]=fc[i-1]+freq[i];
cout<<"Index "<<i<<" : ";
cout<<ini[i]<<"-"<<fin[i]<<" :f= "<<freq[i]<<" fc= "<<fc[i]<<endl;
}
if (fc[n]%2==0)
{
median_class=(fc[n]/2);
}
else
{
median_class=((fc[n]+1)/2);
}
cout<<"nMedian Class:"<<median_class<<endl;
cout<<"Find out Median_Class Index in above:";
cin>>m_index;
cout<<"Lower class bowndary of median class,L1: "<<ini[m_index]<<endl;
cout<<"Total frequency,N: "<<fc[n]<<endl;
cout<<"Sum of freq lower than median class: "<<fc[m_index-1]<<endl;
cout<<"Frequency of median class,fm: "<<fc[m_index]<<endl;
cout<<"Size of the median class interval :"<<range<<endl;
median_value=(ini[m_index]+(((median_class)-fc[m_index-1])*range/fc[m_index]));
cout<<"nMedian value : "<<median_value;
return 0;
}

Ee 3122 numerical methods and statistics sessional credit

  • 1.
    EE 3122 Numerical Methodsand Statistics Sessional Credit: 0.75 BY RBM GEORGE EEE_2K11 11/12/2015 RBM 1
  • 2.
    Bisection Method (inMatlab) 11/12/2015 2 clc; f=input ('Enter the co-efficient of function:'); xl=input ('Enter the value of lower limit:'); xu=input ('Enter the value of upper limit:'); fl=polyval(f,xl); fu=polyval(f,xu); if fl*fu>0 fprintf ('error We must have f(xl)f(xu)<0 to find a root'); break; end err=abs((xu-xl)/xu); while err>.0001 xc=(xl+xu)/2; fc=polyval(f,xc); if fl*fc<0 xu=xc; else xl=xc; end err=abs((xu-xl)/xu); fprintf ('xl:%f || xu:%f || Error:%f || Xc:%fn',xl,xu,err,xc); end RBM
  • 3.
    Bisection Method (inC++) 11/12/2015 3 #include <iostream> #include <cmath> #include <iomanip> using namespace std; int main() { cout.setf(ios::fixed,ios::floatfield); // set fixed floating format cout.precision(4); // for fixed format, five decimal places float xl,xu,fl,fu,xc,fc,err; int i; cout<<"Enter the value of lower limit & upper limit:"<<endl; cin>>xl>>xu; fl=xl*xl-4*xl-10; fu=xu*xu-4*xu-10; if (fl*fu>0) { cout<<"Error We must have f(xl)f(xu)<0 to find a root"<<endl; } else { i=0; err=abs((xu-xl)/xu); while (err>.0001) { xc=(xl+xu)/2; fc=xc*xc-4*xc-10; i++; cout<<"Xl:"<<xl<<"|| Xu:"<<xu<<"|| Xc:"<<xu<<"|| Error:"<<err<<"|| Iteration:"<<i<<endl; if (fl*fc<0) xu=xc; else xl=xc; err=abs((xu-xl)/xu); } } return 0; } RBM
  • 4.
    False Position method(in C++) 11/12/2015 4 #include <iostream> #include <cmath> #include <iomanip> using namespace std; int main() { cout.setf(ios::fixed,ios::floatfield); // set fixed floating format cout.precision(4); // for fixed format, five decimal places float xl,xu,fl,fu,xc,fc,err; int i; cout<<"Enter the value of lower limit & upper limit:"<<endl; cin>>xl>>xu; fl=xl*xl-4*xl-10; fu=xu*xu-4*xu-10; if (fl*fu>0) { cout<<"Error We must have f(xl)f(xu)<0 to find a root"<<endl; } else { i=0; err=abs((xu-xl)/xu); while (err>.0001) { xc=xl-fl*(xu-xl)/(fu-fl); fc=xc*xc-4*xc-10; i++; cout<<"Xl:"<<xl<<"|| Xu:"<<xu<<"|| Xc:"<<xu<<"|| Error:"<<err<<"|| Iteration:"<<i<<endl; if (fl*fc<0) xu=xc; else xl=xc; err=abs((xu-xl)/xu); } } return 0; } RBM
  • 5.
    Newton_Raphson method (inC++) 11/12/2015 5 #include <iostream> #include <cmath> #include <iomanip> using namespace std; int main() { cout.setf(ios::fixed,ios::floatfield); cout.precision(4); float x_initial,x_iterative,fini,fiter,d_f,err; int i; cout<<"Enter the initial value:"; cin>>x_initial; fini=x_initial*x_initial*x_initial-4*x_initial*x_initial+x_initial+6; d_f=3*x_initial*x_initial-8*x_initial+1;//diff form of function x_iterative=x_initial-fini/d_f; i=0; err=abs((x_iterative-x_initial)/x_iterative); while (err>.0001) { i++; cout<<"X_initial:"<<x_initial<<"|| X_iter:"<<x_iterative<<"|| Error:"<<err<<"|| Iteration:"<<i<<endl; x_initial=x_iterative; fini=x_initial*x_initial*x_initial-4*x_initial*x_initial+x_initial+6; d_f=3*x_initial*x_initial-8*x_initial+1; x_iterative=x_initial-fini/d_f; err=abs((x_iterative-x_initial)/x_iterative); } return 0; } RBM
  • 6.
    Secant method (inC++) 11/12/2015 6 #include <iostream> #include <cmath> #include <iomanip> using namespace std; int main() { cout.setf(ios::fixed,ios::floatfield); cout.precision(4); float x1,x2,f1,f2,x3,err; int i; cout<<"Enter two initial values:"<<endl; cin>>x1>>x2; f1=x1*x1-4*x1-10; f2=x2*x2-4*x2-10; x3=(f2*x1-f1*x2)/(f2-f1); i=0; err=abs((x3-x2)/x3); while (err>.0001) { i++; cout<<"X1:"<<x1<<"|| X2:"<<x2<<"|| Estimated Root:"<<x3<<"|| Error:"<<err<<"|| Iteration:"<<i<<endl; x1=x2; x2=x3; f1=x1*x1-4*x1-10; f2=x2*x2-4*x2-10; x3=(f2*x1-f1*x2)/(f2-f1); err=abs((x3-x2)/x3); } return 0; } RBM
  • 7.
    Convert ungrouped datato grouped data (in C++) 11/12/2015 7 #include <iostream> using namespace std; int main() { int n,i,range,g,ini; cout<<"Assign total data elements: "; cin>>n; float a[n]; cout<<"Enter datas one by one then press "Enter":"<<endl; for (i=1; i<=n; i++) { cin>>a[i]; } cout<<"Assign group Range: "; cin>>range; cout<<"Assign initial value of the group:"; cin>>ini; g=ini; cout<<"n"Group: "<<g<<"-"<<g+range<<"": "<<endl; for (i=1; i<=n; i++) { cout <<" Data:"<<i<<" ="<<a[i]<<endl; if(((i%range)==0)&&(i<n)) { cout<<"nn"Group: "<<g+range<<"-"<<g+range+range<<"": "<<endl; g=g+range; } } return 0; } RBM
  • 8.
    Calculate Mean (AM,GM,HM),modemedian from ungrouped data (in C++) 11/12/2015 8 #include<iostream> #include<cmath> using namespace std; int main() { //For UnGrouped: int i,j,n; cout<<"Assign total Datas' Num: "; cin>>n; float a[n],sum=0,mul=1,inv=0,median,t; cout<<"Enter Datas one by one & then Press "Enter" :"<<endl; for(i=1; i<=n; i++) { cin>>a[i]; sum=sum+a[i]; mul=mul*a[i]; inv=inv+(1/a[i]); } cout<<"For ungrouped data elements:"<<endl; cout<<"AM:"<<(sum/n)<<" GM:"<<pow(mul,(float)1/n)<<" HM:"<<(n/inv); ////Median values: for(i=1; i<=n; i++) { for (j=i+1; j<=n; j++) { if(a[i]>=a[j]) { t=a[i]; a[i]=a[j]; a[j]=t; } } } if (n%2==0) { median=a[n/2]; } else { median=a[(n+1)/2]; } cout<<"nMedian value: "<<median; return 0; } RBM
  • 9.
    Calculate Mean (AM,GM,HM),modemedian from grouped data(in C++) 11/12/2015 9 #include<iostream> #include<cmath> using namespace std; int main() { //For Grouped: int i,n; cout<<"Assign total Datas' Num: "; cin>>n; float a[n],sum=0,mul=1,inv=0,f,freq[n]; cout<<"nnEnter "Data" <space> "frequency" <Enter>:"<<endl; for(i=1; i<=n; i++) { cin>>a[i]>>freq[i]; f=freq[i]; sum=sum+(a[i]*f); mul=mul*pow(a[i],(float)f); inv=inv+(f/a[i]); } for(i=1; i<=n; i++) { cout<<"X"<<i<<"= "<<a[i]<<" & f"<<i<<"= "<<freq[i]<<endl; } cout<<"nnFor grouped data elements:"<<endl; cout<<"AM:"<<(sum/n)<<"nGM:"<<pow(mul,(float)1/n)<<"nHM:"<<(n/inv); RBM //Median int range,ini[n],fin[n],fc[n],m_index; float median_class,median_value; cout<<"nEnter group range: "; cin>>range; cout<<"Set initial value of Group :"; cin>>ini[1]; fc[0]=0; for (i=1; i<=n; i++) { ini[i+1]=ini[i]+range; fin[i]=ini[i+1]; fc[i]=fc[i-1]+freq[i]; cout<<"Index "<<i<<" : "; cout<<ini[i]<<"-"<<fin[i]<<" :f= "<<freq[i]<<" fc= "<<fc[i]<<endl; } if (fc[n]%2==0) { median_class=(fc[n]/2); } else { median_class=((fc[n]+1)/2); } cout<<"nMedian Class:"<<median_class<<endl; cout<<"Find out Median_Class Index in above:"; cin>>m_index; cout<<"Lower class bowndary of median class,L1: "<<ini[m_index]<<endl; cout<<"Total frequency,N: "<<fc[n]<<endl; cout<<"Sum of freq lower than median class: "<<fc[m_index-1]<<endl; cout<<"Frequency of median class,fm: "<<fc[m_index]<<endl; cout<<"Size of the median class interval :"<<range<<endl; median_value=(ini[m_index]+(((median_class)-fc[m_index-1])*range/fc[m_index])); cout<<"nMedian value : "<<median_value; return 0; }