Matlab方程求解与优化问题

Matlab方程求解与优化问题

ID:41057739

大小:416.01 KB

页数:20页

时间:2019-08-15

Matlab方程求解与优化问题_第1页
Matlab方程求解与优化问题_第2页
Matlab方程求解与优化问题_第3页
Matlab方程求解与优化问题_第4页
Matlab方程求解与优化问题_第5页
资源描述:

《Matlab方程求解与优化问题》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第6讲Matlab方程求解与优化问题6.1方程求解6.2无约束优化问题6.3有约束优化问题6.4线性规划问题1/206.1方程数值求解6.1.1单变量非线性方程求解在Matlab中提供了一个fzero函数,可以用来求单变量非线性方程的根。该函数的调用格式为:z=fzero('filename',x0)其中,filename是待求根的函数文件名,x0为搜索的起点。一个函数可能有多个根,但fzero函数只给出距离x0最近的那个根。2/20例6-1求f(x)=x-10x+2=0在x0=0.5附近的根。步骤如下

2、:(1)建立函数文件funx.m.functionfx=funx(x)fx=x-10.^x+2;(2)调用fzero函数求根。z=fzero('funx',0.5)z=0.3758Ex:求方程在附近的根。3/206.1.2非线性方程组的求解对于非线性方程组F(X)=0,用fsolve函数求其数值解。fsolve函数的调用格式为:x=fsolve('filename',x0,option)其中x为返回的解,filename是用于定义需求解的非线性方程组的函数文件名,x0是求根过程的初值,option为设定

3、的最优化工具箱的选项。最优化工具箱提供了20多个优化参数选项,用户可以使用optimset命令将它们显示出来。如果想改变其中某个选项,则可以调用optimset()函数来完成。例如,‘Display’选项决定函数调用时中间结果的显示方式,其中‘off’为不显示,‘iter’表示每步都显示,‘final’只显示最终结果。optimset(‘Display’,‘off’)将设定Display选项为‘off’.4/20例6-2求下列非线性方程组在(0.5,0.5)附近的数值解。(1)建立函数文件myfun.m

4、.functionq=myfun(p)x=p(1);y=p(2);q(1)=x-0.6*sin(x)-0.3*cos(y);q(2)=y-0.6*cos(x)+0.3*sin(y);(2)在给定的初值x0=0.5,y0=0.5下,调用fsolve函数求方程的根。x=fsolve('myfun',[0.5,0.5],optimset('Display','off'))5/20x=0.63540.3734将求得的解代回原方程,可以检验结果是否正确,命令如下:q=myfun(x)q=1.0e-009*0.23

5、750.2957可见得到了较高精度的结果。6/206.2无约束最优化问题求解6.2.1非线性一元函数的最小值Matlab命令为fminbnd,其调用格式为X=fminbnd(fun,x1,x2)[X,fval,exitflag,output]=fminbnd(fun,x1,x2)其中,fun为目标函数,x1,x2为变量的边界约束,即x1≤x≤x2,x为最小值点,fval为最小值。exitflag返回算法的终止标志,exitflag>0表示计算收敛,exitflag=0表示超过了最大的迭代次数,exitf

6、lag<0表示计算不收敛。output返回优化算法信息的一个数据结构,其中包含三个分量:iterations:优化过程中迭代次数,funcCount:代入函数值的次数;algorithm:优化所采用的算法。7/20例6-3求f(x)=x3-2x-5在[0,5]内的最小值点与最大值点。(1)建立函数文件mymin.mfunctionfx=mymin(x)fx=x.^3-2*x-5;(2)调用fmin函数求最小值点与最大值点。xmin=fminbnd('mymin',0,5)xmin=0.81658/20例

7、6-4求函数f(x)在区间[-2,2]上的最小值和相应的x值。解:Matlab程序为fun='(x^5+x^3+x^2-1)/(exp(x^2)+sin(-x))'ezplot(fun,[-2,2])%绘图[X,fval,exitflag,output]=fminbnd(fun,-2,2)X=0.2176fval=-1.1312exitflag=1output=iterations:12funcCount:13algorithm:'goldensectionsearch,parabolicinterpo

8、lation'message:[1x112char]9/206.2.2非线性多元函数的最小值Matlab提供了两个命令:fminsearch,fminunc,前者适合处理阶次低但是间断点多的函数,后者则对于高阶连续函数比较有效。fminsearch的调用格式为:x=fminsearch(fun,x0)[x,fval,exitflag,output]=fminsearch(fun,x0,options)该命令可求解目标函数fun的极小值点x和

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。