第一范文网 - 专业文章范例文档资料分享平台

MATLAB非线性规划问题

来源:用户分享 时间:2025/9/11 4:53:15 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

一.非线性规划课题

实例1 表面积为36平方米的最大长方体体积。 建立数学模型:

设x、y、z分别为长方体的三个棱长,f为长方体体积。

max f = x y (36-2 x y)/2 (x+y) 实例2 投资决策问题

某公司准备用5000万元用于A、B两个项目的投资,设x1、x2分别表示配给项目A、B的投资。预计项目A、B的年收益分别为20%和16%。同时,投资后总的风险损失将随着总投资和单位投资的增加而增加,已知总的风险损失为2x12+x22+(x1+x2)2.问应如何分配资金,才能使期望的收益最大,同时使风险损失为最小。

建立数学模型:

max f=20x1+16x2-λ[2x12+x22+(x1+x2)2] s.t x1+x2≤5000

x 1≥0,x2≥0

目标函数中的λ≥0是权重系数。

由以上实例去掉实际背景,其目标函数与约束条件至少有一处是非线性的,称其为非线性问题。

非线性规划问题可分为无约束问题和有约束问题。实例1为无约束问题,实例2为

有约束问题。

二.无约束非线性规划问题:

求解无约束最优化问题的方法主要有两类:直接搜索法(Search method)和梯度法(Gradient method),单变量用fminbnd,fminsearch,fminunc;多变量用fminsearch,fminnuc

1.fminunc函数

调用格式: x=fminunc(fun,x0)

x=fminunc(fun,x0,options) x=fminunc(fun,x0,options,P1,P2)

[x,fval]=fminunc(…) [x,fval, exitflag]=fminunc(…) [x,fval, exitflag,output]=fminunc(…) [x,fval, exitflag,output,grad]=fminunc(…) [x,fval, exitflag,output,grad,hessian]=fminunc(…)

说明:fun为需最小化的目标函数,x0为给定的搜索的初始点。options指定优化参数。 返回的x为最优解向量;fval为x处的目标函数值;exitflag描述函数的输出条件;output返回优化信息;grad返回目标函数在x处的梯度。Hessian返回在x处目标函数的Hessian矩阵信息。

例1 : 求 minf?8x?4y?x?3y 程序:通过绘图确定一个初始点:

[x,y]=meshgrid(-10:.5:10); z= 8*x-4*y +x.^2+3*y.^2; surf(x,y,z)

22选初始点:x0=(0,0) x0=[0,0];

[x,fval,exitflag]=fminunc(‘8*x(1)-4*x(2) +x(1)^2+3*x(2)^2‘,x0) 结果:x =

-4.0000 0.6667

fval =

-17.3333

exitflag =

1

22minf?4x?5xy?2y例2:

程序:

取初始点:x0=(1,1) x0=[1,1];

[x,fval,exitflag]=fminunc(‘4*x(1)^2+5*x(1)*x(2)+2*x(2)^2‘,x0)

结果: x =

1.0e-007 * -0.1721 0.1896

fval =

2.7239e-016

exitflag =

1

2. minsearch函数

调用格式: x=fminsearch(fun,x0)

x=fminsearch(fun,x0,options) x=fminsearch(fun,x0,options,P1,P2)

[x,fval]=fminsearch(…) [x,fval, exitflag]=fminsearch(…) [x,fval, exitflag,output]=fminsearch(…) [x,fval, exitflag,output,grad]=fminsearch(…) [x,fval, exitflag,output,grad,hessian]=fminsearch(…)

说明:参数及返回变量同上一函数。对求解二次以上的问题,fminsearch函数比fminunc函数有效。 3. fminbnd函数

调用格式: [x,fval]=fminbnd(fun,x1,x2,options)

x=fminbnd(…)

例5 求min e-x+x2,搜索区间为(0,1) [x,fval]=fminbnd('exp(-x)+x.^2',0,1) x = 0.3517 fval = 0.8272

4. 多元非线性最小二乘问题: 非线线性最小二乘问题的数学模型为:

minf(x)?其中L为常数。

调用格式: x=lsqnonlin(fun,x0)

x=lsqnonlin(fun,x0,lb,ub) x=lsqnonlin(fun,x0,options)

x=lsqnonlin(fun,x0,options,P1,P2)

?f?x?ii?1m2?L[x,resnorm]=lsqnonlin(…)

[x,resnorm, residual,exitflag]=lsqnonlin(…) [x,resnorm, residual , exitflag,output]=lsqnonlin(…) [x,resnorm, residual,exitflag, output,lambda]=lsqnonlin(…)

[x,resnorm, r esidual,exitflag, output,lambda,jacobian]=lsqnonlin(…)

说明:x返回解向量;resnorm返回x处残差的平方范数值:sum(fun(x).^2);residual返回x处的残差值fun(x);lambda返回包含x处拉格朗日乘子的结构参数;jacobian返回解x处的fun函数的雅可比矩阵。

lsqnonlin默认时选择大型优化算法。Lsqnonlin通过将options.LargeScale设置为’off’来作中型优化算法。其采用一维搜索法。

例4.求 minf=4(x2-x1)2+(x2-4)2 ,选择初始点x0(1,1) 程序:

f ='4*(x(2)-x(1))^2+(x(2)-4)^2' [x,reshorm]=lsqnonlin(f,[1,1]) 结果: x =

3.9896 3.9912

reshorm =5.0037e-009

结果 : x =

0.2578 0.2578

resnorm =

124.3622

二. 有约束非线性规划问题:

数学模型: min F(x)

搜索更多关于: MATLAB非线性规划问题 的文档
MATLAB非线性规划问题.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c3q2sb54eun721et5ixox47ty70kclt00520_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top