本文主要是介绍川川数模-D3-非线性规划(1),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
非线性规划数学模型
非线性规划函数
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)^2x(1)+x(2)^2+x(3)^3-20]; %非线性不等式约束
ceq=[-x(1)-x(2)^2+2x(2)+2*x(3)^2-3]; %非线性等式约束
end
实验结果
x =0.55221.20330.9478
y =10.6511
注意将不等号的符号转变为 ≤ \displaystyle \ \leq ≤再进行
其他
optimset
创建或修改优化选项结构
LargeScale – 当设为’on’时使用大型算法,若设为’off’则使用中型问题的算法。
optimset用法
nonlcon用法
这篇关于川川数模-D3-非线性规划(1)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!