?? romberg.cpp
字號(hào):
#include<iostream.h>
#include<math.h>
#define n 100
typedef double * dd;
double mi(double x,int y);
void romberg(double a,double b,double e);
double f(double x);
void main()
{
double a,b,e;
cout<<"輸入下限:";
cin>>a;
cout<<"輸入上限:";
cin>>b;
cout<<"輸入允許誤差:";
cin>>e;
romberg(a,b,e);
}
double mi(double x,int y)
{
double xx=1;
for(int i=0;i<y;i++)xx*=x;
return xx;
}
void romberg(double a,double b,double e)
{
cout<<"f(x)=4/(1+x*x)"<<endl;
int i=0;
double sum=0;
dd * t=new dd[n];
for(i=0;i<n;i++)t[i]=new double[n];
t[0][0]=(b-a)*(f(a)+f(b))/2;
int k=0;
do
{
k++;sum=0;
for(i=1;i<=mi(2,k-1);i++)sum+=f(a+(2*i-1)*(b-a)/mi(2,k));
t[0][k]=t[0][k-1]/2+(b-a)*sum/mi(2,k);
for(i=1;i<=k;i++)
t[i][k-i]=(mi(4,i)*t[i-1][k-i+1]-t[i-1][k-i])/(mi(4,i)-1);
}while(fabs(t[k][0]-t[k-1][0])>=e);
cout<<"結(jié)果是:"<<t[k][0]<<endl;
}
double f(double x)
{
return 4/(1+x*x);
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -