2014 dxdy logo

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

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




На страницу Пред.  1, 2, 3, 4, 5, 6  След.
 
 Re: Ошибка численного интегрирования
Сообщение24.04.2025, 14:27 
Аватара пользователя
realeugene в сообщении #1683595 писал(а):
А, понятно: применимо для достаточно гладких функций без шума. Иначе равномерное взвешивание в середине интервала должно быть всегда лучше.
Больше надо требовать, чем гладкость. Ограниченность производных нужна (модуль производной такого-то порядка присутствует в оценке погрешности интерполирования полиномом). Например, если по составной квадратурной формуле четвертого порядка находить площадь под полуокружностью, то погрешность будет не четвёртого порядка.

-- Чт апр 24, 2025 18:42:52 --

sergey zhukov в сообщении #1683590 писал(а):
Что-то не нашел так сразу описание этих составных методов. Где можно посмотреть?

Во-первых, для начала практически (найдите какие-то интегралы с известными точными ответами) можете убедиться, что формулы имеют указанный порядок.

Во-вторых, сами выведите эти формулы. Например, так.
Сначала докажите
$$2\int\limits_{x_0}^{x_n}f(x)dx = \int\limits_{x_0}^{x_1}f(x)dx+\int\limits_{x_{n-1}}^{x_n}f(x)dx+
\sum_{k=1}^{n-1}\dfrac{h}{3}\left( f_{k-1}+4f_k + f_{k+1} \right) + O(h^4)$$
Затем два интегральчика (на первом и последнем интервальчиках) приблизьте формулой такого-то порядка (возможно, по узлам вне этого интервальчика, т.е. по трём ...)

 
 
 
 Re: Ошибка численного интегрирования
Сообщение24.04.2025, 14:50 
TOTAL в сообщении #1683596 писал(а):
$$2\int\limits_{x_0}^{x_n}f(x)dx = \int\limits_{x_0}^{x_1}f(x)dx+\int\limits_{x_{n-1}}^{x_n}f(x)dx+
\sum_{k=1}^{n-1}\dfrac{h}{3}\left( f_{k-1}+4f_k + f_{k+1} \right) + O(h^4)$$

А откуда двойка в начале?

А, вижу... Но в центральной части интеграла веса всех точек равномерны.

 
 
 
 Re: Ошибка численного интегрирования
Сообщение24.04.2025, 15:00 
Аватара пользователя
realeugene в сообщении #1683599 писал(а):
А, вижу... Но в центральной части интеграла веса всех точек равномерны.
Коэффициенты в центральной части одинаковы потому, что формула Симпсона под знаком суммы, накладывается сама на себя. Откуда и двойка в левой части.

 
 
 
 Re: Ошибка численного интегрирования
Сообщение24.04.2025, 15:02 
TOTAL в сообщении #1683602 писал(а):
Коэффициенты в центральной части одинаковы потому, что формула Симпсона под знаком суммы, накладывается сама на себя. Откуда и двойка в левой части.
Можно ли добиться любого порядка малости рассматриваемых интегральных формул, взяв равномерные центральные коэффициенты и взвесив как-то концы?

 
 
 
 Re: Ошибка численного интегрирования
Сообщение24.04.2025, 15:10 
Аватара пользователя
realeugene в сообщении #1683603 писал(а):
Можно ли добиться любого порядка малости рассматриваемых интегральных формул, взяв равномерные центральные коэффициенты и взвесив как-то концы?

Вместо формулы Симпсона берите более точную формулу (не на трёх узлах, а на четырёх, пяти ...). Тогда помимо суммы в правой части появятся огрызки интеграла (разной длины), которые можно приблизить с нужной точностью.

 
 
 
 Re: Ошибка численного интегрирования
Сообщение24.04.2025, 15:14 
TOTAL в сообщении #1683605 писал(а):
Тогда помимо суммы в правой части появятся огрызки интеграла (разной длины), которые можно приблизить с нужной точностью.
Но сдвинув их можно свести эту сумму просто к сумме с постоянными коэффициентами. И останутся кроме постоянных коэффициентов в центре ещё только как-то взвешенные концы.

 
 
 
 Re: Ошибка численного интегрирования
Сообщение24.04.2025, 16:36 
TOTAL в сообщении #1683596 писал(а):
$$2\int\limits_{x_0}^{x_n}f(x)dx = \int\limits_{x_0}^{x_1}f(x)dx+\int\limits_{x_{n-1}}^{x_n}f(x)dx+
\sum_{k=1}^{n-1}\dfrac{h}{3}\left( f_{k-1}+4f_k + f_{k+1} \right) + O(h^4)$$
Тут есть ещё один нюанс. Краевые интегралы тоже ведь тоже нужно считать численно? Их длина $O(h)$. Откуда следует, что таким методом можно получить формулу для любого $O\left(h^n\right)$, даже если в середине формула имеет соответствующий порядок?

 
 
 
 Re: Ошибка численного интегрирования
Сообщение24.04.2025, 17:04 
Аватара пользователя
realeugene в сообщении #1683610 писал(а):
Тут есть ещё один нюанс. Краевые интегралы тоже ведь тоже нужно считать численно? Их длина $O(h)$. Откуда следует, что таким методом можно получить формулу для любого $O\left(h^n\right)$, даже если в середине формула имеет соответствующий порядок?
Краевые интегралы можно аппроксимировать формулами, которые могут использовать узлы и вне интервала.

 
 
 
 Re: Ошибка численного интегрирования
Сообщение24.04.2025, 17:21 
TOTAL в сообщении #1683615 писал(а):
Краевые интегралы можно аппроксимировать формулами, которые могут использовать узлы и вне интервала.
Если уметь интегрировать функцию аналитически, то можно. Но зачем тогда вообще интегрировать что-то численно?

Хотя да, "аппроксимировать формулами". Если функция определена и имеет нужные производные на более широком отрезке, чем отрезок интегрирования. То есть численное интегрирование можно свести к сумме всех точек без исключения плюс двум взвешенным суммам в окрестностях начала и конца. И так при небольших длинах взвешенных сумм вокруг концов можно легко добиться любого порядка интегрирования?

 
 
 
 Re: Ошибка численного интегрирования
Сообщение24.04.2025, 18:30 
Аватара пользователя
realeugene в сообщении #1683618 писал(а):
Хотя да, "аппроксимировать формулами". Если функция определена и имеет нужные производные на более широком отрезке, чем отрезок интегрирования. То есть численное интегрирование можно свести к сумме всех точек без исключения плюс двум взвешенным суммам в окрестностях начала и конца. И так при небольших длинах взвешенных сумм вокруг концов можно легко добиться любого порядка интегрирования?

$$\int\limits_{x_0}^{x_1}f(x)dx$$
Вот этот интеграл приближайте формулой с погрешностью $O(h^4) $, которая использует значения в точках $x_0, x_1, x_2$.
Формула может быть получена, например, заменой подынтегральной функции интерполяционным полиномом второй степени, построенным по указанным точкам.

 
 
 
 Re: Ошибка численного интегрирования
Сообщение24.04.2025, 19:54 
TOTAL
Да, как-то я с этой стороны не смотрел на методы численного интегрирования.

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

Если же эту сумму раскрыть и все сложить, то получится самый обычный тупой метод прямоугольников, в котором только на самых концах интервала значения функции входят с нетривиальными весами:
Изображение

"Все дело в волшебных пузырьках"

 
 
 
 Re: Ошибка численного интегрирования
Сообщение24.04.2025, 20:15 
Аватара пользователя
sergey zhukov в сообщении #1683647 писал(а):
Если же эту сумму раскрыть и все сложить, то получится самый обычный тупой метод прямоугольников,

Чего-то вашу мысль не понял. В методе прямоугольников все слагаемые идут с одинаковыми весами. Что не так в методе Симпсона. Там веса будут чередоваться через один.

 
 
 
 Re: Ошибка численного интегрирования
Сообщение24.04.2025, 20:18 
мат-ламер
В методе Симсона тоже все слагаемые идут с одинаковыми весами. Только на концах интервала есть пара слагаемых с другим весом.

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

 
 
 
 Re: Ошибка численного интегрирования
Сообщение24.04.2025, 20:28 
sergey zhukov в сообщении #1683650 писал(а):
В методе Симсона тоже все слагаемые идут с одинаковыми весами. Только на концах интервала есть пара слагаемых с другим весом.
По три точки с каждого края наверное.

 
 
 
 Re: Ошибка численного интегрирования
Сообщение24.04.2025, 20:29 
realeugene
Да вот же на картинке я все сложил.

 
 
 [ Сообщений: 85 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group