2012-01-04 35 views
6

Tôi đang cố gắng lấy phần thực của kết quả của một phép toán liên quan đến biến không xác định (giả sử x).Lấy x là kết quả của Re [x] trong mathematica

Làm cách nào để tôi có thể có Mathematica return x khi tôi thực hiện Re[x] nếu tôi biết rằng x sẽ không bao giờ là số phức? Tôi nghĩ rằng điều này liên quan đến việc nói với Mathematica rằng x là một thực tế, nhưng tôi không biết làm thế nào.

Trong trường hợp của tôi, biểu thức mà tôi muốn phần thực sự phức tạp hơn một biến đơn giản, nhưng khái niệm sẽ vẫn giữ nguyên.

Một số ví dụ:

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 

Trả lời

13

Bạn có thể sử dụng ví dụ đầu vào Simplify[Re[x], x \[Element] Reals] mà sẽ cung cấp cho x như đầu ra. hơn

13

Sử dụng ComplexExpand. Nó giả định rằng các biến là có thật trừ khi bạn chỉ ra khác. Ví dụ:

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 
+0

Và nếu bạn muốn tiết kiệm gõ ComplexExpand tất cả các thời gian bạn có thể làm $ bài viết = ComplexExpand; đầu tiên và sau đó {Re [x], Re [Sin [x]], Re [1 + x + I], Re [1 + x * I]} đánh giá thành {x, Sin [x], 1 + x, 1 } –

+3

@ Rolf Đúng và tiện dụng ở đây, tôi đồng ý. Mặc dù nói chung, tôi cố gắng tránh sử dụng '$ Pre' hoặc' $ Post' vì nó rất dễ quên chúng, và bạn bắt đầu nhận được kết quả không mong muốn. –

5

Có hai khả năng:

Assuming[x \[Element] Reals, Refine[Re[x]]] 

Refine[Re[x], x \[Element] Reals] 

Cả hai trở x.

1

Đôi khi có thể hữu ích khi xác định UpValues cho một biểu tượng. Điều này là xa mạnh mẽ, nhưng nó vẫn có thể xử lý một số trường hợp.

Re[x] ^= x; 
Im[x] ^= 0; 

Re[x] 
Re[1] 
Re[1 + x + I] 
Re[1 + x*I] 

x

1 + x

Re[Sin[x]] không đánh giá như bạn mong muốn, nhưng một trong những biến đổi được sử dụng bởi FullSimplify làm đặt nó vào một biểu mẫu kích hoạt Re[x]:

Re[Sin[x]] // FullSimplify 
Sin[x] 
Các vấn đề liên quan