川川数模-D3-非线性规划(1)

该博客介绍了如何在MATLAB中使用fmincon函数解决非线性规划问题。通过两个实例,展示了线性约束和非线性约束条件下的优化过程。第一个例子涉及线性条件约束,而第二个例子则包含非线性不等式和等式约束。实验结果展示了求解的最优解和目标函数值。
摘要由CSDN通过智能技术生成

非线性规划数学模型
非线性规划数学模型
非线性规划函数

x = fmincon(fun,x0,A,b) 从 x0 开始,尝试在满足线性不等式 A*x ≤ b 的情况下寻找 fun 中所述的函数的最小值点 x。x0 可以是标量、向量或矩阵。
x = fmincon(fun,x0,A,b,Aeq,beq) 在满足线性等式 Aeq*x = beq 以及不等式 A*x ≤ b 的情况下最小化 fun。如果不存在不等式,则设置 A = [] 和 b = []。
x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub) 对 x 中的设计变量定义一组下界和上界,使解始终在 lb ≤ x ≤ ub 范围内。如果不存在等式,请设置 Aeq = [] 和 beq = []。如果 x(i) 无下界,请设置 lb(i) = -Inf,如果 x(i) 无上界,请设置 ub(i) = Inf。
x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options) 使用 options 所指定的优化选项执行最小化。使用 optimoptions 可设置这些选项。如果没有非线性不等式或等式约束,请设置 nonlcon = []。
%(非线性会用nonlcon)

题目1

线性条件约束
线性条件约束
实验说明及源代码

clc
clear all
fun = @(x)100*(x(2)-x(1)^2)^2 + (1-x(1))^2;

x0 = [1,1];%初始点设置自行不同
A = [1,-2];
b = 1;
Aeq = [2,1];
beq = 1;
[x,y] = fmincon(fun,x0,A,b,Aeq,beq)

实验结果

x =
    0.4149    0.1701
y =
    0.3427

题目2
非线性条件约束
min f (x) = x12 + x22 + x32 + 8
x12 − x2 + x3 2 ≥ 0
x1 + x22 + x3 3 ≤ 20
−x1 − x22 + 2 = 0
x2 + 2x32 = 3
x1,x2,x3 ≥ 0

实验说明及源代码

clc
clear all
fun1=@(x)sum(x.^2)+8;
[x,y] = fmincon(fun1,rand(3,1),[],[],[],[],zeros(3,1),[], @fun2)

function [c,ceq]=fun2(x)
c=[-x(1)^2+x(2)-x(3)^2
    x(1)+x(2)^2+x(3)^3-20];  %非线性不等式约束
ceq=[-x(1)-x(2)^2+2
   x(2)+2*x(3)^2-3]; %非线性等式约束
end

实验结果

x =
    0.5522
    1.2033
    0.9478
y =
   10.6511

注意将不等号的符号转变为   ≤ \displaystyle \ \leq  再进行
其他
optimset
创建或修改优化选项结构
LargeScale – 当设为’on’时使用大型算法,若设为’off’则使用中型问题的算法。
optimset用法
nonlcon用法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值