Wolfram mathematica 获得x作为mathematica中Re[x]的结果
我试图获得一个运算结果的实部,该运算涉及一个未定义的变量(比如Wolfram mathematica 获得x作为mathematica中Re[x]的结果,wolfram-mathematica,Wolfram Mathematica,我试图获得一个运算结果的实部,该运算涉及一个未定义的变量(比如x) 如果我知道x永远不会是一个复数,那么当我执行Re[x]时,如何让Mathematica返回x?我想这包括告诉Mathematica,x是一个真实的,但我不知道怎么做 在我的例子中,我想要实部的表达式比一个简单的变量更复杂,但概念将保持不变 一些例子: INPUT OUTPUT DESIRED RESULT ----- ------ -------
x
)
如果我知道x
永远不会是一个复数,那么当我执行Re[x]
时,如何让Mathematica返回x
?我想这包括告诉Mathematica,x
是一个真实的,但我不知道怎么做
在我的例子中,我想要实部的表达式比一个简单的变量更复杂,但概念将保持不变
一些例子:
INPUT OUTPUT DESIRED RESULT
----- ------ --------------
Re[x] Re[x] x
Re[1] 1 1
Re[Sin[x]] Re[Sin[x]] Sin[x]
Re[1+x+I] 1 + Re[x] 1+x
Re[1 + x*I] 1-Im[x] 1
使用。它假设变量是实的,除非您另有说明。例如:
In[76]:= ComplexExpand[Re[x]]
Out[76]= x
In[77]:= ComplexExpand[Re[Sin[x]]]
Out[77]= Sin[x]
In[78]:= ComplexExpand[Re[1+x+I]]
Out[78]= 1+x
例如,您可以使用输入
Simplify[Re[x],x\[Element]Reals]
,它将x
作为输出。还有两种可能性:
Assuming[x \[Element] Reals, Refine[Re[x]]]
Refine[Re[x], x \[Element] Reals]
两者都返回
x
有时为符号定义UpValues
会很有用。这远远不够强大,但它仍然可以处理许多情况
Re[x] ^= x;
Im[x] ^= 0;
Re[x]
Re[1]
Re[1 + x + I]
Re[1 + x*I]
x
一,
1+x
一,
Re[Sin[x]
的计算结果并不符合您的要求,但FullSimplify
使用的一种转换将其置于触发Re[x]
的形式:
Re[Sin[x]] // FullSimplify
如果您想一直保存键入ComplexExpand,可以执行$Post=ComplexExpand;首先,然后{Re[x],Re[Sin[x]],Re[1+x+I],Re[1+x*I]}计算为{x,Sin[x],1+x,1}@Rolf True和handy,我同意。虽然通常情况下,我会尽量避免使用
$Pre
或$Post
,因为很容易忘记它们,并且会得到意想不到的结果。
Sin[x]