我有來自sympy.lambdify幾個功能:求解含有總和非線性系統
f_1 = sym.lambdify((z, m_1, m_2, s_1, s_2), expression_1, modules=['numpy', 'sympy'])
f_2 = sym.lambdify((z, m_1, m_2, s_1, s_2), expression_2, modules=['numpy', 'sympy'])
f_3 = sym.lambdify((z, m_1, m_2, s_1, s_2), expression_3, modules=['numpy', 'sympy'])
f_4 = sym.lambdify((z, m_1, m_2, s_1, s_2), expression_4, modules=['numpy', 'sympy'])
其中m_1
,m_2
,s_1
,s_2
是標量和z
是已知的一維陣列(不必是相同的對於每個f_i
)。每個f_i
的輸出都是標量。
我想(數字)找到m_1
,m_2
,s_1
,s_2
使得
sum(f_1(z_i, m_1, m_2, s_1, s_2)) = 0
sum(f_2(z_i, m_1, m_2, s_1, s_2)) = 0
sum(f_3(z_i, m_1, m_2, s_1, s_2)) = 0
sum(f_4(z_i, m_1, m_2, s_1, s_2)) = 0
總和爲上我。
使用scipy.optimize,我不知道如何實現它(使用fsolve或root)。