Matlab笔记之三 ---- 非线性方程组求解算法

上传人:飞*** 文档编号:42994330 上传时间:2018-06-04 格式:DOC 页数:5 大小:28KB
返回 下载 相关 举报
Matlab笔记之三 ---- 非线性方程组求解算法_第1页
第1页 / 共5页
Matlab笔记之三 ---- 非线性方程组求解算法_第2页
第2页 / 共5页
Matlab笔记之三 ---- 非线性方程组求解算法_第3页
第3页 / 共5页
Matlab笔记之三 ---- 非线性方程组求解算法_第4页
第4页 / 共5页
Matlab笔记之三 ---- 非线性方程组求解算法_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《Matlab笔记之三 ---- 非线性方程组求解算法》由会员分享,可在线阅读,更多相关《Matlab笔记之三 ---- 非线性方程组求解算法(5页珍藏版)》请在金锄头文库上搜索。

1、求方程根的几种常用方法:搜索法a=0.001; step=3*pi/100000; for i=0:step:8*pix=4*cos(i);y=4*sin(i);z=i;d=abs(x+y+0.5*z-2)/sqrt(1+1+0.25); if d2*step thetai=thetai,i; else %否的话与前一值相加初二thetai(length(thetai)=(thetai(length(thetai)+i)/2end end end end x=4*cos(thetai) y=4*sin(thetai) z=thetai区间二分法:与对分查找法相同1 区间二分法求出的仅仅是方程的

2、一个单根,如果方程有重根或者多个根时,在做区间二分法时就会出现分叉,这样方程有几个根,就会产生几个实数序列,每一个实数序列的极限便是方程的一个根2 通常用区间二分法为一些迭代法提供靠近 x*的初始选代值; 3 区间二分法的缺点是不能求方程的复数根。format longa=5;b=6;x1=a;x2=b; f1=4*cos(x1)+4*sin(x1)+0.5*x1-2; f2=4*cos(x2)+4*sin(x2)+0.5*x2-2; step=0.000001; ii=0; while abs(x1-x2)step ii=ii+1; x3=(x1+x2)/2; f3=4*cos(x3)+4*

3、sin(x3)+0.5*x3-2; if f3=0 if f1*f30,使得对于任意的 x,y=(a,b),都有|g(x)-g(y)|=0.000001x0=x1; x1=x1-(4*(cos(x0)+sin(x0)+0.5*x0-2)/(4*(cos(x0)-sin(x0)+0.5); end f=4*(cos(x1)+sin(x1)+0.5*x1-2)弦截法:单点弦截法:连接两个端点与作弦(a,f(a) 与(b,f(b)作弦,此弦与轴交点的横坐标设为 x1.如果 f(x1)=0,则 x1 即为所求根,否则选取(x1,f(x1)点和点(a,f(a)(该点的选取要满足条件 f(a)与 f(x)

4、同号,并改记为(x0,f(x0)。再做弦此弦与轴交点的横坐标设为 x2,依次类推,其迭代格式即为xk+1=xk-f(xk)*(xk-x0)/(f(xk)-f(x0)双点弦截法:无固定点xk+1=xk-f(xk)*(xk-xk-1)/(f(xk)-f(xk-1)format long nx=; nx(1)=5; nx(2)=nx(1)-(2nx(1)-nx(1)2-1)/(2nx(1)*log(2)-2*nx(1); k=1; while abs(nx(k+1)-nx(k)=10(-6) k=k+1; nx(k+1)=nx(k)-(2nx(k)-nx(k)2-1)/(2nx(k)*log(2)-

5、2*nx(k); end nk=k+1; disp(牛顿迭代法迭代次数:,num2str(nk),blanks(4),方程的解:,num2str(nx(nk)dx=; dx(1)=5; dx(2)=dx(1)-(2dx(1)-dx(1)2-1)/(23-32-1)-(25-52- 1)*(3-5); k=1; while abs(dx(k+1)-dx(k)=10(-6) k=k+1; dx(k+1)=dx(k)-(2dx(k)-dx(k)2-1)/(2dx(k)-dx(k)2-1)-(25-52-1)*( dx(k)-5); end disp(单点迭代法迭代次数:,num2str(k),bla

6、nks(4),方程的解:,num2str(dx(k)sx=; sx(1)=5; sx(2)=3; k=1; while abs(sx(k+1)-sx(k)=0.000001 k=k+1; sx(k+1)=sx(k)-(2sx(k)-sx(k)2-1)/(2sx(k)-sx(k)2-1)-(2sx(k-1)- sx(k-1)2-1)*(sx(k)-sx(k-1); end sk=k+1; disp(双点迭代法迭代次数:,num2str(sk),blanks(4),方程的解:,num2str(sx(sk)x=3:0.05:5; y=2.x-x.2-1; yn=zeros(1,nk); yd=zeros(1,sk); subplot(1,2,1) plot(x,y,sx,yd,*) title(双点弦截法) gtext(y=2x-x2-1) subplot(1,2,2) plot(x,y,nx,yn,*) title(牛顿迭代法) gtext(y=2x-x2-1)

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号