Pee*_*oot 2 wolfram-mathematica
我想知道是否有一个不同于FullSimplify的命令告诉mathematica进行所请求的计算.这是简化尝试的三种变体
FullSimplify[Re[ (-I + k Rr)] Cos[Ttheta], Element[{k, Rr, Ttheta, t, omega}, Reals]]
FullSimplify[Re[E^(I (omega t - k Rr)) ] Cos[Ttheta], Element[{k, Rr, Ttheta, t, omega}, Reals]]
FullSimplify[Re[E^(I (omega t - k Rr)) (-I + k Rr)] Cos[Ttheta], Element[{k, Rr, Ttheta, t, omega}, Reals]]
Run Code Online (Sandbox Code Playgroud)
我分别得到:
k Rr Cos[Ttheta]
Cos[k Rr - omega t] Cos[Ttheta]
I (-k Rr + omega t)
Cos[Ttheta] Re[E (-I + k Rr)]
Run Code Online (Sandbox Code Playgroud)
没有指数,实际部分得到评估.如果没有复数因子乘以指数,就会对实部进行评估.两者相乘,输入作为输出返回?
我尝试了// Timings修饰符,这不是因为表达式太复杂(这很好,因为我可以在我脑海中做到这一点,但这是一个较大的测试表达式的子集,也是失败的).
你声明了你的变量,Reals你试过ComplexExpand吗?
要在这里兑换我的缓慢发布是另一种方法:告诉Mathematica您不希望Complex在结果中通过ComplexityFunction
FullSimplify[Re[E^(I (omega t - k Rr)) (-I + k Rr)] Cos[Ttheta],
Element[{k, Rr, Ttheta, t, omega}, Reals],
ComplexityFunction -> (1 - Boole@FreeQ[#, Complex] &)]
Run Code Online (Sandbox Code Playgroud)