![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
Matlab有约束的多元函数的最小值!!
在约束条件中,出现等式,怎样计算?比如说,有X1+X2+X3=50,还有一些不等式,用fmincon或是linprog函数怎么求解,在线等待,谢谢!有多个等式,怎样作呢?...
在约束条件中,出现等式,怎样计算?比如说,有X1+X2+X3=50,还有一些不等式,用fmincon或是linprog函数怎么求解,在线等待,谢谢!
有多个等式,怎样作呢? 展开
有多个等式,怎样作呢? 展开
展开全部
求最小值: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
约束:
等式: 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
展开全部
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
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询