电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

用递推公式计算定积分(matlab版)

用递推公式计算定积分(matlab版)_第1页
用递推公式计算定积分(matlab版)_第2页
用递推公式计算定积分(matlab版)_第3页
用递推公式计算定积分 实验目的: 1.充分理解不稳定的计算方法会造成误差的积累,在计算过程中会导致误差的迅速增加,从而使结果产生较大的误差。 2.在选择数值 计算公式来进行近似计算时,应学会选用那些在计算过程中不会导致误差迅速增长的计算公式。 3.理解不稳定的计算公式造成误差积累的来源及具体过程; 4.掌握简单的matlab 语言进行数值计算的方法。 实验题目: 对n=0,1,2,…,20,计算定积分: 实验原理: 由于y(n)= = – 在计算时有两种迭代方法,如下: 方法一: y(n)= – 5*y(n-1),n=1,2,3,…,20; 取 y(0)= = ln6-ln5 ≈ 0.182322 方法二: 利用递推公式:y(n-1)=- *y(n),n=20,19,…,1. 而且,由 = * ≤≤ * = 可取:y(20)≈ *()≈0.008730. 实验内容: 对算法一,程序代码如下: function [y,n]=funa() syms k n t; t=0.182322; n=0; y=zeros(1,20); y(1)=t; for k=2:20 y(k)=1/k-5*y(k-1); n=n+1; end y(1:6) y(7:11) 对算法二,程序代码如下: %计算定积分; %n--表示迭代次数; %y 用来存储结果; function [y,n]=f(); syms k y_20; y=zeros(21,1); n=1; y_20=(1/105+1/126)/2; y(21)=y_20; for k=21:-1:2 y(k-1)=1/(5*(k-1))-y(k)/5; n=n+1; end 实验结果: 由于计算过程中,前11 个数字太小,后9 个数字比较大,造成前面几个数字只显示0.0000 的现象,所以先输出前6 个,再输出7—11 个,这样就能全部显示出来了。 算法一结果: [y,n]=funa %先显示一 y(1)—y(6) ans = 0.1823 -0.4116 2.3914 -11.7069 58.7346 -293.5063 %再显示y(7)—y(11) ans = 1.0e+005 * 0.0147 -0.0734 0.3669 -1.8346 9.1728 y = 1.0e+012 * Columns 1 through 11 0.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 Columns 12 through 20 -0.0000 0.0000 -0.0001 0.0006 -0.0029 0.0143 -0.0717 0.3583 -1.7916 n = 19 算法二结果: >> [y,b]=f y = 0.1823 0.0884 0.0580 0.0431 0.0343 0.0285 0.0243 0.0212 0.0188 0.0169 0.0154 0.0141 0.0130 0.0120 0.0112 0.0105 0.0099 0.0093 0.0089 0.0083 0.0087 b = 21 实验分析: 从两题的计算结果可以看出来,算法一是不稳定的,而算法二是稳定的。 对算法一:由于y(1)本身具有一定的误差 ,设为a_1, 则由于 y(n)=1/n-5y(n-1)=1/n-5(1/(n-1)-5y(n-1)) =…… =1/n-5/(n-1)-5^2/(n-2)-…-(5^n)*y(0) 所以经过多次迭代后会使误差增大很多倍。 由此可知:在实际应用过程中应尽量避免使用数值不稳定的公式。

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部