不同方法求方程的根matlab代码

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1、%使用二分法找到方程600x^4-550x^3+200x^2-20x-1=0在区间[0.1,1]上的根,%误差限为e=10^-4disp('二分法')a=0.2;b=0.26;tol=0.0001;n0=10;fa=600*(a.^4)-550*(a.^3)+200*(a.^2)-20*a-1;fori=1:n0p=(a+b)/2;fp=600*(p.^4)-550*(p.^3)+200*(p.^2)-20*p-1;iffp==0||(abs((b-a)/2)tol)disp('用二分法求得方程的根p=')disp(p)disp('二分迭代次数为:')disp(i)break;endiffa*fp0a=p;elseb=p;endendifi==n0&&~(fp==0||(abs((b-a)/2)tol))disp(n0)disp('次二分迭代后没有求出方程的根')end2、%使用牛顿法找到方程600x^4-550x^3+200x^2-20x-1=0在区间[0.1,1]上的根,%误差限为e=10^-4disp('牛顿法')p0=0.3;fori=1:n0p=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;endp0=p;endifi==n0&&~(abs(p-p0)tol)disp(n0)disp('次牛顿迭代后没有求出方程的根')end3、%使用割线法找到方程600x^4-550x^3+200x^2-20x-1=0在区间[0.1,1]上的根,%误差限为e=10^-4disp('割线法')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;fori=2:n0p=p1-q1*(p1-p0)/(q1-q0);ifabs(p-p1)toldisp('用割线法求得方程的根p=')disp(p)disp('割线法迭代次数为:')disp(i)break;endp0=p1;q0=q1;pp=p1;p1=p;q1=600*(p.^4)-550*(p.^3)+200*(p.^2)-20*p-1;endifi==n0&&~(abs(p-pp)tol)disp(n0)disp('次割线法迭代后没有求出方程的根')end4、%使用试位法找到方程600x^4-550x^3+200x^2-20x-1=0在区间[0.1,1]上的根,%误差限为e=10^-4disp('试位法')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;fori=2:n0p=p1-q1*(p1-p0)/(q1-q0);ifabs(p-p1)toldisp('用试位法求得方程的根p=')disp(p)disp('试位法迭代次数为:')disp(i)break;endq=600*(p.^4)-550*(p.^3)+200*(p.^2)-20*p-1;ifq*q10p0=p1;q0=q1;endpp=p1;p1=p;q1=q;endifi==n0&&~(abs(p-pp)tol)disp(n0)disp('次试位法迭代后没有求出方程的根')end5、%使用muller方法找到方程600x^4-550x^3+200x^2-20x-1=0在区间[0.1,1]上的根,%误差限为e=10^-4disp('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*(x1.^4)-550*(x1.^3)+200*(x1.^2)-20*x1-1))/h2;d=(d2-d1)/(h2+h1);fori=3:n0b=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;elseE=b-D;endh=-2*(600*(x2.^4)-550*(x2.^3)+200*(x2.^2)-20*x2-1)/E;p=x2+h;ifabs(h)toldisp('用muller方法求得方程的根p=')disp(p)disp('muller方法迭代次数为:')disp(i)break;endx0=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);endifi==n0%条件有待商榷?!disp(n0)disp('次muller方法迭代后没有求出方程的根')end

1 / 4
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功