《应用计算方法教程》matlab作业一答题.docx

《应用计算方法教程》matlab作业一答题.docx

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
作业一 1-1实验目的:寻求高效算法 实验内容:设,给出两个算法,求,写出MATLAB程序,并统计计算法计算量。若要计算量不超过20flop,应如何设计算法? 算法一 算法: 令,依次计算,最后用。 程序: n=1023; t=1+1/n; t0=t; for i=1:10 t=t^2; end t=t/t0; disp(t);界面: 计算量:12flop 算法二 算法: 直接计算t的1023次方。 程序: n=1023; t=1+1/n; x=t^1023; disp(x);界面: 计算量:1024flop 若要计算量不超过20flop,采用第一种算法较合适。 作业二 3-5 实验目的:应用不同迭代法求解代数方程 实验内容:分别采用二分法、Newton法、Newton下山法、割线法求解方程 在[0.1,1]中的根;精确到。 二分法 算法: 为连续函数,且由题意可知[0.1,1]为含根区间,令a=0.1,b=1,取p=(a+b)/2。若f(p)=0则p是方程f(x)=0的解;若f(a)f(p)0则根在(a,p)内,取a1=a,b1=p;否则根在区间(p,b)内,取a1=p,b1=b。重复上述过程直到达到精度要求为止。 程序: function y=f_3_5(x) y=600*x^4-550*x^3+200*x^2-20*x-1; function [p,k]=lab3_5_Bisection(max,a,b,e) for k=1:max p=(b+a)/2; if f_3_5(p)==0 || (b-a)/2e break; elseif f_3_5(a)*f_3_5(p)0 a=p; else b=p; end end界面: Newton法 算法: 建立牛顿迭代格式 直到小于精度要求时迭代结束,将作为结果输出。 程序: function y=f2_3_5(x) y=600*4*x^3-550*3*x^2+400*x-20; function [p,k]=lab3_5_Newton(max,p0,e) for k=1:max p=p0-f_3_5(p0)/f2_3_5(p0); if abs(p-p0)e break; end p0=p; end界面: Newton下山法 算法: 建立迭代格式 其中是下山因子,在每步迭代中依次取1,1/2,1/4,…直到满足精度要求。 程序: function [p,k]=lab3_5_Newton2(max,p0,tol,e) for k=1:max y=1; p=p0-y*f_3_5(p0)/f2_3_5(p0); while (abs(f_3_5(p))=abs(f_3_5(p0)) ye) y=y/2; p=p0-y*f_3_5(p0)/f2_3_5(p0); end if abs(p-p0)tol break; end p0=p; end界面: 割线法 算法: 建立迭代格式 直到小于精度要求时迭代结束,将作为结果输出。 程序: function [p,k]=lab3_5_Secant(max,a,b,e) for k=1:max p=b-f_3_5(b)*(b-a)/(f_3_5(b)-f_3_5(a)); if abs(p-b)e break; end a=b; b=p; end界面: 作业三 4-2 实验目的:熟悉LU分解法求解方程。 实验内容:用MATLAB编程做Doolittle分解,求解方程组。 算法: 对进行Doolittle分解使得,则线性方程组的求解问题就转化为对三角形方程组的求解。Doolittle分解过程为: 然后依次求解和: 程序: function [L,U,x]=lab4_2(a,b) n=length(a); L=eye(n); U(1,:)=a(1,:); for k=2:n if U(k-1,k-1)==0 disp(·??a꧰ü); return; end L(k:n,k-1)=a(k:n,k-1)/U(k-1,k-1); U(k,k:n)=a(k,k:n)-L(k,1:k-1)*U(1:k-1,k:n); if kn a(k+1:n,k)=a(k+1:n,k)-L(

文档评论(0)

希望之星 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档