Wolfram mathematica Mathematica-DSolve在输出中吐出#1

Wolfram mathematica Mathematica-DSolve在输出中吐出#1,wolfram-mathematica,Wolfram Mathematica,我不太确定该如何解释这一点 我在解一个相当大的微分方程组,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

我不太确定该如何解释这一点

我在解一个相当大的微分方程组,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]
...
显然有点复杂,但你明白了


文档中没有任何关于为什么会发生这种情况的提示,而且这种情况只会在某些参数变化的情况下发生(例如,当我在原始系统中使用参数时,它要么工作要么不工作)

根和
可能由
集成
生成,由
DSolve
内部使用,像这样:

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+3t^2+4t^3),{t,{“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))
或者直接使用
总和

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

Normal
解决了
RootSum
中的
#1
,但是仍然有一些零散的。@crasic我想重点是
RootSum
是一个很好的表达式,你不应该试图摆脱它。将
集成[1/(1+2x+x^ 7),x]/code>与
集成[1/(1+2x+x7),x]//正常
。应该可以使用
Normal
将任何
RootSum
解析为显式求和。如果您不能为某些人这样做,请发布顽固的
RootSum
表达式好吗?所有的RootSum组件都可以删除,但可能需要保留使用#的根对象。