2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


Посмотреть правила форума



Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3, 4
 
 Re: Ошибка численного интегрирования
Сообщение24.04.2025, 20:32 


27/08/16
11738
sergey zhukov в сообщении #1683647 писал(а):
в котором только на самых концах интервала значения функции входят с нетривиальными весами:
Вы не учли, что краевые параболы интегрируется по другим интервалам.

Кстати, а зачем каждую внутреннюю интерполяционную параболу интегрировать по отрезку $\pm 1$ и учитывать каждый отрезок дважды, а не по отрезку $\pm \frac 1 2$, и учитывать его один раз?

 Профиль  
                  
 
 Re: Ошибка численного интегрирования
Сообщение24.04.2025, 20:34 
Заслуженный участник
Аватара пользователя


30/01/09
7389
sergey zhukov в сообщении #1683650 писал(а):
В методе Симсона тоже все слагаемые идут с одинаковыми весами.

Ваша формула для $I$ из предыдущего поста (с табличкой) неверна. Там суммирование должно идти не по каждому $i$ , а через одного.

 Профиль  
                  
 
 Re: Ошибка численного интегрирования
Сообщение24.04.2025, 20:34 


27/08/16
11738
sergey zhukov в сообщении #1683652 писал(а):
Да вот же на картинке я все сложил.
У вас интеграл от 1 не равен 9.

-- 24.04.2025, 20:35 --

мат-ламер в сообщении #1683655 писал(а):
Ваша формула для $I$ из предыдущего поста неверна. Там суммирование должно идти не по каждому $i$ , а через одного.
Зачем? Можно сместить на шаг и проинтегрировать ещё раз. Тогда получится через 1, но дважды.

Очевидно, что численное интегрирование любого полинома степени до 2 включительно должно быть точным при любом шаге.

 Профиль  
                  
 
 Re: Ошибка численного интегрирования
Сообщение24.04.2025, 20:50 
Заслуженный участник
Аватара пользователя


30/01/09
7389
У меня подозрение что sergey zhukov придумал некий свой метод численного интегрирования. Он использует параболы, но не совпадает с методом Симпсона. Вроде этот метод должен сходиться куда надо. Только вопрос - с какой скоростью? Интуиция подсказывает, что метод будет хуже работать чем метод Симпсона. Но пусть ТС в качестве упражнения это исследует.

 Профиль  
                  
 
 Re: Ошибка численного интегрирования
Сообщение24.04.2025, 22:22 


27/08/16
11738
realeugene в сообщении #1683654 писал(а):
Кстати, а зачем каждую внутреннюю интерполяционную параболу интегрировать по отрезку $\pm 1$ и учитывать каждый отрезок дважды, а не по отрезку $\pm \frac 1 2$, и учитывать его один раз?

Кстати, веса получатся одинаковые: $\frac 1 {24} \cdot \left[9, 28, 23, 24, 24, \dots, 24, 23, 28, 9\right]$

А для кубической интерполяции: $\frac 1 {24} \cdot \left[8, 31, 20, 25, 24, 24, \dots, 24, 25, 20, 31, 8\right]$

 Профиль  
                  
 
 Re: Ошибка численного интегрирования
Сообщение25.04.2025, 07:09 


17/10/16
5314
realeugene
Да, я не совсем правильно формулы Симпсона наложил друг на друга. На краях нужно аккуратнее было. Но вывод в общем интересный: все алгоритмы численнного интегрирования с равномерным шагом сводятся к простейшему методу прямоугольников, у которого только маленькие края интервала нужно считать особо.

Т.е., скажем, программную реализацию методов можно упростить, (может, это обычная практика).

Выглядит довольно неожиданно. Нам кажется, что прямоугольники - это грубо, трапеции - гораздо лучше, параболы - еще лучше. Кажется, что важна локальная точность аппроксимации: если на малом отрезке использован корявый прямоугольник вместо гладкой параболы, то в этом месте все безнадежно испорчено.

На самом же деле совсем нет. Достаточно исчезающе малой поправки к счету на краях интервала, и прямоугольники по всему интервалу превращаются в полином любой степени.

 Профиль  
                  
 
 Re: Ошибка численного интегрирования
Сообщение25.04.2025, 09:02 


27/08/16
11738
sergey zhukov в сообщении #1683672 писал(а):
Достаточно исчезающе малой поправки к счету на краях интервала, и прямоугольники по всему интервалу превращаются в полином любой степени.
Ага. Но эта исчезающая поправка важна, если нужна точность аппроксимации. Ошибка исчезает уже в первом порядке малости, а эта дополнительная поправка к ошибке исчезает с той же скоростью, оставляя после себя ещё меньшую ошибку. Вклад самих конечных слагаемых в методе прямоугольников исчезает как $O(h)$, и их вклад в ошибку аппроксимации всего интеграла ограничен тем же порядком.

Кстати, наткнулся как-то, что подобная ситуация, оказывается, и в методе конечных элементов. Есть в программах конечные элементы второго порядка малости. Но если край модели гладко-кривой, например, окружность, но на краях в сетке не используются специальные краевые искривлённые элементы, а используются только прямые границы треугольников и тетраэдров, то модель в целом остаётся первого порядка малости по ошибке. И далеко не все программы умеют работать с кривыми граничными элементами в сетке.

 Профиль  
                  
 
 Re: Ошибка численного интегрирования
Сообщение25.04.2025, 14:07 
Заслуженный участник
Аватара пользователя


30/01/09
7389
sergey zhukov в сообщении #1683672 писал(а):
Но вывод в общем интересный: все алгоритмы численнного интегрирования с равномерным шагом сводятся к простейшему методу прямоугольников, у которого только маленькие края интервала нужно считать особо.

Не согласен. Аргументация в предыдущих постах. Если её недостаточно, попробую провести эксперимент. Отпишусь позже.

 Профиль  
                  
 
 Re: Ошибка численного интегрирования
Сообщение25.04.2025, 14:12 


17/10/16
5314
Так это не я и придумал. Это отсюда:
TOTAL в сообщении #1683582 писал(а):
"Просто краевой эффект" имеет значение!

Я просто это осознал.

Две ряда Симпсона нужно просто со сдвигом сложить, чтобы получить постоянные веса по всему интервалу. А если аппроксимация кубической параболой - то три таких ряда нужно наложить друг на друга со сдвигом. Об этом опять же выше неоднократно говорилось.

 Профиль  
                  
 
 Re: Ошибка численного интегрирования
Сообщение25.04.2025, 17:15 


27/08/16
11738
sergey zhukov в сообщении #1683711 писал(а):
Две ряда Симпсона нужно просто со сдвигом сложить, чтобы получить постоянные веса по всему интервалу.
Но есть нюанс. Классический метод Симпсона использует сдвиг через 2, нечётное число точек и чётное число отрезков. При этом на каждой паре отрезков функция аппроксимируется квадратичным полиномом. Что даёт порядок точности метода 3, а не 2, то есть, все полиномы вплоть до кубических интегрируются точно. Но только при условии, что аппроксимирующая участок функции парабола интегрируется симметрично вокруг центра: в этом случае интеграл $x^3$ относительно центра равен нулю. При сдвиге через 2 и чётном количестве отрезков это правило выполняется точно и на краях. Но второй интеграл со сдвигом на 1 посчитать с сохранением такой симметрии и на краях уже не получится.

Впрочем, порядок точности 3 можно получить, просто аппроксимировав края кубическим полиномом, а не параболами. Оставив в центре единицы, полученные сдвигами на 1 квадратичных или кубических, без разницы, интерполяционных полиномов с отрезком интегрирования $\left[-\frac 1 2; \frac 1 2\right]$ относительно центра. Коэффициенты для кубической интерполяции я выписал выше, если нужно.

 Профиль  
                  
 
 Re: Ошибка численного интегрирования
Сообщение25.04.2025, 19:06 


05/09/16
12445
Я на всякий случай заглянул в исходники pari/gp -- а как интегируют там?
Бесконечные интервалы и осциллирующие функции опускаю, а основной метод -- Гаусс-Лежандр
https://en.wikipedia.org/wiki/Gauss%E2% ... quadrature
Это неравномерная сетка, правда.
Из равномерных сеток там есть реализация метода Ромберга https://bigenc.ru/c/metod-romberga-d2f37c (сперва методом трапеций вычисляется первое приближение, к которому потом хитро применяются дополнительные вычисления, уже не требующие вычисления значений подынтегральной функции).

 Профиль  
                  
 
 Re: Ошибка численного интегрирования
Сообщение26.04.2025, 17:06 
Заслуженный участник
Аватара пользователя


30/01/09
7389
мат-ламер в сообщении #1683710 писал(а):
Не согласен. Аргументация в предыдущих постах. Если её недостаточно, попробую провести эксперимент. Отпишусь позже.

Провёл эксперимент. Рассмотрел метод ТС:
sergey zhukov в сообщении #1683647 писал(а):
Возьмем, например, метод Симпсона (параболическая аппроксимация). Используется "трехточечный шаблон", на котором строится парабола. Интеграл аппроксимируется суммой:
$$I=\sum\limits_{i=0}^{n-2}\frac{h}{3}(y_i+4y_{i+1}+y_{i+2})$$

Понятно, что это не метод Симпсона.
мат-ламер в сообщении #1683657 писал(а):
Вроде этот метод должен сходиться куда надо. Только вопрос - с какой скоростью? Интуиция подсказывает, что метод будет хуже работать чем метод Симпсона.

Интуиция не подвела. Сходимость к интегралу есть. Но скорость сходимости маленькая - линейная по размеру шага деления $h$. В то время как у метода Симпсона кубическая.

 Профиль  
                  
 
 Re: Ошибка численного интегрирования
Сообщение26.04.2025, 17:36 


27/08/16
11738
мат-ламер в сообщении #1683823 писал(а):
Понятно, что это не метод Симпсона.
Так ошибку конкретно в этой формуле уже обсудили, признали и забыли. Края учтены некорректно, интервал интегрирования по факту короче, чем нужно. Как раз на один шаг. Точнее, на две половинки двух крайних шагов.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 58 ]  На страницу Пред.  1, 2, 3, 4

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group