私は方程式を自動的に生成してリストに追加するスクリプトを持っています。Pythonファイルにsympy行列を書く
:
a、b、c、dすべてのsympy記号。
はその後sympy行列にリストを変換し、ヤコビ行列
eq = sympy.Matrix(eq)
jacobi = eq.jacobian([a, b, c, d])
私は私が別のPythonスクリプトでそれを使用するためにはPythonのファイルでこのヤコビアンを保存したいが計算されます。
現在、私は、文字列のリストを使用して定義を作成して、Pythonのファイルに
variable_list = [a, b, c, d]
jacobian_lines = ["def jacobian(variables):",
' """ Returns the evaluated jacobian matrix',
' :param variables: a list of numeric values to evaluate the jacobian',
' """', '', ' {} = variables'.format(str(variable_list)), '',
' j = {}'.format(jacobi), '', " return j"]
file_path = 'jacobian.py'
file = open(file_path, 'w')
for line in jacobian_lines:
file.write('{}\n'.format(line))
をそれを書くには、これを行うには良い/より正確な方法はありますか?
これを行うにはこれが最善の方法です。 SymPyは現在CやFortranのような他の言語を対象としたコード生成機能を持っていますが、将来はPythonコードを書く能力が得られます。 – asmeurer