资源描述:
《实验6_非线性方程求解》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、非线性方程求解2010011811毕啸天实验6非线性方程求解化学工程系分0毕啸天2010011811【实验目的】1.掌握用MATLAB软件求解非线性方程和方程组的基本用法,并对结果作初步分析。2.练习用非线性方程和方程组建立实际问题的模型并进行求解。【实验内容】题目1分别用fzero和fsolve程序求方程sinx-x22=0的所有根,准确到10-10,取不同的初值计算,输出初值、根的近似值和迭代次数,分析不同根的收敛域;自己构造某个迭代公式(如x=(2sinx)1/2等)用迭代法求解,并自己编写牛顿法的程序进行求解和比较。1.1模型分析fzero命令主要
2、用于单变量方程的求根,主要采用二分法、割线法和逆二次插值法等的混合方法。fzero至少需要两个输入参数:函数、迭代初值(或有根区间)。fsolve命令主要用于非线性方程组的求解,可以输出结果(如x点对应的雅可比矩阵等)。本题可先作出该方程两边所代表的函数的图像。可以看出,y=sinx是一个周期性有界函数,而二次函数在对称轴两边增长无界。我们可以直接观察出x=0是方程的解,再从图上可以观察到在1到2之间有一个根。而由两函数性质,在[0,2]之外,二次函数增长,而三角函数波动,再也不会有交点。从而可知此方程只有两解。1.2求根程序代码1.2.1用fzero求解
3、x=-4:0.1:4;y1=sin(x);y2=x.^2/2;plot(x,y1,x,y2);%先作出函数图像,大致观察出解的数目与分布opt=optimset('fzero');opt=optimset(opt,'tolx',1e-10);[x,fv,ef,out]=fzero(inline('sin(x)-x^2/2'),[1,2],opt)[x,fv,ef,out]=fzero(inline('sin(x)-x^2/2'),[-1,1],opt)输出结果如下:x=1.40441482402454fv=8.41122727024413e-011ef=1
4、13非线性方程求解2010011811毕啸天out=intervaliterations:0iterations:7funcCount:9algorithm:'bisection,interpolation'message:[1x33char]另一根为:x=1.74713912083679e-011fv=1.74713912082153e-011从而可知,方程一根为x=1.4404,另一根即为x=0。1.2.2用fslove求解functiony=April(x)y=sin(x)-x^2/2;end[x,fv,ef,out]=fsolve(@April,1
5、,opt)[x,fv,ef,out]=fsolve(@April,0,opt)输出结果如下:x=1.40441482411066fv=-2.25777174733821e-011ef=1out=iterations:6funcCount:13algorithm:'trust-region-dogleg'firstorderopt:2.79692747209721e-011message:[1x695char]jac=-1.23879992536652另一根为:x=0fv=0ef=1out=iterations:0funcCount:213非线性方程求解20
6、10011811毕啸天algorithm:'trust-region-dogleg'firstorderopt:0message:[1x756char]1.3不同初值给出的结果1.3.1变化fzero的初值fzero主要是利用二分法、割线法等的混合来求解,因此x的初值对其计算出数值解是有影响的。下面的列表给出了不同x的初值,fzero函数输出的不同结果。x初值根的近似值迭代次数函数调用次数-25.824116516731E-13831-1.58.278977421518E-12731-1-8.948271056829E-11630-0.5-1.904088
7、574048E-1563000010.51.619924113706E-1673111.404414824090276251.51.4044148240919851321.404414824092435212.51.4044148240924352331.404414824092428283.51.404414824059396261.3.2变化fsolve的初值x初值根的近似值迭代次数函数调用次数-2-2.6071879498599e-010512-1.5-1.04384412156096e-012512-1-2.6071879498599e-01041
8、0-0.5-1.0438441213492e-0124100002