5.1. Сплайн апроксимация

5.1. Сплайн апроксимация

Математическите сплайни произхождат от тънки гъвкави пръти, използвани от чертожниците за начертаване на гладки криви през дадени точки. Пръчката беше фиксирана в точки (xi, yi) и прие формата на крива y (x) с минимална "енергия на опън", пропорционална на .

Ако преминем към математическото описание на сплайн, тогава функцията на сплайн от степен k с точки на свързване x 0 1 ще бъде функцията y ( x ) , която на сегмента [ x 0, xn ] има непрекъснати производни до ( k -1) включително и на всеки от сегментите [ xi-1, xi ] е равна на полином от степен k . По-нататък ще се интересуваме само от кубични сплайни ( k = 3). Такъв сплайн осигурява съвпадението на възлите с оригиналната функция и непрекъснатостта на първата и втората производна в точките на свързване.

На първо място, първите производни се определят във всички точки на свързване. Решава се тридиагонална система ( n -1) от уравнения с доминиращ главен диагонал. Може да се реши чрез задаване на две гранични условия. Програмите, включени в Grafor ви позволяват да зададете четири вида гранични условия:

а) стойностите на първите производни в краищата на мрежата са известни;

б) стойностите на вторите производни в краищата на мрежата са известни;

в) при конструиране на периодичен сплайн стойностите на функцията в първата и последната точка съвпадат, както и и ;

г) ако граничните условия не са посочени, тогава се приема, че .

След като тридиагоналната матрица (или разширената тридиагонална матрица в случай c) и векторът на свободните членове са конструирани, системата от уравнения може да бъде решена. За решаване на такава система има ефективен алгоритъм, който в местната литература се нарича метод на почистване. В резултат на решаването на системата от уравнения, вектор на първияпроизводни в точките на свързване.

Сега стойността y ( x ) за xi- 1 £ x £ xi се определя от полинома

чиито коефициенти са лесни за намиране, тъй като стойностите на функцията и първите производни в точките на свързване са известни.

По този начин методът позволява да се отделят редица независими функции:

  • формиране на тридиагонална матрица и вектор от свободни членове в съответствие с дадените гранични условия - подпрограмата TDMP,
  • решаване на система от уравнения, дадена от матрица и вектор от свободни членове (метод на почистване) - подпрограма TRIDIG,
  • изчисляване на коефициенти на кубични полиноми за всички сегменти - подпрограма SPLINE ,
  • изчисляване на стойностите на сплайн върху дадена равномерна мрежа - подпрограма SPLINT.

Имайте предвид, че програмата SPLINE използва подпрограмите TDMP и TRIDIG в своята работа. Тези програми са универсални и приложението им не се ограничава до сплайн апроксимация. Тяхната многофункционалност има и по-дълбоко значение. По-специално, коефициентите за кубични параболи могат да бъдат изчислени, като се даде векторът на производните изцяло. Това означава, че програмистът по свое усмотрение може да модифицира вектора на производните. При интерактивна работа по този начин може да се избере подходяща форма на крива. Математическата обосновка на сплайновете и техният анализ е представена в [13].

Програмата SPLINE (X,Y,U,N,A,B,C,D,KODE,IER) изчислява коефициентите на кубичен сплайн. По пътя се изчисляват стойностите на първите производни в точките на свързване (ако не са посочени). Програмата има следните опции:

X,Y,U вектори на стойности на аргументи, функции и първи производни (с дължина N); N брой точки; A,B,C вектори на коефициенти на кубичен полином за променливи x 3 , x 2 , x (дължина N ); D свободен термин векторкубичен полином (с дължина N); КОД знак за задаване на гранични условия:

Значение Значение
-2вторите производни са дадени в краищата на мрежата; преди извикване на програмата и трябва да бъдат въведени съответно в D (1) и D ( N ),
-1първите производни са дадени в краищата на мрежата; преди извикване на програмата и трябва да бъдат въведени съответно в D (1) и D ( N ),
0граничните условия не са посочени, което е еквивалентно на,
1даден е периодичен сплайн, т.е. и ,
2векторът на стойностите на производните U е напълно определен;
IER код на грешка; този код за програмата SPLINE е в транзит и се предава във формата, в която е получен в подпрограмата TRIDIG.

Коефициентите A ( I ), B ( I ), C ( I ) и D ( I ) съответстват на сегмента от X ( I ) до X ( I +1) , I = 1 ,…,N -1 .

Програмата SPLINT (X,N,A,B,C,D,Y,M) ви позволява да изчислявате стойностите на кубичен сплайн върху равномерна мрежа с дадена стъпка. Параметри на програмата:

X е вектор от стойности на аргумент (с дължина N); N брой точки; A,B,C коефициентни вектори на кубичния сплайн за променливи x 3 , x 2 , x (дължина N ); D вектор на свободни членове на кубичен сплайн (с дължина N); Y е вектор от стойности на кубичен сплайн (с дължина M); M е броят на равномерните възли на мрежата на сегмента [ X (1) ,X ( N )] .

Фиг.5.1. Пример за изграждане на сплайнове за функциите sin x и cos x.

На Фигура 5.1 е конструиран сплайн за функциите sin x и cos x , чиито стойности се определят на мрежа със стъпка p/6, но за функцията cos x стойностите на първите производни във възлите са зададени на нула. Примерът показва как чрез манипулиране на производни можете да промените формата на кривата. Цифрата е получена с помощта на следната програма:

Програмата TDMP (X,Y,N,A,B,C,D,KODE) ви позволява да изчислявате елементите на тридиагонална матрица или разширена тридиагонална матрица (в случай на периодичен сплайн) и вектор от свободни членове. Програмата има следните опции:

X,Y вектори на стойности на аргументи и функции (с дължина N); N брой точки; A,B,C поддиагонални, диагонални и наддиагонални матрични вектори (с дължина N); D вектор от свободни членове (с дължина N); КОД знак за задаване на гранични условия:

Значение Значение
-2вторите производни са дадени в краищата на мрежата; преди извикване на програмата и трябва да бъдат въведени съответно в D (1) и D ( N ),
-1първите производни са дадени в краищата на мрежата; преди извикване на програмата и трябва да бъдат въведени съответно в D (1) и D ( N ),
0граничните условия не са посочени, което е еквивалентно на,
1даден е периодичен сплайн, т.е. и .

Програмата TRIDIG (U,N,A,B,C,D,KODE,IER) ви позволява да намерите решение на система от уравнения, дадена от тридиагонална матрица или допълнена от тридиагонална матрица, чрез метода на почистване. По-специално, за кубичен сплайн решението на системата е векторът на първите производни в точките на свързване. Параметри на програмата:

U вектор на резултатите; N е броят на уравненията; A,B,C поддиагонални, диагонални и наддиагонални матрични вектори; D вектор на свободните членове; КОД матрична характеристика:

Значение Значение
0тридиагонална матрица,
1разширена тридиагонална матрица;
IER код на грешка:Значение Значение
0няма грешка
1ако B(1) = 0,
2ако B ( J ) + C ( J ) ´ A ( J -1) = 0 .

Коментирайте. Метод за дефиниране на матрицата:

а) тридиагонална матрица (KODE = 0) :

се задава както следва:

A (1) = 0,A (2) = r 21,…,A (N) = r n,n-1- субдиагонален вектор,
B (1) = r 11 ,B (2) = r 22 ,…,B ( N ) = r n,n- диагонален вектор;
C (1) = r 12,C (2) = r 23,…,C (N) = 0- наддиагонален вектор;

б) допълнена тридиагонална матрица (KODE = 1):