使用字符串参数代替符号替换向量中的sympy符号

2024-05-14 20:01:47 发布

您现在位置:Python中文网/ 问答频道 /正文

是否有其他方法可以实现这一点:

expr = x**3 + 4*x*y - z
expr.subs([(x, 2), (y, 4), (z, 0)])
40

通过传递,比如说,('x',2)而不是一个符号x?在

我试着把类似的东西应用到sympy向量上。在

编辑:

所以我试着在subs参数中使用dict,它适用于这种类型的表达式,但当符号是动态符号(来自力学模块)时就不行了。在

我有一些向量

^{pr2}$

我试着用dict方法,但是没有任何东西被替代。在

我也试着换成

v.to_matrix(some_inertial_frame)
Matrix([
[x(t)],
[y(t)],
[   0]])

使用

{'x(t)': 1, {'y(t)': 2}

但又一次,什么都没有被取代。在


Tags: 模块方法编辑类型参数表达式符号动态
1条回答
网友
1楼 · 发布于 2024-05-14 20:01:47

有一个自定义的^{} function,专门用于将值替换到由sympy.physics.mechanics.dynamicsymbols构建的表达式中。在

^{} method不同,mechanics.msubs不尝试将字符串转换为dynamicsymbols。但您可以自己调用mechanics.dynamicsymbols

In [126]: mechanics.dynamicsymbols('x')
Out[128]: x(t)

例如

^{pr2}$

相关问题 更多 >

    热门问题