如何使用 Sympy 在 for 循环中生成符号变量 (Python)
How to generate symbolic variables in a for loop using Sympy (Python)
根据我的工具的输入,我需要多个变量:A_n
、B_n
、C_n
和 D_n
for n
(整数)范围 [1, x]
以制定以下形式的 x
等式:
W(z) = A_n*cosh(beta*z) + B_n*sinh(beta*z) + C_n*cos(beta*z) + D_n*sin(beta*z)
我正在使用 Sympy,但我找不到一种方法来替换 n
范围 [1, x]
中的整数并使用该符号(A1
、A2
, B1
, B2
, 等)循环(生成符号或进一步计算。
如何在for循环中方便地编写或调用这些变量,而不用手写?
您可以使用带有整数参数的函数来表示常量或索引变量。这是一个玩具示例:
>>> 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]
根据我的工具的输入,我需要多个变量:A_n
、B_n
、C_n
和 D_n
for n
(整数)范围 [1, x]
以制定以下形式的 x
等式:
W(z) = A_n*cosh(beta*z) + B_n*sinh(beta*z) + C_n*cos(beta*z) + D_n*sin(beta*z)
我正在使用 Sympy,但我找不到一种方法来替换 n
范围 [1, x]
中的整数并使用该符号(A1
、A2
, B1
, B2
, 等)循环(生成符号或进一步计算。
如何在for循环中方便地编写或调用这些变量,而不用手写?
您可以使用带有整数参数的函数来表示常量或索引变量。这是一个玩具示例:
>>> 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]