具有符号变量和 rref 的增广矩阵
Augmented matrix with symbolic variables and rref
看看
syms x y z
A=[1 -2 x;2 1 y;-3 1 z]
rref(A)
这是一个增广矩阵,我需要最终输出为
1 0 | (x+2y)/5
0 1 | (y-2x)/5
0 0 | z+x+y
但是 rref()
产生了这个
1 0 0
0 1 0
0 0 1
有什么关于如何获得预期输出的建议吗?
只要将符号变量限制在增广矩阵的右半部分,就可以进行如下操作。假设 [A|B] 是您的增广矩阵。然后,您可以执行以下操作。
M = rref([A, eye(size(A,1))]);
C = M(:,(size(A,2)+1):end) * B;
在这种情况下,C 是将 M 带到其 RREF 的行操作应用于符号矩阵 B 的结果。
这是一个可以产生您最初预期结果的修改。
syms x y z
A=[1 -2;2 1;-3 1];
B=[x;y;z];
[m,n] = size(A);
M = [eye(m),zeros(m,n)];
M(:,1:n) = A;
M(:,(m+1):end) = eye(m,n);
P = M(:,n+1:end);
R = rref(M);
C = R(:,n+1:end)/P*B;
disp(C)
结果:
x/5 + (2*y)/5
y/5 - (2*x)/5
x + y + z
看看
syms x y z
A=[1 -2 x;2 1 y;-3 1 z]
rref(A)
这是一个增广矩阵,我需要最终输出为
1 0 | (x+2y)/5
0 1 | (y-2x)/5
0 0 | z+x+y
但是 rref()
产生了这个
1 0 0
0 1 0
0 0 1
有什么关于如何获得预期输出的建议吗?
只要将符号变量限制在增广矩阵的右半部分,就可以进行如下操作。假设 [A|B] 是您的增广矩阵。然后,您可以执行以下操作。
M = rref([A, eye(size(A,1))]);
C = M(:,(size(A,2)+1):end) * B;
在这种情况下,C 是将 M 带到其 RREF 的行操作应用于符号矩阵 B 的结果。
这是一个可以产生您最初预期结果的修改。
syms x y z
A=[1 -2;2 1;-3 1];
B=[x;y;z];
[m,n] = size(A);
M = [eye(m),zeros(m,n)];
M(:,1:n) = A;
M(:,(m+1):end) = eye(m,n);
P = M(:,n+1:end);
R = rref(M);
C = R(:,n+1:end)/P*B;
disp(C)
结果:
x/5 + (2*y)/5
y/5 - (2*x)/5
x + y + z