私は、テキストを解く方程式に変換するための一般的なPythonの方法を探しています。例えばソルバの方程式を再整理する
:
これは5を離れる
e1,e2=0.58,0.62
ma1,ma2=0.85,1.15
mw=0.8
Cpa,Cpw=1.023,4.193
dba,dbr=0.0,25.0
を初期化するためにいくつかの定数および(ソルバではなく、読みやすくするためにここに書かれた)の方程式の組
Q=e1*ma1*Cpa*(tw1-dba)
Q=ma1*Cpa*(dbs-dba)
Q=mw*Cpw*(tw1-tw2)
Q=e2*ma2*Cpa*(dbr-tw2)
Q=ma2*Cpa*(dbr-dbo)
があってもよいですおそらくシステムを解決することができます。
Q, dbo, dbr, tw1, tw2
実際のシステムは非線形であり、はるかに複雑です。
私はすでにscipy、Delphi、Sage ...でこの簡単な例を解決していますので、解決部分は探していません。
方程式はテキストエディタに直接入力されています。私はPythonプログラムに私に未知数の配列とエラー関数の配列を与えたいと思います。
y = mysolver.fsolve(f, x)
ので、上記の例
x=[Q,dbo,dbr,tw1,tw2]
f=[Q-e1*ma1*Cpa*(tw1-dba), Q-ma1*Cpa*(dbs-dba), Q-mw*Cpw*(tw1-tw2),
Q-e2*ma2*Cpa*(dbr-tw2), Q-ma2*Cpa*(dbr-dbo)]
のために、私はただの未知数を抽出する方法を知っていると誤差関数を作成しないでください。
私はcompile.parse()関数を試しましたが、構造化された内訳を与えるようです。
誰もが最良のアプローチについていくつかのアイデアを提供できますか?
"リスト"の構文を許可する必要がありますか? (a、b = 1,2)そうでなければアプローチする方が簡単かもしれません... – Stobor
いいえ、私は定数割り当てをよりコンパクトにするためにしました。 個別に値を割り当てるのはどのように役立ちますか? –
長い間、この問題を解決するユーレカというBorlandプログラムがありました。後で同じコードが著者によってMercuryとして発行されました。数年後、EES(Engineering Equation Solver)と呼ばれるWindowsプログラムが出てきましたが、ソルバーはユーレカほど良くはありませんでした。 私は最近、Clifford Wolfによっていくつかのコードを見つけました http://svn.clifford.at/tools/trunk/electrotools/eqsolver.html これはJavaScriptであり、率直に言って私は彼のロジックに従いません。これは私がPythonでやっているのとほとんど同じです。 –