Я пытаюсь решить систему нелинейных уравнений.
Для этого я успешно использовал sympy online для решения системы из трех уравнений. Но это больше не работает с 7 уравнениями, возвращая мне сообщение «Время операции истекло».
Итак, я пытаюсь использовать стандартный fsolve для решения проблемы. Но в то время как у меня есть хорошие результаты с простыми наборами из 3 уравнений, fsolve дает мне плохие результаты.
Это код, который я написал (благодаря тому, что я нашел на этом форуме):
def equations(p):
w1, w2, m = p
f0 = w1+w2-1
f1 = w1*m+w2*(1-2*m)-1/3
f2 = w1*m**2+w2*(1-2*m)**2-1/5
return (f0,f1,f2)
w1, w2, m = fsolve(equations, (0,0,0))
print equations((w1,w2,m))
В свою очередь, это дает мне (отрицательный ...) результат:
(0.0, -1.2378986724570495e-13, 5.1419979385514125e-13)
Для сравнения, Симпи дал мне ожидаемые результаты. Это дало примерно:
(0.333333, 0.666667, 0,122515)
У вас есть идеи, почему fsolve не работает в моем случае?
Заранее спасибо.