Нет, не смущает. Колебания вызваны свойствами матрицы Вандермонда, которая часто плохо обусловлена, особенно при больших размерах матрицы. Это приводит к резкому увеличению числа обусловленности и его колебаниям!) ошибок в вычислениях нет.
Что касается вопроса про код, эта строка берет число i, преобразует его в формат массива и добавляется в список n_values. Сейчас, когда вы написали этот комментарий, я поняла, что можно было не делать через array. Но ошибки нет:)
Вы правы, при работе с реальными данными, содержащими погрешности, требование, чтобы аппроксимирующий полином строго проходил через все точки, может привести к ненужным колебания.
Методы, которые позволяют полиному приблизительно, а не точно проходить через точки, конечно, обеспечивают более устойчивые результаты.
Однако, в моей статье я исходила из классического подхода к интерполяции, где требуется точно пройти через все узлы. Это, конечно же, полезно для понимания феномена Рунге. Хотя этот метод может быть не до конца применим для настоящих данных, он важен с теоретической точки зрения.
В реальной практике, как вы правильно заметили, лучше использовать методы, которые учитывают погрешности данных.
Если добавляются новые точки, особенно на краях интервала, полином адаптируется, чтобы пройти через все новые узлы. Это приводит к усилению колебаний как в крайних точках, так и в середине интервала, особенно если степень полинома увеличивается. В результате, даже если новые точки находятся по краям, они могут повлиять на значения полинома на всем диапазоне, вызывая увеличение колебаний.
Здравствуйте! К сожалению, даже если на первый взгляд может показаться, что добавление нулей решит проблему, это не так.
Причина в том, что полиномы, в особенности высоких степеней, имеют большое влияние: изменение функции на одном участке, даже на маленьком интервале, может повлиять на поведение полинома на всей области. В результате, добавление нулей за пределами интервала может даже увеличить колебания внутри основного диапазона.
Здравствуйте! Вы совершенно правы, интерполяция функцией Гаусса возможна, и она поможет избежать колебаний. Однако, всё зависит от конкретной задачи.
Полиномы Лагранжа и узлы Чебышёва это мощные инструменты в численном анализе, они помогают аппроксимировать функции на широких интервалах, в то время как Гаусса мы используем когда функция похожа на нее - колоколообразная, гладкая, убывающая.
Здравствуйте! Феномен Рунге и колебания при методе Рунге-Кутты происходят из-за разных причин в разных контекстах, однако, они оба связаны с численной нестабильностью и с неправильно выбранными параметрами.
В методе Рунге-Кутты слишком мелкий шаг может усиливать погрешности округления и другие численные эффекты.
В феномене Рунге при интерполяции полиномом высокой степени, коэффициенты перед членами полинома увеличиваются с огромной скоростью и это приводит к значительным колебаниям.
Скорее было сравнение двух результатов, где один 0.78 грубо говоря и другой 0.79 грубо говоря. Они приблизительно равны, что показывает, что Монте-Карло работает)
Спасибо за обратную связь! Я понимаю вашу точку зрения и согласна, что для наглядности график с увеличивающимся N мог бы быть полезным.
Однако, моя цель была не только продемонстрировать уменьшение погрешности при увеличении выборки, но и подтвердить теоретическую зависимость погрешности от N^(-1/2).
Думаю , что в этом случае надо было включить и то, и то. Сделаю!) спасибо еще раз
Не могу с Вами не согласиться!) но сделала это немного другим способом: смотрите, из формулы Монте-Карло в статье я вывела формулу погрешности, и, обращая внимание на то, что бОльшую часть формулы (подкорневое выражение) занимает стандартное отклонение, пришла к выводу, что погрешность зависит от N^(-1/2). То есть для уменьшении погрешности нужно увеличить N aka выборку. Для того, чтобы доказать, что это правда, я построила график погрешности и сравнила его параллельность с прямой N^(-1/2). Сделала я это рассчитывая среднее значение аппроксимации при разном размере выборки. Две прямые получились практически параллельными (неидеальными из-за рандомности выборки). Но таким образом, более сложным, но научным и подробным, я доказала и показала, что от роста выборки уменьшается погрешность. Подробнее можете прочитать в разделе «проверка» !) спасибо
Начинаем решение задачи с того, что считаем сколько кофе можно выпить без добавление сиропов. 7 видов кофе и 3 вида молока + без молока = 4 вида молока. То есть каждый кофе из 7 можно приготовить 4-мая разными способами, 7 умножить на 4=28. Учитывая, что каждый кофейный напиток может быть холодным и горячим, всего получается 56 возможных видов кофе без добавления сиропов. Если в каждый из этих 56 сиропов добавить по 1-му из 8 разных сиропов, получится 448 кофейных напитков. Далее, если начать миксовать сиропы и добавлять по 2 в каждый, мы получим 4487/2=1568 возможных кофейных напитков.
Всего кофейных напитков: 1568+448+56=2072
Далее, есть 2 вида горячего шоколада, каждый из которых может приготовится на одном из 3-х разных видов молока. То есть всего 6 напитков, и, учитывая что можно приготовить как холодными, так и горячими, получается 12 напитков.
Чаев всего 5 видов, учитывая, что они могут быть и холодными и горячими, всего получается 10 видов.
2072+10+12=2094
Чтобы получить ответ на первый пункт, нужно разделить 2094 на 2 (тк тогда еще не было возможности сделать все холодным). Получается 1047.
Если год не високосный, тогда в 3-х годах 1095 дней. То есть за 3 года Аня успеет попробовать все напитки.
Сегодня утром добавила !) и в оригинальный код, и в применении, также как и в график верификации погрешности. Посмотрите пожалуйста и отпишите свое мнение если пожелаете!)
Это да
Есть методы интерполяции которые работают всегда, а есть которые нет) про это и рассказываю
Здравствуйте!
Нет, не смущает. Колебания вызваны свойствами матрицы Вандермонда, которая часто плохо обусловлена, особенно при больших размерах матрицы. Это приводит к резкому увеличению числа обусловленности и его колебаниям!) ошибок в вычислениях нет.
Что касается вопроса про код, эта строка берет число
i,
преобразует его в формат массива и добавляется в списокn_values
. Сейчас, когда вы написали этот комментарий, я поняла, что можно было не делать черезarray
. Но ошибки нет:)Спасибо за Ваш комментарий!
Статья была задумана как часть более крупного исследования, к ней будут делаться отсылки. Stay tuned :)))
Хаха я знаю, что Вы не критикуете !) обязательно вернусь с ответом :)
Здравствуйте!
Вы правы, при работе с реальными данными, содержащими погрешности, требование, чтобы аппроксимирующий полином строго проходил через все точки, может привести к ненужным колебания.
Методы, которые позволяют полиному приблизительно, а не точно проходить через точки, конечно, обеспечивают более устойчивые результаты.
Однако, в моей статье я исходила из классического подхода к интерполяции, где требуется точно пройти через все узлы. Это, конечно же, полезно для понимания феномена Рунге. Хотя этот метод может быть не до конца применим для настоящих данных, он важен с теоретической точки зрения.
В реальной практике, как вы правильно заметили, лучше использовать методы, которые учитывают погрешности данных.
Спасибо за комментарий!
Возможно! Я тоже изначально познакомилась с этой темой на численном анализе в университете
Если добавляются новые точки, особенно на краях интервала, полином адаптируется, чтобы пройти через все новые узлы. Это приводит к усилению колебаний как в крайних точках, так и в середине интервала, особенно если степень полинома увеличивается. В результате, даже если новые точки находятся по краям, они могут повлиять на значения полинома на всем диапазоне, вызывая увеличение колебаний.
Здравствуйте! К сожалению, даже если на первый взгляд может показаться, что добавление нулей решит проблему, это не так.
Причина в том, что полиномы, в особенности высоких степеней, имеют большое влияние: изменение функции на одном участке, даже на маленьком интервале, может повлиять на поведение полинома на всей области. В результате, добавление нулей за пределами интервала может даже увеличить колебания внутри основного диапазона.
Спасибо за Ваш комментарий!
Большое Спасибо:)
Здравствуйте! Вы совершенно правы, интерполяция функцией Гаусса возможна, и она поможет избежать колебаний. Однако, всё зависит от конкретной задачи.
Полиномы Лагранжа и узлы Чебышёва это мощные инструменты в численном анализе, они помогают аппроксимировать функции на широких интервалах, в то время как Гаусса мы используем когда функция похожа на нее - колоколообразная, гладкая, убывающая.
Спасибо за комментарий!
Здравствуйте! Феномен Рунге и колебания при методе Рунге-Кутты происходят из-за разных причин в разных контекстах, однако, они оба связаны с численной нестабильностью и с неправильно выбранными параметрами.
В методе Рунге-Кутты слишком мелкий шаг может усиливать погрешности округления и другие численные эффекты.
В феномене Рунге при интерполяции полиномом высокой степени, коэффициенты перед членами полинома увеличиваются с огромной скоростью и это приводит к значительным колебаниям.
Спасибо за комментарий !
Пока что не кандидат наук) могу иногда неправильно сформулировать ))
Скорее было сравнение двух результатов, где один 0.78 грубо говоря и другой 0.79 грубо говоря. Они приблизительно равны, что показывает, что Монте-Карло работает)
Спасибо большое, сейчас исправлю!)
небольшой читинг)
Спасибо за обратную связь! Я понимаю вашу точку зрения и согласна, что для наглядности график с увеличивающимся N мог бы быть полезным.
Однако, моя цель была не только продемонстрировать уменьшение погрешности при увеличении выборки, но и подтвердить теоретическую зависимость погрешности от N^(-1/2).
Думаю , что в этом случае надо было включить и то, и то. Сделаю!) спасибо еще раз
Не могу с Вами не согласиться!) но сделала это немного другим способом: смотрите, из формулы Монте-Карло в статье я вывела формулу погрешности, и, обращая внимание на то, что бОльшую часть формулы (подкорневое выражение) занимает стандартное отклонение, пришла к выводу, что погрешность зависит от N^(-1/2). То есть для уменьшении погрешности нужно увеличить N aka выборку. Для того, чтобы доказать, что это правда, я построила график погрешности и сравнила его параллельность с прямой N^(-1/2). Сделала я это рассчитывая среднее значение аппроксимации при разном размере выборки. Две прямые получились практически параллельными (неидеальными из-за рандомности выборки). Но таким образом, более сложным, но научным и подробным, я доказала и показала, что от роста выборки уменьшается погрешность. Подробнее можете прочитать в разделе «проверка» !) спасибо
7 кофе
3 вида молока
+ без молока
1 сироп или 2 сиропа из 8 возможных
Каждый напиток холодный или горячий
Начинаем решение задачи с того, что считаем сколько кофе можно выпить без добавление сиропов. 7 видов кофе и 3 вида молока + без молока = 4 вида молока. То есть каждый кофе из 7 можно приготовить 4-мая разными способами, 7 умножить на 4=28. Учитывая, что каждый кофейный напиток может быть холодным и горячим, всего получается 56 возможных видов кофе без добавления сиропов. Если в каждый из этих 56 сиропов добавить по 1-му из 8 разных сиропов, получится 448 кофейных напитков. Далее, если начать миксовать сиропы и добавлять по 2 в каждый, мы получим 4487/2=1568 возможных кофейных напитков.
Всего кофейных напитков: 1568+448+56=2072
Далее, есть 2 вида горячего шоколада, каждый из которых может приготовится на одном из 3-х разных видов молока. То есть всего 6 напитков, и, учитывая что можно приготовить как холодными, так и горячими, получается 12 напитков.
Чаев всего 5 видов, учитывая, что они могут быть и холодными и горячими, всего получается 10 видов.
2072+10+12=2094
Чтобы получить ответ на первый пункт, нужно разделить 2094 на 2 (тк тогда еще не было возможности сделать все холодным). Получается 1047.
Если год не високосный, тогда в 3-х годах 1095 дней. То есть за 3 года Аня успеет попробовать все напитки.
На второй пункт мы уже по сути ответили)
Да
2094 дня
Сегодня утром добавила !) и в оригинальный код, и в применении, также как и в график верификации погрешности. Посмотрите пожалуйста и отпишите свое мнение если пожелаете!)