Автор работы: Пользователь скрыл имя, 03 Декабря 2013 в 18:38, курсовая работа
Целью данной курсовой работы является разработка программного продукта, реализующего решение интерполяционного кубического сплайна методом фронтальной прогонки, а так же методом Гаусса.
Для достижения цели были поставлены следующие задачи:
Изучить теоретический материал по теме: «Интерполяционные кубические сплайны».
Применить изученный материал к разработке программного продукта.
Написать программу на языке С++ для решения данного кубического сплайна методом фронтальной рпогонки.
Проверить решение с помощью приложения MathCad, Excel.
Сравнить результаты, полученные в трех пакетах.
Мы так же сразу можем найти ΔF(xi), так как в дальнейших вычислениях эти данные нам пригодятся. ΔF(xi) находится по формуле:
И найдем шаг сетки h. Шаг находится по формуле:
Запишем систему для внутренних узлов:
Так как h = const, для нахождения значения выбираются формулы:
Подставляем в эти формулы данные с таблицы, и получаем следующие значения , .
Получается система:
Далее эту систему мы будем решать методом прогонки (см. п. 1.2).
По методу прогонки нам надо вычислить:
; ; по формулам :
; , где .
Найденные значения P: P1= 0; Р2 = -0,25; Р3 = -0,2667.
Найденные значения Q: Q1 = 1.00169; Q2 = 0.349578; Q3= 1.193179; Q4= 1.208.
Для получения нужных значений для нахождения сплайна используем обратный ход, по формулам:
.
Получаем значения: M1 = 1.00169; M2 = 0.131816; M3 = 0.871046; M4 = 1.208.
Все значения нам известны. Можно приступить к нахождения сплайна.
Для нахождения сплайна нам понадобится формула:
Где hi+1 = xi+1- xi, Δfi = fi+1 - fi , Δmi = mi+1 – mi, i=0,1,2,3.
Нам нужно найти значение сплайна в двух точках Х1= 0,06 и Х2 = 0,11. Чтобы знать в какой из сплайнов подставлять Х, надо подставить в промежутки. Х1 подходит для второго уравнения, Х2 подходит для третьего. Подставляя Х мы находим значение сплайна в нужном Х.
Подставив 0,06 во второй сплайн, а 0,11в третий сплайн, нашли значение сплайнов, и они равны:
S3,1(0.06) = 0.120318, S3,2 (0.11) = 0.221774
Пусть дана неравномерная сетка, со значениями функции в точках Х.
I |
Xi |
F(Xi) |
Δ F(Xi) |
Hi |
0 |
0.1 |
1.1052 |
0.0566 |
0.05 |
1 |
0.15 |
1.1618 |
0.0474 |
0.04 |
2 |
0.19 |
1.2092 |
0.0748 |
0.06 |
3 |
0.25 |
1.284 |
Δ F(Xi) = F(Xi+1) - F(Xi), hi = hi+1 – hi , i=0,1,2,3.
Запишем систему для внутренних узлов:
Так как h = var , для нахождения значения выбираются формулы:
Получается система из 4х уравнений, подставим известные нам значения:
Эту систему можно решить методом Гаусса:
20 |
-45 |
25 |
0 |
0 |
0,00833333 |
0,03 |
0,006667 |
0 |
0,053 |
0 |
0,006667 |
0,033333 |
0,01 |
0,061667 |
0 |
25 |
-8,33333 |
16,66667 |
0 |
1 |
-2,25 |
1,25 |
0 |
0 |
0 |
0,04875 |
-0,00375 |
0 |
0,053 |
0 |
0,006667 |
0,033333 |
0,01 |
0,061667 |
0 |
25 |
-8,33333 |
16,66667 |
0 |
1 |
-2,25 |
1,25 |
0 |
0 |
0 |
1 |
-0,07692 |
0 |
1,087179 |
0 |
0 |
0,033846 |
0,01 |
0,054419 |
0 |
0 |
-6,41026 |
16,66667 |
-27,1795 |
1 |
-2,25 |
1,25 |
0 |
0 |
0 |
1 |
-0,07692 |
0 |
1,087179 |
0 |
0 |
1 |
0,295455 |
1,607828 |
0 |
0 |
0 |
18,56061 |
-16,8729 |
1 |
-2,25 |
1,25 |
0 |
0 |
0 |
1 |
-0,07692 |
0 |
1,087179 |
0 |
0 |
1 |
0,295455 |
1,607828 |
0 |
0 |
0 |
1 |
-0,90907 |
По обратному ходу найдем искомые Mi :
M1 = 0.425397; M2 = 1.231519; M3 = 1.876417; M4 = -0.90907;
НайдемΔMi= Mi+1 – Mi . M1 = 0.806122; M2 = 0.644898; M3 = -2.78549.
Все значения нам известны. Можно приступить к нахождения сплайна.
Для нахождения
сплайна нам понадобится
Где hi+1 = xi+1- xi, Δfi = fi+1 - fi , Δmi = mi+1 – mi , i=0,1,2,3.
Нам нужно найти значение сплайна в двух точках Х1= 0,2 и Х2 = 0,17. Чтобы знать в какой из сплайнов подставлять Х, надо подставить в промежутки. Х1 подходит для второго уравнения, Х2 подходит для третьего. Подставляя Х мы находим значение сплайна в нужном Х.
Подставив 0,17 во второй сплайн, а 0,2в третий сплайн, нашли значение сплайнов, и они равны:
S3,1(0.17) = 1.185168, S3,2 (0.2) = 1.221476.
Да
В результате выполнения курсовой работы был изучен теоретический материал по интерполированию кубическими сплайнами и решен кубический сплайн при помощи равномерной и неравномерной сетки, а также полученные знания были закреплен при разработке программного продукта.
В процессе создания курсового проекта данный метод были рассмотрен в трех математических пакетах: в C++ , MathCAD’e и Excel.
За время курсового
Москва. «Высшая школа» 2008.
(дата обращения: 23.12.2011)