2011-12-31 80 views
3

我有这个矩阵为什么不反推求解的结果[]给出预期的结果?

a = {{2, -2, -4}, {-2, 5, -2}, {-4, -2, 2}} 

然后我解决了一个缺少条目中的公式。该公式的形式为 Inverse [p] .a.p == q 其中p是缺少条目(x5)的3x3矩阵,q是给定的3x3矩阵。

Solve[Inverse[({ 
     {1/Sqrt[5], 4/(3 Sqrt[5]), -2/3}, 
     {-2/Sqrt[5], 2/(3 Sqrt[5]), -2/6}, 
     {0, x5, -2/3} 
    })].a.({ 
    {1/Sqrt[5], 4/(3 Sqrt[5]), -2/3}, 
    {-2/Sqrt[5], 2/(3 Sqrt[5]), -2/6}, 
    {0, x5, -2/3} 
    }) == ({ 
    {6, 0, 0}, 
    {0, 6, 0}, 
    {0, 0, -3} 
    })] 

Mathematica可以很容易地解决这个和我得到X5 - > - (的Sqrt [5]/3)作为结果。 但是如果我检查,结果北京时间很奇怪:

In[2]:= Inverse[({ 
    {1/Sqrt[5], 4/(3 Sqrt[5]), -2/3}, 
    {-2/Sqrt[5], 2/(3 Sqrt[5]), -2/6}, 
    {0, -Sqrt[5]/3, -2/3} 
    })].a.({ 
    {1/Sqrt[5], 4/(3 Sqrt[5]), -2/3}, 
    {-2/Sqrt[5], 2/(3 Sqrt[5]), -2/6}, 
    {0, -Sqrt[5]/3, -2/3} 
    }) 

Out[2]= {{6/5 - (2 (-(2/Sqrt[5]) - 2 Sqrt[5]))/Sqrt[5], 
    8/5 + (2 (-(2/Sqrt[5]) - 2 Sqrt[5]))/(3 Sqrt[5]), -(4/Sqrt[5]) + 
    1/3 (2/Sqrt[5] + 2 Sqrt[5])}, {-((
    2 (-(8/(3 Sqrt[5])) + (4 Sqrt[5])/3))/Sqrt[5]) + (
    4/(3 Sqrt[5]) + (4 Sqrt[5])/3)/Sqrt[5], 
    10/3 + (2 (-(8/(3 Sqrt[5])) + (4 Sqrt[5])/3))/(3 Sqrt[5]) + (
    4 (4/(3 Sqrt[5]) + (4 Sqrt[5])/3))/(3 Sqrt[5]), (4 Sqrt[5])/3 + 
    1/3 (8/(3 Sqrt[5]) - (4 Sqrt[5])/3) - 
    2/3 (4/(3 Sqrt[5]) + (4 Sqrt[5])/3)}, {0, 0, -3}} 

预期的结果应该是

({ 
    {6, 0, 0}, 
    {0, 6, 0}, 
    {0, 0, -3} 
}) 

像公式所示。如果我手工计算,我会得到这个结果。我在这里错过了什么?

回答

2

只是SimplifyExpand的结果。

下面是一个例子:

In[1]:= a = {{2, -2, -4}, {-2, 5, -2}, {-4, -2, 2}} 
Out[1]= {{2, -2, -4}, {-2, 5, -2}, {-4, -2, 2}} 

In[2]:= p = {{1/Sqrt[5], 4/(3 Sqrt[5]), -(2/3)}, {-(2/Sqrt[5]), 2/(
    3 Sqrt[5]), -(2/6)}, {0, x5, -(2/3)}} 

Out[2]= {{1/Sqrt[5], 4/(3 Sqrt[5]), -(2/3)}, {-(2/Sqrt[5]), 2/(
    3 Sqrt[5]), -(1/3)}, {0, x5, -(2/3)}} 

In[3]:= sol = 
Solve[Inverse[p].a.p == {{6, 0, 0}, {0, 6, 0}, {0, 0, -3}}] 

Out[3]= {{x5 -> -(Sqrt[5]/3)}} 

In[4]:= Inverse[p].a.p /. sol[[1]] 
Out[4]= <big output removed> 

In[5]:= Simplify[%] 
Out[5]= {{6, 0, 0}, {0, 6, 0}, {0, 0, -3}} 

Expand将代替Simplify工作过。在根和分数方面的表达通常可以用几种方式来表达,如果两个表达式仅仅通过观察它们就是相同的,这并不明显。您必须明确要求Mathematica对其进行转换,例如expr = 13/(2 Sqrt[3]) - 4/3Together[expr]


什么是虽然很奇怪,是Solve如果你使用标准的语法和明确给出变量不起作用:

In[6]:= Solve[Inverse[p].a.p == {{6, 0, 0}, {0, 6, 0}, {0, 0, -3}}, x5] 

Out[6]= {} 

In[7]:= Solve[ 
Inverse[p].a.p == {{6, 0, 0}, {0, 6, 0}, {0, 0, -3}}, x5, 
VerifySolutions -> False] 

Out[7]= {} 

任何人都可以解释,为什么? NSolve按预期工作。

In[8]:= NSolve[ 
Inverse[p].a.p == {{6, 0, 0}, {0, 6, 0}, {0, 0, -3}}, x5] 

Out[8]= {{x5 -> -0.745356}} 
+0

是的,我注意到了这一点也是。当我说Solve [...,x]它不起作用!,奇怪的是,我正在看它。 – Nasser 2011-12-31 11:56:16

+0

我不明白的是为什么我们在RHS中使用'{{6,0 0,0,6,0},{0,0,-3}}'?有3个等式,所以RHS应该是'{6,6,-3}'。当我这样做时,我得到了额外的解决方案。请看我的回复。 – Nasser 2011-12-31 12:00:43

0
Remove["Global`*"]; 
a = {{2, -2, -4}, {-2, 5, -2}, {-4, -2, 2}}; 
p = {{1/Sqrt[5], 4/(3 Sqrt[5]), -2/3}, {-2/Sqrt[5], 
    2/(3 Sqrt[5]), -2/6}, {0, x, -2/3}}; 
pInv = Inverse[p]; 
lhs = pInv.a.p; 

q = {6, 6, -3}; 
eqs = [email protected]@ 
    Map[Total[lhs[[#, All]]] - q[[#]] == 0 &, Range[Length[q]]] 

这里有3个方程式所有x中。 (3个方程,ONE未知!)

-6. - 2.66667/(-0.444444 + 0.745356 x) + (4.47214 x)/(-0.444444 + 0.745356 x) == 
    0., 

-6. - 2.66667/(-0.444444 + 0.745356 x) + (4.47214 x)/(-0.444444 + 0.745356 x) == 0., 

3. - 0.654283/(-0.444444 + 0.745356 x) -(1.5694 x)/(-0.444444 + 0.745356 x) + (
    4.47214 x^2)/(-0.444444 + 0.745356 x) == 0. 

先解决数字

Map[NSolve[eqs[[#]],x]&,Range[3]] 

Out[465]= {{{x->0.}},{{x->0.}},{{x->-0.745356}}} 

若要解决接受x,首先不做数值,离开它象征:

eqs = [email protected] Map[Total[lhs[[#, All]]] - q[[#]] == 0 &, Range[Length[q]]] 

这给

{-6 - 8/(3 (-(4/9) + (Sqrt[5] x)/3)) + (2 Sqrt[5] x)/(-(4/9) + (Sqrt[5] x)/3) == 
    0, 

-6 - 8/(3 (-(4/9) + (Sqrt[5] x)/3)) + (2 Sqrt[5] x)/(-(4/9) + (Sqrt[5] x)/3) == 0, 

3 + 4/(3 (-(4/9) + (Sqrt[5] x)/3)) - (8 Sqrt[5])/(9 (-(4/9) + (Sqrt[5] x)/3)) 
+ (2 x)/(3 (-(4/9) + (Sqrt[5] x)/3)) - (
    Sqrt[5] x)/(-(4/9) + (Sqrt[5] x)/3) + (
    2 Sqrt[5] x^2)/(-(4/9) + (Sqrt[5] x)/3) == 0} 

现在,在那里使用解决,有明确的x,现在它是确定

Map[Solve[eqs[[#]], x] &, Range[3]] 

{{{}}, {{}}, {{x -> -(Sqrt[5]/3)}}} 

--Nasser

相关问题