D[Re...]会给出奇怪的答案
mathematica吧
全部回复
仅看楼主
level 1
方程式是对一个数的实数部分求导
方程式是
Solve[S D[Re[hp[r] Exp[I \[Omega] t]], t] == T/r D[r D[Re[hp[r] Exp[I \[Omega] t]], r], r] + Re[Rp Exp[I \[Omega] t]], Rp] 运行之后,右边的竖线就会变黑,然后卡住。
对方程左边单独运算 对实数部分求导D[Re[hp[r] Exp[I \[Omega] t]], t] 会给出答案 I e^itw w hp[r] Re'[e^itw hp[r]]
答案里有一个Re’的部分。自己手算的话这个式子可以交换D和Re运算的顺序。
输入Re[D[hp[r] Exp[I \[Omega] t], t]] 就会得到答案 -Im[E^(I t \[Omega]) \[Omega] hp[r]]
这个答案就是对的。
由于Re[D[]]的顺序局部运算可以,尝试代入原方程
Solve[S Re[D[hp[r] Exp[I \[Omega] t], t]] == T/r Re[D[r D[hp[r] Exp[I \[Omega] t], r], r]] + Re[Rp Exp[I \[Omega] t]], Rp] 还是会右边变黑卡住。
然而局部的运算都能算出结果 分别是 -Im[E^(I t \[Omega]) \[Omega] hp[r]] =
Re[E^(I t \[Omega]) Derivative[1][hp][r] + E^(I t \[Omega]) r (hp^\[Prime]\[Prime])[r]]
+Re[E^(I t \[Omega]) Rp]
除去求实数部分 和括号里的 E^iwt,解出来的就是正确答案。
这是为什么呢。求解!
另外输出里的答案会自动-Im化简为Re,连带着还会自动把1/i替换成-i,1/coshx替换为Sechx。怎么把输出替换为另一种格式呢,试过Replaceall和denominator和numerator都不行,查找之后是complexityfunction里设置,但是wolfram帮助里没有complexityfunction的教学链接。有大神可以分享一下complexityfunction的教学或者是简单说明一下机制吗 谢谢!
2021年09月07日 08点09分 1
level 1
打错了,是把 -Im转换为 I Re
2021年09月07日 08点09分 2
吧务
level 10
没怎么看明白你要做什么。
似乎你问题的根源是「Re没有通用的求导规则」(且多数情况下Re不存在导数)。如果你知道导数是多少,可以列为方程加进去。
complexityfunction有文档。你声称没有可能是因为你所用的版本没有,你可以上官网看最新版文档。
2021年09月10日 07点09分 3
吧务
level 15
可以参考帖子《Derivative of real functions including Re and Im》(SE编号3810)
2021年10月02日 04点10分 4
1