Ee 3122 numerical methods and statistics sessional credit
1. EE 3122 Numerical
Methods and Statistics
Sessional Credit: 0.75
BY RBM GEORGE EEE_2K11
11/12/2015 RBM 1
2. 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
3. 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
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 (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
6. 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
7. 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
8. 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
9. 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;
}