\begingroup

我有这个矩阵方程

AC0bdF0GX= 0Ab0Cd0FGX=0

\left(
\begin{array}{ccc}
a & b & 0 \\
c & d & e \\
0 & f & g \\
\end{array}
\right)\left(
\begin{array}{c}
x \\
y \\
z \\
\end{array}
\right)=0
其中所有参数
{ A B C D,,G}{AbCdFG}\{a,b,c,d,e,f,g\}非零;我正在寻找一个非平凡的解决方案{ x , y, z}{X}\{x,y,z\}即当系数矩阵的行列式为零时。我该如何从 Mathematica 询问这个问题?通常,没有任何假设,它只会给出平凡解零。

system = { a x + b y == 0  ,  c x + d y + e z == 0 , f y + g z == 0};
Solve[system, {x, y, z}]
(* {{x -> 0, y -> 0, z -> 0}} *)

PS NullSpace也给出了空答案。

\endgroup

1

  • 1
    \begingroup
    仅仅知道 det=0 不足以得到通解,因为这取决于系数矩阵的秩。
    \endgroup


    – 


最佳答案
2

\begingroup

答案取决于行列式如何消失:

mat = {{a, b, 0}, {c, d, e}, {0, f, g}};
Det[mat]

(* -a e f - b c g + a d g *) 

cases = Solve[% == 0]

Grid[{#, NullSpace[mat /. #]} & /@ cases, Dividers -> All]

备注:以上所有解决方案都对应于一般情况,即假设矩阵为二阶。

\endgroup

3

  • \begingroup
    非常感谢。因此,由于所有参数都非零,因此只有列表中的第一个情况可以作为非平凡解决方案。
    \endgroup


    – 

  • 1
    \begingroup
    不客气。你说得对。我忽略了非零条件。
    \endgroup


    – 

  • \begingroup
    我可以请您解释一下矩阵秩在您的代码中起什么作用吗?
    \endgroup


    – 


\begingroup

尝试Reduce

solu = Reduce[{{a, b, 0}, {c, d, e}, {0, f, g}} . {x, y, z} - {0, 0,0} == 0 , {x, y, z}, Backsubstitution -> True];
Simplify[solu, Map[# != 0 &, {a, b, c, d, e, f, g }]]

(*(e f != d g && y == (c g x)/(e f - d g) && z == (c f x)/(-e f + d g)&&a == (b c g)/(-e f + d g)) 
|| (a e f + b c g != a d g && x == 0 &&y == 0 && z == 0) *)

\endgroup

1

  • \begingroup
    非常感谢!简洁又优雅!
    \endgroup


    –