[英]How to generate symbolic variables in a for loop using Sympy (Python)
根据我工具的输入,我需要多个变量: A_n
、 B_n
、 C_n
和D_n
用于[1, x]
范围内的n
(整数),以制定以下形式的x
方程:
W(z) = A_n*cosh(beta*z) + B_n*sinh(beta*z) + C_n*cos(beta*z) + D_n*sin(beta*z)
我正在使用 Sympy,但我找不到在[1, x]
范围内为 integer 替换n
并在循环中使用该符号( A1
、 A2
、 B1
、 B2
等)的方法(生成符号或用于进一步计算。
如何在 for 循环中方便地编写或调用这些变量,这样我就不必手动编写了?
您可以使用带有 integer arguments 的函数来表示您的常量或索引变量。 这是一个玩具示例:
>>> A,B,C = symbols('A:C', cls=Function)
>>> eq = A(i)*x + B(i)*y + C(i)
>>> [eq.subs(i,j) for j in range(2)]
[x*A(0) + y*B(0) + C(0), x*A(1) + y*B(1) + C(1)]
当您知道这些函数时,可以将它们替换为值。
除了使用这些函数,您也可以使用 Indexed:
>>> Ai=Indexed('A',i)
>>> Ai
A[i]
>>> _.subs(i,0)
A[0]
我刚刚遇到了这个问题(抱歉我的答案没有早点出现),经过一个小时的尝试,这就是我的结果。 顺便说一下,我已经将 sympy 导入为sm 。 我使用 globals 参数将字符串转换为合法的变量名,然后我可以通过强制 i 和 j 成为字符串来创建具有正确索引的字符串。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.