2010-10-29 31 views
5

Tôi đang sử dụng Mathematica 7 trong giao diện sổ ghi chép và tôi muốn sắp xếp lại một sự bất bình đẳng để tôi nhận được một biến nhất định ở một bên. Ví dụ:Sự bất bình đẳng đầy đủ và sau đó sắp xếp lại chúng trong Mathematica 7

FullSimplify[x^3+L+r>3x^3+2r] 

Cho

L > r + 2 x^3 

Tuy nhiên, tôi muốn:

r < L-2x^3 

Liệu có cách nào chúng tôi có thể hướng dẫn FullSimplify để đặt hàng biến theo một cách cụ thể không? Tôi đang sử dụng Mathematica để trình bày cũng như vậy, cách tôi sắp xếp các biến là quan trọng đối với tôi.

Cảm ơn

SR

Edit: Tôi cố gắng Giảm thiểu, trong khi đó làm việc cho ví dụ này, nó không hoạt động cho sự biểu hiện thực tế tôi có, tôi nhận được một lỗi nói rằng,

This system cannot be solved with the methods available to Reduce. 

Chỉnh sửa: đây là biểu thức thực tế:

{L - (m^2 ((-2 + e)^2 \[Delta] + (5 + 
    2 e (-7 + 4 e)) \[Tau]) \[Omega])/(36 (2 - 3 e + e^2)^2)} > {0} 

Tôi muốn điều này được hiển thị d dưới dạng \[delta]< *something* Cảm ơn!

+1

Đây là câu hỏi Mathematica hợp lệ. Vui lòng không bỏ phiếu để đóng số –

+0

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 –

Trả lời

2

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 != 0Omega > 0 bạn có thể làm

In[6]:= Reduce[ <expr> && m!=0 && Omega > 0, Delta, Reals ] // LogicalExpand // 
     Simplify // #[[2]]& 
+0

+1 cho "Đó 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." Rất đúng. –

+0

cảm ơn!thực sự hữu ích – skr

+0

@belisarius, Điều này rất dễ dàng; Tôi có thể lãng phí cả buổi sáng định dạng lại một biểu hiện để làm cho nó trông giống như cách tôi muốn. Yêu thích cá nhân của tôi là thay thế 'I' bằng' q' ('Phức tạp [a_, b _]:> a + q b'), để tôi có thể sử dụng' Thu thập' trên đó. Đôi khi nó là cách duy nhất để có được một kết quả hợp lý. – rcollyer

1
Reduce[x^3 + L + r > 3 x^3 + 2 r, r, Reals] 

Sẽ thực hiện.

Vì tôi không sử dụng Mathematica để chỉnh sửa hoặc trình bày, có lẽ người khác có thể đến cùng với một số lời khuyên bổ sung.

Sửa

dựa trên nhận xét của bạn, bạn có thể thử:

Reduce[{L - (m^2 ((-2 + e)^2 Delta + (5 + 
     2 e (-7 + 4 e)) Tau) Omega)/(36 (2 - 3 e + e^2)^2) > 0}, Delta, Reals] 

Nơi tôi sửa chữa một số lỗi cú pháp. Nhưng bạn sẽ thấy rằng biểu thức kết quả là khá khó chịu. Để đơn giản hóa nó hơn nữa, bạn cần phải biết phạm vi hợp lệ cho các vars của bạn. Vui lòng đăng thông tin đó nếu bạn có. HTH!

+0

Chỉnh sửa: đây là biểu thức thực tế: {L - (m^2 ((-2 + e) ​​^ 2 \ [Delta] + (5 + 2 e (-7 + 4 e)) \ [Tàu]) \ [Omega])/(36 (2 - 3 e + e^2)^2)}> {0} Tôi muốn điều này được hiển thị dưới dạng \ [delta] <* * Cảm ơn! – skr

+0

@ user491410 Bạn có biết các dấu hiệu của L, e, Delta, Tau, Omega không? –

0

Kiểm tra đầu ra của

r=Simplify[Reduce[L-(m^2((-2+e)^2\\[Delta]+(5+2e(-7+4e))\\[Tau])\\[Omega])/(36(2-3e+e^2)^2)>0,\\[Delta],Reals]] 

để xem rằng

r[[2,1,1,1]] gives \\[Delta]>expr, 

nhưng

r[[2, 1, 2, 2]] gives \\[Delta]< expr, 

vì ký hiệu \ [Omega] trong mẫu số của expr. Tất cả điều này bỏ qua các điều kiện khác về giá trị của L, e, m và \ [Omega] sẽ thay đổi kết quả và các phiên bản khác nhau của Mathematica có thể thay đổi dạng kết quả từ Simplify [Reduce []] sẽ làm mất hiệu lực tất cả điều này .

0

Một phần khó khăn trong việc giảm các biểu thức được trả về bởi Reduce [] và LogicalExpand [] là biểu thức được cung cấp liên quan đến phép chia bằng 0 khi e = 1 hoặc = 2.

tôi nhận được một cái gì đó bearably nhỏ gọn với

 
Assuming[{ 
    (L | m | e | Tau | Omega | Delta) \[Element] Reals 
    }, 
FullSimplify[ 
    LogicalExpand[ 
    Reduce[{L - (m^2 ((-2 + e)^2 Delta + (5 + 
       2 e (-7 + 4 e)) Tau) Omega)/(36 (2 - 3 e + e^2)^2) > 
     0}, Delta, Reals] 
    ] 
    ] 
] 
Out[]:= (L > 0 && (1 < e < 2 || e < 1 || e > 2) && (m == 0 || Omega == 0)) || 
    (m != 0 && (
     (Omega > 0 && 
     Delta < (36 (-1 + e)^2 L)/(m^2 Omega) + ((-5 + 2 (7 - 4 e) e) Tau)/(-2 + e)^2) || 
     (Delta > (36 (-1 + e)^2 L)/(m^2 Omega) + ((-5 + 2 (7 - 4 e) e) Tau)/(-2 + e)^2 && 
     Omega < 0)) && 
    (e > 2 || e < 1 || 1 < e < 2)) 

nơi tôi đã chi tiêu không có nỗ lực để thay thế tên biểu tượng với các biểu tượng.

(Tại sao giả sử [...]? Bởi vì tôi quá lười để nhớ có cùng giả định bị kẹt vào từng bước đơn giản hóa.)

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