Автор работы: Пользователь скрыл имя, 03 Декабря 2013 в 18:38, курсовая работа
Целью данной курсовой работы является разработка программного продукта, реализующего решение интерполяционного кубического сплайна методом фронтальной прогонки, а так же методом Гаусса.
Для достижения цели были поставлены следующие задачи:
Изучить теоретический материал по теме: «Интерполяционные кубические сплайны».
Применить изученный материал к разработке программного продукта.
Написать программу на языке С++ для решения данного кубического сплайна методом фронтальной рпогонки.
Проверить решение с помощью приложения MathCad, Excel.
Сравнить результаты, полученные в трех пакетах.
Введение
Часто возникает
необходимость, как в самой математике,
так и ее приложениях в разнообразных
областях получать решения математических
задач в числовой форме. (Для представления
решения в графическом виде также
требуется предварительно вычислять
его значения.) При этом для многих
задач известно только о существовании
решения, но не существует конечной формулы,
представляющей ее решение. Даже при
наличии такой формулы ее использование
для получения отдельных
Во всех этих случаях используются
методы приближенного, в первую очередь
численного решения. Методы численного
решения математических задач всегда
составляли неотъемлемую часть математики
и неизменно входили в
Современной формой метода математического
моделирования является вычислительный
эксперимент, рассматриваемый как
новый теоретический метод
Технологическая цепочка вычислительного эксперимента включает в себя следующие этапы:
Целью данной курсовой работы является разработка программного продукта, реализующего решение интерполяционного кубического сплайна методом фронтальной прогонки, а так же методом Гаусса.
Для достижения цели были поставлены следующие задачи:
Пусть на отрезке [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).
Четвертый этап. Формируютсямассивыкоэффициенто
для всех звеньев сплайна (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) :
Замечания.
(i= ) , и если устойчивым, если |Рi|<1, (i= ).
Пусть дана равномерная сетка, со значениями функции в точках.
Хi |
F(xi) |
ΔF(xi) |
h |
0 |
0 |
0.10017 |
0.05 |
0.05 |
0.10017 |
0.10117 |
|
0.1 |
0.20134 |
0.10318 |
|
0.15 |
0.30452 |