首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Jupyter Nootebook中的Sympy定义方程、微分和绘图?

如何使用Jupyter Nootebook中的Sympy定义方程、微分和绘图?
EN

Stack Overflow用户
提问于 2021-09-17 22:37:29
回答 1查看 31关注 0票数 0

在Jupyter Notebook中,我想定义一个方程式,微分并绘制方程式。

代码语言:javascript
复制
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 work

display(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: ...)

在此之前,非常感谢您。

马蒂亚斯

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-17 23:44:58

您可以使用SymPy plot函数,而不是matplotlib函数。matplotlib绘图函数需要数组作为输入,而渐近度函数则接受渐近表达式(然后计算值以生成matplotlib的数组):

代码语言:javascript
复制
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))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69230133

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档