2012-01-08 15 views
5

Tôi cần tìm các điều kiện cho phần thực của số phức là âm. Tôi nghĩ rằng Reduce sẽ là hoàn hảo cho điều này, nhưng nó cho đầu ra dư thừa (ngay cả sau khi đơn giản hóa). Ví dụ:Mathematica: tìm các điều kiện cho phần thực của một số phức là dương, đầu ra không mong muốn/dư thừa của việc giảm

In[543]: Reduce[{Re[-1 - Sqrt[a - b] ] < 0, a > 0, b > 0}, {a, b}, Complexes] 
Out[543]: a > 0 && (0 < b < a || b >= a) 

Như a và b được giả định là có thật vì chúng xuất hiện trong một sự bất bình đẳng, có cần phải không được giả định thêm về mối quan hệ giữa a và b, kết quả tôi mong đợi là:

Out[543]: a > 0 && b > 0 

có lý do chính đáng tại sao không nhận được không? Kết quả dự phòng (trong mắt tôi) tích lũy cho các biểu thức phức tạp hơn và tôi cần giảm một vài trong số chúng. Có một mẹo để có được kết quả mong đợi không? Tôi đã chơi xung quanh với việc chọn Reals làm tên miền và không chọn miền nào cả, nhưng không có gì thực sự mang lại cho tôi những gì tôi muốn. Bằng cách này tôi phân tích sự ổn định của các điểm cố định bằng cách kiểm tra giá trị riêng ... một nhiệm vụ rất phổ biến.

Trả lời

4

Tôi không biết tại sao Mathematica sẽ không trả lại kết quả mà bạn đang mong đợi trong một bước, nhưng đây là làm thế nào để có được nó theo hai bước:

Mathematica graphics

Nói chung, hai chức năng mà có thể đối phó với sự bất bình đẳng theo cách tổng quát là ReduceLogicalExpand. (Nhưng kiến ​​thức của tôi rất hạn chế trong lĩnh vực này!) Tôi tin rằng (Full)Simplify sẽ chỉ sử dụng phần sau.


Một bình luận về lĩnh vực thiết lập trong Reduce:

Lưu ý rằng các tài liệu nói: "Nếu dom là đồng Real, hoặc một nhóm nhỏ như số nguyên hoặc rationals, sau đó tất cả các hằng số và các giá trị chức năng cũng bị hạn chế hãy thực tế." Do đó, nếu bạn chỉ định miền là Reals như trong câu trả lời của @ belisarius, thì Reduce sẽ trả về 0 < b <= a, điều này cũng cần thiết cho Sqrt[a-b] để thực sự là tốt.

2

Quấn biểu thức Re[...] với ComplexExpand và bạn sẽ nhận được kết quả mong đợi a > 0 && b > 0.

+0

Nhưng chỉ khi tên miền được chỉ định rõ ràng là 'Phức tạp' hoặc' Số thực '. Nếu không, nó trả về 'a> 0 && 0 Szabolcs

+0

(Tôi đã thêm nhận xét này vào một truy vấn MathGroup về cùng một điều.) Chắc chắn đặc tả miền là cần thiết để có kết quả chính xác. Ví dụ: lấy a = 1/4 và b = 1/2. Tôi chưa bao giờ hiểu điều gì có nghĩa trong tài liệu bằng cách "giảm trên một tên miền". Từ những gì được nói trong tài liệu, điều này dường như không có nghĩa là các biến nằm trong miền đó, mà đúng hơn là các biểu thức cấu thành điều kiện được phép có các giá trị trong miền đó - nếu không miền được giả định là có thực cho biểu thức. – murray

+1

Trong khi đó nó đã được xác nhận trên MathGroup rằng có một lỗi trong 'Reduce' trong Mathematica 8. Tôi sẽ đặt liên kết ở đây để tham khảo: https://groups.google.com/d/topic/comp.soft-sys. math.mathematica/C3ooYLXxZE0/thảo luận – Szabolcs

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