問題

私はこれを解釈する方法についてはあまりよく分かりません。

私は微分方程式のかなり大きなシステムを解いていますが、DSolveは#1を持つ用語を含む置換ルールのリストを吐き出すことがあります。私は#1が引数のプレースホルダであることを知っていますが、どこから来たのか分かりません。

私に似た方程式のシステムがある場合

 eqs = {
x1'[t] = a1*x1[t] + b1*y1[t]
x2'[t] = a2*x2[t] + b2*y2[t]
...
y1'[t] = c1*y1[t] + d1*x1[t]
y2'[t] = c2*y2[t] + d2*x2[t]}
 

DSolve[eqs,vars,t]は次のようなものを吐き出します

 x1 -> e^(-ta1)
x2 -> e^(-t)RootSum[a1a2+a3b4#1 + a3a1b2#1]
...
 

明らかにもう少し複雑ですが。

ドキュメンテーションでは、なぜこれが起こっているのかについてのヒントはありません。パラメータの特定の変換の下でのみ発生します(たとえば、元のシステムでパラメータを使用して再生すると、動作するかどうか)

  ベストアンサー

このRootSumは、内部的にDSolveで使用されるIntegrateによって生成されることがあります。

 In[511]:= Integrate[1/(1 + x + x^2 + x^3 + x^4), x]

Out[511]= RootSum[1 + #1 + #1^2 + #1^3 + #1^4 &, 
 Log[x - #1]/(1 + 2 #1 + 3 #1^2 + 4 #1^3) &]
 

これは、Sum[ Log[x-t]/(1+2*t+3 t^2+4 t^3), {t, {"roots of 1+t+t^2+t^3+t^4"}](注意、無効な構文意図)であるシンボリック式を表します。 Normalを使用して予想される通常のフォームを回復することができます。

 In[512]:= Normal[%]

Out[512]= 
Log[(-1)^(1/5) + x]/(1 - 2 (-1)^(1/5) + 3 (-1)^(2/5) - 4 (-1)^(3/5)) +
  Log[-(-1)^(2/5) + x]/(
 1 - 4 (-1)^(1/5) + 2 (-1)^(2/5) + 3 (-1)^(4/5)) + 
 Log[(-1)^(3/5) + x]/(
 1 - 3 (-1)^(1/5) - 2 (-1)^(3/5) + 4 (-1)^(4/5)) + 
 Log[-(-1)^(4/5) + x]/(1 + 4 (-1)^(2/5) - 3 (-1)^(3/5) + 2 (-1)^(4/5))
 

またはSumを直接使用する:

 In[513]:= Sum[
 Log[x - t]/(1 + 2*t + 3 t^2 + 4 t^3), {t, 
  t /. {ToRules[Roots[1 + t + t^2 + t^3 + t^4 == 0, t]]}}]

Out[513]= 
Log[(-1)^(1/5) + x]/(1 - 2 (-1)^(1/5) + 3 (-1)^(2/5) - 4 (-1)^(3/5)) +
  Log[-(-1)^(2/5) + x]/(
 1 - 4 (-1)^(1/5) + 2 (-1)^(2/5) + 3 (-1)^(4/5)) + 
 Log[(-1)^(3/5) + x]/(
 1 - 3 (-1)^(1/5) - 2 (-1)^(3/5) + 4 (-1)^(4/5)) + 
 Log[-(-1)^(4/5) + x]/(1 + 4 (-1)^(2/5) - 3 (-1)^(3/5) + 2 (-1)^(4/5))

In[514]:= % - %% // FullSimplify

Out[514]= 0
 

  同じタグがついた質問を見る

wolfram-mathematica