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