gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 11:14:37 24 4
gpt4 key购买 nike

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

我正在求解一个相当大的微分方程系统,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可能由 Integrate 生成,由 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+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 - Mathematica - DSolve 在输出中吐出 #1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6274307/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com