Как генерировать символические переменные в цикле for с помощью Sympy (Python) - PullRequest
0 голосов
/ 23 сентября 2019

В зависимости от ввода моего инструмента мне нужно несколько переменных: A_n, B_n, C_n и D_n для 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, чтобы я не могдолжны написать это вручную?

1 Ответ

0 голосов
/ 23 сентября 2019

Вы можете использовать функции с целочисленными аргументами для представления ваших констант или индексированных переменных.Вот игрушечный пример:

>>> 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]
...