首页 > 解决方案 > 如何绘制 sympy 差分数组和循环方法?

问题描述

我是 python 的新手,我试图绘制 (x**2 + 4*x + 4) 并且它与 sympy diff 不同。第一个函数工作正常,但微分值总是显示 0。无论如何我可以在 sympy 微分上赋值吗?

import sympy as sym
from math import *
import matplotlib.pyplot as plt

#array penampung titik pada grafik
sets = []
sets2 = []

#membuat turunan dari fungsi x**2 + 4*x +4
x = sym.symbols('x')
a = sym.diff(x**2 + 4*x +4)

#mengisi array 
for x in range(0, 6):
    sets.append(x**2 + 4*x +4)
for x in range(0, 6):
    sets2.append(x)

#just checking
print(sets2)

#menampilkan array dalam grafik
plt.plot(range(0,6),sets,'blue')
plt.plot(range(0,6),sets2,'red')
plt.ylabel('output')
plt.xlabel('input')
plt.show()

我已经尝试使用while在内部制作函数,但它仍然给我错误

标签: pythonfor-loopmatplotlibsympycalculus

解决方案


您的变量x将被循环替换为数值。怎么样

f = x**2 + 4*x + 4
df = f.diff()
for xi in range(6):
    sets.append(f.subs(x, xi))
    sets2.append(df.subs(x, xi))

推荐阅读