我正在尝试 Matlab,目前正在尝试求解我编写的一个简单的矩阵方程。这是我的脚本:
syms b1 b2 b3
A = [1 2; 2 1; 3 3];
B = [b1; b2; b3];
X = linsolve(A, B)
输出为
Warning: System is inconsistent.
Solution does not exist.
X =
Inf
Inf
我可能做错了什么?
编辑:
好的,我已经解决了。然而,现在我正在尝试完成其他事情。
这是我输入的内容:
C = [1 2 3 b1; 2 1 6 b2; 3 3 5 b3];
rref(C)
结果是:
[ 1, 0, 0, (3*b3)/4 - b2/12 - (13*b1)/12]
[ 0, 1, 0, (2*b1)/3 - b2/3]
[ 0, 0, 1, b1/4 + b2/4 - b3/4]
但是,我想要创建一个矩阵,使得第三行为 0 = f(b1, b2, b3),也就是说,我希望第三行在左侧和右侧为 0仅涉及 b1、b2 和/或 b3。我该怎么办?我尝试将每个条目都放入变量中,但这似乎不起作用。
这就是输出:
[ 1, 0, 0, (a2*a6*b3 - a3*a5*b3 - a2*a9*b2 + a3*a8*b2 + a5*a9*b1 - a6*a8*b1)/(a1*a5*a9 - a1*a6*a8 - a2*a4*a9 + a2*a6*a7 + a3*a4*a8 - a3*a5*a7)]
[ 0, 1, 0, -(a1*a6*b3 - a3*a4*b3 - a1*a9*b2 + a3*a7*b2 + a4*a9*b1 - a6*a7*b1)/(a1*a5*a9 - a1*a6*a8 - a2*a4*a9 + a2*a6*a7 + a3*a4*a8 - a3*a5*a7)]
[ 0, 0, 1, (a1*a5*b3 - a2*a4*b3 - a1*a8*b2 + a2*a7*b2 + a4*a8*b1 - a5*a7*b1)/(a1*a5*a9 - a1*a6*a8 - a2*a4*a9 + a2*a6*a7 + a3*a4*a8 - a3*a5*a7)]
最佳答案
您正在定义一个包含 3 个方程且只有 2 个未知数的方程组。一般来说,如果方程的数量大于未知数的数量,那么系统几乎总是没有解。尝试 A = [1 2; 2 1] 且 B = [b1; b2],你应该得到一个答案,因为这样你就有了与未知数相同数量的方程,在这种情况下,系统的解将存在,并且只要 A 是可逆的,它也是唯一的。
关于matlab - 以符号方式求解矩阵方程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21489743/