北京科技大学计算方法大作业.docxVIP

  • 29
  • 0
  • 约9.62千字
  • 约 22页
  • 2019-09-27 发布于广东
  • 举报
计算方法大作业 机械电子工程系 老师:廖福成 注:本文本只有程序题,证明题全部在手写已交到理 化楼204 T o 2.证明方程 兀-1=0 在[1,2]上有一实根Q 并用二分法求这个根。要求1%1一心11°二 请给出程 序和运行结果。 证明: 设 f(x)=x3-x-l 则 f(l)=-l, f(2)= 5, f(l)*f(2)= -50 因此,方程在[1,2]上必有一实根。 二分法求解程序: %预先定义homework2.m文件如下: function lc=homework2(x) lc=xA3-x-l; 在MALAB窗口运行: clear a= 1 ;b=2;tol= 10A(-3);N= 10000; k=0; fa=homework2(a); % f 需事先定义 for k=l:N p=(a+b)/2; fp=homework2(p); if( fp=0 || (b-a)/2tol) break end if fa*fp0 b=p; else a=p; end end k,p 程序运行结果: k= 10 p= 1.325195312500000 的一个正根,计算结果精确到7位有效数字.要求给出程序和运行结果. 解: 取迭代初值兀()=,并设 /(兀)=人‘ +2 +10兀-20,贝|| f (x) = 3x2 +4x4-10 Matlab程序如下: %定义zuoye3.m文件 function x=zuoye3(fname,dfname,x0,e,N) if nargin5,N=500;end 讦 nargin4,e=le-7;end x=x0;x0=x+2*e;k=0; while abs(x0-x)ekN, k 二 k+1; xO=x;x=xO-feval(fname,xO)/feval(dfname,xO); disp(x) end if k==N,warning(已达上限次数 J;end 在Matlab窗口中执行: zuoye3(inlineCxA3+2*xA2+10*x-20,),inlineC3*xA2+4*x+1 O), 1,1 e-7) 结果如下: 1.41176470588235 1.36933647058824 1.36880818861753 1.36880810782137 ans = 1.36880810782137 4.用牛顿迭代法求方程兀-兀-1 = 0在附近的根.要求给出程序和运行结 果. 解:令:/(x) = ?-%-!侧八兀)=3十_1. 恥)+住牛顿迭代函数为 /(兀)=X-3x 恥)+住 牛顿迭代函数为 /(兀) =X- 3x2-1 牛顿迭格式为: Matalb程序如下: %定义zuoye4.m文件 function x=zuoye4(fname,dfname,xO,e,N) if nargin5,N=500;end if nargin4,e= 1 e-7 ;end x=x0;x0=x+2*e;k=0; while abs(xO-x)ekvN, k=k+l; xO=x;x=xO-feval(fname,xO)/feval(dfname,xO); disp(x) end if k=N,warning(己达上限次数 f);end 在Matlab窗口执行: zuoye4(inline(xA3-x-1 ,),inline(,3 *xA2- T), 1,1 e-7) 结果如下: 1.50000000000000 1.34782608695652 1.32520039895091 1.32471817399905 1.32471795724479 1.32471795724475 ans 二 1.32471795724475 6.编写用全主元Gauss消去法解线性方程组的程序,并求解 0?02兀i 一 兀2 + 4工3 一 3x4 + x- = 11 ~X{ + 兀2 + 2工3 + 工4 + 3兀5 = 14 _七=4 一3 兀]+ 兀? + 3 兀3 + 2兀4 + 4 兀5 = 16 xx + 3x2 一 x3 + 4 兀4 + 4xs = 18 解: Matlab程序如下: A=[2-l 4-3 1;-1 1 2 1 3;4 23 3 -1;-3 1 3 24;1 3-14 4] b=[ll 144 16 18J function x=zuoye6(A,b) [n,v]=size(b); D=[ A,b;ey e(n),zeros(n, v)], [s 1 ,m]=size(D); for k=l:(n-l) s=abs(A(k,k));p=k;q=k; for i=k:n for j=k:n if abs(A(i,j))s s=abs(A(i,j));p=i;q=j; end e

文档评论(0)

1亿VIP精品文档

相关文档