华科计算方法上机作业代码.doc_第1页
华科计算方法上机作业代码.doc_第2页
华科计算方法上机作业代码.doc_第3页
华科计算方法上机作业代码.doc_第4页
华科计算方法上机作业代码.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算方法上机实验试题1. (25分)计算积分, n=0,1,2,20若用下列两种算法(A) (B) 试依据积分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;end0.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.5893 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.4499e+15i30=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 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.18232. (25分)求解方程f(x)=0有如下牛顿迭代公式, n1,x0给定(1) 编制上述算法的通用程序,并以(为预定精度)作为终止迭代的准则。(2) 利用上述算法求解方程 这里给定x0=/4,且预定精度=10-10。fun=inline(cos(x)-x)fun = 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.7391x = 0.73913. (25分) 已知,(1) 利用插值节点x0=1.00,x1=1.02,x2=1.04,x3=1.06,构造三次Lagrange插值公式,由此计算f(1.03)的近似值,并给出其实际误差;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); %化简 if(i=n) if(nargin = 3) f = subs(f,t,x0); %计算插值点的函数值 else f = collect(f); %将插值多项式展开 f = vpa(f,6); %将插值多项式的系数化成6位精度的小数 end endendfunction f=fun(x)f=exp(x)*(3*x-exp(x);end x0=1.00 1.02 1.04 1.06x0 =1.0000 1.0200 1.0400 1.0600y0=fun(1.00) fun(1.02) fun(1.04) fun(1.06)y0 = 0.7658 0.7954 0.8227 0.8475 f=Language(x0,y0,1.03)f =116635870560615609/144115188075855872 116635870560615609/144115188075855872ans = 0.8093误差:e=abs(fun(1.03)-f)e =45008364041/144115188075855872 45008364041/144115188075855872ans = 3.1231e-07(2) 利用插值节点x0=1,x1=1.05构造三次Hermite插值公式,由此计算f(1.03)的近似值,并给出其实际误差。 function yi=Hermite(x,y,yd,xi)%x全部的插值节点;%y插值节点处的函数值;%yd插值节点处的导数值;%如果此处缺省,则用均差代替导数;%端点用向前、向后均差,中间点用中心均差;%xi为标量,自变量x;%yi为xi处的函数值;%如果没有给出y的导数值,则用均差代替导数.if isempty(yd)=1 yd=gradient(y,x);endn=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);endp=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) diff(exp(x)*(3*x-exp(x)ans =exp(x)*(3*x - exp(x) - exp(x)*(exp(x) - 3) x=1.0; exp(x)*(3*x - exp(x) - exp(x)*(exp(x) - 3)ans = 1.5316 x=1.05; exp(x)*(3*x - exp(x) - exp(x)*(exp(x) - 3)ans = 1.2422 y=fun(1.0) fun(1.05)y

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论