簡體   English   中英

如何使用 Sympy (Python) 在 for 循環中生成符號變量

[英]How to generate symbolic variables in a for loop using Sympy (Python)

根據我工具的輸入,我需要多個變量: A_nB_nC_nD_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並在循環中使用該符號( A1A2B1B2等)的方法(生成符號或用於進一步計算。

如何在 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]

使用 for 循環創建 sympy 變量/符號的示例

我剛剛遇到了這個問題(抱歉我的答案沒有早點出現),經過一個小時的嘗試,這就是我的結果。 順便說一下,我已經將 sympy 導入為sm 我使用 globals 參數將字符串轉換為合法的變量名,然后我可以通過強制 i 和 j 成為字符串來創建具有正確索引的字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM