收藏 分销(赏)

算法的数值稳定性实验.doc

上传人:w****g 文档编号:3557940 上传时间:2024-07-09 格式:DOC 页数:5 大小:54KB
下载 相关 举报
算法的数值稳定性实验.doc_第1页
第1页 / 共5页
算法的数值稳定性实验.doc_第2页
第2页 / 共5页
算法的数值稳定性实验.doc_第3页
第3页 / 共5页
算法的数值稳定性实验.doc_第4页
第4页 / 共5页
算法的数值稳定性实验.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、 . 专业序号姓名日期实验1 算法的数值稳定性实验【实验目的】1掌握用MATLAB语言的编程训练,初步体验算法的软件实现;2通过对稳定算法和不稳定算法的结果分析、比较,深入理解算法的数值稳定性及其重要性。【实验内容】1 计算积分 (n=0,1,2.,10) 其中a为参数,分别对a=0.05及a=15按下列两种方案计算,列出其结果,并对其可靠性,说明原因。2 方案一 用递推公式 (n=1,2,.,10) 递推初值可由积分直接得3. 方案二 用递推公式 (n=N,N-1,.,1) 根据估计式 当或 当取递推初值为当或当计算中取N=13开始【程序如下】:% myexp1_1.m - 算法的数值稳定性

2、实验% 见 P11 实验课题(一) %function yyjj global n a N = 20; % 计算 N 个值a =0.05;%或者a=15% %-% % 方案I 用递推公式 %I(k) = - a*I(k-1) + 1/k% I0 =log(a+1)/a); % 初值I = zeros(N,1); % 创建 N x 1 矩阵(即列向量),元素全为零I(1) =-a*I0+1; for k = 2:N I(k) =-a*I(k-1)+1/k;end% %-% % 方案II 用递推公式 %I(k-1) = ( - I(k) + 1/k ) / a% II = zeros(N,1);i

3、f a = N/(N+1) II(N)=(2*a+1)/(2*a*(a+1)*(N+1);else II(N) =(1/(a+1)/(N+1)+1/N)/2;end for k = N:-1:2 II(k-1) =(-II(k)+1/k)/a; end% %-% % 调用 matlab 高精度数值积分命令 quadl 计算以便比较 III = zeros(N,1); for k = 1:N n = k; III(k) = quadl(f,0,1);end% %-% % 显示计算结果 clc fprintf(n 方案I结果 方案II结果 精确值) for k = 1:N, fprintf(nI(

4、%2.0f) %17.7f %17.7f %17.7f,k,I(k),II(k),III(k) end% %- function y = f(x) % 定义函数 global n a % 参量 n 为全局变量 y =x.n./(a+x); % 注意:这里一定要 点 运算 return% %-【运行结果如下】: 当a=0.05 方案I结果 方案II结果 精确值I( 1) 0.8477739 -919648916620722180000.0000000 0.8477739I( 2) 0.4576113 45982445831036109000.0000000 0.4576113I( 3) 0.31

5、04528 -2299122291551805700.0000000 0.3104528I( 4) 0.2344774 114956114577590290.0000000 0.2344776I( 5) 0.1882761 -5747805728879515.0000000 0.1882761I( 6) 0.1572529 287390286443975.9400000 0.1572529I( 7) 0.1349945 -14369514322198.6540000 0.1349945I( 8) 0.1182503 718475716110.0577400 0.1182503I( 9) 0.1

6、051986 -35923785805.3917770 0.1051986I(10) 0.0947401 1796189290.3695889 0.0947401I(11) 0.0861721 -89809464.4275704 0.0861724I(12) 0.0790247 4490473.3047119 0.0790247I(13) 0.0729718 -224523.5883125 0.0729718I(14) 0.0677800 11226.2508442 0.0677800I(15) 0.0632777 -561.2458755 0.0632777I(16) 0.0593361 2

7、8.1247938 0.0593361I(17) 0.0558567 -1.3474162 0.0558567I(18) 0.0527627 0.1229264 0.0527627I(19) 0.0499934 0.0464853 0.0499934I(20) 0.0475003 0.0476757 0.0475003 当a=15方案I结果 方案II结果 精确值I( 1) 0.0319222 0.0319222 0.0319222I( 2) 0.0211673 0.0211673 0.0211673I( 3) 0.0158245 0.0158245 0.0158245I( 4) 0.01263

8、26 0.0126326 0.0126326I( 5) 0.0105112 0.0105112 0.0105112I( 6) 0.0089993 0.0089993 0.0089993I( 7) 0.0078674 0.0078674 0.0078674I( 8) 0.0069883 0.0069883 0.0069883I( 9) 0.0062862 0.0062859 0.0062859I(10) 0.0057064 0.0057117 0.0057117I(11) 0.0053136 0.0052336 0.0052337I(12) 0.0036289 0.0048293 0.00482

9、96I(13) 0.0224896 0.0044830 0.0044838I(14) -0.2659159 0.0041831 0.0041831I(15) 4.0554050 0.0039207 0.0039207I(16) -60.7685756 0.0036893 0.0036893I(17) 911.5874579 0.0034837 0.0034837I(18) -13673.7563129 0.0033002 0.0032998I(19) 205106.3973248 0.0031283 0.0031344I(20) -3076595.9098724 0.0030754 0.0029847 【结果分析】:1、综上所述,当a=0.05的时候,方案二算法的结果从I(20)开始计算,刚开始的时候与精确解相差不大,但是随着计算的进行,误差变得越来越大,最终与原来的精确解相差十分巨大,而方案一算法的数值结果始终与精确解相差不大,是稳定的算法。2、当a=15的时候,反而是方案二的算法的数值结果与精确解更为接近,方案一算法的结果随着算法运算的进行,与精确解相差变大了。3、以上的实验说明了我们在进行数值分析时一定要选择合适的算法,而不能盲目的选择单一的算法,因为随着数值的变化,可能稳定的算法也会出现很大的误差。所以我们要根据实际问题来确定合适的算法,才能尽可能的减小误差。5 / 5

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服