计算方法综合实践讲解

上传人:我** 文档编号:114325888 上传时间:2019-11-10 格式:DOC 页数:15 大小:200.10KB
返回 下载 相关 举报
计算方法综合实践讲解_第1页
第1页 / 共15页
计算方法综合实践讲解_第2页
第2页 / 共15页
计算方法综合实践讲解_第3页
第3页 / 共15页
计算方法综合实践讲解_第4页
第4页 / 共15页
计算方法综合实践讲解_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《计算方法综合实践讲解》由会员分享,可在线阅读,更多相关《计算方法综合实践讲解(15页珍藏版)》请在金锄头文库上搜索。

1、1 应用自己熟悉的算法语言编写程序,使之尽可能具有通用性。2 上机前充分准备,复习有关算法,写出计算步骤,反复检查,调试程序。(注:在练习本上写,不上交)3 完成计算后写出实验报告,内容包括:算法步骤叙述,变量说明,程序清单,输出计算结果,结构分析和小结等。(注:具体题目具体分析,并不是所有的题目的实验报告都包含上述内容!)4 独立完成,如有雷同,一律判为零分!5 上机期间不允许做其他任何与课程设计无关的事情,否则被发现一次扣10分,被发现三次判为不及格!非特殊情况,不能请假。旷课3个半天及以上者,直接判为不及格。目 录一、基本技能训练41、误差分析42、求解非线性方程43、插值44、数值积分

2、4二、提高技能训练41、42、4三、本课程设计的心得体会(500字左右)4一、基本技能训练1、误差分析实验 1.2误差传播与算法稳定性实验目的:体会稳定性在选择算法中的地位。误差扩张的算法是不稳定的,是我们所不期望的;误差衰减的算法是稳定的,是我们努力寻求的,这是贯穿本课程的目标。问题提出:考虑一个简单的由积分定义的序列显然。当时,而对于时,利用分部积分易得另一方面,我们有实验内容:由以上递推关系,我们可得到计算序列的两种方法。(I)(II)syms n In5 In6 In7;In5=vpa(exp(-1),5);In6=vpa(exp(-1),6);In7=vpa(exp(-1),7);f

3、printf(%.5f %.6f %.7fn,eval(In5),eval(In6),eval(In7);for n=2:10 In5=vpa(1-n*In5),5); In6=vpa(1-n*In6),6); In7=vpa(1-n*In7),7); fprintf(%.5f %.6f %.7fn,eval(In5),eval(In6),eval(In7);end五位 六位 七位0.36788 0.367879 0.36787940.26424 0.264241 0.26424110.20728 0.207277 0.20727660.17089 0.170893 0.17089340.14

4、553 0.145533 0.14553290.12680 0.126802 0.12680240.11238 0.112384 0.11238350.10093 0.100932 0.10093200.09161 0.091612 0.09161230.08388 0.083877 0.0838771syms nEn;En5=vpa(0,5);En6=vpa(0,6);En7=vpa(0,7);fprintf(%.5f %.6f %.7fn,eval(En5),eval(En6),eval(En7);for n=10:-1:2 En5=vpa(1-En5)/n),5); En6=vpa(1-

5、En6)/n),6); En7=vpa(1-En7)/n),7); fprintf(%.5f %.6f %.7fn,eval(En5),eval(En6),eval(En7);end五位 六位 七位0.00000 0.000000 0.00000000.10000 0.100000 0.10000000.10000 0.100000 0.10000000.11250 0.112500 0.11250000.12679 0.126786 0.12678570.14554 0.145536 0.14553570.17089 0.170893 0.17089290.20728 0.207277 0.

6、20727680.26424 0.264241 0.26424110.36788 0.367879 0.3678795(1) 由所得数据可以了解,两种算法随着n的增大,误差越来越大,而第二种算法随着n的减小,数据越来越精确,且三种有效数字结果大致相同,所以第二种更精确。(2) 算法一E1的误差e1,由于En=1-n*En-1,n=2,3,4.,通过推算可得误差=,n越大,其误差就越大,那么最后算出的结果是e1的n!倍;算法二的误差,由于,推倒可得误差=,比缩小了(N-n)!倍,则n减少,所以就越小。所以算法一越往后算,一步步的误差会使误差越大,而算法二由于是从后面递推回来,其误差会被缩小。所以

7、算法二更优。(3) 算法一中,n增大,误差增大,算法二中,n减小,误差减小。所以当某一步发生误差 后随着n变大,算法一的误差越来越大,而算法二由于是往回推,所以误差变小。(4) 通过以上可一推出,算法一随着n变大,容易使误差越来越大,而算法二会使误差变小,所以算法二更加稳定。2、求解非线性方程3、插值实验目的:掌握Lagrange插值法和Newton插值法问题提出:,已知的函数值表如下x00.10.20.30.40.50000.53980.57930.61790.7554用插值法求和的近似值。实验内容:(1)分别用Lagrange插值法和Newton插值法编程求解;(2)求出插值多项式系数,对

8、比计算结果。拉格朗日差值function yh=lagrange(x,y,xh)ticn = length(x);m = length(xh);x = x(:);y = y(:);xh = xh(:);yh = zeros(m,1); c1 = ones(1,n-1);c2 = ones(m,1);for i=1:n, xp = x(1:i-1 i+1:n); yh = yh + y(i) * prod(xh*c1-c2*xp)./(c2*(x(i)*c1-xp),2);endtoc x=0 0.1 0.2 0.3 0.4;y=0.5000 0.5398 0.5793 0.6179 0.755

9、4;xh=0.13 0.36;lagrange(x,y,xh)时间已过 0.026678 秒。ans = 0.5537 0.6780多项式为(5*xh - 1)*(5*xh)/2 - 1)*(10*xh - 1)*(10*xh)/3 - 1)/2 + (5793*xh*(5*xh - 2)*(10*xh - 1)*(10*xh - 3)/2000 - (6179*xh*(5*xh - 1/2)*(10*xh - 2)*(10*xh - 4)/3000 + (3777*xh*(5*xh - 1)*(10*xh - 3)*(10*xh)/3 - 1/3)/2000 - (2699*xh*(5*xh

10、 - 3/2)*(10*xh - 2)*(10*xh)/3 - 4/3)/500作图 x0=0 0.1 0.2 0.3 0.4;y0=0.5000 0.5398 0.5793 0.6179 0.7554;xh=0:0.01:0.4;y=lagrange(x0,y0,xh);时间已过 0.000158 秒。 plot(xh,y);hold on;牛顿差值function f=Newton(x,y,x0,x1)ticsyms t;if(length(x)=length(y) n=length(x); c(1:n)=0.0;else disp(x和y的维数不相等!);return;endf=y(1)

11、;y1=0;l =1;for(i=1:n-1)for(j=i+1:n) y1(j)=(y(j)-y(i)/(x(j)-x(i);end c(i)=y1(i+1); l=l*(t-x(i); f=f+c(i)*l; y=y1;endf=simplify(f);g=subs(f,t,x0)g1=subs(f,t,x1)A=zeros(n,n-1);A=y,A;for j=2:nfor i=j:n A(i,j)=(A(i,j-1)-A(i-1,j-1)/(x(i)-x(i+1-j);endenddisp(差商表为);disp(A);toc x0=0 0.1 0.2 0.3 0.4;y0=0.5000

12、 0.5398 0.5793 0.6179 0.7554;Newton(x0,y0,0.13,0.36)g =249341921721956909228481/450359962737049600000000g1 =1192694200291039391741/1759218604441600000000差商表为 1.0e+04 * 0 0 0 0 0 0.0000 0.0004 0 0 0 -0.0000 -0.0004 -0.0041 0 0 -0.0000 -0.0001 0.0016 0.0190 0 0.0042 0.0419 0.2101 0.6948 1.6896时间已过 0.3

13、68255 秒。ans =(251*t4)/6 - (2269814212194733997*t3)/90071992547409920 + (12474970967816329501*t2)/2702159776422297600 + (659777345409770407*t)/4503599627370496000 + 1/2作图 t=0:0.01:0.4; f=; f=(251.*t.4)./6.-(2269814212194733997.*t.3)./90071992547409920.+ (12474970967816329501.*t.2)./2702159776422297600.+(659777345409770407.*t)./4503599627370496000.+ 1/2; plot(t,f);hold on;两种方法

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号