![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
Matlab有约束的多元函数的最小值!!
在约束条件中,出现等式,怎样计算?比如说,有X1+X2+X3=50,还有一些不等式,用fmincon或是linprog函数怎么求解,在线等待,谢谢!有多个等式,怎样作呢?...
在约束条件中,出现等式,怎样计算?比如说,有X1+X2+X3=50,还有一些不等式,用fmincon或是linprog函数怎么求解,在线等待,谢谢!
有多个等式,怎样作呢? 展开
有多个等式,怎样作呢? 展开
2个回答
展开全部
求最小值: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
![](https://ecmc.bdimg.com/public03/b4cb859ca634443212c22993b0c87088.png)
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
展开全部
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询