Я хочу решить систему из 6 нелинейных уравнений, используя Python.Я обнаружил, что довольно легко могу использовать scipy
fsolve
для решения системы из 3 нелинейных уравнений.Однако, когда я расширяю это до более крупной системы, я обнаруживаю, что решение не решает систему уравнений.Есть ли что-то, что я могу исправить, что позволит решить 6 нелинейных уравнений?
import numpy as np
from scipy.optimize import fsolve
def system(z):
#arbitrary system of 3 nonlinear equations
x1 = z[0]
x2 = z[1]
x3 = z[2]
F = np.empty((3))
F[0] = 20* x1 + x2**2
F[1] = x2 - x1
F[2] = x3 + 5 - x1*x2
return F
def system2(z):
#arbitrary system of 6 nonlinear equations
x1 = z[0]
x2 = z[1]
x3 = z[2]
x4 = z[3]
x5 = z[4]
x6 = z[5]
F = np.empty((6))
F[0] = 20* x1 + x2**2
F[1] = x2 - x1
F[2] = x3 + 5 - x1*x2
F[3] = x3 + x2
F[4] = x5 + x4**2
F[5] = x6**2 + x1 - 20
return F
uInitial = np.array([1,1,1])
u = fsolve(system,uInitial)
print('Solution: ',u)
print('Solution check: ',system(u),'\n') #yields zeros as expected
vInitial = np.array([1,1,1,1,1,1])
v = fsolve(system2,vInitial)
print('Solution: ',v)
print('Solution check: ',system2(v)) #unexpectedly does not yield zeros. Equations not solved correctly.
При применении данного решения обратно в систему уравнений, я должен ожидать получить нули (или почти ноль).Это подтвердило бы, что вычисленное решение решает данную систему уравнений.Я попытался проверить с помощью этого метода как для системы из 3 уравнений, так и для системы из 6 уравнений, но только система из 3 уравнений решается правильно с помощью этой проверки.Что я могу сделать, чтобы решить систему из 6 нелинейных уравнений?