资源描述:
《数学建模Matlab优化工具箱.ppt》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、MATLAB的优化工具箱1.非线性方程(组)求解命令:fzero、fsolve2.求函数极值(无约束问题)命令:fmin、fmins、fminu3.求解线性规划问题命令:lp4.求解非线性规划问题命令:constrfzero命令用于求一元函数f(x)的零点.使用格式1:fzero(‘f’,x0)x0为零点猜测值例:fzero(‘sin’,3),计算结果ans=3.1416例:求函数零点functiony=f2(x)y=1./((x-.3).^2+.01)+1./((x-.9).^2+.04)-6;在MATL
2、AB命令窗口中输入命令:fplot('f2',[-1,2])grid观察图形窗口中图形可知,函数有两个零点,第一个零点在-0.5到0之间,第二个在1到1.5之间.用求函数零点命令时必须给出零点猜测值.输入命令:x1=fzero('f2',.5),x2=fzero('f2',1)得计算结果:x1=-0.1316,x2=1.2995holdonplot(x1,f2(x1),'or',x2,f2(x2),'or')用绘图命令描零点位置:使用格式2:fzero(‘f’,[x0x1])[x0x1]为隔根区间例fzer
3、o('sin',[2,3])MATLAB将显示出错信息:错误使用fzero,函数值在区间端点处必须异号.fzero('sin',[2,4])得正确计算结果:ans=3.1416例fzero('f2',[1,1.5])得计算结果:ans=1.2995函数文件f2定义了函数:fsolve命令用于求解非线性方程组f(x)=0,这里,f和x都是向量或矩阵使用格式:fsolve(‘f’,x0)x0为解的猜测值例求解方程组functionq=xyz(p)x=p(1);y=p(2);z=p(3);q(1)=sin(x)+
4、y.^2+log(z)-7;q(2)=3*x+2^y-z^3+1;q(3)=x+y+z-5;x0=[111];fsolve('xyz',x0)计算结果:ans=0.5991,2.3959,2.0050一个完整的命令格式可得更多信息x0=[111];%给出初始值(猜测值)options=[];%置参数向量为默认值[x,options]=fsolve('xyz',x0,options);计算结果:x=0.59912.39592.0050向量options共存放了18个参数.常用的有:options(8)——计算
5、结束时的目标函数值;options(10)—计算结束时目标函数计算总次数上例中键入options(8)得ans=6.1429e-018键入options(10)得ans=34fmin命令用于求一元函数极小点使用格式:fmin(‘f’,x1,x2)例如:fmin(‘cos’,3,4)将得到ans=3.1416这是介于3和4之间的函数cosx的最小值点例.求函数f(x)=2e-xsinx的极大和极小值点functiony=f3(x)y=2*exp(-x).*sin(x);fplot('f3',[0,8])gri
6、dfunctiony=f4(x)y=-2*exp(-x).*sin(x);用绘图命令绘图观察最大值点和最小值点所在位置由图可知,函数有一最小值点介于3到4之间,有一最大值点介于0到1之间.用函数文件f3.m求最小值点;用f4.m求最大值点xmin=fmin(‘f3’,3,5)计算结果:xmin=3.9270xmax=fmin(‘f4’,0,1)计算结果:xmax=0.7854在原有函数图形上添加两个极值点:holdonplot(xmin,f3(xmin),'or‘,xmax,f3(xmax),'or')fm
7、ins命令用于求多元函数极小值点命令使用格式为:fmins(‘f’,x0)f是目标函数文件名,x0是极小值点的猜测值例.求函数的极小值x=-2:.125:2;y=-1:.25:3;[x,y]=meshgrid(x,y);z=100*(y-x.*x).^2+(1-x).^2;mesh(x,y,z)functionz=f5(p)x=p(1);y=p(2);z=100*(y-x.^2).^2+(1-x).^2;绘二元函数图形,观察极小值点输入命令:x0=[01];x=fmins('f5',x0)x0=[01];o
8、ptions=[];[x,options]=fmins('f5',x0);得计算结果:X=1.00001.0000输入完整命令:键入:options(8)得ans=2.4289e-010键入:options(10)得ans=1928maxz=7x1+12x2s.t.9x1+5x2≤3604x1+5x2≤2003x1+10x2≤300x1≥0,x2≥0lp命令用于求解线性规划问题MATLAB中线性规划问题的标准形式