Комментарии 7
Вас не смущает график числа обусловленности? Странное поведение: линейный рост, а потом какие-то колебания. Выглядят, как ошибка в вычисленях. Возможно, вызванная переполнением переменных.
Заодно, могли бы вы объяснить что вот этот вот код в питоне делает?
n_values[i] = np.array(i)
Здравствуйте!
Нет, не смущает. Колебания вызваны свойствами матрицы Вандермонда, которая часто плохо обусловлена, особенно при больших размерах матрицы. Это приводит к резкому увеличению числа обусловленности и его колебаниям!) ошибок в вычислениях нет.
Что касается вопроса про код, эта строка берет число i,
преобразует его в формат массива и добавляется в список n_values
. Сейчас, когда вы написали этот комментарий, я поняла, что можно было не делать через array
. Но ошибки нет:)
Спасибо за Ваш комментарий!
Колебания вызваны свойствами матрицы Вандермонда
Попробуйте поменять тип данных в матрице на np.float32 (по умолчанию там float64). Посмотрите, что произойдет с вашим графиком. Он станет колебаться раньше.
У вас переполнение. Точности вещественных числел тупо не хватает для вычисления обратной матрицы.
Попробуйте использовать пакет sympy. Или какой-нибудь Pygmp, правда обращение матрицы придется писать руками методом Гаусса, да и вычисление нормы тоже.
Погуглите свойства этой самой матрицы. Уверен, для числа обусловленности есть какая-нибудь аж замкнутая формула.
Так ясен пень, что если i делить на 10**17, то результат незначим.
Матрица Вандермонда