我正在尝试使用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),也就是说,我希望LHS和RHS上的第三行为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)]
答案 0 :(得分:2)
您正在定义一个包含3个方程且只有2个未知数的方程组。通常,如果方程的数量大于未知数,则几乎总是不会有系统的解。试试A = [1 2; 2 1]和B = [b1; b2]你应该得到一个答案,因为那时你有与未知数相同的方程数,在这种情况下系统的解将存在,并且只要A是可逆的,它也是唯一的。
答案 1 :(得分:0)
我不知道你期望输出哪种输出,但使用数字函数进行符号输入有些奇怪。
尝试:
b=sym('b',[3,1])
x=sym('x',[2,1])
f=solve(A*x==B)