【发布时间】:2016-09-19 19:55:50
【问题描述】:
我有几个来自 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
i 上的总和。
使用scipy.optimize,不知道怎么实现(使用fsolve或者root)。
【问题讨论】:
标签: python optimization scipy