matlab 罚函数法解决非线性规…

罚函数法 
    利用罚函数法,可将非线性规划问题的求解,转化为求解一系列无约束极值问题,因而也称这种方法为序列无约束最小化技术,简记为 SUMT (Sequential Unconstrained Minization Technique)。 
    罚函数法求解非线性规划问题的思想是,利用问题中的约束函数作出适当的罚函数,由此构造出带参数的增广目标函数,把问题转化为无约束非线性规划问题。主要有两种形式,一种叫外罚函数法,另一种叫内罚函数法,下面介绍外罚函数法。 
考虑问题: 
matlab <wbr>罚函数法解决非线性规划问题 <wbr>fminunc函数

取一个充分大的数M>0,构造函数
matlab <wbr>罚函数法解决非线性规划问题 <wbr>fminunc函数

增广目标函数P(x,M)为目标函数的无约束极值问题 min P(x,M)的最优解x 也是原问题的最优解。 


例   求下列非线性规划 

matlab <wbr>罚函数法解决非线性规划问题 <wbr>fminunc函数

解   (i) 编写 M 文件 test.m  
function   g=test(x); 
%M为足够大的数
M=50000;
%f为目标函数
f=x(1)^2+x(2)^2+8; 
%把约束条件写成标准形式
g=f-M*min(x(1),0)-M*min(x(2),0)-M*min(x(1)^2-x(2),0)+  M*abs(-x(1)-x(2)^2+2);

  (ii) 在Matlab 命令窗口输入 
[x,y]=fminunc('test',rand(2,1)) 
即可求得问题的解。 


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值