如何解决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)
解决方法
感谢@Guimout 和@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:\t\t',y_funktion)
print('Ableitung:\t\t',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()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。