Сплајн

Од Википедија, слободната енциклопедија
Прејди на: содржини, барај
Квадратен сплајн составен од шест полиномни отсечки. Помеѓу точките 0 и 1 се протега права линија. Помеѓу точките 1 и 2 има парабола со извод = 4. Помеѓу точките 2 и 3 има парабола со втор извод = -2. Помеѓу точките 3 и 4 се протега права линија. Помеѓу точките 4 и 5 има парабола со втор извод = 6. Помеѓу точките 5 и 6 се протега права линија.

Сплајн (од анг. spline = „лајсна“) — посебна функција која се определува расцепкано со полиноми. При проблемите со интерполирање, честопати се претпочита сплајнова интерполација наместо полиномна бидејќи дава слични резултати (дури и кога користи полиноми од понизок степен), но ја одбегнува Рунгеовата појава кај вишите степени.

Кај сметачката графика, сплајновите се мошне застапени криви бидејќи се едноставни за конструирање, просто и точно се вреднуваат, и поради нивната способност да прават приближности на сложени облици прилагодување и интерактивна конструкција на криви.

Поимот „сплајн“ (spline) е преземен од еластичните свитливи лајсни што се користат во бродоградбата и проектирањето за исцртување на глатки криви облици.

Дефиниција[уреди]

Сплајнот е расцепкано-полиномна реална функција

S: [a,b]\to \mathbb{R}

на интервал [a,b] составен од k подредени разделени подинтервали [t_{i-1}, t_i] со

a = t_0 < t_1 < \cdots < t_{k-1} < t_k = b.

На секој интервал i, функцијата S е полином

P_i: [t_{i-1}, t_i] \to \mathbb{R},

така што

S(t) = P_1 (t) \mbox{ , } t_0 \le t < t_1,
S(t) = P_2 (t) \mbox{ , } t_1 \le t < t_2,
\vdots
S(t) = P_k (t) \mbox{ , } t_{k-1} \le t \le t_k.

Редот на сплајнот (n) е еднаков на највисокиот ред на присутните полиноми  P_i (t)  \quad i=1 \cdots k, а полиномите треба да бидат такви што S(t) е непрекината и n-1 пати изведлива и во внатрешните јазлени точки t_i \quad   i=1, \cdots k-1 . Ова значи дека во сите внатрешни јазлени точки t_1 , t_2, \cdots , t_{k-1} P_i^{(j)} (t_i) = P_{i+1}^{(j)} (t_i) за сите j \quad 0 \le j \le n-1

Ако сите подинтервали се со иста должина, тогаш велиме дека сплајнот е рамномерен. Ако не се, тогаш сплајнот е нерамномерен.

Во голема мера најзастапени се кубните сплајнови, т.е. сплајновите од ред 3, бидејќи се користат за сплајнова интерполација која ја симулира функцијата на сплескани сплајнови.

Изведување на кубен сплајн[уреди]

Кривата на кубен параметарски полиномен сплајн

Следниов извод прилагодува кубен сплајн на подредените парови со апциси x_j и ординати y_j, за  j = 0...N-1 . Ако земеме дека ни се познати вторите изводи во секоја точка y_{j}^{''}, тогаш можеме да определиме параметризирана сплајнова функција со:[1]

y = S^3(x) = A y_j + B y_{j+1} + C y_{j}^{''}+ D y_{j+1}^{''}

каде A и B се определуваат:

A = \frac{x_{j+1}-x}{x_{j+1}-x_j}     и        B = 1 - A = \frac{x-x_j}{x_{j+1}-x_j}

и

C = \frac{1}{6} (A^3-A)(x_{j+1}-x_j)^2     и      D = \frac{1}{6} (B^3-B)(x_{j+1}-x_j)^2 .

Можеме лесно да покажеме дека овој сплајн ги пресретнува сите подредени парови, а има втор извод

 \frac{d^2 y}{dx^2} = A y_{j}^{''} + B y_{j+1}^{''}

кој ги зачувува бараните изводи од втор ред во секоја позната точка.

Нажалост, изводите од втор ред не се познати и мора да ги пронајдеме. Ова можеме да го направиме со наложување на условот на непрекинатоста на првиот извод помеѓу интервалите. Ова значи дека изводот од кубниот сплајн

 \frac{dy}{dx} = \frac{y_{j+1} - y_j}{x_{j+1} - x_j} - \frac{3A^2-1}{6} (x_{j+1} - x_j) y_j^{''} + \frac{3 B^2-1}{6} (x_{j+1}-x_j) y_{j+1}^{''}

вреднуван со интервалот x_{j-1}   ,   x_j  ) мора да е еднаков на оној вреднуван со интервалот x_{j}   ,   x_{j+1}  ). Вака го добиваме следниов збир N-2 равенки со N непознати (вторите изводи):

 \frac{x_j-x_{j-1}}{6} y_{j-1}^{''} + \frac{x_{j+1}-x_{j-1}}{3} y_{j}^{''} + \frac{x_{j+1}-x_{j}}{6} y_{j+1}^{''} = \frac{y_{j+1}-y_j}{x_{j+1}-x_j} - \frac{y_{j}-y_{j-1}}{x_{j}-x_{j-1}} .

За да формулираме поблем што не е недоодреден, така што добиениот кубен сплајн ќе биде уникатен, ќе мора да назначиме уште два услова. „Природниот кубен сплајн“ користи услов на нулта закривеност во крајните точки на сплајнот,  y_{0}^{''} = y_{N-1}^{''} = 0. Друга можност е да избереме први изводи во крајните точки и да ги замениве во првоизводната равенка за да ги исполниме преостанатите две равенки.

На крајот, изводот од кубниот сплајн се добива од решението на гореопишаните N равенки, и замената на второизведените решенија во сплајновата равенка, S^3(x). Бидеќи секое решено закривување е поврзано (во однос) само со закривувањето на соседните делови, матрицата на решението на еден кубен сплајн секогаш ќе биде тридијагонална матрица и така може да се реши со O(N) операции со постоечки алгоритми на тридијагонална матрица.

Примери[уреди]

Спалјнови со разни параметарски вредности

Еве прост пример за квадратен сплајн (од степен 2):


S(t) = \begin{cases}
(t+1)^2-1   & -2 \le t < 0\\
1-(t-1)^2   & 0 \le t \le 2
\end{cases}

за кое S'(0)=2.

Еве прост пример за кубен сплајн:

S(t) = \left|t\right|^3

бидејќи


S(t) = \begin{cases}
t^3   & t \ge 0\\
-t^3   & t < 0
\end{cases}

и

S(0)' =\ 0
S(0)'' =\ 0

Еден пример кајшто применуваме сплајнови за составување на ѕвоновидната крива на веројатносната распределба се Ирвин-Холовите полиноми:


f_X(x)= \begin{cases}
\frac{1}{6}x^3    & 0\le x \le 1\\
\frac{1}{6}\left(-3x^3 + 12x^2 - 12x+4 \right)& 1\le x \le 2\\
\frac{1}{6}\left(3x^3 - 24x^2 +60x-44 \right)  & 2\le x \le 3\\
\frac{1}{6}\left(-x^3 + 12x^2 -48x+64 \right)  & 3\le x \le 4
\end{cases}

Историја[уреди]

Пред ерата на сметачите, пресметките се вршеле рачно и затоа се применува ле функции како скалестата функција. Со доаѓањето на сметачите, сплајновите ги замениле полиномите најпрвин во интерполацијата, а потоа почнале да се користат за конструирање на глатки и еластични облици кај сметачката графика.[2]

Сплајновите за прва пат се споменуваат во трудот на романскиот математичар Исак Јакоб Шенберг од 1946[3] што е веројатно првиот пример за употребата на „сплајн“ во смисла на глатка, расцепкана полиномна приближност. Меѓутоа овие идеи влечат корени во авиоконструкторството и бродоградбата.

Сплајнот како алатка (закривена лајсна) нашол примена во конструкцијата на авиони во Британија за време на Втората светска војна. Ваквото моделирање на крилата е позајмено од бродоградбата, кајшто овој облик се користел за исцртување на трупот на пловилото.

Во автоконструкторството, сплајнот се појавил независно на неколку места. Пионери во неговата употреба се Пол де Кастелжо од Citroën, Пјер Безије од Renault и Гарет Биркхоф, П.Р. Гарабедијан и Карл де Бор од General Motors.[4]

Поврзано[уреди]

Наводи[уреди]

  1. Press, W.H., Teukolsky, S.A., Vetterling, W.T., and Flannery, B.P., Numerical Recipes. The Art of Scientific Computing. III изд. Cambridge University Press. Cambridge, UK, 2007.
  2. Epperson, History of Splines, NA Digest, том 98, бр. 26, 1998.
  3. Schoenberg, Contributions to the problem of approximation of equidistant data by analytic functions, Quart. Appl. Math., том 4, стр. 45–99 и 112–141, 1946.
  4. Birkhoff, Fluid dynamics, reactor computations, and surface representation, in: Steve Nash (ed.), A History of Scientific Computation, 1990
  • Stoer & Bulirsch, Introduction to Numerical Analysis. Springer-Verlag. стр. 93-106. ISBN 0387904204
  • Chapra, Canale, "Numerical Methods for Engineers", V изд.

Надворешни врски[уреди]