华科计算方法上机作业代码.doc

上传人:h**** 文档编号:1414681 上传时间:2019-02-24 格式:DOC 页数:11 大小:51KB
下载 相关 举报
华科计算方法上机作业代码.doc_第1页
第1页 / 共11页
华科计算方法上机作业代码.doc_第2页
第2页 / 共11页
华科计算方法上机作业代码.doc_第3页
第3页 / 共11页
华科计算方法上机作业代码.doc_第4页
第4页 / 共11页
华科计算方法上机作业代码.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

1、计算方法 上机实验试题 1. (25 分 )计算积分 dxxxI nn 10 5 , n=0,1,2, ,20 若用下列两种算法 (A) nIInn 15 1 (B) nn InI 1511试依据积分 In的性质及数值结果说明何种算法更合理。 i0=1.8232000e-001; disp(i0); for n=1:30 i1=double(-5.0*i0+1.0/n); disp(n); disp(i1); i0=i1; end 0.1823 1 0.0884 2 0.0580 3 0.0433 4 0.0333 5 0.0333 6 2.4261e-13 7 0.1429 8 -0.589

2、3 9 3.0575 10 -15.1877 11 76.0294 12 -380.0637 13 1.9004e+03 14 -9.5019e+03 15 4.7510e+04 16 -2.3755e+05 17 1.1877e+06 18 -5.9387e+06 19 2.9693e+07 20 -1.4847e+08 21 7.4234e+08 22 -3.7117e+09 23 1.8558e+10 24 -9.2792e+10 25 4.6396e+11 26 -2.3198e+12 27 1.1599e+13 28 -5.7995e+13 29 2.8998e+14 30 -1.4

3、499e+15 i30=5.9140e-003; disp(i30); for n=30:-1:1 i1=double(-0.2*i30+1.0/(5*n); disp(n); disp(i1); i30=i1; end 0.0059 30 0.0055 29 0.0058 28 0.0060 27 0.0062 26 0.0065 25 0.0067 24 0.0070 23 0.0073 22 0.0076 21 0.0080 20 0.0084 19 0.0088 18 0.0093 17 0.0099 16 0.0105 15 0.0112 14 0.0120 13 0.0130 12

4、 0.0141 11 0.0154 10 0.0169 9 0.0188 8 0.0212 7 0.0243 6 0.0285 5 0.0343 4 0.0431 3 0.0580 2 0.0884 1 0.1823 2. (25 分 )求解方程 f(x)=0 有如下 牛顿 迭代公式 )( )( 111 nnnn xf xfxx, n 1, x0给定 (1) 编制上述算法的通用程序,并以 1nn xx ( 为预定精度)作为终止迭代的准则。 (2) 利用上述算法求解方程 0c o s:)( xxxf 这里给定 x0= /4,且预定精度 =10-10。 fun=inline(cos(x)-x) f

5、un = Inline function: fun(x) = cos(x)-x dfun=inline(-sin(x)-1) dfun = Inline function: dfun(x) = -sin(x)-1 x=agui_newton(fun,dfun,pi/4,1e-10) 0.7395 0.7391 0.7391 0.7391 x = 0.73913. (25 分 ) 已知 )3()( xx exexf , (1) 利用插值节点 x0=1.00, x1=1.02, x2=1.04, x3=1.06,构造三次 Lagrange 插值公式,由此计算 f(1.03)的近似值,并给出其实际误

6、差; function f = Language(x,y,x0) syms t; if(length(x) = length(y) n = length(x); else disp(x 和 y 的维数不相等! ); return; end %检错 f = 0.0; for(i = 1:n) l = y(i); for(j = 1:i-1) l = l*(t-x(j)/(x(i)-x(j); end; for(j = i+1:n) l = l*(t-x(j)/(x(i)-x(j); %计算拉格朗日基函数 end; f = f + l; %计算拉格朗日插值函数 simplify(f); %化简 i

7、f(i=n) if(nargin = 3) f = subs(f,t,x0); %计算插值点的函数值 else f = collect(f); %将插值多项式展开 f = vpa(f,6); %将插值多项式的系数化成 6 位精度的小数 end end end function f=fun(x) f=exp(x)*(3*x-exp(x); end x0=1.00 1.02 1.04 1.06 x0 = 1.0000 1.0200 1.0400 1.0600 y0=fun(1.00) fun(1.02) fun(1.04) fun(1.06) y0 = 0.7658 0.7954 0.8227 0

8、.8475 f=Language(x0,y0,1.03) f = 116635870560615609/144115188075855872 116635870560615609/144115188075855872 ans = 0.8093 误差: e=abs(fun(1.03)-f) e = 45008364041/144115188075855872 45008364041/144115188075855872 ans = 3.1231e-07 (2) 利用插值节点 x0=1, x1=1.05 构造三次 Hermite 插值公式,由此计算 f(1.03)的近似值,并给出其实际误差。 fu

9、nction yi=Hermite(x,y,yd,xi) %x全部的插值节点; %y插值节点处的函数值; %yd 插值节点处的导数值; %如果此处缺省,则用均差代替 导数; %端点用向前、向后均差,中间点用中心均差; %xi为标量,自变量 x; %yi为 xi处的函数值; %如果没有给出 y 的导数值,则用均差代替导数 . if isempty(yd)=1 yd=gradient(y,x); end n=length(x);m1=length(y);m2=length(yd); %输入 x,y 和 y 的导数个数必须相同 if n=m1|n=m2|m1=m2 error(The length of X,Y and Yd must be equal); end p=zeros(1,n);q=zeros(1,n);yi=0; for k=1:n t=ones(1,n);z=zeros(1,n); for j=1:n if j=k %插值节点必须互异 if abs(x(k)-x(j)eps error(The date is error); end

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

当前位置:首页 > 教育教学资料库 > 试题真题

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。