Как правильно реализовать схему Холецкого?

У меня выскакивает ошибка:

 t_arr[i][i] = sqrt(wide_arr[i][i] - (t_arr[:, i] ** 2).sum())
ValueError: math domain error

Мой код:

def printMatrix(matrix):
    for i in range(len(matrix)):
        for j in range(len(matrix[i])):
            print("{:2.2f}".format(matrix[i][j]), end=" ")
        print('')


wide_arr = np.array([[9.1, 5.6, 7.8], [3.8, 5.1, 2.8], [4.1, 5.7, 1.2]])
n = len(wide_arr)
# Формирование матрицы t элементов
t_arr = np.zeros((wide_arr.shape))

t_arr[0] = wide_arr[0] / sqrt(wide_arr[0][0])
for i in range(1, n):
    t_arr[i][i] = sqrt(wide_arr[i][i] - (t_arr[:, i] ** 2).sum())
    t_arr[i, i + 1:] = (wide_arr[i, i + 1:] - (t_arr[:i, i].reshape(-1, 1) * t_arr[:i, i + 1:]).sum(0)) / t_arr[i][i]

# Находим решение
y = t_arr[:, n].reshape(-1, 1)
t_arr = t_arr[:, :n]
x_arr = np.zeros((n, 1))
for i in range(1, n + 1):
    x_arr[-i, 0] = (y[-i] - (t_arr[-i, -i:] * x_arr[-i:, 0]).sum()) / t_arr[-i, -i]

print('Матрица t,y элементов')
printMatrix(np.hstack((t_arr, y)))
print('Решение')
for i in range(1, 6):
    print('x{} = {:2.3f}'.format(i, x_arr[i - 1][0].real))

Не могу понять в чем ошибка.Вроде бы все делаю за формулами: введите сюда описание изображения введите сюда описание изображения введите сюда описание изображения

введите сюда описание изображения

Помогите пожалуйста!!! Может я сам код неправильно реализую!


Ответы (0 шт):