如何将值数组插入 Python 中的符号函数

How to Insert an Array of Values to a Symbolic Function in Python

我想研究python中的符号函数。我想创建 y(x) = x^2 + 2x + 3 并将其绘制在 [1, 255] 范围内。我想使用 subs() 函数通过 for 循环计算值。但是,当我 运行 出现此错误时:

IndexError('list index out of range')

你能帮帮我吗?

import numpy as np
import matplotlib.pyplot as plot
from sympy import *

a = [1,2,3]

x = Symbol('x')
fx = a[0]*x**2 + a[1]*x + a[2]

t = list(range(1,256))
y = np.zeros(256)

for i in t:
    y[i] = fx.subs({x:t[i]})

plot.plot(t,y)
plot.show()

只需替换为以下几行:

y = np.zeros(len(t))

for i in range(len(t)):
    y[i] = fx.subs({x:t[i]})

问题是 t 的长度只有 255y 的长度在你的代码中是 256 因为你定义了 y = np.zeros(256) ,因此 Index Error 因为没有 t[256]。我使用 y = np.zeros(len(t)) 是因为您的 y 点与 t(或 x)点一样多。顺便说一句,您很可能会像现在这样在 plot 命令中遇到错误,因为您调用了 import matplotlib.pyplot as plot。我会简单地称它为 plt 而不是 plot

输出