Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПРИКЛАДНЫЕ РАСЧЕТЫ В MS EXC Часть 2.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
13.73 Mб
Скачать

2.2 Интерполяция

Многие зависимости, используемые при решении прикладных задач, представляются в табулированном виде (таблицами). В таких таблицах непрерывная зависимость функции y=f(x) от аргумента x представляется рядом пар значений x и y, отражающих ряд точек на линии y=f(x). При использовании таблиц часто возникает необходимость в определении приближенного значения y на интервалах расположенных между оговоренными точками. Другими словами решается задача нахождение значений функции для тех значений аргумента, которые находятся между значениями, имеющимися в таблице. Такой процесс называют интерполяцией.

Например, интерполируемая функция y=f(x) представлена в таблице набором пар значений xi и yi заданных в узлах интерполяции, и необходимо приближенно определить значение функции y* для заданного значения аргумента x*.

Аргумент - x

x1

x2

x3

xi-1

xi

xi+1

xn-1

xn

Функция - y

y1

y2

y3

yi-1

yi

yi+1

yn-1

yn

Кусочно-линейная интерполяция функции одного аргумента

Суть линейной интерполяции заключается в замене данной функции y=f(x) на отрезке [xi, xi+1] линейной функцией. При этом xi<x*<xi+1.

. (2.3)

Процесс интерполяции осуществляется в следующей последовательности: сначала определяется интервал [xi, xi+1] внутри которого располагается заданное значение аргумента x*, а затем производится расчет по формуле (2.3). Величина y* определяется с некоторой погрешностью, которая тем больше, чем выше значение второй производной интерполируемой функции и чем реже расположены узлы интерполяции. Когда используемые в практических расчетах функции достаточно гладкие, можно достичь приемлемого уровня погрешности линейной интерполяции. Погрешность интерполяции можно снизить, увеличив количество узлов интерполяции.

Рассмотрим наиболее простой способ линейной интерполяции табулированной функции одной переменной.

В ячейках А4:С8 представлена табулированная функция Yi=f(Xi). В ячейку В2 записывается значение Х для которого необходимо определить Y. В ячейку С2 записывается формула:

=ЕСЛИ(B2<B5;(C5-C4)/(B5-B4)*(B2-B4)+C4;ЕСЛИ(B2<B6;(C6-C5)/(B6-B5)*(B2-B5)+C5;ЕСЛИ(B2<B7;(C7-C6)/(B7-B6)*(B2-B6)+C6;(C8-C7)/(B8-B7)*(B2-B7)+C7)))

С помощью функции ЕСЛИ выбирается интервал, в который попадает значение X, а затем производится расчет по формуле (2.3).

Приведенный подход громоздок и, кроме того, существует ограничение на степень вложенности функций (не более 7).

Более эффективна реализация кусочно-линейной интерполяции с помощью функций ПОИСКПОЗ и ИНДЕКС.

Функция ПОИСКПОЗ - возвращает относительное положение элемента массива (позиция элемента в диапазоне ячеек).

Синтаксис:

ПОИСКПОЗ(Искомое_значение; просматриваемый_массив; тип_сопоставления)

где:

Искомое_значение — это значение, используемое при поиске значения в таблице.

Просматриваемый_массив - это непрерывный интервал ячеек, возможно, содержащих искомые значения.

Тип_сопоставления - это число -1, 0 или 1. Тип_сопоставления указывает, как Microsoft Excel сопоставляет искомое_значение со значениями в аргументе выделенный_массив.

  • Если тип_сопоставления равен 1, то функция ПОИСКПОЗ находит позицию наибольшего значения, которое равно или меньше, чем искомое_значение. Выделенный_массив должен быть упорядочен по возрастанию: -2, -1, 0, 1, 2.

  • Если тип_сопоставления равен 0, то функция ПОИСКПОЗ находит позицию первого значения, которое в точности равно аргументу искомое_значение. Выделенный_массив может быть упорядочен в любом порядке.

  • Если тип_сопоставления равен -1, то функция ПОИСКПОЗ находит позицию наименьшего значения, которое равно и больше чем искомое_значение. Выделенный_массив должен быть упорядочен по убыванию: 2, 1, 0, -1, -2, ..., и так далее.

  • Если тип_сопоставления опущен, то предполагается, что он равен 1.

Замечание. Если функция ПОИСКПОЗ не находит соответствующего значения, то возвращается значение ошибки #Н/Д.

Функция ИНДЕКС - возвращает значение или ссылку на значение из таблицы или интервала. Функция ИНДЕКС() имеет две синтаксические формы: ссылка и массив. Ссылочная форма всегда возвращает ссылку; форма массива всегда возвращает значение или массив значений.

Синтаксис:

ИНДЕКС(массив;номер_строки; номер_столбца) - возвращает значение указанной ячейки или массив значений в аргументе массив.

И НДЕКС(ссылка; номер_строки; номер_столбца; номер_области) - возвращает ссылку на указанную ячейку или ячейки в аргументе ссылка.

В примере (Рис 2.6) функция ПОИСКПОЗ (в ячейке Е1) используется для определения индекса i-1. Для предотвращения выхода за верхнюю границу значений Х в ячейке Е5 используется функция ЕСЛИ.