3

我有一个在 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

在我的情况下,我不能只是替代,因为有太多的方程和一些参数(系数)取消。

谢谢!

4

1 回答 1

0

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

数学演示

于 2015-09-19T21:52:09.203 回答