以矩阵的方式求解多元一次方程组的最小值问题 用编程的方法
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/21 00:16:35
以矩阵的方式求解多元一次方程组的最小值问题 用编程的方法
目标函数F=min:1.5X11+0.7X12+1.6X13+0.85y1+
0.8X21+1.5X22+2.2X23+1.00y2+
1.2X31+2.3X32+1.1X33+0.90y3
约束函数:(1):X11+X12+X13==1.5
Xij>=0,i=1,2,3 j=1,2,3
yj=0或1,j=1,2,3
求:yj中哪两者为1,另外一个为0时,函数可以取得最小值
求一个程序解决之.任何语言都行.
目标函数F=min:1.5X11+0.7X12+1.6X13+0.85y1+
0.8X21+1.5X22+2.2X23+1.00y2+
1.2X31+2.3X32+1.1X33+0.90y3
约束函数:(1):X11+X12+X13==1.5
Xij>=0,i=1,2,3 j=1,2,3
yj=0或1,j=1,2,3
求:yj中哪两者为1,另外一个为0时,函数可以取得最小值
求一个程序解决之.任何语言都行.
用Matlab!
可以调用 fmincon函数.
具体代码如下.
function y = fmin(x )
x11=x(1);x12=x(2);x13=x(3);y1=x(4);x21=x(5);x22=x(6);x23=x(7);y2=x(8);x31=x(9);x32=x(10);x33=x(11);y3=x(12);
y=1.5.*x11+0.7.*x12+1.6.*x13+0.85.*y1+0.8.*x21+1.5.*x22+2.2.*x23+1.00.*y2+1.2.*x31+2.3.*x32+1.1.*x33+0.90.*y3;
end %创建最小值函数
function [c ceq] = mycon( x )
c=0;
ceq(1)=x(4).*(x(4)-1);
ceq(2)=x(8).*(x(8)-1);
ceq(3)=x(12).*(x(12)-1);
end %创建非线性约束条件函数.
>> A=[1 1 1 -1.7 0 0 0 0 0 0 0 0;0 0 0 0 1 1 1 -2.9 0 0 0 0;0 0 0 0 0 0 0 0 1 1 1 -2.1;-1 -1 -1 0 0 0 0 0 0 0 0 0;0 0 0 0 -1 -1 -1 0 0 0 0 0;0 0 0 0 0 0 0 0 -1 -1 -1 0];
b=[0;0;0;-1.2;-0.8;-1.5]
>> lb=zeros(1,12);
>> x0=zeros(1,12);
>> fmincon('fmin',x0,A,b,[],[],lb)
结果如下.ans =
0.2056 0.2056 0.2056 0 0.0722 0.0722 0.0722 0 0.3056
0.3056 0.3056 0
顺序是 x11,x12,x13,y1,x21,x22,.y3
>> fmin(ans)
ans =
2.5119
可能有点晚了.不过还是希望能够帮助你.
^.^
可以调用 fmincon函数.
具体代码如下.
function y = fmin(x )
x11=x(1);x12=x(2);x13=x(3);y1=x(4);x21=x(5);x22=x(6);x23=x(7);y2=x(8);x31=x(9);x32=x(10);x33=x(11);y3=x(12);
y=1.5.*x11+0.7.*x12+1.6.*x13+0.85.*y1+0.8.*x21+1.5.*x22+2.2.*x23+1.00.*y2+1.2.*x31+2.3.*x32+1.1.*x33+0.90.*y3;
end %创建最小值函数
function [c ceq] = mycon( x )
c=0;
ceq(1)=x(4).*(x(4)-1);
ceq(2)=x(8).*(x(8)-1);
ceq(3)=x(12).*(x(12)-1);
end %创建非线性约束条件函数.
>> A=[1 1 1 -1.7 0 0 0 0 0 0 0 0;0 0 0 0 1 1 1 -2.9 0 0 0 0;0 0 0 0 0 0 0 0 1 1 1 -2.1;-1 -1 -1 0 0 0 0 0 0 0 0 0;0 0 0 0 -1 -1 -1 0 0 0 0 0;0 0 0 0 0 0 0 0 -1 -1 -1 0];
b=[0;0;0;-1.2;-0.8;-1.5]
>> lb=zeros(1,12);
>> x0=zeros(1,12);
>> fmincon('fmin',x0,A,b,[],[],lb)
结果如下.ans =
0.2056 0.2056 0.2056 0 0.0722 0.0722 0.0722 0 0.3056
0.3056 0.3056 0
顺序是 x11,x12,x13,y1,x21,x22,.y3
>> fmin(ans)
ans =
2.5119
可能有点晚了.不过还是希望能够帮助你.
^.^
用matlab编程求解矩阵的最大值问题,有约束条件.
多元一次方程组是否有解的问题!
关于matlab解多元一次方程组的问题
请问谁知道用matlab求解多元超越方程组的方法或思路或函数不?
多元函数求极值问题求解上述联立方程组的方法,坑爹的答案居然省略了.这种二元高次的方程组怎么解啊
java编程的矩阵变换问题
Matlab利用矩阵运算解方程组的编程
方程的求根公式二元一次方程组的求根公式?多元一次方程组的求根公式?多元二次方程组的求根公式?以上问题如果您会其中一个或多
求matlab编程求解贝塔的最大最小值
数学二元一次方程组的应用题、求解
求解一道二元一次方程组的题目
matlab解多元方程组时解的顺序问题