Автор работы: Пользователь скрыл имя, 18 Мая 2012 в 19:08, курсовая работа
Целью данной курсовой работы является разработка программного продукта, реализующего решение интерполяционного кубического сплайна методом фронтальной прогонки, а так же методом Гаусса.
Для достижения цели были поставлены следующие задачи:
Изучить теоретический материал по теме: «Интерполяционные кубические сплайны».
Применить изученный материал к разработке программного продукта.
Написать программу на языке С++ для решения данного кубического сплайна методом фронтальной рпогонки.
Проверить решение с помощью приложения MathCad, Excel.
Сравнить результаты, полученные в трех пакетах.
Введение 2
Глава I. Теоретические основы интерполирования кубическим сплайном. 4
1.1 Постановка задачи интерполирования кубическими сплайнами. 4
1.2 Алгоритм построения интерполяционного кубического сплайна. 5
1.3 Обзор методов решения СЛАУ с трехдиагональными матрицами методом фронтальной прогонки. 9
1.4 Численный пример. 12
Глава II. Практическая реализация интерполирования кубическим сплайном 19
2.1 Реализация в С++. 19
2.2 Реализация в Exel. 20
2.3 Реализация в MathCad. 22
2.4 Сравнение полученных результатов. 23
2.5 Блок-схема программной реализации сплайн интерполяции. 26
Заключение. 27
Список литературы
ПРИДНЕСТРОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
им. Т.Г. Шевченко
Рыбницкий филиал
кафедра физики, математики и информатики
КУРСОВАЯ РАБОТА
по дисциплине «Вычислительная математика»
Тема: «Сплайн-интерполяция»
Выполнил:
студент II курса 220 гр,
специальности
«ПОВТ и АС»
Проверил:
ст .преподаватель
Балан Л. А.
Рыбница
2011 г.
Оглавление
Введение 2
Глава I. Теоретические основы интерполирования кубическим сплайном. 4
1.1 Постановка задачи интерполирования кубическими сплайнами. 4
1.2 Алгоритм построения интерполяционного кубического сплайна. 5
1.3 Обзор методов решения СЛАУ с трехдиагональными матрицами методом фронтальной прогонки. 9
1.4 Численный пример. 12
Глава II. Практическая реализация интерполирования кубическим сплайном 19
2.1 Реализация в С++. 19
2.2 Реализация в Exel. 20
2.3 Реализация в MathCad. 22
2.4 Сравнение полученных результатов. 23
2.5 Блок-схема программной реализации сплайн интерполяции. 26
Заключение. 27
Список литературы 28
Приложение. 29
Введение
Часто возникает
необходимость, как в самой математике,
так и ее приложениях в разнообразных
областях получать решения математических
задач в числовой форме. (Для представления
решения в графическом виде также
требуется предварительно вычислять
его значения.) При этом для многих
задач известно только о существовании
решения, но не существует конечной формулы,
представляющей ее решение. Даже при
наличии такой формулы ее использование
для получения отдельных
Во всех этих случаях используются
методы приближенного, в первую очередь
численного решения. Методы численного
решения математических задач всегда
составляли неотъемлемую часть математики
и неизменно входили в
Современной формой метода математического
моделирования является вычислительный
эксперимент, рассматриваемый как
новый теоретический метод
Технологическая цепочка вычислительного эксперимента включает в себя следующие этапы:
Целью данной курсовой работы является разработка программного продукта, реализующего решение интерполяционного кубического сплайна методом фронтальной прогонки, а так же методом Гаусса.
Для достижения цели были поставлены следующие задачи:
Пусть на отрезке [a,b] задана сеточная функция у1 = f(xi) на сетке Ωп. Требуется восполнить ее функцией Sm(x), где т — степень многочлена, кусочно-глобальным способом.
Дадим сначала упрощенное определение сплайна, которое затем уточним.
Сплайн-функцией или сплайном называется совокупность Sm,i(x)- алгебраических многочленов степени m (звеньев), определенных на частичных отрезках [xi,xi+1] , i= , и соединенных вместе по всем частичным отрезкам так, чтобы можно было составить многозвенную функцию
Sm(x)= определенную и непрерывную на всем отрезке [a,b] вместе со всеми своими производными до некоторого их порядка p=1,2,…..
Разность между р и наибольшим порядком производной, непрерывной на отрезке [а, b], определяет дефект сплайна q.
Условиями согласования звеньев Sm,i(x) сплайна с исходной функцией yi=f(xi) на соответствующем частичном отрезке [хi,хi+1] называются условия, накладываемые на невязки дифференциального и интегрального типов , и использующиеся для вывода формулы одного звена сплайна на указанном частичном отрезке.
Сплайн, удовлетворяющий условиям нулевых функциональных невязок, называется интерполяционным.
Первый этап. Для алгебраического многочлена (полинома)
S3,i(x) = a0,i + a1,i(x-xi) + a2,i(x-xi)2 + a3,i(x-xi)3 (1.1)
Относящегося к одному i-му звену сплайна, для которого x є [xi,xi+1], выбираются два дифференциальных условия согласования с порядком Р1={0; 2}, каждое из которых относится к концам отрезка [хi, xi+1]:
(1.2)
( 1.3)
Выбор значения p = 0 обусловлен тем, что отыскивается S3(x) — интерполяционный многочлен, а выбор производных порядка р = 2 зависит от выбора способа. Условия (1.2), (1.3) задают параметры сплайна fi,
Mi=f’’(xi), i= первые из которых (функциональные) являются определенными, а вторые (дифференциальные) - неопределенными.
Подстановка в соотношения (1.2), (1.3) полинома (1.1) приводит к системе четырех линейных алгебраических уравнений относительно неизвестных коэффициентов ак,i (k = 0,1,2,3). Разрешая их, подставляя получен ные формулы для ak ,i в (1.1) и распространяя этот результат на все частичные отрезки, имеем:
f
(1.4)
Где hi+1 = xi+1- xi , Δfi = fi+1 – fi, Δmi = mi+1 – mi.
Таким образом, найдена общая формула одного звена сплайна, которая выражается через определенные (fi) и неопределенные (mi) параметры
(i= ). Эти параметры обеспечивают непрерывность сплайна:
, (i= ), и его вторых производных
, (i= ), всех внутренних узлов.
Второй этап. При вычислении неопределенных параметров mi(i= ) входящих в (1.4), с учетом условия стыковки для всех внутренних узлов устанавливается связь между fi и mi. Эта связь получается путем записи правой части (1.4) для звена S3,i-1(x) при хє[xi-1,xi], ее дифференцирования и приравнивания производной правой части (1.4) для звена S3,i(x) при хє[xi,xi+1], соответствии с условием стыковки (р2 = 1). Проведя несложные выкладки и распространив найденное соотношение на все внутренние узлы, получим параметрическую систему — трехдиагональную систему линейных алгебраических уравнений, устанавливающую линейную связь комбинаций определенных fi и неопределенных параметров mi, во внутренних узлах:
(1.5)
Данная система относительно mi (i= ) является незамкнутой, так как не хватает двух уравнений. Для ее замыкания используют различные пути выбора аппроксимаций производных на концах (граничных условий):
1. В простейшем случае вторые производные на концах принимаются нулевыми, т.е. m0 = 0 ; mn = 0.
Такие условия называются
условиями натурального
2. Для первых двух и последних двух отрезков можно применить условие равенства третьей производной. Тогда получается соотношение
Δmk-1/hk=Δmk/hk+1 (k = 1,n- 1).
Отсюда следуют два
(1.6)
Соотношения (1.6) позволяют замкнуть систему (1.5) при h = var (неравномерная сетка). При h = const вторые производные на концах вычисляются по явным формулам второго порядка аппроксимации [6]:
(1.7)
Отметим, что как (1.6), так и формулы (1.7) для т0 и тп имеют порядки аппроксимации, соответствующие порядку сходимости S3(x) к f(x).
Третий этап. Определяются значения mi (i= ) путем решения систем (1.5), (1.6) (параметрически прямая задача). Для этого используется метод прогонки, причем необходимо предварительно из первых двух и последних двух уравнений исключить слагаемые с т2 и тп-2 соответственно. В случае равномерной сетки, как отмечено выше, система (1.5) замыкается аппроксимацией (1.7).
Четвертый этап. Формируются массивы коэффициентов a0,i, a1,i, a2,i, a3,i
для всех звеньев сплайна (i= ) и определяется глобальный интерполяционный сплайн:
путем составления многозвенной функции.
Пятый этап. При необходимости полученная сплайн-функция S3(x) используется для вычисления значений функции и производных порядка р :
(p = 0,1,2…) в произвольных точках хє[xi-1,xi], (i= ) , или определенных интегралов:
Методика построения интерполяционного кубического сплайна
Используя систему (1.5) , условия т0 = 0, тп = О или (1.6) (при h = const можно использовать условия (1.7)), сформировать замкнутую систему относительно неопределенных параметров.
Вычислить коэффициенты системы (1.5), зависящие от шагов сетки Q„, и решить ее методом прогонки. В результате найти неопределенные параметры
m0,m1,…,mn.
Записать выражения для
Вычислить коэффициенты звеньев и сформировать многозвенную сплайн-функцию
являющуюся сплайном дефекта q = 1.
Метод применим в случае, когда матрица А — трехдиагональная. Общая постановка задачи имеет следующий вид.
Дана система линейных алгебраических уравнений с трехдиагональной матрицей А . Развернутая запись этой системы имеет вид
(1.8)
которому соответствует расширенная матрица
Здесь первое и последнее уравнения, содержащие по два слагаемых, могут рассматриваться как краевые условия. Знак «—» при коэффициенте βi, взят для более удобного представления расчетных формул метода.
Требуется найти решение х* = (x*1,…,x*n)T системы (1.8) методом исключения Гаусса.
Если к (1.8) применить алгоритм прямого хода метода Гаусса, то вместо А1 получится А1:
Учитывая, что последний столбец в этой матрице соответствует правой части, и переходя к системе, включающей неизвестные, получаем рекуррентную формулу:
(1.9)
Соотношение (1.9) есть формула для обратного хода, а формулы для коэффициентов Pi,Qi , которые называются прогоночными, определяются из (1.8), (1.9). Запишем (1.9) для индекса (i-1):
И подставим в (1.4). Получим
Приводя эту формулу к виду (1.9) и сравнивая полученное выражение с (1.9), получаем рекуррентные соотношения для Pi,Qi :
(2.0)
Определение прогоночных коэффициентов по формулам (2.0) соответствует прямому ходу метода прогонки.
Обратный ход метода прогонки начинается с вычисления хп. Для этого используется последнее уравнение, коэффициенты которого определены в прямом ходе, и последнее уравнение исходной системы:
Тогда определяется хn:
Остальные значения неизвестных находятся рекуррентно по формуле (1.9).
Все соотношения для выполнения вычислений получены. Тогда можно провести расчеты по методу Гаусса, используя прямой и обратный ход.
Методика решения задачи
Прямой ход.
2. Вычислить прогоночные коэффициенты P2,Q2; P3,Q3;…; Pn-1,Qn-1; по формулам (2.0).
Обратный ход.
Значения xn-1, xn-2,…, x1, определить по формуле (1.9) :