выч.мат.ppt
- Количество слайдов: 42
Интерполяция и аппроксимация функций
Таблично-заданная функция: X Y x 1 y 1 x 2 y 2 . . . xi yi … … xn yn Достоинство: Нет необходимости проводить дополнительные расчеты значения функции. Недостаток: Невозможность определения значений функции при значениях аргумента, отличных от табличных.
На графике таблично-заданные функции обозначаются в виде точек: y y=f(x) yi y 1 Узлы x 1 xi x
Модель «черного ящика» Вход: Аргумент Х Черный ящик (функция) Выход: Значение функции Y
Задача: Табличная функция определена только в узлах. Необходимо определить значение функции при всех остальных значениях аргумента (не только в узлах). Необходимо подобрать функцию y*=f(x), заданную аналитически, «заменяющую» таблично заданную функцию y.
C этой целью используются 2 метода: Интерполяция Подбирается такая интерполирующая функция y*=f(x), которая проходит строго через все узлы таблично заданной функции. Аппроксимация Подбирается такая аппроксимирующая функция y*=f(x), которая лежит максимально близко к узлам.
Графическая интерпретация методов: Интерполяция Аппроксимация y y y*=f(x) yi y=f(x) y 1 Узлы x 1 xi x
1. Интерполяция функций А) Глобальная интерполяция. Б) Локальная интерполяция.
Экстраполяция Если значение аргумента не лежит внутри интервала изменения аргумента (вне таблицы), то такой метод называется экстраполяцией. Как правило, экстраполяция сопряжена с достаточно высокой погрешностью. y y=f(x) y*=f(x) yц Xц x
Локальная интерполяция Необходимо определиться с видом интерполирующей функции. На практике чаще всего использую следующие виды локальной интерполяции: 1. Линейная интерполяция 2. Квадратичная интерполяция 3. Сплайн-интерполяция
Линейная интерполяция В качестве интерполирующей выбирают линейную функцию: y=c 0+c 1 x. Через любые 2 точки можно провести только одну прямую линию. Всю область изменения аргумента делят на участки, содержащие по 2 соседние точки.
y Получаем ломаную кривую. На каждом отдельном участке линейная функция имеет свои параметры c 0 и c 1. Рассмотрим 2 соседние точки с координатами (xi-1, yi-1) и (xi, yi). Эти точки должны удовлетворять одной прямой. yi-1 yi xi-1 xi x
Получаем СЛАУ 2 -го порядка: Неизвестные: параметры прямой c 0 и c 1. Решаем эту систему, получаем:
Алгоритм линейной интерполяции: 1. Поиск участка, в который попадает значение аргумента xц, при котором необходимо рассчитать значение функции. 2. Нахождение соседних точек таблично заданной функции и расчет параметров прямой линии. 3. Подстановка аргумента xц в уравнение прямой и расчет необходимого значения функции
Блок-схема метода линейной интерполяции НАЧАЛО i=2, n ввод n Количество пар точек нет i=1, n ввод x(i), y(i) ввод xx Ввод табличной функции Ввод аргумента, при котором необходимо рассчитать значение функции x(i-1)<xx и x(i)≥xx да k=i c 1=(y(k)-y(k-1))/(x(k)-x(k-1)) c 0=y(k-1)-c 1*x(k-1) yy=c 0+c 1*xx вывод yy КОНЕЦ
Квадратичная интерполяция В качестве интерполирующей выбирают квадратичную функцию: y=c 0+c 1 x+c 2 x 2. Через любые 3 точки можно провести только одну параболу. Всю область изменения аргумента делят на участки, содержащие по 3 соседние точки.
y Получаем ломаную кривую, состоящую из парабол. На каждом отдельном участке квадратичная функция будет иметь свои параметры c 0, c 1 и c 2. Рассмотрим 3 соседние точки с координатами (xi-1, yi-1), (xi, yi) и (xi+1, yi+1). Эти точки должны удовлетворять одной параболе. x
Получаем СЛАУ 3 -го порядка: Неизвестными здесь являются параметры параболы c 0 , c 1 и c 2. Решаем эту систему методом Крамера.
В полученное уравнение квадратичной функции y=c 0+c 1 x+c 2 x 2 с найденными параметрами подставляем значение аргумента xц и находим значение функции yц. Алгоритм реализации аналогичен алгоритму реализации метода линейной интерполяции.
Сплайн-интерполяция В качестве интерполирующих функций используются полиномы (многочлены) 3 -го порядка: y=c 0+c 1 x+c 2 x 2 +c 3 x 3 Более того, чтобы на стыке двух функций не было излома (чтобы общая интерполирующая кривая была гладкой) задают условие равенства первых и вторых производных этих функций.
Глобальная интерполяция Необходимо, чтобы одна интерполирующая функция проходила через все узлы таблично заданной функции. Обычно в этом случае интерполирующую функцию ищут в виде полинома: y=c 0+c 1 x+c 2 x 2 +…+cixi+…+cn-1 xn-1 Через n точек может проходить только один график функции полинома n-1 порядка.
Интерполяция методом канонических полиномов В уравнение полиномиальной зависимости подставляются все значения точек x - y (аргумент - функция) табличной зависимости. Таким образом, получается система линейных уравнений n-го порядка:
Решаем полученную СЛАУ одним из известных методов, получаем значения параметров полиномиальной зависимости: c 0, c 1, c 2, …, ci, …, cn-1 В полученное уравнение полиномиальной функции с найденными параметрами подставляем значение аргумента xц и находим значение функции yц. Данный метод удобен в случаях, когда необходимо найти несколько значений функции при нескольких значениях аргумента.
Интерполяция методом полинома Лагранжа Данный метод удобен в случаях, когда необходимо найти только одно значение функции при одном значении аргумента. В этом методе полином n-1 степени представляется в виде: где l 1, l 2, …, li, …, ln - являются также полиномиальными зависимостями.
Данные полиномы рассчитываются по следующим формулам: l x =x Коэффициент i будет равен 1, если ц i , и будет равен 0 (нулю), если ц 1 , 2 и так далее. x =x x
НАЧАЛО yy=0 ввод n Количество пар точек i=1, n L=1 ввод x(i), y(i) ввод xx Ввод табличной функции j=1, n Ввод аргумента, при котором необходимо рассчитать значение функции нет i≠j да L=L*(xx-x(j))/(x(i)-x(j)) Блок-схема интерполяции полиномом Лагранжа yy=yy+y(i)*L вывод yy КОНЕЦ
Достоинства метода интерполяции: Если исходная таблично заданная функция не содержит в себе погрешности, то метод интерполяции дает достаточно точные и достоверные результаты. Недостатки метода интерполяции: 1. В случае локальной интерполяции получается несколько интерполирующих функций, с которыми неудобно работать. 2. В случае глобальной интерполяции при достаточно большом количестве пар точек (узлов) получается достаточно сложная и громоздкая интерполирующая функция. 3. Если исходная таблично заданная функция содержит в себе погрешность, то интерполирующая функция также будет «копировать» эту погрешность и не даст необходимого достоверного результата.
2. Аппроксимация функций Всех перечисленных недостатков интерполяции лишен метод аппроксимации функций. Аппроксимирующая функция не проходит через все узлы, а лежит максимально близко к ним. В этом методе в случае флуктуаций (выбросов) точек, аппроксимирующая функция получается достаточно гладкой.
Пример: Рассматривается линейная функция. Метод интерполяции в этом случае неприменим. Применяется метод аппроксимации. y x
Возникает вопрос: Каков критерий близости аппроксимирующей функции к исходной таблично заданной? МЕТОД НАИМЕНЬШИХ КВАДРАТОВ (МНК). Суть: Аппроксимирующая функция должна быть такой, чтобы сумма квадратов отклонений аппроксимирующей функции от исходной таблично заданной была минимальной.
y Согласно МНК только одна функция будет лежать максимально близко к исходным узлам. x y 7 6 4 2 3 5 y=y*(x) 1 x
Замечание: МЕТОД НАИМЕНЬШИХ КВАДРАТОВ не позволяет определить вид аппроксимирующей функции. МНК позволяет определить только параметры выбранного вида аппроксимирующей функции. Вид аппроксимирующей функции определяет пользователь исходя из теоретических знаний, логических предпосылок или других разумных соображений.
Аппроксимация линейной функцией В качестве аппроксимирующей выбирают линейную функцию: y*=c 0+c 1 x. Здесь c 0 и c 1 - параметры функции, которые определим с использованием МНК.
В формулу суммы квадратов отклонений подставим аппроксимирующую линейную функцию, получим: Находим минимум функции S, приравняв частные производные функции S по параметрам аппроксимирующей функции нулю:
Преобразуем полученные выражения: В результате получаем СЛАУ, где в качестве неизвестных выступают параметры линейной функции c 0 и c 1:
Решаем полученную СЛАУ методом Крамера: Таким образом, вычислив параметры c 0 и c 1, мы получаем линейную аппроксимирующую функцию: y*=c 0+c 1 x.
НАЧАЛО i=1, n ввод n Количество пар точек S 1=S 1+xi*xi S 2=S 2+xi S 3=S 3+xi*yi S 4=S 4+yi i=1, n ввод x(i), y(i) ввод xx Ввод табличной функции Ввод аргумента, при котором необходимо рассчитать значение функции S 1=0; S 2=0 S 3=0; S 4=0 c 1=(S 3*n-S 2*S 4)/(S 1*n-S 22)) c 0=(S 1*S 4 -S 2*S 3)/(S 1*n-S 22)) yy=c 0+c 1*xx вывод c 1, c 0, yy Блок-схема аппроксимации линейной функцией КОНЕЦ
Аппроксимация квадратичной функцией В качестве аппроксимирующей выбирают квадратичную функцию: y*=c 0+c 1 x+c 2 x 2. Здесь c 0 , c 1 и c 2 - параметры функции, которые определим с использованием МНК.
В формулу суммы квадратов отклонений подставим аппроксимирующую квадратичную функцию, получим: Для нахождения минимума функции S приравняем частные производные функции S по параметрам аппроксимирующей функции нулю:
Преобразуем полученные выражения следующим образом: В результате получаем систему линейных алгебраических уравнений, где в качестве неизвестных выступают параметры квадратичной функции c 0 , c 1 и c 2:
Решаем полученную СЛАУ методом Крамера для систем 3 -го порядка и вычисляем параметры c 0 , c 1 и c 2. Таким образом, мы получаем квадратичную аппроксимирующую функцию: y*=c 0+c 1 x+c 2 x 2
НАЧАЛО i=1, n ввод n Количество пар точек i=1, n ввод x(i), y(i) ввод xx Ввод табличной функции Ввод аргумента, при котором необходимо рассчитать значение функции S 1=0; S 2=0 S 3=0; S 4=0 S 5=0; S 6=0 S 7=0 Блок-схема аппроксимации квадратичной функцией S 1=S 1+xi 4 S 2=S 2+xi 3 S 3=S 3+xi 2 S 4=S 4+xi S 5=S 5+xi 2*yi S 6=S 6+xi*yi S 7=S 7+yi a 11=S 1; a 12=S 2; a 13=S 3 a 21=S 2; a 22=S 3; a 23=S 4 a 31=S 3; a 32=S 4; a 33=n b 1=S 5; b 2=S 6; b 3=S 7 c 2= вычисляются c 1= по формулам c 0= Крамера yy=c 0+c 1*xx+с2*xx 2 вывод c 2, c 1, c 0, yy КОНЕЦ
выч.мат.ppt