哦,好吧,即使这不是编程问题,我也会回答它。
问题是求解线性系统
Ax = 8x
其中给出了 3x3 矩阵 A,x 是一个 3x1 未知向量。
A = [3 2 4;2 0 2;4 2 3];
[v,d] = eig(A)
v =
-0.4941 -0.5580 0.6667
-0.4720 0.8161 0.3333
0.7301 0.1500 0.6667
d =
-1.0000 0 0
0 -1.0000 0
0 0 8.0000
在这里我们看到第三个特征值是 8,所以这个问题确实有一个非退化的解决方案。它的形式
k*v(:,3)
因为 v(:,3) 是相应的特征向量。
format rat
v(:,3)
ans =
2/3
1/3
2/3
显然,这导致了提问者给出的解决方案。
我会注意到,这一切都只是因为问题是以 A*x=lambda*x 的形式提出的,所以是一个经典的特征值问题。同样,如果您欣赏解决方案背后的数学原理,那么我们可以使用 null 来解决问题:
null(A - 8*eye(3))
ans =
2/3
1/3
2/3
当然,我们可以使用符号工具箱。
sol = solve('3*a + 2*b + 4*c = 8*a','2*a + 2*c = 8*b','4*a + 2*b + 3*c = 8*c');
sol.a
ans =
z
sol.b
ans =
z/2
sol.c
ans =
z
假设这个问题是一个完全普遍的问题?因此,仍然是一个齐次线性系统,但不是一个明显的特征值问题?例如,我将尝试解决任意线性问题
A*[a;b;c] = [a;2*b;3*c]
请注意,这不是以特征值问题的形式编写的。实际上有几种方法我们可能会决定解决它。未知数在等式的两边。因此,只需将它们全部移到左侧即可。半数学上,我们可以这样做
B = A - diag([1 2 3])
B =
2 2 4
2 -2 2
4 2 0
我们现在尝试求解线性系统
Bx = B*[a;b;c] = [0;0;0]
是否存在解决方案?这一次,它们不存在,超出了微不足道的简并解,因为 B 具有满秩。
rank(B)
ans =
3
满秩齐次线性系统只有简并(零)解。Null 也告诉我们这一点。
null(B)
ans =
Empty matrix: 3-by-0
符号工具箱解决方案反映了这一事实。
sol = solve('3*a + 2*b + 4*c = a','2*a + 2*c = 2*b','4*a + 2*b + 3*c = 3*c')
sol.a
ans =
0
sol.b
ans =
0
sol.c
ans =
0
在您了解所涉及的线性系统的数学之前,这真的不是一个编程问题,然后它本质上是一个解决问题的命令,所以仍然不是一个真正的编程问题。