2016-09-10 12 views
2

私は以前のシステムを解くことで得られた変数に関して4つの線形方程式のシステムを持っていますが、Solve関数は非常に単純なシステムではあるが出力を返しません。Solveを使用した線形システムの問題を解決する

Solve[{ 
-d5c2 dn5t1 - d5c3 dn5t1 - a3 n3t1 - 
    (d4c1 n4t1 (dn4t2 n5t1 - dn4t1 n5t2))/(n4t2 n5t1 - n4t1 n5t2) 
    == dn3t1, 
-a3 n3t2 - (d5c2 dn5t1 n5t2)/n5t1 - 
    (d5c3 dn5t1 n5t2)/n5t1 - 
    (d4c1 n4t2 (dn4t2 n5t1 - dn4t1 n5t2))/(n4t2 n5t1 - n4t1 n5t2) 
    == dn3t2, 
-a3 n3t3 - 
    (d4c1 n4t3 (dn4t2 n5t1 - dn4t1 n5t2))/(n4t2 n5t1 - n4t1 n5t2) - 
    (d5c2 dn5t1 n5t3)/n5t1 - (d5c3 dn5t1 n5t3)/n5t1 
    == dn3t3, 
-a3 n3t4 - 
    (d4c1 n4t4 (dn4t2 n5t1 - dn4t1 n5t2))/(n4t2 n5t1 - n4t1 n5t2) - 
    (d5c2 dn5t1 n5t4)/n5t1 - (d5c3 dn5t1 n5t4)/n5t1 
    == dn3t4 
     }, {a3, d5c2, d5c3, d4c1}] 

戻り、ブランク出力:

{} 

私は言語に新しいです。 Solveが扱うことができる数値以外の式のサイズには何らかの制限がありますか?

+0

ブランク出力は、「解決策なし」を意味する場合があります。つまり、方程式の中には互いに矛盾するものがあります。 'Solve [{a == 2、a == 3}、{a}]'を試しても同じ結果が得られます。 –

答えて

3

システムには解決策がありません。しかし、この場合には

線型方程式を報告し、あなたがLinearSolve[m,rhs]を試みることができる。この時点で

sys={ 
-d5c2 dn5t1 - d5c3 dn5t1 - a3 n3t1 - 
    (d4c1 n4t1 (dn4t2 n5t1 - dn4t1 n5t2))/(n4t2 n5t1 - n4t1 n5t2) 
    == dn3t1, 
-a3 n3t2 - (d5c2 dn5t1 n5t2)/n5t1 - 
    (d5c3 dn5t1 n5t2)/n5t1 - 
    (d4c1 n4t2 (dn4t2 n5t1 - dn4t1 n5t2))/(n4t2 n5t1 - n4t1 n5t2) 
    == dn3t2, 
-a3 n3t3 - 
    (d4c1 n4t3 (dn4t2 n5t1 - dn4t1 n5t2))/(n4t2 n5t1 - n4t1 n5t2) - 
    (d5c2 dn5t1 n5t3)/n5t1 - (d5c3 dn5t1 n5t3)/n5t1 
    == dn3t3, 
-a3 n3t4 - 
    (d4c1 n4t4 (dn4t2 n5t1 - dn4t1 n5t2))/(n4t2 n5t1 - n4t1 n5t2) - 
    (d5c2 dn5t1 n5t4)/n5t1 - (d5c3 dn5t1 n5t4)/n5t1 
    == dn3t4 
     } 

lhs = sys[[All, 1]]; 
rhs = sys[[All, 2]]; 

(m = Transpose[Coefficient[lhs, #] & /@ {a3, d5c2, d5c3, d4c1}]) // MatrixForm 

enter image description here

:標準的な線形代数の形でこれを置く方法を示すために役に立つかもしれません矛盾のない遭遇しました。

そして、これは行列式がゼロであるためです。

Det[m] 

根本的にあなたの未知数d5c2d5c3は、すべての式に同じ係数を持っているので、あなたは効果的に4つの方程式とのみ3つの未知数を持っています。

関連する問題