Интерполяция функций в пакете MatLab. Полином Лагранжа
Роль интерполяции функций в вычислительной математике. Реализация интерполирования функций полиномом Лагранжа в программном продукте MatLab. Интерполяционная формула Лагранжа. Интерполяция по соседним элементам, кубическими сплайнами. Анализ результатов.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 10.06.2012 |
Размер файла | 1,4 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Факультет Информатики и вычислительной техники
Кафедра математического и аппаратного обеспечения информационных систем
Курсовая работа
по дисциплине "Вычислительная математика"
"Интерполяция функций в пакете MatLab.
Полином Лагранжа "
Выполнил: студент группы
ИВТ-11-10 Фёдоров В.С.
Содержание
- Введение
- 1. Теоретическая часть
- Интерполяция функций
- Интерполяционная формула Лагранжа
- 2. Практическая часть
- Реализация
- Распечатка серии тестов
- Анализ полученных результатов
- Интерполяция по соседним элементам
- Линейная интерполяция
- Интерполяция кубическими сплайнами
- Интерполяция Лагранжа
- Список использованной литературы
Введение
В вычислительной математике существенную роль играет интерполяция функций, т.е. построение по заданной функции другой (как правило, более простой), значения которой совпадают со значениями заданной функции в некотором числе точек. Причем интерполяция имеет как практическое, так и теоретическое значение. На практике часто возникает задача о восстановлении непрерывной функции по ее табличным значениям, например полученным в ходе некоторого эксперимента. Для вычисления многих функций оказывается эффективно приблизить их полиномами или дробно-рациональными функциями. Теория интерполирования используется при построении и исследовании квадратурных формул для численного интегрирования, для получения методов решения дифференциальных и интегральных уравнений.
Аннотация:
В данной курсовой работе в программном продукте MatLab реализовано интерполирование функций полиномом Лагранжа.
1. Теоретическая часть
Интерполяция функций
Пусть на отрезке [a, b] заданы значения функции y = f (x) в точках
Интерполяция - нахождение многочлена не выше n-ой степени:
(1)
который в точках принимает те же значения, что и данная функция, т.е. выполняются равенства:
() = f () = , i = 0, 1, 2, …,n. (2)
Другими словами, интерполяция - нахождение многочлена вида (1), который на отрезке [a, b] являлся бы приближением для функции y = f (x).
Многочлен (1) называется интерполяционным многочленом, точки - узлами интерполяции
.
Интерполяционная формула Лагранжа
Рассмотрим вопрос об отыскании коэффициентов интерполяционного многочлена (1).
интерполяция полином лагранж математика
Подставляя этот многочлен в систему (2), получаем систему n+1 уравнений первой степени с n+1 коэффициентами :
Решая систему, находим коэффициенты и, подставляя их в (1) получаем искомый интерполяционный многочлен. Однако на практике этот способ связан с громоздкими вычислениями при решении системы.
Поэтому интерполяционный многочлен (1) будем искать в виде:
(4)
Полагая в (4) x = и учитывая условия (2) получим:
,
откуда =
Полагая в (4) x = получим:
,
откуда
=
Аналогично найдем
=
…………………
=
Подставляя найденные значения коэффициентов в формулу (4), получаем искомый многочлен
= + +
. + (5)
Формула (5) называется интерполяционной формулой Лагранжа.
Пример. Найти многочлен второй степени, приближенно выражающий функцию f (x).
x0 = 1 |
x1 = 3 |
x2 = 5 |
|
y0 = 2 |
y1 = 1 |
y2 = 8 |
Решение. По формуле (5) находим
= + +
= 2 + +
= x +
Блок - схема алгоритма.
2. Практическая часть
Реализация
Для среды разработки был выбран программный продукт MatLab, так как он очень удобен для математических операций и построения графиков.
Листинг:
lagrange. m
function f=LagrangeP (x,y,r)
% (x,y) массивы координат точек
m=length (r);
nx=length (x);
ny=length (y);
if (nx ~= ny),
error (' (x,y) do not have the same # values')
end
for k=1: m
sum = 0;
for i=1: nx
delt (i) =1;
for j=1: nx
if (j ~= i),
delt (i) = delt (i) * (x (k) - xt (j)) / (xt (i) - xt (j));
end
end
sum = sum + ft (i) * delt (i);
end
f (k) =sum;
end
plot (x,y,'o',r)
Руководство программиста:
Назначение программы: Построение полинома Лагранжа.
Используемые функции:
plot (x,y) - команда plot (x, y) соответствует построению обычной функции, когда одномерный массив x соответствует значениям аргумента, а одномерный массив y - значениям функции.
length (x) - встроенная функция, вычисляет количество элементов в одномерном массиве.
interp1 (x, y, xi, `text') - приближение функции одной переменной сплайнами, где x,y - это табличные данные исходной функции, xi - значения аргумента сетки, а `text' = nearest - интерполяция по соседним элементам, linear - линейная итерполяция, Spline - интерполяция кубическими сплайнам.
Руководство пользователя:
Назначение программы: Построение полинома Лагранжа c помощью интерполяционной формулы Лагранжа.
Выполнение программы: В окошке Command Window введем табличные данные исходной функции x и y, а также X абсцисс точек, в которых вычисляются значения интерполяционного полинома. После этого введем Y=LagrangeP (x,y,X) для построения полинома Лагранжа. Выводится графики исходной функции и интерполянты.
Распечатка серии тестов
Для примера возьмем исходную функцию: , построим график этой функции:
Находим точки дискретизации, где шаг равен 0.5:
x |
2 |
2,5 |
3 |
3,5 |
4 |
4,5 |
5 |
5,5 |
6 |
6,5 |
7 |
|
y |
-0,68 |
-0,57 |
-0,03 |
-0,23 |
-0,74 |
-0,40 |
0,52 |
0,70 |
0,14 |
0,09 |
0,65 |
Интервал вычисления интерполянты: от 2 до 7 с шагом 0.1
Используем встроенную функцию: - интерполяция по соседним элементам.
Строим точки дискретизации и график интерполянты:
- линейная итерполяция.
Строим точки дискретизации и график интерполянты:
- интерполяция кубическими сплайнам.
Строим точки дискретизации и график интерполянты:
Воспользуемся написанной функцией:
- интерполяция формулами Лагранжа.
Строим точки дискретизации и график интерполянты:
Анализ полученных результатов
Ниже приведен листинг программы для вычисления погрешности. Функция выводит на экран максимальное по модулю значение погрешности.
Листинг:
pogr. m
function p=pogr (X,Y)
yi=sin (2*X). *sin (X);
P=yi-Y;
p=P;
abs (p);
max (p)
Интерполяция по соседним элементам
Возьмем для теста несколько не узловых точек.
X |
2,10 |
2,37 |
2,64 |
2,91 |
3,18 |
3,45 |
3,72 |
3,99 |
4,26 |
|
Y |
-0,68 |
-0,57 |
-0,57 |
-0,04 |
-0,04 |
-0,23 |
-0,23 |
-0,74 |
-0,41 |
|
X |
4,53 |
4,8 |
5,07 |
5,34 |
5,61 |
5,88 |
6,15 |
6,42 |
6,69 |
|
Y |
-0,41 |
0,52 |
0,52 |
0,70 |
0,70 |
0,15 |
0,15 |
0,09 |
0,09 |
>> pogr (X,Y); - вычисляем максимальную погрешность 0.1972.
Линейная интерполяция
Возьмем для теста несколько не узловых точек.
X |
2,10 |
2,37 |
2,64 |
2,91 |
3,18 |
3,45 |
3,72 |
3,99 |
4,26 |
|
Y |
-0,66 |
-0,60 |
-0,42 |
-0,13 |
-0,10 |
-0,21 |
-0,45 |
-0,73 |
-0,56 |
|
X |
4,53 |
4,8 |
5,07 |
5,34 |
5,61 |
5,88 |
6,15 |
6,42 |
6,69 |
|
Y |
-0,34 |
0,15 |
0,54 |
0,64 |
0,58 |
0,28 |
0,13 |
0,09 |
0,30 |
>> pogr (X,Y); - вычисляем максимальную погрешность 0.1228
Интерполяция кубическими сплайнами
Возьмем для теста несколько не узловых точек
X |
2,10 |
2,37 |
2,64 |
2,91 |
3,18 |
3,45 |
3,72 |
3,99 |
4,26 |
|
Y |
-0,76 |
-0,70 |
-0,40 |
-0,10 |
-0,01 |
-0,17 |
-0,49 |
-0,74 |
-0,69 |
|
X |
4,53 |
4,8 |
5,07 |
5,34 |
5,61 |
5,88 |
6,15 |
6,42 |
6,69 |
|
Y |
-0,35 |
0,17 |
0,61 |
0,76 |
0,60 |
0,27 |
0,05 |
0,05 |
0,24 |
>> pogr (X,Y); - вычисляем максимальную погрешность 0.0446
Интерполяция Лагранжа
Возьмем для теста несколько не узловых точек
X |
2,10 |
2,37 |
2,64 |
2,91 |
3,18 |
3,45 |
3,72 |
3,99 |
4,26 |
|
Y |
-0,70 |
-0,67 |
-0,41 |
-0,11 |
0,0009 |
-0,17 |
-0,50 |
-0,74 |
-0,70 |
|
X |
4,53 |
4,8 |
5,07 |
5,34 |
5,61 |
5,88 |
6,15 |
6,42 |
6,69 |
|
Y |
-0,35 |
0,17 |
0,61 |
0,77 |
0,60 |
0,27 |
0,05 |
0,06 |
0, 19 |
>> pogr (X,Y); - вычисляем максимальную погрешность 0.0963
Из вычислений видно, что интерполяция по соседним элементам является самым неточным, а интерполяция кубическими сплайнами и интерполяция формулами Лагранжа намного точнее.
Список использованной литературы
1. Волков, Е.А. Численные методы: учеб. пособие / E. A. Волков. - М.: Наука, 1982. - 256 с.
2. Турчак, Л.И. Основы численных методов: учеб. пособие / Л.И. Турчак; под ред.В. В. Щенникова. - М.: Наука, 1987. - 320 с.
3. Поршнев, С.В. Вычислительная математика. Курс лекций: учеб. пособие / С.В. Поршнев. - 2-е изд., доп. - СПб.: БХВ-Петербург, 2004. - 320 с.
4. Демидович, Б.П. Основы вычислительной математики: учеб. пособие / Б.П. Демидович, И.А. Марон. - 6-е изд., стереотип. - СПб.; М.; Краснодар: Лань, 2007. - 672 с.
Размещено на Allbest.ru
Подобные документы
Назначение и возможности пакета MATLAB, его основные составляющие. Набор вычислительных функций. Роль интерполяции функций в вычислительной математике. Пример интерполяции с четырьмя узлами. Интерполирование и сглаживание, схемы решения задач в MATLAB.
курсовая работа [594,5 K], добавлен 28.12.2012Постановка задачи в численной интерполяции. Интерполяционный многочлен Лагранжа. Интерполяционная формула Ньютона. Практическая реализация методов в среде MathCad. Операции с действительными и комплексными числами. Векторные и матричные операции.
курсовая работа [823,2 K], добавлен 13.10.2015Назначение и возможности пакета MATLAB. Цель интерполирования. Компьютерная реализация решения инженерной задачи по интерполяции табличной функции различными методами: кусочно-линейной интерполяцией и кубическим сплайном, а также построение их графиков.
контрольная работа [388,3 K], добавлен 25.10.2012Интерполирование функций методом Лагранжа. Получение функциональной зависимости по экспериментальным данным. Близость интерполяционного многочлена к заданной функции. Интерполяционный полином в форме Лагранжа. Построение интерполяционных графиков.
лабораторная работа [315,8 K], добавлен 24.05.2014Интерполирование рабочих точек в пакете Mathcad с помощью полиномов (канонического, Лагранжа и Ньютона) и сплайнов (линейного, квадратичного, кубического). Реализация программы для решения системы линейных алгебраических уравнений на языке Pascal.
лабораторная работа [202,8 K], добавлен 15.11.2012Сущность теории приближений и характеристика интерполяции как процесса получения последовательности интерполирующих функций. Полиномы Эрмита и интерполирование с кратными узлами. Программная разработка приложения по оценке погрешности интерполирования.
курсовая работа [1,1 M], добавлен 05.06.2014Интерполяция методом наименьших квадратов. Построение функции с применением интерполяционного многочленов Лагранжа и Ньютона, кубических сплайнов. Моделирование преобразователя давления в частоту в пакете LabVIEW. Алгоритм стандартного ПИД-регулятора.
курсовая работа [2,7 M], добавлен 20.04.2011Сущность построения, особенности применения и теоретическое обоснование алгоритмов приближенного решения математических задач. Основы численного метода, нахождение интерполяционного полинома методом Лагранжа. Руководство программиста и пользователя.
курсовая работа [527,6 K], добавлен 16.08.2012Исследование методов интерполяции функции и разработка программного продукта для автоматизации расчётов, выполняемых в данных методах. Обоснование выбора языка программирования. Требования к программе и программному изделию. Организация работы с ПЭВМ.
дипломная работа [2,1 M], добавлен 16.06.2017Создание и представление символьных переменных в программе Matlab, операции над полиномами и упрощение выражений. Пример подстановки значения в функцию, решения уравнений и систем, дифференцирования, интегрирования и вычисления пределов функций.
презентация [359,2 K], добавлен 24.01.2014