Решение системы нелинейных уравнений(Python)
Доброго времени суток, пытаюсь решить систему нелинейных уравнений. Задаю массив символьных значений (sympy):
A=[]
for i in range(26):
i=str(i)
A.append(symbols('a'+i, real=True))
Строю саму систему(логистическая регрессионная модель): Здесь X1 np.array исходных числовых данных (750 строк, 26 столбцов)
def summ(A,X1):
s=0
summa=[]
for i in range(750):
for j in range(26):
s=s+A[j]*X1[i][j]
s=(1/(1+sp.exp(-s)))
summa.append(s)
s=0
return summa
def l(X1,A,Y1,summa):
l=0
for i in range(750):
l= l+Y1[i]*sp.log(summa[i])+(1-Y1[i])*sp.log(1-summa[i])
return l
def proizv(f,A):
expr=[]
for i in range(26):
expr.append(diff(f,A[i]))
return expr
summa=summ(A,X1)
summa=list(summa)
L1=l(X1,A,Y1,summa)
P=proizv(L1,A)
В результате получаю список P, состоящий из производных по каждому неизвестному значению A, элементы списка типа .
Дальше пытаюсь решить полученную систему nonlinsolve(P,A) из sympy, но программа выполняется какое-то очень долго время (после 30 минут просто остановила программу). Дело в том, что не хватает мощности компьютера? И, может, кто-то знает как преобразовать данные, чтобы использовать scipy?