Lagrangeova krivulja

Iz MaFiRaWiki

Ta članek ali del članka je v delu. Veseli bomo, če ga boste dopolnili in popravili.

Kaj pomeni to opozorilo?

Vsebina

INTERPOLACIJSKA LAGRANGEOVA KRIVULJA

Kadar hočemo narisati Lagrangevo krivuljo, moramo uporabiti Lagrangeve polinome. Pri risanju Lagrangeovih krivulj, gre krivulja čez n+1 točk, oziroma skozi n+1 točk položimo polinom stopnje n.

Langrangeov polinom je polinom, ki se uporablja pri interpolaciji točk s krivuljo.

Lagrangeova krivulja Pn(x), ki interpolira točke (x1,y1), ..., (xn,yn) je

P_{n}(x) = \sum_{k = 0}^{n}y_{k}L_{k}^{n}(x)

kjer je

L_{k}^{n}(x) = \frac{(x - x_{0}) \cdots (x - x_{k-1})(x - x_{k+1}) \cdots (x - x_{n})}{(x_{k} - x_{0}) \cdots (x_{k} - x_{k-1})(x_{k} - x_{k+1}) \cdots (x_{k} - x_{n})}.

Očitno je L_{k}^{n}(x_{i}) = 1 za i = k in L_{k}^{n}(x_{i}) = 0 za i \neq j in Pn(xi) = yi. Polinom L_{k}^{n}(x) je stopnje n in se imenuje k-ti Lagrangeov polinom. Točki Pn pa rečemo vozel.

Lagrangeovo interpolacijsko krivuljo je najprej najlažje razložiti na primeru interpolacije skozi dve točki (x0,y0) in (x1,y1). Skozi točki lahko položimo premico oziroma polinom prve stopnje.

P_1(x) = \frac{x - x_1}{x_0 - x_1} + \frac{x - x_0}{x_1 - x_0} To formulo imenujemo linearna interpolacija.

Torej izračunati moramo P(x0) in P(x1), da dobimo y0 in y1. Potem lahko čez ti dve točki (x0,y0) in (x1,y1) narišemo premico.

Skozi n+1 točk pa lahko položimo polinom n-te stopnje: image:Lagrange3.JPG

ali če ga zapišemo krajše

P_{n}(x) = \sum_{k = 0}^{n}y_{k}L_{k}^{n}(x)

kjer je

L_{k}^{n}(x) = \frac{(x - x_{0}) \cdots (x - x_{k-1})(x - x_{k+1}) \cdots (x - x_{n})}{(x_{k} - x_{0}) \cdots (x_{k} - x_{k-1})(x_{k} - x_{k+1}) \cdots (x_{k} - x_{n})}.

Očitno je L_{k}^{n}(x_{i}) = 1 za i = k in L_{k}^{n}(x_{i}) = 0

Primer krivulje stopnje n = 7 image:Lagrange5.JPG


Kvadratna lagrangeova krivulja

Kvadratno Lagrangeovo krivuljo predstavlja Lagrangeov polinom stopnje n = 2, ki gre čez 3 točke. (xk,yk) k = 0, 1, 2

P_{2}(x) = y_{0} \frac {(x - x_{1})(x- x_{2})}{(x_{0} - x_{1})(x_{0} - x_{2})} +  y_{1} \frac {(x - x_{0})(x- x_{2})}{(x_{1} - x_{0})(x_{1} - x_{2})} +  y_{2} \frac {(x - x_{0})(x- x_{1})}{(x_{2} - x_{0})(x_{2} - x_{1})}

Izračunati moramo P(x0), P(x1) in P(x2) in dobimo y0, y1 in y2, potem točke med seboj povežemo in dobimo kvadratno Lagrangeovo krivuljo.

Slika predstavlja kvadratno krivuljo
Slika predstavlja kvadratno krivuljo

Kubična Langrangeova krivulja

Kubična Lagrangeova krivulja predstavlja Lagrangeov polinom stopnje n = 3, ki gre čez 4 točke. (xk,yk) k = 0, 1, 2, 3

P_{3}(x) = y_{0} \frac {(x - x_{1})(x- x_{2})(x - x_{3})}{(x_{0} - x_{1})(x_{0} - x_{2})(x_{0} - x_{3})} +  y_{1} \frac {(x - x_{0})(x- x_{2})(x- x_{3})}{(x_{1} - x_{0})(x_{1} - x_{2})(x_{1}- x_{3})} +

+ y_{2} \frac {(x - x_{0})(x- x_{1})(x- x_{3})}{(x_{2} - x_{0})(x_{2} - x_{1})(x_{2}- x_{3})} + y_{3} \frac {(x - x_{0})(x- x_{1})(x- x_{2})}{(x_{3} - x_{0})(x_{3} - x_{1})(x_{3}- x_{2})}

Izračunati moramo torej P3(x0), P3(x1), P3(x2) in P3(x3), da dobimo y0, y1, y2 in y3.

Potem točke(x0, y0), (x1, y1), (x2, y2), (x3, y3) med seboj povežemo in tako dobimo kubično Lagrangeovo krivuljo.

Slika predstavlja kubično krivuljo
Slika predstavlja kubično krivuljo

PRIMER UPORABE

AITKENOV ALGORITEM

Z Aitkenovim algoritmom izračunamo vrednost polinoma Pn v neki točki tk, k = 0, 1, 2,..., n, oziroma izračunamo Pn(tk). Tako dobimo točko (tk, Pn(tk)), skozi te točke pa potem narišemo Lagrangeovo krivuljo. Pn(tk) izračunamo s formulo:

P_n(t) = \sum_{k=0}^{n} y_k L_k^{(n)}(t)

Ker pa je Lk lahko samo 1 ali 0 je torej P(tk) = yk. Tako dobimo točko (tk, yk)

IMPLEMENTACIJA AITKENOVEGA ALGORITMA V JAVI:

  1.  
  2.  
  3. //gremo po tabeli ti, ki vsebuje t0, t1, t2, ...tn-1 oziroma ti je tabela x-koordinat točk
  4. for (i = 0; i < N; j++){
  5. P = 1;
  6.  
  7. for (j = 0; j < N; j++) //gremo po tabeli ti
  8.  
  9. if (j != i) P = P* (t - ti[j]) / (ti[i] - ti[j]); //j mora biti različen od i, ker če bi bila enaka, bi bil potem P = 0 in ne bi mogli naprej računati, ker bi bil P vedno 0
  10.  

glej tudi:

Osebna orodja