約 37 個の非線形方程式と 37 個の変数の問題を解いています。パラメータが収集されJ=dict()
、問題を解決しようとしましたfsolve
が、指定した初期値しか返されません。
これが私のコードです:
def NodalFlowBalance(p):
FlowAbsFlow = (J['g_Yl'] / J['g_k']).dot(p ** 2)[:, None]
Flow = np.sign(FlowAbsFlow) * np.sqrt(np.abs(FlowAbsFlow))
NodalFlowBalance = (J['g_Y'].dot(Flow))[:, 0] + J['Source1'] -J['Demand']
NodalFlowBalance = np.delete(NodalFlowBalance, J['SlVar'])
NodalFlowBalance = np.hstack([NodalFlowBalance, p[J['SlVar']] - J['SlPressure']])
return NodalFlowBalance
p = fsolve(NodalFlowBalance, p0)
ここでJ['g_Yl']
、 とJ['g_Y']
は行列、J['g_k']
はベクトルです。私も入れようとしましJ
たargs=(J,)
が、それでもうまくいきません。他のオプションはありますか?