Pull to refresh

Comments 7

Вас не смущает график числа обусловленности? Странное поведение: линейный рост, а потом какие-то колебания. Выглядят, как ошибка в вычисленях. Возможно, вызванная переполнением переменных.

Заодно, могли бы вы объяснить что вот этот вот код в питоне делает?

n_values[i] = np.array(i)

Здравствуйте!

Нет, не смущает. Колебания вызваны свойствами матрицы Вандермонда, которая часто плохо обусловлена, особенно при больших размерах матрицы. Это приводит к резкому увеличению числа обусловленности и его колебаниям!) ошибок в вычислениях нет.

Что касается вопроса про код, эта строка берет число i, преобразует его в формат массива и добавляется в список n_values. Сейчас, когда вы написали этот комментарий, я поняла, что можно было не делать через array. Но ошибки нет:)

Спасибо за Ваш комментарий!

Колебания вызваны свойствами матрицы Вандермонда

Попробуйте поменять тип данных в матрице на np.float32 (по умолчанию там float64). Посмотрите, что произойдет с вашим графиком. Он станет колебаться раньше.

У вас переполнение. Точности вещественных числел тупо не хватает для вычисления обратной матрицы.

Попробуйте использовать пакет sympy. Или какой-нибудь Pygmp, правда обращение матрицы придется писать руками методом Гаусса, да и вычисление нормы тоже.

Погуглите свойства этой самой матрицы. Уверен, для числа обусловленности есть какая-нибудь аж замкнутая формула.

Так ясен пень, что если i делить на 10**17, то результат незначим.

Есть методы интерполяции которые работают всегда, а есть которые нет) про это и рассказываю

"Всегда" в вещественной арифметике не бывает.

Sign up to leave a comment.

Articles