Интерполяционные кубические сплайны

Автор работы: Пользователь скрыл имя, 03 Декабря 2013 в 18:38, курсовая работа

Краткое описание

Целью данной курсовой работы является разработка программного продукта, реализующего решение интерполяционного кубического сплайна методом фронтальной прогонки, а так же методом Гаусса.
Для достижения цели были поставлены следующие задачи:
Изучить теоретический материал по теме: «Интерполяционные кубические сплайны».
Применить изученный материал к разработке программного продукта.
Написать программу на языке С++ для решения данного кубического сплайна методом фронтальной рпогонки.
Проверить решение с помощью приложения MathCad, Excel.
Сравнить результаты, полученные в трех пакетах.

Вложенные файлы: 1 файл

курсач.docx

— 186.62 Кб (Скачать файл)

Введение

Часто возникает  необходимость, как в самой математике, так и ее приложениях в разнообразных  областях получать решения математических задач в числовой форме. (Для представления  решения в графическом виде также  требуется предварительно вычислять  его значения.) При этом для многих задач известно только о существовании  решения, но не существует конечной формулы, представляющей ее решение. Даже при  наличии такой формулы ее использование  для получения отдельных значений решения может оказаться неэффективным. Наконец, всегда существует необходимость  решать и такие математические задачи, для которых строгие доказательства существования решения на данный момент отсутствуют.

Во всех этих случаях используются методы приближенного, в первую очередь  численного решения. Методы численного решения математических задач всегда составляли неотъемлемую часть математики и неизменно входили в содержание естественно-математического и инженерного  образования.

Современной формой метода математического  моделирования является вычислительный эксперимент, рассматриваемый как  новый теоретический метод исследования различных явлений и процессов. Этот теоретический метод включает существенные черты методологии  экспериментального исследования, но эксперименты выполняются не над  реальным объектом, а над его математической моделью.

Технологическая цепочка вычислительного  эксперимента включает в себя следующие  этапы:

    • построение математической модели исследуемого объекта (сюда же относится и анализ модели, выяснение корректности поставленной математической задачи;
    • построение вычислительного алгоритма - метода приближенного решения поставленной задачи и его обоснование;
    • программирование алгоритма на ЭВМ и его тестирование;
    • проведение серии расчетов с варьированием определяющих параметров исходной задачи и алгоритма;
    • анализ полученных результатов;

Целью данной курсовой работы является разработка программного продукта, реализующего решение  интерполяционного кубического  сплайна методом фронтальной  прогонки, а так же методом Гаусса.

Для достижения цели были поставлены  следующие задачи:

  1. Изучить теоретический материал по теме: «Интерполяционные кубические сплайны».
  2. Применить изученный материал к разработке программного продукта.
  3. Написать программу на языке С++ для решения данного кубического сплайна методом фронтальной рпогонки.
  4. Проверить решение с помощью приложения MathCad, Excel.
  5. Сравнить результаты, полученные в трех пакетах.

 

 

 

 

 

 

 

 

 

 

 

 

 

Глава  I. Теоретические основы интерполирования кубическим сплайном.

    1. Постановка задачи интерполирования кубическими сплайнами.

Пусть на отрезке [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) на соответствующем частичном отрезке [хii+1] называются условия, накладываемые на невязки дифференциального и интегрального типов   , и использующиеся для вывода формулы одного звена сплайна на указанном частичном отрезке.

Сплайн, удовлетворяющий условиям нулевых  функциональных невязок, называется интерполяционным.

 

 

 

    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.

Записать выражения для звеньев  сплайна по формуле (1.4):



Вычислить коэффициенты звеньев и сформировать многозвенную сплайн-функцию

являющуюся сплайном дефектаq = 1.

 

 

 

 

    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).

Все соотношения  для выполнения вычислений получены. Тогда можно провести расчеты  по методу Гаусса, используя прямой и обратный ход.

 

 

Методика  решения задачи

Прямой ход.

  1. Вычислить ,(в (2.0) подставить a1 =0).

     2.  Вычислить прогоночные коэффициентыP2,Q2; P3,Q3;…; Pn-1,Qn-1; по формулам (2.0).

Обратный ход.

  1. Найти

Значения  xn-1, xn-2,…, x1, определить по формуле (1.9) :

Замечания.

  1. Данный метод называется методом скалярной прогонки, так как при решении задачи на каждом i-ом шаге определяется скалярная величина  xi(i= ).
  2. Аналогичный подход используется для решения систем линейных алгебраических уравнений с пятидиагональными матрицами.
  3. Алгоритм метода прогонки называется корректным, если для все

(i= )  , и если устойчивым, если |Рi|<1, (i= ).

  1. Достаточным условием коррекности и устойчивости прогонки является условие преобладания диагональных элементов в матрице А, в матрице ai≠ 0 и γi≠ (i= ):

 

 

 

 

 

 

 

    1. Численный пример.
  1. Равномерная сетка.

Пусть дана равномерная сетка, со значениями функции в точках.

Х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

   

Информация о работе Интерполяционные кубические сплайны