Участник:Айнагуль Джумабекова/Песочница
Материал из MachineLearning.
(1 промежуточная версия не показана) | |||
Строка 168: | Строка 168: | ||
Для <tex>f(x)</tex>∈ <tex>C^{(4)}[a,b]</tex> справедливы оценки | Для <tex>f(x)</tex>∈ <tex>C^{(4)}[a,b]</tex> справедливы оценки | ||
- | + | <tex>||f(x)-s_h(x)||_{C[a,b]}<=M_4h^4</tex> | |
- | + | <tex>||f'(x)-s_h'(x)||_{C[a,b]}<=M_4h^3</tex> | |
- | + | <tex>||f''(x)-s_h''(x)||_{C[a,b]}<=M_4h^2</tex> | |
Из этих оценок следует, что при <tex>h \to 0</tex> (т.е. при <tex>N \to \infty</tex>) последовательности <tex>s_h^{(i)}(x)</tex>, <tex>i=0,1,2</tex> сходятся соответственно к функциям <tex>f^{(i)}(x)</tex> <tex>i=0,1,2</tex>. | Из этих оценок следует, что при <tex>h \to 0</tex> (т.е. при <tex>N \to \infty</tex>) последовательности <tex>s_h^{(i)}(x)</tex>, <tex>i=0,1,2</tex> сходятся соответственно к функциям <tex>f^{(i)}(x)</tex> <tex>i=0,1,2</tex>. | ||
Строка 183: | Строка 183: | ||
Если <tex>f(x)</tex> - периодическая функция с периодом l, то естественно строить приближения с помощью функций | Если <tex>f(x)</tex> - периодическая функция с периодом l, то естественно строить приближения с помощью функций | ||
- | + | <tex>\varphi_k(x)=a_k\cos(\frac{\pi kx}{l})+b_k\sin(\frac{\pi kx}{l}), k=0,1,\dots,n</tex> | |
Таким образом, тригонометрическая интерполяция состоит в замене <tex>f(x)</tex> тригонометрическим многочленом | Таким образом, тригонометрическая интерполяция состоит в замене <tex>f(x)</tex> тригонометрическим многочленом | ||
Строка 200: | Строка 200: | ||
При попытке в качестве функции взять синус,ошибка достигала очень большх цифр и был порядка 1.0, что достаточно велико для этой функции. | При попытке в качестве функции взять синус,ошибка достигала очень большх цифр и был порядка 1.0, что достаточно велико для этой функции. | ||
Поэтому следует внимательно выбирать шаг, расстояние между точками. | Поэтому следует внимательно выбирать шаг, расстояние между точками. | ||
- | Программа требует ввода координат трех точек. | + | Программа требует ввода координат трех точек для полинома <tex>x^5</tex> в порядке возрастания,а также точки промежуточной, в которой будет находиться значение производной. |
+ | На экран выводится значение, полученное при помощи полинома Лагранжа,истинное значение, полученное аналитически и ошибка вычисления. | ||
== Список литературы == | == Список литературы == | ||
Строка 210: | Строка 211: | ||
*[[Тригонометрическая интерполяция]] | *[[Тригонометрическая интерполяция]] | ||
*[[Интерполяция полиномами Лагранжа и Ньютона]] | *[[Интерполяция полиномами Лагранжа и Ньютона]] | ||
- | |||
- | |||
- |
Текущая версия
Содержание |
Введение
Постановка математической задачи
Численное дифференцирование применяется, если функцию трудно или невозможно продифференцировать аналитически - например, если она задана таблицей. Оно нужно также при решении дифференциальных уравнений при помощи разностных методов.
Изложение метода
При численном дифференцировании функцию аппроксимируют легко вычисляемой функцией
и приближенно полагают
. При этом можно использовать различные способы аппроксимации.
Интерполирование полиномами Ньютона
Рассмотрим случай аппроксимации интерполяционным многочленом Ньютона.
Пусть задана сетка - исследуемая функция. Введем обозначение
и введем понятие разделенные разности
, определяемые следующим образом:
,
и т.д.
Можно доказать, что
.
Запишем интерполяционный многочлен Ньютона и продифференцируем его почленно:
Общая формула примет следующий вид:
Обрывая ряд на некотором числе членов, получим приближенное выражение для соответствующей производной. Наиболее простые выражения получим, оставляя в формуле (1) только первый член:
,
,
Исследование точности полученных выражений при численных расчётах удобно делать при помощи апостериорной оценки, по скорости убывания членов ряда (1). Если шаг сетки достаточно мал, то погрешность близка к первому отброшенному члену. Пусть мы используем узлы . Тогда первый отброшенный член содержит разделенную разность
, которая согласно (2) примерно равна
. Перед ней стоит сумма произведений различных множителей
; каждое произведение содержит
множителей, а вся сумма состоит из
слагаемых. Отсюда следует оценка погрешности формулы (3) с
узлами:
В частности, если сетка равномерная, то , откуда
.
Стоит заметить, что строгое априорное исследование погрешности формулы (3), аналогичное выводу остаточного члена многочлена Ньютона в форме Коши, для произвольного расположения узлов приводит к той же оценке (3).
Таким образом, порядок точности формулы (1) по отношению к шагу сетки равен числу оставленных в ней членов, или, что то же самое, он равен числу узлов интерполяции минус порядок производной. Поэтому минимальное число узлов, необходимое для вычисления -й производной, равно
; оно приводит к формулам (2) и обеспечивает первый порядок точности. Эти выводы соответствуют общему принципу: при почленном дифференцировании ряда скорость его сходимости уменьшается.
Интерполирование полиномами Лагранжа
Рассмотрим неравномерную сетку
и обозначим за
,
шаги этой сетки. В качества примера получим формулы численного дифференцирования, основанные на использовании многочлена Лагранжа
, построенного для функции
по трем точкам
.
Многочлен
имеет вид
Отсюда получим
Это выражение можно принять за приближенное значение в любой точке
∈
.
Его удобнее записать в виде
, где
,
.
В частности, при получим
,
И если сетка равномерна,
, то приходим к центральной разностной производной,
.
При использовании интерполяционного многочлена первой степени точно таким образом можно получить односторонние разностные производные
и
.
Далее вычисляя вторую производную многочлена
, получим приближенное выражение для
при
∈
:
≈
На равномерной сетке это выражение совпадает со второй разностной производной . Ясно, что для приближенного вычисления дальнейших производных уже недостаточно многочлена
, надо привлекать многочлены более высокого порядка и тем самым увеличивать число узлов, участвующих в аппроксимации.
Порядок погрешности аппроксимации зависит как от порядка интерполяционного многочлена, так и от расположения узлов интерполирования. Получим выражение для погрешности аппроксимации, возникающей при замене выражением
. Будем считать, что
∈
и что величины
имеют один и тот же порядок малости при измельчении сетки. По формуле Тейлора в предположении ограниченности
получим
,
где ,±
Отсюда приходим к следующим разложениям разностных отношений
Подставляя полученные формулы в выражение для разностной производной и приводя подобные слагаемые получим
,
∈
.
Отсюда видно,что разностное выражение аппроксимирует со вторым порядком.
Если подставить полученные ранее разностные отношения в выражение для второй производной многочлена , то имеем
Из этого выражения видно, что даже на равномерной сетке,т.е. когда , второй порядок аппроксимации имеет место лишь в точке
, а относительно других точек (например,
) выполняется аппроксимация только первого порядка.
Таким образом, получим аппроксимацию лишь первого порядка.
Интеполирование кубическими сплайнами
Для того, чтобы избежать больших погрешностей в процессе приближения, весь отрезок [a,b] разбивают на частичные отрезки и на каждом из частичных отрезков приближенно заменяют функцию многочленом невысокой степени (так называемая кусочно-полиномиальная интерполяция).
Одним из способов интерполирования на всем отрезке является интерполирование с помощью сплайн-функций.
Сплайн-функцией или сплайном называют кусочно-полиномиальную функцию, определенную на отрезке [a,b] и имеющую на этом отрезке некоторое число непрерывных производных. Преимущество сплайнов перед обычной интерполяцией является, во-первых их сходимость, во-вторых, устойчивость процесса вычислений.
Построение кубического сплайна.
Пусть на [a,b] задана непрерывная функция . Введем сетку
и обозначим
,
.
Сплайном соответствующим данной функции
и данным узлам
называется функция
, удовлетворяющая следующим условиям:
а) на каждом сегменте ,
функция
является многочленом третьей степени;
б) функция , а также её первая и вторая производная производные непрерывны на [a,b];
в) ,
;
На каждом из отрезков ,
будем искать функцию
в виде многочлена третьей степени
,
где ,
, где
- коэффициенты, подлежащие определению.
Доказано, что существует единственный кубический сплайн, определяемый условиями а)-в) и граничными условиями
.
Для их нахождения используются следующие формулы
1) ,
2) Для определения коэффициентов получаем систему уравнений
,
(система решается методом прогонки)
По найденным коэффициентам коэффициенты
,
определяются с помощью явных формул
3)
4)
Найдем производные введенного кубического сплайна, имеем
Рассмотрим оценку погрешности метода, которая зависит от выбора сеток и от гладкости . Для простоты изложения допустим, что сетка равномерная, т.е.
с шагом
От функции будем требовать существования непрерывной на [a,b] четвертой производной,
∈
. Кроме того, предположим, что выполнены граничные условия
и такие же условия для сплайнов. Обозначим,
,
Пусть - кубический сплайн, построенный для функции
на сетке
. В следующей теореме приведены оценки погрешности интерполяции для функции
и её производных
,
Теорема
Для ∈
справедливы оценки
Из этих оценок следует, что при (т.е. при
) последовательности
,
сходятся соответственно к функциям
.
Обычно дифференцирование кубического сплайна позволят определить первую и вторую производную интерполяционного многочлена с хорошей точностью. Если надо вычислить более высокие производные, то целесообразно строить сплайны высоких порядков. Из-за большей трудоемкости этот способ редко используется. Способ дифференцирования с помощью сплайновой интерполяцией теоретически мало исследован.
Тригонометрическая интерполяция
Не всякую функцию целесообразно приближать алгебраическими многочленами.
Рассмотрим тригонометрическую интерполяцию.
Если - периодическая функция с периодом l, то естественно строить приближения с помощью функций
Таким образом, тригонометрическая интерполяция состоит в замене тригонометрическим многочленом
,
коэффициенты которого отыскиваются из системы уравнений
,
где .
Рекомендации программисту
При реализации достаточно сложно и трудоемко использовать методы сплайнов и метод тригонометрической интерполяции. Поэтому был рассмотрен случай интерполирования полиномом Лагранжа по трем точкам.
При вычислении полиномов ошибка была ничтожна.
При попытке в качестве функции взять синус,ошибка достигала очень большх цифр и был порядка 1.0, что достаточно велико для этой функции.
Поэтому следует внимательно выбирать шаг, расстояние между точками.
Программа требует ввода координат трех точек для полинома в порядке возрастания,а также точки промежуточной, в которой будет находиться значение производной.
На экран выводится значение, полученное при помощи полинома Лагранжа,истинное значение, полученное аналитически и ошибка вычисления.
Список литературы
- А.А.Самарский, А.В.Гулин. Численные методы. Москва «Наука», 1989.
- Н.Н.Калиткин. Численные методы. Москва «Наука», 1978.