在Jupyter Notebook中,我想定义一个方程式,微分并绘制方程式。
import sympy as sp
from IPython.display import display
sp.init_printing()
import matplotlib.pyplot as plt
import numpy as np
x = sp.symbols('x')
def func(x):
a= sp.sympify("4/5")
return (x**3+a*x**2)
display(func(x))
def dfunc(x):
a = sp.diff(func(x),x)
return a
display(dfunc(x))
x = np.linspace(-10,10,20)
plt.plot(x,func(x))
plt.plot(x,dfunc(x)) # doesn't workdisplay(dfunc(x))显示了所需的函数,但plt.plot(x,dfunc(x))返回了错误消息ValueError: cannot derive by this array
有没有人知道怎么弄到这个图?
(它也不能与sp.integrate(func(x),x)一起使用,而不是sp.diff(func(x),x)。只返回另一条错误消息( ValueError: Invalid limits given: ...)
在此之前,非常感谢您。
马蒂亚斯
发布于 2021-09-17 23:44:58
您可以使用SymPy plot函数,而不是matplotlib函数。matplotlib绘图函数需要数组作为输入,而渐近度函数则接受渐近表达式(然后计算值以生成matplotlib的数组):
In [36]: import sympy as sym
In [37]: a = sym.Rational(4, 5)
In [38]: x = sym.Symbol('x')
In [39]: f = x**3 + a*x**2
In [40]: f
Out[40]:
2
3 4⋅x
x + ────
5
In [41]: f.diff(x)
Out[41]:
2 8⋅x
3⋅x + ───
5
In [42]: sym.plot(f.diff(x))https://stackoverflow.com/questions/69230133
复制相似问题