MATLAB -非线性规划问题

非线性规划问题,可以根据是否有约束条件,可以分成无约束问题和约束优化问题;

比如前面给出的例子1就是无约束非线性规划问题,而例子2是一个约束非线性规划问题。

无约束优化问题标准形式 :

Min f(x)

① 首先建立一个函数M文件,如fun.m

②调用格式:

[x, fval] = fminunc(‘fun’, x0, options)

约束优化问题标准格式:

Min f(x)

s.t. G1(x) ≤0, G2(x)=0, (非线性约束)

Ax ≤b, Aeq.x=beq, (线性约束)

Lb ≤x ≤Ub

调用格式:

[x,fval]=fmincon(@fun,x0,A,b,Aeq,beq,Lb,Ub,@con)

例题:电路板设计问题

就是将电路元件选择适当位置并通过导线进行连接。

确定三个模块的位置,满足下列要求的情况下使得总连线最短。

(1)满足如图的连接关系;

(2)所有元件完全位于电路板之内;

(3)三个元件为圆柱形,半径分别为0.2,0.1和0.1;

(4)元件1和元件3要求距离等于0.5。

决策变量:令(x i, yi)(i =1, 2,3)为三个元件的中心的横纵坐标。

目标函数:总距离(六条连线长度之和)最小


%目标函数M文件
function y=fcon(x)
 
y=((x(1)+1)^2+x(4)^2)^0.5+((x(1)-x(2))^2+(x(4)-x(5))^2)^0.5+((x(2)-0.5)^2+(x(5)-1)^2)^0.5+((x(1)-x(3))^2+(x(4)-x(6))^2)^0.5+(x(3)^2+(x(6)+1)^2)^0.5+((x(3)-1)^2+(x(6)-0.5)^2)^0.5;
%约束条件的函数M文件
 
function [c,ceq]=ccon(x)
c=[0.09-(x(1)-x(2))^2-(x(4)-x(5))^2;0.09-(x(1)-x(3))^2-(x(4)-x(6))^2;0.04-(x(2)-x(3))^2-(x(5)- x(6))^2];
ceq=[(x(1)-x(3))^2+(x(4)-x(6))^2-0.25];
 
x0=[0.5;0.2;0.1;-0.5;0.2;0.8];
Ub= [0.8;0.9;0.9;0.8;0.9;0.9]; 
Lb=-Ub;
options=optimset('display', 'iter') [x,fval]=fmincon(@fcon,x0,[],[],[],[],Lb, Ub,@ccon,options)

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值