Интерполирование функций
Интерполяция применяется во многих задачах, связанных с вычислениями. Укажем некоторые из этих задач.
Обработка физического эксперимента – построение приближенных формул для характерных величин по табличным данным, полученным экспериментально.
Построение приближенных формул по данным вычислительного эксперимента. Здесь возникают нестандартные задачи интерполяции, так как обычно записываются формулы, с возможно более простой структурой.
Субтабулирование - сгущение таблиц применяется в тех случаях, когда непосредственное вычисление функций трудно или когда имеется мало экспериментальных данных. В РС вводится небольшая таблица, а нужные при расчетах значения функции находятся по мере необходимости по интерполяционной формуле.
Интерполяция применяется также в задаче обратного интерполирования: задана таблица уi = y(xi); найти хi как функцию от уi. Примером обратного интерполирования может служить задача о нахождении корней уравнения.
Интерполяционные формулы используются также при вычислении интегралов, при написании разностных аппроксимаций для дифференциальных уравнений на основе интегральных тождеств.
В общем случае при постановке задачи приближения нужно следовать по алгоритму:
- определить какой класс приближенных функций нужно выбрать;
- выбрать критерий близости («согласия») исходной и приближающей функции (совпадение в узловых точках – метод Лагранжа, или метод наименьших квадратов);
- указать правило, позволяющее с заданной степенью точности, получить значение функции в промежуточных точках между узлами (какие узлы использовать и как их расположить).
Часто требуется восстановить функцию f(x) для всех значений х на отрезке а ≤ х ≤ b, если известны ее значения в некотором конечном числе точек этого отрезка. Эти значения могут быть найдены в результате наблюдений (измерений) в каком-то натурном эксперименте, либо в результате вычислений. Кроме того, может оказаться, что функция f(x) задается формулой и вычисления ее значений по этой формуле очень трудоемки, поэтому желательно иметь для функции более простую (менее трудоемкую для вычислений) формулу, которая позволяла бы находить приближенное значение рассматриваемой функции с требуемой точностью в любой точке отрезка. В результате возникает следующая математическая задача.
Пусть на отрезке а £ x £ b задана сетка ω ={х0 = а < х1 <¼< хn = b } и в ее узлах заданы значения функции у (х), равные у (х0) = у0, …, у(хi) = уi, …, у(хn) = уn. Требуется построить интерполянту– функцию f(х), совпадающую с функцией у(х) в узлах сетки:
f (xi) = yi, i = 0, 1, …, n (3.1)
Основная цель интерполяции – получить быстрый (экономичный) алгоритм вычисления значений f(x) для значений х, не содержащихся в таблице данных.
Основной вопрос: как выбрать функцию - интерполянту f(х) и оценить погрешность у(х) - f(х)?
Интерполирующие функции f(х), как правило, строятся в виде линейных комбинаций некоторых элементарных функций:
f(x) = ,
где {Ф (х)} - фиксированные линейно независимые функции;
с0, с1, …, сn - не определенные пока коэффициенты.
Из условий (3.1) получим систему n+1 уравнений относительно коэффициентов {с }:
Предположим, что система функций Ф (х) такова, что при любом выборе узлов а = х0< х1 < …< хn = b отличен от нуля определитель системы:
Тогда по заданным уi (i = 0,1,…, n ) однозначно определяются коэффициенты с ( = 0, 1, …, n).
В качестве системы линейно независимых функций {Ф (х)} чаще всего выбирают: степенные функции Ф (х) = х (в этом случае f = Pn (x) – полином степени n ); тригонометрические функции { Ф (х) = соs kх, sin kx} (в этом случае f - полином тригонометрический). Используются также рациональные функции
и другие виды интерполирующих функций.
Рассмотрим полиномиальную интерполяцию.
Известно, что любая непрерывная на отрезке [а, b] функция f(x) может быть хорошо приближена некоторым полиномом Рn(х).
Будем искать интерполяционный полиномв виде
Рn(x) = ( 3.2 )
где с - неопределенные пока коэффициенты.
Полагая f (xi) = yi, получим систему линейных уравнений вида
с0+с1 х0+…+сnх0n= y0,
с0+с1 х1+…+сnх1n= y1,
…………………..…,
с0+с1 хn+…+сnхnn= yn.
Определитель этой системы отличен от нуля, т.е. полином вида (3.2) существует и единственен. Форм записей такого полинома существует множество.
В качестве базиса {Ф (х)} мы взяли базис из одночленов 1, х, х2, …, хn. Для вычислений более удобным является базис полиномов Лагранжа {l (x)} степени n или коэффициентов Лагранжа:
l (xi) = 1, если i = k,
0, если i ≠ k , i, k = 0, 1, …, n.
Нетрудно видеть, что полином степени n
l (x) = l (x) =
удовлетворяет этим условиям. Полином l (x), очевидно, определяется единственным образом.
Полином l (x) y принимает значение у в точке х и равен нулю во всех остальных узлах х при j ¹ k. Отсюда следует, что интерполяционный полином
Рn(x) = (3.3)
имеет степень не выше n и Рn (xi) = yi. Формулу (3.3) называют формулой Лагранжа. К достоинствам формулы можно отнести то, что число арифметических действий для вычисления пропорционально n2.
Для оценки близости полинома Рn(х) к функции f(х) предполагают, что существует (n+1)-я непрерывная производная f(n+1) (х).
Дата добавления: 2017-09-19; просмотров: 1070;