एक समारोह (संयुक्त रूप से) चर का एक दिए गए समुच्चय में रैखिक अगर सब दूसरे क्रम डेरिवेटिव शून्य (मिश्रित सहित) तथा इससे हो रहा है।
def is_linear(expr, vars):
for x in vars:
for y in vars:
try:
if not sympy.Eq(sympy.diff(expr, x, y), 0):
return False
except TypeError:
return False
return True
पाश में, हर व्युत्पन्न ले जाया गया और शून्य करने के लिए समानता के लिए चेक किया गया है: यह इस प्रकार की जाँच की जा सकती है। यदि सिम्पी यह तय नहीं कर सकता है कि यह शून्य है (TypeError उठा रहा है) तो यह समान रूप से शून्य नहीं है।
आउटपुट:
>>> is_linear(eq1, [a,d])
True
>>> is_linear(eq1, [a,c])
False
अलग linearity के लिए जाँच करने के लिए (जैसे, एक में अलग से और अलग से ख में), ड्रॉप मिश्रित आंशिक डेरिवेटिव:
def is_separately_linear(expr, vars):
for x in vars:
try:
if not sympy.Eq(sympy.diff(expr, x, x), 0):
return False
except TypeError:
return False
return True
आउटपुट:
>>> is_separately_linear(eq1, [a,d])
True
>>> is_separately_linear(eq1, [a,c])
True
स्रोत
2016-03-29 17:10:38
अभिव्यक्ति कितनी जटिल हो सकती है? –