आप FullSimplify
लिए अपने स्वयं के परिवर्तनों की आपूर्ति करके FullSimplify
का अनुकूलित संस्करण का उपयोग करें और यह विवरण यह पता लगाने कर सकते हैं:
In[1]:= MySimplify[expr_,equivs_]:= FullSimplify[expr,
TransformationFunctions ->
Prepend[
Function[x,x-#]&/@[email protected][{#,-#}&,equivs/.Equal->Subtract],
Automatic
]
]
In[2]:= MySimplify[2a+b+c*d+e*c, {a+b==1}]
Out[2]= a + c(d + e) + 1
equivs/.Equal->Subtract
बदल जाता है
यहाँ इस हिस्से के लिए एक उदाहरण है शून्य के बराबर अभिव्यक्तियों में समीकरण दिए गए हैं (उदाहरण के लिए a+b==1
->a+b-1
)। [email protected][{#,-#}&, ]
तब भी नकारात्मक संस्करणों का निर्माण करता है और उन्हें एक सूची में फ़्लैट करता है। Function[x,x-#]& /@
शून्य अभिव्यक्तियों को फ़ंक्शंस में बदल देता है, जो शून्य अभिव्यक्तियों को घटाता है (#
) जिसे बाद में उन्हें दिया गया है (x
) FullSimplify
द्वारा।
यह अपनी खुद की FullSimplify
के लिए, भी, अगर FullSimplify
के डिफ़ॉल्ट ComplexityFunction
(जो मोटे तौर पर LeafCount
के बराबर है), जैसे से सरल अलग है की अपने विचार ComplexityFunction
निर्दिष्ट करने के लिए आवश्यक हो सकता है:
MySimplify[expr_, equivs_] := FullSimplify[expr,
TransformationFunctions ->
Prepend[
Function[x,x-#]&/@[email protected][{#,-#}&,equivs/.Equal->Subtract],
Automatic
],
ComplexityFunction -> (
1000 LeafCount[#] +
Composition[
Total,Flatten,Map[ArrayDepth[#]#&,#]&,CoefficientArrays
][#] &
)
]
में अपने उदाहरण के मामले में, डिफ़ॉल्ट ComplexityFunction
ठीक काम करता है, हालांकि।
'Replace' की जगह subexpressions संरचनात्मक समकक्ष के आधार पर ('पूर्णफॉर्म' देखें), यह नहीं करता है कोई बीजगणितीय हेरफेर प्रदर्शन नहीं करते हैं। आप 'Reduce' का उपयोग करने का प्रयास कर सकते हैं, जो इन मामलों के लिए डिज़ाइन किया गया है। हालांकि मैं अब इसका परीक्षण नहीं कर सकता। –
अभिव्यक्ति आमतौर पर बहुपद होने पर पॉलिनोमायरेडियड में देखना चाहती है। –