我在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
在我的情况下,我不能只是替换,因为有太多的方程,一些参数(系数)取消。
谢谢!