用matlab实现理查森外推算法,数值代数理查森外推法

《数值代数理查森外推法》由会员分享,可在线阅读,更多相关《数值代数理查森外推法(6页珍藏版)》请在人人文库网上搜索。

1、实验四一、实验名称理查森外推算法二、实验目的与要求:实验目的:掌握理查森外推算法。实验要求:1. 给出理查森外推算法思路,2. 用C语言实现算法,运行环境为Microsoft Visual C+。三、算法思路:1. 假设函数泰勒展开式可表示为 和,将两式相减,消去偶数项,则,整理得到下式,记L表示,表示微分形式,则有 (1)用h/2代替h,有 (2),由(1)(2)两式子有推广这种方法,就是理查森外推法了。2. 理查森外推法公式 , , 用下列公式计算,k=1,2,M,n=k,k+1,,M。 则有,当n和k足够大时D(n,k)可充分接近。3. 上机算法 input h , Mfor n=0 t。

2、o M doD(n , 0) end do for k=1 to M do for n=k to M do end do end do output D(n , k) 四、实验题目:五、问题的解:编写程序(程序见后面附录),输出结果如下:分析得到的结果,发现在对角线附近D(n , k)的值越来越稳定,通过上面算法阐述,我们知道D(n , k)应该是越来越接近我们想求到的导数的,与实验结果一致。六、附录:实验编程,运行环境为Microsoft Visual C+#include #include #include double f1(double x) /定义函数f1(x)/double y;y。

3、=(log(3.0+x)-log(3.0-x)/(2.0*x);return(y);double f2(double x) /定义函数f2(x)/double y;y=(tan(asin(0.8)+x)-tan(asin(0.8)-x)/(2.0*x);return(y);double f3(double x) /定义函数f3(x)/double y;y=(sin(x*x+x/3.0)-sin(x*x-x/3.0)/(2.0*x);return(y);void main()double D144,D255,D366;int i,j;for(i=0;i=3;i+) /*第一个问题的理查森算法*/。

4、D1i0=f1(1.0/pow(2,i);for(j=1;j=3;j+)for(i=j;i=3;i+)D1ij=D1ij-1+(D1ij-1-D1i-1j-1)/(pow(4,j)-1);printf(第一道题结果:n);for(i=0;i=3;i+)for(j=0;j=i;j+)printf(%0.12f ,D1ij);printf(n);for(i=0;i=4;i+) /*第二个问题的理查森算法*/D2i0=f2(1.0/pow(2,i);for(j=1;j=4;j+)for(i=j;i=4;i+)D2ij=D2ij-1+(D2ij-1-D2i-1j-1)/(pow(4,j)-1);printf(第二道题结果:n);for(i=0;i=4;i+)for(j=0;j=i;j+)printf(%0.12f ,D2ij);printf(n);for(i=0;i=5;i+) /*第三个问题的理查森算法*/D3i0=f3(1.0/pow(2,i);for(j=1;j=5;j+)for(i=j;i=5;i+)D3ij=D3ij-1+(D3ij-1-D3i-1j-1)/(pow(4,j)-1);printf(第三道题结果:n);for(i=0;i=5;i+)for(j=0;j=i;j+)printf(%0.12f ,D3ij);printf(n。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值