gpt4 book ai didi

wolfram-mathematica - 在 Mathematica 中求解微分方程

转载 作者:行者123 更新时间:2023-12-04 08:15:55 24 4
gpt4 key购买 nike

我在求解 Mathematica(第 10 版)中的微分方程时遇到语法问题。

我需要求解的方程的输入如下:

solv = DSolve[{ a*u''[y] - b*u[y] == d, u'[0] == 0, u[1] == 0}, u, {y, -1, 1}]

在使用 ExpToTrig 和 FullSimplify 之后,我得到了我正在寻找的答案:

(d (-1 + Cosh[(Sqrt[b] y)/Sqrt[a]] Sech[Sqrt[b]/Sqrt[a]]))/b

但是,当我想在等式中放置更多系数时,我的问题就来了。例如:

solv = DSolve[{ a* u''[y] - b* c* u[y] == d, u'[0] == 0, u[1] == 0}, u, {y, -1, 1}]

这一次,我得到了:

FullSimplify[ExpToTrig[Evaluate[u[y] /. solv]]]

下一个答案:

(d (1 + E^((2 Sqrt[b] Sqrt[c])/Sqrt[a]) - E^(-((Sqrt[b] Sqrt[c] (-1 + y))/Sqrt[a])) - E^((Sqrt[b] Sqrt[c] (1 + y))/Sqrt[a])) (-1 + Tanh[(Sqrt[b] Sqrt[c])/Sqrt[a]]))/(2 b c)

相反,当我合并 b 和 c(替代:bc=b*c)时:

solv = DSolve[{ a*u''[y] - bc*u[y] == d, u'[0] == 0, u[1] == 0}, u, {y, -1, 1}]

我得到:

(d (-1 + Cosh[(Sqrt[bc] y)/Sqrt[a]] Sech[Sqrt[bc]/Sqrt[a]]))/bc

在我的例子中,我不能只是替换,因为方程太多,一些参数(系数)取消了。

谢谢!

最佳答案

您的问题与 FullSimplify 有关。它认为 exp 形式比 trig 形式更“简单”,因此它正在撤消 ExpToTrig 正在做的事情。仅在其位置使用 Simplify 将保持 ExpToTrig 转换。我在下面的快速尝试显示了一个比较。

mathematica demo

关于wolfram-mathematica - 在 Mathematica 中求解微分方程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31525491/

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