matlab求解约束条件下的最值

1 题目

在这里插入图片描述

2 求解

在这里插入图片描述
把 w1, w2 看做 x的一部分。

function y= findOpt(x)
    y = fmincon(@(x) fminx(x),[0,0,0,0,0],[],[],[],[],[-inf,-inf,-inf,0,0],[inf,inf,inf,100,100] ,@(x) fcontr(x))
end

function f = fminx(x)
    f = (x(1)-0.5).^2 + (x(2)-0.5).^2 + (x(3)-0.5).^2;
end

function [c, ceq] = fcontr(x)
    w1 = x(4)
    w2 = x(5)
    c(1) = sin(w1*x(1)).*cos(w1*x(2))-1/1000*(w1-50).^2-sin(w1*x(3))-x(3)-1
    c(2) = sin(w2*x(2)).*cos(w2*x(1))-1/1000*(w2-50).^2-sin(w2*x(3))-x(3)-1
    ceq = 0
end

上面函数保存 findOpt.m,然后运行 findOpt([0,0,0,0,0]).


参考:

  1. matlab csdn;
发布了510 篇原创文章 · 获赞 152 · 访问量 77万+

猜你喜欢

转载自blog.csdn.net/rosefun96/article/details/105458308