任意の数の連立方程式を解く関数をコーディングしています。方程式の数は、関数のパラメーターの1つによって設定され、各方程式は、方程式の数と同じ数のシンボルから作成されます。これは、方程式を単純にハードコーディングすることはできず、方程式をまとめるのに必要な記号さえもできないことを意味します。関数は、任意の数の方程式を処理できる必要があります。だから、私の質問は、シンボルのリストをどのように作成するのですか?
私には1つの可能な解決策がありますが、私の腸はそれがあまり効率的ではないだろうと私に言います。これを行うためのより良い方法があるかどうか私に知らせてください。
私はSymPyに不慣れで、まだ自分の道を感じています。私が見る限り、シンボルは文字列で定義する必要があります。したがって、文字に増分番号(たとえば、「t0」、「t1」など)を追加して一連の文字列を作成し、それらをリストに追加して、それらの文字列をパラメーターとして使用して記号を作成できます。これらのシンボル自体がリストに格納され、方程式を作成するために使用されます。
def solveEquations(numEquations):
symbolNameList = []
symbolList = []
equationList = []
for i in range(numEquations):
name = 't' + str(i)
symbolNameList.append(name)
symbolList.append(Symbol(name))
for i in range(numEquations):
equation = 0
for sym in symbolList:
equation += sym ** i # Or whatever structure the equation needs
equationList.append(equation)
#Then go on to solve the equations...
これはこれを行うための最良の方法ですか、それともより効率的なアプローチがありますか?