Trước hết, việc đưa Mathematica ra một cái gì đó chính xác như bạn muốn nó là thứ gì đó của nghệ thuật đen và đòi hỏi rất nhiều kiên nhẫn. Điều đó nói rằng, nếu bạn áp dụng Reduce
để biểu hiện ban đầu của bạn, theo Belisarius, bạn sẽ nhận được
In[1]:=Reduce[x^3 + L + r > 3 x^3 + 2 r, r, Reals]
Out[1]:= r < L - 2 x^3
Tuy nhiên, như bạn chỉ ra, đây không phải là biểu hiện đầy đủ, và Reduce
sản xuất những gì chỉ có thể được mô tả như một câu trả lời ít hữu ích hơn khi áp dụng cho nó. Đó là vào thời điểm này, nơi kiên nhẫn và rất nhiều xử lý thêm là cần thiết. Tôi muốn bắt đầu với
In[2]:=Reduce[ <full expression>, Delta, Reals] // LogicalExpand // Simplify
Mặc dù điều này không cung cấp cho bạn câu trả lời rõ ràng, tốt hơn trước và tiết lộ nhiều hơn về cấu trúc giải pháp của bạn. (Tôi sẽ không sử dụng FullSimplify
vì điều đó trộn Delta
với các điều khoản khác.) Tại thời điểm này, chúng tôi cần biết thêm về các điều khoản và đầu ra từ In[2]
không hoàn toàn hữu ích như chúng tôi muốn.
Tôi muốn mở rộng lại điều này với LogicalExpand
cung cấp cho bạn mười hai cụm từ đơn giản hơn đáng kể so với những gì chỉ một mình Reduce
cung cấp. (Bạn sẽ lưu ý rằng chỉ trong sáu từ ngữ cuối cùng thực sự liên quan đến Delta
, vì vậy tôi muốn kiểm tra xem các điều kiện biến thực sự phù hợp với những.) Lựa chọn những sáu điều kiện cuối cùng mà thôi,
In[3]:=%2[[-6;;]] // Simplify
Out[3]:= m != 0
&& ((Omega > 0 && Delta < something) || (Omega > 0 && Delta < something else)
&& (1 < e < 2 || e < 1 || e > 2)
Thuật ngữ thứ ba là tautological, nhưng Simplify
cũng không phải FullSimplify
dường như không thể xóa nó. Và chúng tôi thực sự chỉ quan tâm đến trung hạn. Nếu Omega > 0
biểu thức của bạn sau đó có thể được trích xuất qua %[[2,1,2]]
.
Đưa này tất cả cùng nhau trong một biểu thức:
In[4]:=Simplify[LogicalExpand[Reduce[<expression>, Delta, Reals]]][[-6;;]] //
Simplify // #[[2,1,2]]&
Out[4]:= Delta < something
Sau khi viết đó ra, tôi nhận ra rằng có một cách đơn giản hơn nhiều để tiếp cận này. Tôi muốn làm lại dòng 2 ở trên, như sau:
In[5]:= Reduce[ <full expression>, Delta, Reals] // LogicalExpand // Simplify //
Cases[#, ___ && Delta < _ && ___, Infinity]&
Out[5]:= {Omega > 0 && Delta < something}
Hoặc, miễn là bạn thực sự biết rằng m != 0
và Omega > 0
bạn có thể làm
In[6]:= Reduce[ <expr> && m!=0 && Omega > 0, Delta, Reals ] // LogicalExpand //
Simplify // #[[2]]&
Đây là câu hỏi Mathematica hợp lệ. Vui lòng không bỏ phiếu để đóng số –
Thấy chỉnh sửa của bạn sau khi đăng. Vui lòng đăng biểu hiện thực tế của bạn –