python - IndexedBase 的替代方案

标签 python sympy

考虑以下因素:

import sympy
from sympy import *

x = IndexedBase('x')
i = Symbol('i', integer=True)

z = x[i] + x[i+1] + x[i+2]
print z

x[i+1] = 2 # <-- problem

print z

在“x[i+1] = 2”处,我遇到“TypeError:'IndexedBase'对象不支持项目分配” 我希望允许更新 x[i+1] 的符号值,并让“print z”给我更新的符号值。对我来说,替换 z 中的 x[i+1] 项是不够的,因为可能有其他表达式使用相同的 x[i+1] 项,并且我希望它们也被更新。

由于 IndexedBase 不支持项目分配,建议使用哪些替代方案来代替 IndexedBase?

我使用 IndexedBase 是因为我想用符号引用来表示内存。

请让我知道如何重新表述我的问题和/或需要更好地帮助您帮助我。

最佳答案

SymPy 表达式不可变。如果您想更改它们,则需要使用像 subs 这样的函数来创建新表达式(例如 z2 = z.subs(x[i + 1], 2))。

关于python - IndexedBase 的替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27052718/

相关文章:

python - 将不同的聚合应用于 pandas GroupBy 组

python - SimpleXMLRPCServer 不支持方法签名?

python - 使用 FFT 计算滤波器 (b,a,x,zi)

python - Selenium ChromeDriver "get"无法可靠地加载@import 字体

python - 复数 : convert SymPy to numeric (I to 1j)

python - 已安装 sympy,但未找到 sympy.mpmath

python - 如何通过计算dict中的值来获取key?

python - 无法在我的类(class)中使用 sympy 解析器;类型错误 : 'module' object is not callable

python - 为什么我的 Sympy 中的 Rician 与 Scipy 中的 Rician 不匹配?

python - 用python求解联立多元多项式方程