为了账号安全,请及时绑定邮箱和手机立即绑定

龙贝格算法

#include <stdio.h>

#include <math.h>

#include <windows.h>

#define N 1000//最大加速次数

#define MAX 10     //数组存的最大行数(宏定义)

#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)//复化梯形公式

{

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()//定义一个主函数

{

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("计算的数为:%.7lf\n",T[m][1]); //输出

while(1);

return 0;

}

}

printf("此题没有解...\n");

while(1);

return 0;

}

中间有几步没有注明的都是什么含义?

正在回答

1 回答

太高深了,去猿问问吧。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       926207    人
  • 解答问题       20797    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

龙贝格算法

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信