Алгоритм локальной интерполяции по формуле Лагранже
Алгоритм глобальной интерполяции по формуле Лагранжа.
Ввод x(i), y(i), где i=1,2…n; xk |
Вычисление yk по формуле (2) |
Печать xk, yk |
x(n), y(n) –массивы заданных точек и функции в этих точках;
xk – точка, в которой надо найти значение функции yk.
3.3.2. Локальная интерполяция.
При локальной интерполяции для каждого интервала строится своя функция. Рассмотрим линейную интерполяцию. Задана точка x (i=1, 2, 3….n) на отрезке [a;b] и значения функции в этих точках y(i). Запишем уравнение прямой на i - том интервале, проходящей через точки (xi-1, yi-1) и (xi, yi):
(y-yi-1) / (yi-yi-1) = (x-xi-1) / (xi-xi-1)
Отсюда
y = yi-1 + (yi-yi-2) * (x-xi-1) / (xi-xi-1)
По этой формуле можно определить функцию y в лубой точке. Но сначала надо определить в какой интервал отрзка [a;b] попадет искомая точка, т. е. определитель i.
Алгоритм линейной интерполяции.
Ввод x(i), y(i), где i=1,2…n; xk |
i=1 |
Начало цикла |
i=i+1 |
конец цикла, по условию xk<x(i) |
Вычисление yk по формуле (3) |
Печать xk, yk |
x(n), y(n) –массивы заданных точек и функции в этих точках;
xk – точка, в которой надо найти значение функции yk.
Линейную интерполяцию применяют, если функция близка к линейной или узлы интерполяции находится достаточно близко между собой.
Алгоритм локальной интерполяции по формуле Лагранже.
Формулу Лагранжа можно использовать и для локальной интерполяции. Для этого удобно проводить интерполяционный многочлен через 4 точки, причем проводить его так, чтобы точка, в которой надо найти значение функции, находилась в середине многочлена, т.е. между второй и третьей точками. Исключение составит точки, находящиеся на первом и последнем интервале.
n - количество узлов интерполяции;
a, b – соответственно левый и правый концы интервала;
x (n), y (n) - массивы узлов интерполяции;
xk - точка, в которой надо найти значение функции;
yk – значение интерполяционного многочлена в точке xk;
nn, nk – соответственно номера 1- ой и последней точек интерполяционного многочлена.
Ввод a, b, n, xk, x(i), y(i) i=1, 2, … n |
k=1 |
Начало цикла |
k=k+1 |
Конец цикла, по условию xk < x(k) |
Если х<=2, то nn=1; nk=4 |
Если 2<k<=n-1, то nn=k-2; nk=k+1 |
Если k=n, то nn=n-3; nk=n |
yk=LAGR(nn,nk,xk,x,y) |
Печать xk, yk |
В этом случае формула Лагранжа запишется так:
Обычно при локальной интерполяции не применяют многочлен выше четвертой степени. Для повышения точности надо увеличить количество узлов. Недостатком локальной интерполяции является наличие точек сопряжения интерполирующих кривых, а значит – разрыв производных, что недопустимо для некоторых задач.
Инструкция пользования программой
Для запуска программы необходимо открыть лист EXCEL, затем нажать на клавишу ALT и F11 одноременно. Затем появится окно для напиcания программы для языке Visual Basic.
Сначала рассмотрим запись на Visual Basic по методу глобальной интерполяции:
· вводим массивы узлов интерполяции, количество узлов интерполяции и точку, в которой надо найти промежуточное значение;
· переводим формулу Лагранжа (2) на язык программирования для Visual Basic и записываем;
· вводим адрес ячейки для вывода на лист EXCEL, в которую выйдет значение промежуточной точки (уk).
Теперь рассмотрим запись по методу линейной интерполяции:
· вводим массивы узлов интерполяции, количество узлов интерполяции и точку, в которой надо найти промежуточное значение;
· находим номера точек;
· записываем формулу для нахождения промежуточной точки (уk);
· вводим адрес ячейки для вывода на лист EXCEL.
Запись по методу локальной интерполяции:
· обращаем формулу Лагранжа для локальной интерполяции к функции и записываем;
· вводим массивы узлов интерполяции, количество узлов интерполяции и точку, в которой надо найти промежуточное значение;
· находим номера точек;
· вводим условия для значений nn и nk;
· вводим адрес ячейки для вывода на лист EXCEL.
Исходные данные и результат решения контрольного примера
1. Вводные данные:
x | -5 | -4 | -3 | -2 | -1 | ||||||
y | -2,17 | -2,96 | -5,29 | 20,00 | 1,11 | 0,00 | 0,91 | 2,22 | 2,43 | 2,16 | 1,85 |
Задача:
Вычислить значение функции между всеми точками методами:
1. Лагранжа как глобальную интерполяцию;
2. Лагранжа как локальную интерполяцию;
3. линейной интерполяции.
2. График функции вводных данных:
Рис.1
3. Текст программы по методу глобальной интерполяции по формуле Лагранжа;
4. Текст программы по методу линейной интерполяции:
5. Текст программы по методу локальной интерполяции по формуле Лагранжа:
6. Все найденные точки на листе EXCEL:
Рис.2
7. Построение найденных промежуточных точек на графике:
Рис. 3
Заключение
В данной курсовой работе я разобрал формулу Лагранжа для разных методов интерполяции. Формулу Лагранжа удобно использовать, если нет необходимости иметь коэффициенты многочлена, а надо лишь найти значения функции в промежуточных точках. Именно такая задача была поставлена передо мной, т.е. найти значения функции в промежуточных точках. Судя по графику (рис.3), можно прийти к выводу, что найденные точки являются значениями данной функции .
В процессе выполнения курсовой работы были закреплены приобретенные за период обучения навыки и умения самостоятельного составления алгоритмов и программ на языке программирования Visual Basic простых типовых математических задач. Эта работа ещё раз подтвердила полезность использования ЭВМ для решения прикладных математических задач. Полученные знания и накопленный опыт решения простых задач в будущем позволят разрабатывать гораздо более сложные программы и алгоритмы, облегчат разбиение сложных задач на простые элементы.
Список использованной литературы
1. Бахвалов, Н. С. Численные методы / Н. С. Бахвалов, Н. П. Жидков, Г. М. Кобельков. - М. : Наука, 1987. - 597 с.
2. Бут, Э. Д. Численные методы / Э. Д. Бут. - М. : Физматгиз, 1959. - 239 с.
3. Воробьева, Г. Н. Практикум по вычислительной математике / Г. Н. Воробьева, А. Н. Данилова. – М. : Высшая школа, 1990. – 207 с.
4. Рено, Н. Н. Численные методы: учебное пособие / Н. Н. Рено. – М. : КДУ, 2007. - 100 с.
5. Турчак, Л. И. Основы численных методов / Л. И. Турчак. - М. : Наука, 1978. - 318 с.
6. Хемминг, Р. В. Численные методы / Р. В.. Хемминг. - М. : Наука, 1968. - 400 с.