التفاوتات الكاملة بشكل كامل ثم إعادة ترتيبها في Mathematica 7

StackOverflow https://stackoverflow.com/questions/4053315

سؤال

أنا أستخدم Mathematica 7 في واجهة دفتر الملاحظات وأريد إعادة ترتيب عدم المساواة حتى أحصل على متغير معين على جانب واحد. على سبيل المثال.

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

يعطي

L > r + 2 x^3

ومع ذلك ، أريد:

r < L-2x^3

هل هناك على أي حال يمكننا توجيهات fullsimplify لطلب المتغيرات بطريقة معينة؟ أنا أستخدم Mathematica للعرض التقديمي أيضًا ، فإن الطريقة التي أرتبت بها المتغيرات مهمة بالنسبة لي.

شكرًا

ريال سعودى

تحرير: لقد حاولت التقليل ، في حين أن ذلك يعمل في هذا المثال ، لا يعمل مع التعبير الفعلي الذي لدي ، أحصل على خطأ في القول ،

 This system cannot be solved with the methods available to 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]< *something*شكرًا!

هل كانت مفيدة؟

المحلول

بادئ ذي بدء ، فإن الحصول على Mathematica لإخراج شيء ما كما تريد تمامًا هو شيء من الفن الأسود ، ويتطلب الكثير من الصبر. ومع ذلك ، إذا تقدمت بطلب Reduce إلى تعبيرك الأصلي ، حسب بيليساريوس, ، ستحصل

In[1]:=Reduce[x^3 + L + r > 3 x^3 + 2 r, r, Reals]
Out[1]:= r < L - 2 x^3

ومع ذلك ، كما أشرت ، هذا ليس التعبير الكامل ، و Reduce ينتج ما لا يمكن وصفه إلا بأنه إجابة أقل من مفيدة عند تطبيقها عليه. في هذه المرحلة حيث يلزم الصبر والكثير من المعالجة الإضافية. سأبدأ مع

In[2]:=Reduce[ <full expression>, Delta, Reals] // LogicalExpand // Simplify

على الرغم من أن هذا لا يمنحك إجابة نظيفة ، إلا أنه أفضل من ذي قبل ويكشف عن بنية الحل الخاص بك. (لن أستخدم FullSimplify كما يمزج Delta في المصطلحات الأخرى.) في هذه المرحلة ، نحتاج إلى معرفة المزيد عن المصطلحات نفسها ، والإخراج من In[2] ليس مفيدًا تمامًا كما نريد.

سأعيد التوسيع هذا مع LogicalExpand الذي يمنحك اثني عشر مصطلحًا أبسط بكثير من ما Reduce وحده يعطي. (ستلاحظ أن الشروط الستة الأخيرة فقط تتضمن فعليًا Delta, ، لذلك أتحقق من أن الشروط المتغيرة تتطابق فعليًا معها.)

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)

المصطلح الثالث هو tautologich ، ولكن Simplify ولا FullSimplify لا يمكن أن يزيله. ونحن مهتمون حقًا فقط بالمصطلح الأوسط على أي حال. إذا Omega > 0 يمكن بعد ذلك استخراج تعبيرك عبر %[[2,1,2]].

وضع كل هذا معًا في تعبير واحد:

In[4]:=Simplify[LogicalExpand[Reduce[<expression>, Delta, Reals]]][[-6;;]] //
       Simplify // #[[2,1,2]]&
Out[4]:= Delta < something

بعد كتابة ذلك ، أدركت أن هناك طريقة أبسط بكثير للتعامل مع هذا. سأعيد السطر 2 أعلاه ، على النحو التالي:

In[5]:= Reduce[ <full expression>, Delta, Reals] // LogicalExpand // Simplify //
       Cases[#, ___ && Delta < _ && ___, Infinity]&
Out[5]:= {Omega > 0 && Delta < something}

أو شريطة أن تعرف ذلك حقًا m != 0 و Omega > 0 يمكنك ان تفعل

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

نصائح أخرى

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

سوف تفعل.

نظرًا لأنني لا أستخدم Mathematica للتحرير أو العرض التقديمي ، فقد يأتي شخص آخر مع بعض النصائح الإضافية.

يحرر

بناءً على تعليقك ، يمكنك المحاولة:

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]  

حيث قمت بتصحيح بعض أخطاء بناء الجملة. ولكن ستجد أن التعبير الناتج غير سار إلى حد ما. لتبسيطها ، تحتاج إلى معرفة النطاقات الصحيحة للموظفين. يرجى نشر هذه المعلومات إذا كان لديك. هول!

فحص إخراج

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]]  

لترى ذلك

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

لكن

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

لأن علامة [أوميغا] في مقام expr. كل هذا يتجاهل الشروط الأخرى على قيم L و E و M و [أوميغا] التي ستغير النتيجة وقد تغير الإصدارات المختلفة من Mathematica شكل النتيجة من التبسيط [] .

جزء من الصعوبة في تقليل التعبيرات التي يتم إرجاعها عن طريق تقليل [] و logicalexpand [] هو أن التعبير الموردين ينطوي على الانقسام بمقدار الصفر عند e = 1 أو = 2.

أحصل على شيء مضغوط مع

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))

حيث أنفقت أي جهد لاستبدال أسماء الرموز برموز.

(لماذا على افتراض [...]؟ لأنني كسول جدًا بحيث لا أتذكر الحصول على نفس الافتراضات ، تمشق في كل خطوة تبسيط.)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top