Python在派生后绘制函数



你能帮忙吗。我们试图在推导后绘制函数,但收到了一条错误消息。

ValueError: x and y must have same first dimension, but have shapes (20,) and (1,)

我们认为问题在于,该函数不是用第二个函数中的值计算的,因此无法确定问题所在。

import numpy as np
import matplotlib.pyplot as plt
import sympy as sp
#from sympy import *
x = sp.symbols('x')
y_funktion = x**5-5*x**4-30*x**3+110*x**2+29*x-105
def funktionenErstellen(y_funktion):    
y_funktion_ableitung = sp.diff(y_funktion, x)
y_funktion_stammfunktion = sp.integrate(y_funktion, x)
print('Funktion:', y_funktion)
print('Ableitung:', y_funktion_ableitung)
return [y_funktion_ableitung, y_funktion_stammfunktion]

def plotFunktionen(funktion):
x = np.arange(-10, 10, 1.0)  
plt.xlim(-7.5, 9)
plt.ylim(-900,900)
plt.grid()
# Plot the points using matplotlib
plt.xlabel('X-Achse')
plt.ylabel('Y-Achse')
print('funktion:',  funktion)
plt.plot(x, funktion, color = "r", label = 'Funktion')
#plt.plot(x, y_funktion_ableitung, color = "g", label = 'Ableitung')
#plt.plot(x, y_funktion_stammfunktion, color = "b", label = 'Stammfunktion')
plt.legend()
[y_funktion_ableitung, y_funktion_stammfunktion] = funktionenErstellen(y_funktion)
plotFunktionen(y_funktion)
plotFunktionen(y_funktion_ableitung)
plotFunktionen(y_funktion_stammfunktion)

感谢您@Guimoute和@JohanC的回答我们设法使它运转起来。

import matplotlib.pyplot as plt
import sympy as sp
x = sp.symbols('x')
y_funktion = x**5-5*x**4-30*x**3+110*x**2+29*x-105
def funktionenErstellen(y_funktion):    
y_funktion_ableitung = sp.diff(y_funktion, x)
y_funktion_stammfunktion = sp.integrate(y_funktion, x)
print('Funktion:tt', y_funktion)
print('Ableitung:tt', y_funktion_ableitung)
print('Stammfunktion:t', y_funktion_stammfunktion)
return [y_funktion_ableitung, y_funktion_stammfunktion]

def plotFunktionen(funktion, typ, color):

x_wert = np.arange(-10, 10, 0.2)
f = sp.lambdify(x, funktion)
f = f(x_wert)
plt.xlim(-7.5, 9)
plt.ylim(-900,900)
plt.grid()

# Plot the points using matplotlib
plt.xlabel('X-Achse')
plt.ylabel('Y-Achse')
plt.plot(x_wert, f, color = color, label = typ)
[y_funktion_ableitung, y_funktion_stammfunktion] = funktionenErstellen(y_funktion)
plotFunktionen(y_funktion, 'Funktion', 'r')
plotFunktionen(y_funktion_ableitung, 'Ableitung', 'g')
plotFunktionen(y_funktion_stammfunktion, 'Stammfunktion', 'b')
plt.legend()

最新更新