?? 龍貝格算法1.cpp
字號:
#include<iostream.h>
#include<math.h>
double f(double x)
{
return exp(x);
}
void Romberg(double a, double b, double e)
{
double h = b - a;
int k = 0, j=0;
double T[10][10];
T[0][0] = ( f(a) + f(b) ) * h / 2;
cout<<'\t'<<"k\t"<<"T\t"<<"S\t"<<"C\t"<<"R\n";
cout<<'\t'<<k<<'\t'<<T[0][0]<<'\n';
for(k = 1; k<=e; k++)
{
double temp = 0;
for(int i = 1; i<=pow(2,k-1); i++)
{
temp += f(a + (i-1.0/2)*h );
}
T[0][k] = 1.0/2 * ( T[0][k-1] + h*temp );
cout<<'\t'<<k<<'\t'<<T[0][k];
for(j=1; j<=3&&j<=k; j++)
{
T[j][k-j] = ( pow(4,j)*T[j-1][k-j+1] - T[j-1][k-j] ) / ( pow(4,j) - 1 );
cout<<'\t'<<T[j][k-j];
}
cout<<'\n';
h = h/2;
}
cout<<"結果為:"<<T[j-1][k-j]<<'\n';
}
void main(void)
{
double a, b, e;
cout<<"輸入上限:";
cin>>b;
cout<<"輸入下限:";
cin>>a;
cout<<"輸入二分次數:";
cin>>e;
Romberg(a, b, e);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -