【Matlab】基于问题求解有约束非线性优化

基于问题求解有约束非线性优化

        此示例说明如何通过使用基于问题的方法寻找具有非线性约束的非线性目标函数的最小值。

        要使用基于问题的方法找到非线性目标函数最小值,请首先将目标函数编写为文件或匿名函数。此示例的目标函数是

f(x,y)=ex(4x2+2y2+4xy+2y−1).

%% 创建优化问题变量 x 和 y。
x = optimvar('x');
y = optimvar('y');

%% 使用优化变量的表达式创建目标函数。
obj = objfunx(x,y);

%% 创建一个以 obj 为目标函数的优化问题。
prob = optimproblem('Objective',obj);

%% 不等式约束:非线性约束:
% 创建一个使解位于倾斜椭圆中的非线性约束
% 使用优化变量的不等式表达式创建约束。
TiltEllipse = x.*y/2 + (x+2).^2 + (y-2).^2/2 <= 2;
% 在问题中包含该约束。
prob.Constraints.constr = TiltEllipse;

%% 初始点:
% 创建一个结构体,将初始点表示为 x = –3、y = 3。
x0.x = -3;
x0.y = 3;

%% 检查此问题。(模型完整)
disp('显示问题:')
show(prob)

function f = objfunx(x,y)
f = exp(x).*(4*x.^2 + 2*y.^2 + 4*x.*y + 2*y - 1);
end
显示问题:

  OptimizationProblem : 

	Solve for:
       x, y

	minimize :
       (exp(x) .* (((((4 .* x.^2) + (2 .* y.^2)) + ((4 .* x) .* y)) + (2 .* y)) - 1))


	subject to constr:
       ((((x .* y) ./ 2) + (x + 2).^2) + ((y - 2).^2 ./ 2)) <= 2
%% 创建优化问题变量 x 和 y。
x = optimvar('x');
y = opti
  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

资源存储库

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值