
- •2 Аппроксимация функций
- •2.1 Понятие аппроксимации
- •2.2 Вычисление значений полиномов по схеме горнера
- •Сравнивая эти две формулы, делаем вывод, что
- •2.3 Аппроксимация некоторых трансцендентных функций с помощью рядов
- •2.4. Экономизация степенных рядов при помощи полиномов чебышева
- •2.5 Дробно–рациональные приближения
- •2.6 Постановка задачи интерполирования
- •2.7 Интерполяционный полином лагранжа
- •2.8 Интерполяционный полином ньютона
- •2.9 Интерполирование функций многих переменных
- •2.10 Нелинейная интерполяция
- •2.11 Обратное интерполирование
- •2.12 Интерполирование сплайнами
- •2.13 Аппроксимация по методу наименьших квадратов
- •2.13.1 Квадратичное аппроксимирование обобщенными полиномами
- •2.13.2 Метод наименьших квадратов в нелинейном случае
2.9 Интерполирование функций многих переменных
|
yo |
y1 |
y2 |
... |
x0 |
z00 |
z01 |
z02 |
... |
x1 |
z10 |
z11 |
z12 |
... |
x2 |
z20 |
z21 |
z22 |
... |
... |
... |
... |
... |
... |
Обозначим zij=f(xi,yj), h1=xi+1–xi, h2=yj+1–yj (то есть узлы – равноотстоящие). Запишем общую формулу интерполяционного многочлена от двух переменных. Очевидно, она должна иметь следующий вид:
Например, интерполяционный многочлен Ньютона 2-ой степени для двух переменных выглядит следующим образом:
Здесь
по аналогии с конечными разностями
введены частные конечные разности
первого порядка:
и второго порядка
Какие существуют сложности при многомерном интерполировании?
1. Возрастает объем необходимой информации, то есть объем таблиц. Поэтому шаги по аргументам приходится брать довольно большими, что предъявляет жесткие требования к способу интерполирования.
2. Если для функции одной переменной степень полинома была взаимно однозначно связана с числом узлов, то для двух переменных полином n-ой степени Pn(x,y) имеет (n+1)(n+2)/2 узлов. Если число узлов не соответствует этой формуле, то часть коэффициентов при высших степенях приходится задавать произвольно (например, нули), что, естественно, влияет на точность аппроксимации.
3. Не всякое расположение узлов допустимо. В одномерном случае узлы не должны совпадать. Теперь же, например, при линейной интерполяции полиномом P1(x,y) необходимо, чтобы узлы не лежали на одной прямой в плоскости (x,y)1. При интерполяции квадратичным полиномом P2(x,y) требуется, чтобы узлы не лежали на кривой второго порядка. Такие условия проверять в общем случае довольно сложно, поэтому для хорошей интерполяции строят регулярную сетку. Наиболее удобная – прямоугольная сетка (рис.2.4).
Пусть, например, задана таблица zi,j=f(xi,yj ) и требуется найти f(x,y). Сначала проводим одномерную интерполяцию (лагранжеву или ньютонову) по строкам, то есть для каждого фиксированного j находим L(x,y0), L(x,y1 ),..., L(x,ym ).
Затем проводим одномерную интерполяцию по столбцам, то есть по значениям L(x,yj ) находим L(x,y).
Рис.2.4 –
Интерполирование функции двух переменных.
2.10 Нелинейная интерполяция
Рассмотрим нелинейные быстроменяющиеся функции. Пусть дана таблица значений некоторой функции y=f(x) вместе с конечными разностями:
xk |
yk |
y0 |
2y0 |
3y0 |
0 |
1 |
10 |
100 |
1020 |
1 |
11 |
110 |
1120 |
|
2 |
121 |
1230 |
|
|
3 |
1351 |
|
|
|
Пусть требуется вычислить у(0,5). Очевидно, это значение лежит в диапазоне (1;11). Используем интерполяционный полином Ньютона:
Результат весьма далек от ожидаемого, так как этот ряд содержит быстровозрастающие члены и совсем не похож на сходящийся.
Как интерполировать такие функции? Использовать более подробные таблицы? А если их нет? Универсального рецепта не существует, но для каждой конкретной функции часто удается найти свой способ интерполяции, дающий приемлемую точность.
Для этого, выяснив качественное поведение функции (или зная ее физический смысл, или сравнивая ее поведение с известными элементарными функциями), стараются подобрать такое преобразование переменных =(у) ; =(х), чтобы в новых переменных график функции () мало отличался от прямой линии на протяжении нескольких шагов таблицы.
Затем составляют таблицу i=(i), интерполируют по ней и обратным преобразованием находят у=у().Этот прием называют методом выравнивания.
В рассматриваемом примере делаем замену =х; =lg y и составляем новую таблицу:
k |
k |
0 |
20 |
30 |
0 |
0 |
1,0414 |
0 |
0,0064 |
1 |
1,0414 |
1,0414 |
0,0064 |
|
2 |
2,0828 |
1,0478 |
|
|
3 |
3,1306 |
|
|
|
Первые разности мало отличаются друг от друга – это говорит о том, что выбранная зависимость () близка к линейной.
Проводим
интерполяцию по интерполяционному
полиному Ньютона:
.
Таким образом, =0,5203, у=100,5203 3,314.