Я пытаюсь решить линейную систему уравнений с клапкой.Решение линейной системы с dpotrs (факторизация Cholesky)
Мой код выглядит следующим образом:
//ATTENTION: matrix in column-major
double A[3*3]={ 2.0, -1.0, 0.0,
0.0, 2.0, -1.0,
0.0, 0.0, 2.0},
b[3]={1.0,2.0,3.0};
integer n=3,info,nrhs=1; char uplo='L';
dpotrf_("L", &n, A, &n, &info);
dpotrs_("L", &n, &nrhs, A, &n, b, &n, &info);
printf("Solution: %10.4f %10.4f %10.4f",b[0], b[1], b[2]);
Как спросил this question, необходимо сначала разложить на множители матрицы. Предполагается, что dpotrf будет факторизовать, dpotrs решает систему с использованием факторизованной матрицы.
Однако мой результат
2.5 4.0 3.5
явно не так, я проверил его здесь with WolframAlpha
Где моя ошибка?