【会用matlab的进】用matlab求解一个线性方程组的解

2024-12-01 04:14:34
推荐回答(1个)
回答1:

这个问题需要转化才能解,令
ui=(xi+|xi|)/2
vi=(|xi|-xi)/2
则有xi=ui-vi,|xi|=ui+vi,

ui>=0,vi>=0
原问题就变成
minz=u1+v1+2u2+2v2+3u3+3v3+4u4+4v4
s.t. u1-v1-u2+v2-u3+v3+u4-v4=0;
u1-v1-u2+v2+u3-v3-3u4+3v4=1;
u1-v1-u2+v2-2u3+2v3+3u4-3v4=-1/2;
ui>0,vi>0,i=1,2,3,4;
编写MATLAB程序
z=[1 1 2 2 3 3 4 4];
A=eye(8);
b=zeros(8,1);
Aeq=[1 -1 -1 1 -1 1 1 -1
1 -1 -1 1 1 -1 -3 3
1 -1 -1 1 -2 2 3 -3];
beq=[0
1
-1/2];
lb=[];
ub=[];
[x y]=linprog(z,-A,-b,Aeq,beq,lb,ub)

x =

0.2500
0.0000
0.0000
0.0000
-0.0000
0.0000
-0.0000
0.2500

y =

1.2500
也就是
x=0.25

0
0
-0.25