मैं चर के विश्लेषणात्मक प्रबंधन (जैसे मैट्रिक्स गुणन आदि) के लिए SymPy का उपयोग कर रहा हूं। ऐसा करने के बाद, मैं एक नई सिम्पी अभिव्यक्ति के साथ समाप्त होता हूं जिसे मैं Matplotlib के साथ प्लॉट करने के लिए उपयोग करना चाहता हूं। अब तक, ऐसा करने का मेरा एकमात्र तरीका था, सिम्पी एक्सप्रेशन को प्रिंट करना और इसे मैन्युअल रूप से एक नए परिभाषित फ़ंक्शन में पेस्ट करना।

मैं सिम्पी एक्सप्रेशन को कॉपी और पेस्ट किए बिना संख्यात्मक व्याख्या के लिए एक फ़ंक्शन में सीधे कैसे परिवर्तित कर सकता हूं?

एक न्यूनतम कार्य उदाहरण निम्नलिखित है:

import sympy as sp
import matplotlib.pyplot as plt
import numpy as np

sp.var('x A B') # x will later be the variable, A and B will be constants
temp = A*x+B # intermediate calculations
f = temp*x # function in reality, it will be more complicated.
print(f) # I printed f in order to find the expression and copy-pasting it into the function below.

def func(x,A,B):
    return x*(A*x + B) # This statement was copy-pasted. This line should be changed, s.t. copy-pasting is not necessary!

#Now we can handle the function numerically for plotting (using matplotlib and numpy)
xspace = np.linspace(0,5)
plt.plot(xspace,func(x=xspace,A=1,B=2))
2
Jann 19 मार्च 2020, 16:20

1 उत्तर

सबसे बढ़िया उत्तर

Sympy का lambdify ठीक इसी के लिए मौजूद है। बस अपनी func की परिभाषा को इसके साथ बदलें:

func = sp.lambdify((x,A,B),f)
3
Wrzlprmft 19 मार्च 2020, 13:41