2010-05-27 34 views
6

tôi đang làm một số bình thường dọc theo dòng:Hãy căn bậc hai dương trong Mathematica

J = Integrate[Psi[x, 0]^2, {x, 0, a}] 
sol = Solve[J == 1, A] 
A /. sol 

Đối với loại bình thường, căn bậc hai tiêu cực là không liên quan. Kết quả của việc tính toán này là:

In[49]:= J = Integrate[Psi[x, 0]^2, {x, 0, a}] 
Out[49]= 2 A^2 

In[68]:= sol = Solve[J == 1, A] 
Out[68]= {{A -> -(1/Sqrt[2])}, {A -> 1/Sqrt[2]}} 

Thậm chí nếu tôi cố gắng cho nó một Giả sử [...] hoặc đơn giản hóa [...], nó vẫn mang lại cho tôi những kết quả tương tự:

In[69]:= sol = Assuming[A > 0, Solve[J == 1, A]] 
Out[69]= {{A -> -(1/Sqrt[2])}, {A -> 1/Sqrt[2]}} 

In[70]:= sol = FullSimplify[Solve[J == 1, A], A > 0] 
Out[70]= {{A -> -(1/Sqrt[2])}, {A -> 1/Sqrt[2]}} 

Bất cứ ai có thể cho tôi biết những gì tôi đang làm sai ở đây?

Tôi đang chạy Mathematica 7 trên Windows 7 64 bit.

Trả lời

4

Solve không hoạt động như thế này. Bạn có thể thử Reduce, thay vào đó, ví dụ:

In[1]:= Reduce[{x^2 == 1, x > 0}, x] 
Out[1]= x == 1 

Đó là sau đó một chút khó khăn để chuyển đổi sản lượng này để quy tắc thay thế, ít nhất là trong trường hợp tổng quát, bởi vì Reduce có thể sử dụng tùy tiện nhiều từ nối logic. Trong trường hợp này, chúng tôi chỉ có thể hack:

In[2]:= Solve[Reduce[{x^2 == 1, x > 0}, x], x] 
Out[2]= {{x->1}} 
5

ToRules làm những gì hộp nói: chuyển đổi phương trình (như trong Reduce đầu ra) để quy tắc. Trong trường hợp của bạn:

In[1]:= ToRules[Reduce[{x^2==1,x>0},x]] 
Out[1]= {x->1} 

In[2]:= {ToRules[Reduce[{x^2==1},x]]} 
Out[2]= {{x->-1},{x->1}} 

Đối với các trường hợp phức tạp hơn, tôi thường thấy hữu ích khi chỉ kiểm tra giá trị của các giá trị tham số điển hình. Dĩ nhiên, điều này không hề dễ dàng, nhưng nếu bạn biết có một và chỉ một giải pháp thì đó là một phương pháp đơn giản và hiệu quả:

Solve[x^2==someparameter,x] 
Select[%,((x/.#)/.{someparameter-> 0.1})>0&] 

Out[3]= {{x->-Sqrt[someparameter]},{x->Sqrt[someparameter]}} 
Out[4]= {{x->Sqrt[someparameter]}} 
+0

Tuyệt vời, cảm ơn! Tôi đã quên về ToRules. –

Các vấn đề liên quan