同济大学数值分析matlab编程题汇编..docxVIP

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
同济大学数值分析matlab编程题汇编.

MATLAB 编程题库1.下面的数据表近似地满足函数,请适当变换成为线性最小二乘问题,编程求最好的系数,并在同一个图上画出所有数据和函数图像.解: x=[-0.931 -0.586 -0.362 -0.213 0.008 0.544 0.628 0.995]; y=[0.356 0.606 0.687 0.802 0.823 0.801 0.718 0.625]; A=[x ones(8,1) -x.^2.*y]; z=A\y; a=z(1); b=z(2); c=z(3); xh=[-1:0.1:1]; yh=(a.*xh+b)./(1+c.*xh.^2); plot(x,y,r+,xh,yh,b*)2.若在Matlab工作目录下已经有如下两个函数文件,写一个割线法程序,求出这两个函数精度为的近似根,并写出调用方式:文件一文件二function v = f(x) v = x .* log(x) - 1;function z = g(y) z = y.^5 + y - 1;解: edit gexianfa.mfunction [x iter]=gexianfa(f,x0,x1,tol)iter=0;x=x1;while(abs(feval(f,x))tol) iter=iter+1; x=x1-feval(f,x1).*(x1-x0)./(feval(f,x1)-feval(f,x0)); x0=x1;x1=x;end edit f.mfunction v=f(x)v=x.*log(x)-1; edit g.mfunction z=g(y)z=y.^5+y-1; [x1 iter1]=gexianfa(f,1,3,1e-10)x1 = 1.7632iter1 = 6 [x2 iter2]=gexianfa(g,0,1,1e-10)x2 = 0.7549iter2 = 83.使用GS迭代求解下述线性代数方程组:解: edit gsdiedai.mfunction [x iter]=gsdiedai(A,x0,b,tol)D=diag(diag(A));L=D-tril(A);U=D-triu(A);iter=0;x=x0;while((norm(b-A*x)./norm(b))tol) iter=iter+1; x0=x; x=(D-L)\(U*x0+b);end A=[5 2 1;-1 4 2;1 -3 10]; b=[-12 10 3]; tol=1e-4; x0=[0 0 0]; [x iter]=gsdiedai(A,x0,b,tol); xx = -3.0910 1.2372 0.9802 iteriter = 64.用四阶Range-kutta方法求解下述常微分方程初值问题(取步长h=0.01)解: edit ksf2.mfunction v=ksf2(x,y)v=y+exp(x)+x.*y; a=1;b=2;h=0.01; n=(b-a)./h; x=[1:0.01:2]; y(1)=2; for i=2:(n+1)k1=h*ksf2(x(i-1),y(i-1));k2=h*ksf2(x(i-1)+0.5*h,y(i-1)+0.5*k1);k3=h*ksf2(x(i-1)+0.5*h,y(i-1)+0.5*k2);k4=h*ksf2(x(i-1)+h,y(i-1)+k3);y(i)=y(i-1)+(k1+2*k2+2*k3+k4)./6;end y调用函数方法 edit Rangekutta.mfunction [x y]=Rangekutta(f,a,b,h,y0)x=[a:h:b];n=(b-a)/h;y(1)=y0;for i=2:(n+1) k1=h*(feval(f,x(i-1),y(i-1))); k2=h*(feval(f,x(i-1)+0.5*h,y(i-1)+0.5*k1)); k3=h*(feval(f,x(i-1)+0.5*h,y(i-1)+0.5*k2)); k4=h*(feval(f,x(i-1)+h,y(i-1)+k3)); y(i)=y(i-1)+(k1+2*k2+2*k3+k4)./6;end [x y]=Rangekutta(ksf2,1,2,0.01,2); y5.取,请编写Matlab程序,分别用欧拉方法、改进欧拉方法在上求解初值问题。解: edit Euler.mfunction [x y]=Euler(f,a,b,h,y0)x=[a:h:b];n=(b-a)./h;y(1)=y0;for i=2:(n+1) y(i)=y(i-1)+h*feval(f,x(i-1),y(i-1));end edit gaijinEuler.mfunction[x y]=gaijinEuler

文档评论(0)

sdgr + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档