《不同方法求方程的根matlab代码(共4页).doc》由会员分享,可在线阅读,更多相关《不同方法求方程的根matlab代码(共4页).doc(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上1、%使用二分法找到方程 600 x4 -550 x3 +200 x2 -20 x -1 =0 在区间0.1,1上的根,%误差限为 e=10-4 disp(二分法)a=0.2;b=0.26;tol=0.0001;n0=10;fa=600*(a.4)-550*(a.3)+200*(a.2)-20*a-1;for i=1:n0 p=(a+b)/2; fp=600*(p.4)-550*(p.3)+200*(p.2)-20*p-1; if fp=0|(abs(b-a)/2)0 a=p; else b=p; endendif i=n0&(fp=0|(abs(b-a)/2)tol
2、) disp(n0) disp(次二分迭代后没有求出方程的根)end2、%使用牛顿法找到方程 600 x4 -550 x3 +200 x2 -20 x -1 =0 在区间0.1,1上的根,%误差限为 e=10-4 disp(牛顿法)p0=0.3;for i=1:n0 p=p0-(600*(p0.4)-550*(p0.3)+200*(p0.2)-20*p0-1)./(2400*(p0.3)-1650*p0.2+400*p0-20); if(abs(p-p0)tol) disp(用牛顿法求得方程的根p=) disp(p) disp(牛顿迭代次数为:) disp(i) break; end p0=p
3、;endif i=n0&(abs(p-p0)tol) disp(n0) disp(次牛顿迭代后没有求出方程的根)end3、%使用割线法找到方程 600 x4 -550 x3 +200 x2 -20 x -1 =0 在区间0.1,1上的根,%误差限为 e=10-4 disp(割线法)p0=0.2;p1=0.25;q0=600*(p0.4)-550*(p0.3)+200*(p0.2)-20*p0-1;q1=600*(p1.4)-550*(p1.3)+200*(p1.2)-20*p1-1;for i=2:n0 p=p1-q1*(p1-p0)/(q1-q0); if abs(p-p1)tol disp
4、(用割线法求得方程的根p=) disp(p) disp(割线法迭代次数为:) disp(i) break; end p0=p1; q0=q1; pp=p1; p1=p; q1=600*(p.4)-550*(p.3)+200*(p.2)-20*p-1;endif i=n0&(abs(p-pp)tol) disp(n0) disp(次割线法迭代后没有求出方程的根)end4、%使用试位法找到方程 600 x4 -550 x3 +200 x2 -20 x -1 =0 在区间0.1,1上的根,%误差限为 e=10-4 disp(试位法)p0=0.2;p1=0.25;q0=600*(p0.4)-550*(
5、p0.3)+200*(p0.2)-20*p0-1;q1=600*(p1.4)-550*(p1.3)+200*(p1.2)-20*p1-1;for i=2:n0 p=p1-q1*(p1-p0)/(q1-q0); if abs(p-p1)tol disp(用试位法求得方程的根p=) disp(p) disp(试位法迭代次数为:) disp(i) break; end q=600*(p.4)-550*(p.3)+200*(p.2)-20*p-1; if q*q10 p0=p1; q0=q1; end pp=p1; p1=p; q1=q;endif i=n0&(abs(p-pp)tol) disp(n
6、0) disp(次试位法迭代后没有求出方程的根)end5、%使用muller方法找到方程 600 x4 -550 x3 +200 x2 -20 x -1 =0 在区间0.1,1上的根,%误差限为 e=10-4 disp(muller法)x0=0.1;x1=0.2;x2=0.25;h1=x1-x0;h2=x2-x1;d1=(600*(x1.4)-550*(x1.3)+200*(x1.2)-20*x1-1)-(600*(x0.4)-550*(x0.3)+200*(x0.2)-20*x0-1)/h1;d2=(600*(x2.4)-550*(x2.3)+200*(x2.2)-20*x2-1)-(600
7、*(x1.4)-550*(x1.3)+200*(x1.2)-20*x1-1)/h2;d=(d2-d1)/(h2+h1);for i=3:n0 b=d2+h2*d; D=(b*b-4*(600*(x2.4)-550*(x2.3)+200*(x2.2)-20*x2-1)*d)0.5; if(abs(d-D)abs(d+D) E=b+D; else E=b-D; end h=-2*(600*(x2.4)-550*(x2.3)+200*(x2.2)-20*x2-1)/E; p=x2+h; if abs(h)tol disp(用muller方法求得方程的根p=) disp(p) disp(muller方
8、法迭代次数为:) disp(i) break; end x0=x1; x1=x2; x2=p; h1=x1-x0; h2=x2-x1; d1=(600*(x1.4)-550*(x1.3)+200*(x1.2)-20*x1-1)-(600*(x0.4)-550*(x0.3)+200*(x0.2)-20*x0-1)/h1; d2=(600*(x2.4)-550*(x2.3)+200*(x2.2)-20*x2-1)-(600*(x1.4)-550*(x1.3)+200*(x1.2)-20*x1-1)/h2; d=(d2-d1)/(h2+h1);endif i=n0%条件有待商榷?! disp(n0) disp(次muller方法迭代后没有求出方程的根)end专心-专注-专业