您好,欢迎来到纷纭教育。
搜索
您的当前位置:首页龙贝格+实验报告

龙贝格+实验报告

来源:纷纭教育
实验三 龙贝格求积分

一、 实验目的

用算法实现龙贝积分运算,求解I=∫

1X3/20

dx的积分

二、 实验原理

三、 算法设计与程序流程图

算法设计:(先假定所求积分二分最大次数次数为20) 1、 先求T[k][0] 2、 再由公式

mT(k)求T[i][j]

m44m1T(k1)1(k)m14m1Tm1(k1,2,).3、 在求出的同时比较T[k][k]与T[k-1][k-1]的大小,如果二者之差的绝对值小于1e-5,就停止求T[k][k];此时的k

就是所求的二分次数,而此时的T[k][k]就是最终的结果 4、 打印出所有的T[i][j];

程序流程图:

开始 N=20,a=0,b=1 求T[0][0] K=0 K++,h=h/2;n=2k-1;s=0 m=0 m=m+1 s+=(*f)(a+(2*m-1)*h);

N m<=n Y T[k][0] = 0.5*T[k-1][0] + h*s;

N k=N 求T[i][j],k=0 K++ m=0

m++ T[k][m]=pow(4,m)/(pow(4,m)-1)*T[k][m-1]-1/(pow(4,m)-1)*T[k-1][m-1] N m<=k N fabs(T[k][k]-T[k-1][k-1])<1e-5

Y 输出 结束 四、 源程序

#include

#include #include #define a 0 //区间下限 #define b 1 //区间上限 #define N 20 //最大加速次数 double f(double x) { }

void main() {

double h=b-a; int i,j,k,m,n; double T[N][N],s;

T[0][0]=h*((*f)(a)+(*f)(b))/2.0; return(pow(x,1.5));

for(k = 1;kh = (b-a) * pow(0.5,k);

n = (int)pow(2,k-1);

s=0.0;

for(m=1;m<=n;m++) {

s+=(*f)(a+(2*m-1)*h);

}

T[k][0] = 0.5*T[k-1][0] + h*s; } {

for(j = 0;j<=i;j++)

printf(\"%.6lf \ printf(\"\\n\"); } }

for(k=1;kprintf(\"R=%.6lf\\n\printf(\"k=%d \\n\printf(\"T:\\n\"); for(i = 0;i<=k;i++)

for(m=1;m<=k;m++) { }

if(fabs(T[k][k]-T[k-1][k-1])<1e-5) { }

break;

T[k][m]=pow(4,m)/(pow(4,m)-1)*T[k][m-1]-1/(pow(4,m)-1)*T[k-1][m-1];

五、 程序运行

六、 结果分析

如上所示的结果与课本中求得的结果完全一样,表明程序编写正确,且符合要求,事实上,只要再将所求值的精度设置得更小,则所求的结果将更加准确,最终将无限接近于标准值,由上表也可以看出用龙贝格积分法求函数的积分值在精度比较低的情况下就能求到很准确的值!

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- fenyunshixun.cn 版权所有 湘ICP备2023022495号-9

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务