Matlab有约束的多元函数的最小值!!

在约束条件中,出现等式,怎样计算?比如说,有X1+X2+X3=50,还有一些不等式,用fmincon或是linprog函数怎么求解,在线等待,谢谢!有多个等式,怎样作呢?... 在约束条件中,出现等式,怎样计算?比如说,有X1+X2+X3=50,还有一些不等式,用fmincon或是linprog函数怎么求解,在线等待,谢谢!
有多个等式,怎样作呢?
展开
 我来答
袁怡圃
推荐于2018-03-08 · TA获得超过950个赞
知道小有建树答主
回答量:184
采纳率:0%
帮助的人:0
展开全部
求最小值:f = 0.2*x^2+0.2*y^2+0.2*z^2+310*x+305*y+300*z-1000
约束:
等式: x+y+z = 60
x+2*z = 30
不等式:x-2y <= 8
y+z >=0
x+z >=0
%[x,fval] = fmincon(fun,x0,A,B,Aeq,Beq)
%x 所求的自变量
%fval 满足条件的函数最小值
%fun:函数
%x0:初值,自己取
%A,B不等式条件Ax<=B,写出矩阵乘法形式
%Aeq,Beq等式约束 Aeq x = B,写成矩阵形式

x0 = [1 2 3];
fun = @(x) 0.2*x(1)^2+0.2*x(2)^2+0.2*x(3)^2+310*x(1)+305*x(2)+300*x(3)-1000
A = [1,-2,0;0 -1 -1;-1 0 -1];
B = [8;0;0];
Aeq = [1,1,1;1 0 2];
Beq = [60;30];
[x,fval] = fmincon(fun,x0,A,B,Aeq,Beq)

运行结果
x =

7.5000 41.2500 11.2500

fval =

1.7658e+004
韧劲9
推荐于2016-10-02 · TA获得超过9224个赞
知道小有建树答主
回答量:1638
采纳率:92%
帮助的人:353万
展开全部
clear all;
close all;
warning off all;
[X fval]= fmincon('2*pi*x(1)*x(2)+4*pi*x(1)^2',[1 1],[-1 0],-1,[],[],[],[],'myfunc');
x = X(1)
y = X(2)
fval

%%另外新建一个m文件,将下列代码放入
function [ce ceq] = myfunc(x)
ce = [];
ceq = pi*x(1)^2*x(2)-350;
return
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式