龙贝格方法c语言,龙贝格算法
#include
#include
#include
#define N 1000//最大加速次數(shù)
#define MAX 10? ? ?//數(shù)組存的最大行數(shù)(宏定義)
#define a 0.0000001? ?//積分下限
#define b 1.0? ? ? //積分上限
#define eps 1e-7 //精度
double f(double x)//所求得的積分公式
{
return sin(x) / x;
}
double computeT(double aa, double bb, long int n)//復(fù)化梯形公式
{
int i;
double sum=0.0, h = (bb - aa) / n;
for (i = 1; i < n; i++)
sum =sum+ f(aa + i * h);
sum =sum+ (f(aa) + f(bb)) / 2;
return (h * sum);
}
double f2(double x)
{
return x*x;
}
int main()//定義一個主函數(shù)
{
int i;
long int n = N,m = 0;
double T[MAX + 1][2];
T[0][1]=computeT(a,b,n);
n*= 2;
for (m = 1; m < MAX; m++)
{
for (i = 0; i < m; i++)
{
T[i][0] = T[i][1];
}
T[0][1]=computeT(a,b,n);//計算T^{m-1}(h-2)
n *= 2;
for (i = 1; i <= m; i++) //T的m(h)
T[i][1] = T[i - 1][1] + (T[i - 1][1] - T[i - 1][0]) / (pow(2.0, 2 * m) - 1);
if ((T[m - 1][1] < T[m][1] + eps) && (T[m - 1][1] > T[m][1] - eps))
{
printf("計算的數(shù)為:%.7lf\n",T[m][1]); //輸出
while(1);
return 0;
}
}
printf("此題沒有解...\n");
while(1);
return 0;
}
中間有幾步?jīng)]有注明的都是什么含義?
總結(jié)
以上是生活随笔為你收集整理的龙贝格方法c语言,龙贝格算法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 沈航计算机考研上岸,【图片】一战厦大计算
- 下一篇: 计算机能力挑战赛_蓝桥杯、PAT、CCF