ФЭА / АИТ / Лабораторная работа №2 по дисциплине: «Оптимизация и оптимальные управления» на тему: «Линейная интерполяция и интерполяция сплайнами»
(автор - student, добавлено - 4-12-2013, 18:16)
СКАЧАТЬ:
Министерство образования и науки РТ Альметьевский государственный нефтяной институт
Кафедра автоматизации и информационных технологий
Лабораторная работа №2 по дисциплине: «Оптимизация и оптимальные управления» на тему: «Линейная интерполяция и интерполяция сплайнами»
Выполнил: Проверил: ст.преподаватель
Альметьевск
ЦЕЛЬ И СОДЕРЖАНИЕ РАБОТЫ: Объектом изучения в данной лабораторной работе является нахождение интерполированное значение. Цель работы заключается в следующем: · закрепление полученных в теоретической части курса знаний о постановке, формализации и методах решения оптимизационных задач для различных интерполяции; · получение практических навыков решения реальных оптимизационных задач на ЭВМ; ОСНОВНЫЕ СВЕДЕНИЯ ИЗ ТЕОРИИ
ЛИНЕЙНАЯ ИНТЕРПОЛЯЦИЯ По определению интерполяция означает построение функции аппроксимирующей зависимость у{х} в промежуточных точках (между хi). Поэтому интерполяцию еще по-другому называют аппроксимацией. Простейшим и часто используемым видом локальной интерполяции является линейная интерполяция. Она состоит в том, что заданные точки (xi;yi) (i = 0,1, ..., n) соединяются прямолинейными отрезками, и функция f(x) приближается ломаной с вершинами в данных точках. Уравнения каждого отрезка ломаной в общем случав разные. Поскольку имеется n интервалов (xi-1;xi), то для каждого из них в качестве уравнения интерполяционного многочлена используется уравнение прямой, проходящей через две точки. В частности, для i-гo интервала можно написать уравнение прямой, проходящей через точки (xi-1;yi-1) и (xi;yi), в виде:
(1)
Следовательно, при использовании линейной интерполяции сначала нужно определить интервал, в который попадает значение аргумента х, а затем подставить его в формулу (1) и найти приближенное значение функции в этой точке.
ИНТЕРПОЛЯЦИЯ СПЛАЙНАМИ При большом количестве узлов интерполяции приходится использовать интерполяционные полиномы высокой степени, что создает определенные неудобства при вычислениях. Можно избежать высокой степени интерполяционного многочлена, разбив отрезок интерполяции на несколько частей с построением на каждой части самостоятельного интерполяционного многочлена. Однако такое интерполирование обладает существенным недостатком: в точках сшивки разных интерполяционных полиномов будет разрывной их первая производная, поэтому для решения задачи кусочно-линейной интерполяции используют особый вид кусочно-полиномиальной интерполяции — сплайн-интерполяцию. Сплайн (от англ. spline — рейка) — это функция, которая на каждом частичном отрезке интерполяции является алгебраическим многочленом, а на всем заданном отрезке непрерывна вместе с несколькими своими производными. Пусть интерполируемая функция f(x) задана своими значениями уi в узлах xi , (i = 0, 1 …, n). Обозначим длину частичного отрезка [xi-1, xi] hi =хi- хi-1 , (i = 0, 1 …, n). Будем искать кубический сплайн на каждом из частичных отрезков [xi-1, xi] в виде: S(x)=ai+bi(x-xi-1)+ci(x-xi-1)2+ di(x-xi-1)3 (2) где ai, bi, ci, di — четверка неизвестных коэффициентов. Можно доказать, что задача нахождения кубического сплайна имеет единственное решение. Потребуем совпадения значений S(x) в узлах с табличными значениями функции f(x): S(xi-1)=yi-1=ai , (3) S(xi)= уi = ai + bihi + ci hi2 + di hi3. (4) Число этих уравнений (2п) в два раза меньше числа неизвестных коэффициентов. Для того чтобы получить дополнительные условия, потребуем также непрерывности первой и второй производных сплайна во всех точках, включая узлы. Для этого следует приравнять левые и правые производные S'(x-0), S"(x + 0), S"(х-0), S''(x + 0) во внутреннем узле xi. Вычислив выражения для производных S'(x), S"(x), последовательным дифференцированием (2): S'(x)= bi + 2ci (x-xi-1)+3di ( x-xi-1)2, (5) S"(х) = 2ci +6di ( x-xi-1). (6) найдем правые и левые производные в узле: S'(x-0)= bi + 2ci hi+2 di hi2, S'(xi+0)=bi+1. где i = 1,2,…,n-1. Аналогично поступаем для второй производной: S"(x-0)= 2ci +6 di hi, S"(x+0)= 2ci+1. Приравняв левые и правые производные, получаем: bi+1 = bi + 2ci hi+2 di hi2, (7) ci+1 = ci +3 di hi. (8) где i = 0,1,…,n-1. Уравнения (7), (8) дают еще 2(n-1) условий. Для получения недостающих уравнений накладывают требования к поведению сплайна на концах отрезка интерполяции. Если потребовать нулевой кривизны сплайна на концах отрезка интерполяции (т. е. равенство нулю второй производной), то получим: с1 = 0, cn+ 3dnhn =0. (9) Исключив из уравнений (3)—(8) п неизвестных аi, , получаем систему уравнений: bihi - ci hi2 - di hi3=yi- yi-1, bi+1 - bi – 2ci hi -3di hi2=0, ci+1 - ci -3di hi2=0, (10) c1=0, cn + 3dn hn=0. где i = 0,1,…,n-1. Система (10) состоит из 3n уравнений. Решив систему (10), получаем значения неизвестных bi, ci, di, определяющих совокупность всех формул для искомого интерполяционного сплайна: Si(x)=ai+bi(x-xi-1)+ci(x-xi-1)2+ di(x-xi-1)3 (11) где i = 0,1,...,n-1. Программа, реализующая метод сплайн-интерполяции, оказывается достаточно громоздкой, поэтому мы ограничимся обсуждением решения задачи об интерполяции синуса с помощью сплайнов, используя функции пакета Mathcad: interp(VS, X, у, z), lspline(x, y), pspline(x, y), cspline(x, y).
РАСЧЕТНАЯ ЧАСТЬ Исходные данные: Интерполируемая функция задана табл.1, состоящей из четырех узлов (п = 3): Таблица 1. Исходные данные к задаче интерполяции
1) Линейная интерполяция. Найти значение коэффициентов ai, bi
Решение:
Воспользуемся формулой (1) и реализуем ее на «Mathcad»:
Найдем коэффициенты a и b по ф .(1):
Запишем уравнение в общем виде:
Выполним проверку:
=> коэффициенты a и b найдены правильно. Найдем интерполяцию (приближенное значение функции) с шагом 0,5:
Находим неизвестные значение.
Находим:
Выполним линейную интерполяцию с помощью встроенного функции linterp (VX,VY,x):
Построим график (Приложение 1). 2) Интерполяция сплайнами. Найти значения коэффициентов bi , сi, di, определяющих кубический сплайн на трех частичных отрезках. Решение:
Получим значения коэффициентов bi , сi, di, которые определяют искомый сплайн.
Значения, найденные с помощью построенного сплайна и с помощью встроенной функции интерполирования, совпадают с исходными данными. Запишем сплайн функции:
Пример найти f(0.5)
Построим график (Приложение 2) Вывод: Таким образом, мы закрепили свои знания о постановке и методах решения оптимизационных задач, решили систему уравнений на ЭВМ в программе Mathcad. Нашли приближенное значение функции с помощью линейной и сплайновой интерполяции, а также с помощью Mathcad. Интерполяция сплайнами сопряжена с немалым объемом вычислительной работы. Весьма необычна и форма окончательного результата, ибо сплайн имеет различные представления на различных частичных отрезках интерполяции. Это осложняет доступ к значениям сплайна в каждой конкретной точке, так как предполагает прежде всего поиск параметров, определяющих соответствующую формулу сплайна. Эти трудности легко предотвратимы при использовании ЭВМ.
Приложение 1
Приложение 2
Похожие статьи:
|
|