Interpolacja Lagrange'a
ola: Witam wszystkich!
Chciałabym aby ktoś mi wytłumaczył jak się oblicza za pomocą interpolacji
Lagrange'a kolejne punkty na osi współrzędnych.
Powiedzmy dla prostego przykładu
np:
x y
1 2
2 4
3 6
? ?
? ?
? ?
W jaki sposób za pomocą tej metody obliczyć współrzędne trzech kolejnych punktów
27 sie 17:58
Qulka: ponieważ znasz 3 punkty to zakładasz że wielomian jest 3−1=2 stopnia
wiec masz y=ax2+bx+c wstawiasz swoje punkty i obliczasz z układu a,b,c i potem możesz liczyć
już kolejne punkty
27 sie 19:39
27 sie 19:45
27 sie 21:49
ola: rozumiem ze wykonuję układ równań:
2 = a + b + c
4 = 4a + 2b + c
6 = 9a + 3b + c
Po obliczeniu wychodzi mi że:
a = 0
b = 2
c = 0
i co dalej aby wyliczyc moje niewiadome x oraz y
?
Czy mam podstawiać kolejne wiersze pod:
y = 0x
2 + 2x + 0
?
27 sie 22:10
yht:
Dokładnie
To szczególny przypadek
że punkty (1,2), (2,4), (3,6) leżą na jednej prostej
dlatego wyszła funkcja liniowa (tutaj akurat) y=2x
27 sie 22:14
ola: dobrze
, ale oblicze nieznane punkty, tylko wtedy gdy znam (czyli wymysle sobie jakiegoś) x
tak
A mi chodzi o to czy mogłabym obliczyć dalsze współrzędne, kiedy nie znam x
Np. mam współrzędne w różnym czasie :
sekunda x y
1 1 3
2 3 5
3 4 10
4 ? ?
5 ? ?
6 ? ?
7 16 17
(czyli sygnał został przerwany i za pomocą interpolacji Lagrange'a chciałabym obliczyć
współrzędne które zanikły w sekundzie: 4,5,6
(wiem, że interpolacja nie pokaże idealnej drogi i będzie w jakimś stopniu
różnić się od drogi jaka powinna być))
I czy w przypadku jaki podałam, nie znając x oraz y w sekundzie : 4,5,6 można
za pomocą interpolacji obliczyć: x i y w tych sekundach
?
Jeśli tak to proszę o jakieś naprowadzenie
28 sie 11:01
yht:
Wg mnie można wyliczyć x−sy na podstawie tych sekund (s)
dla 3. sekundy x wynosi 4
dla 7. sekundy x wynosi 16
x(s) = m*s + n − funkcja liniowa
4 = m*3 + n
16 = m*7 + n
układ równań
Po rozwiązaniu tego układu wychodzi m=3, n=−5
czyli x(s) = 3s − 5
na podstawie powyższego wzoru możesz policzyć sobie x−sy
np. dla 4. sekundy czyli dla s=4 masz
x(4) = 3*4−5 = 12−5 = 7
dla s=5
x(5) = 3*5−5 = 10
s=6
x(6) = 3*6−5 = 13
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
sekunda x y
1 1 3
2 3 5
3 4 10
4 7 ?
5 10 ?
6 13 ?
7 16 17
i teraz korzystasz z wielomianu Lagrange'a (z linka który podrzuciłem)
budujesz wielomian Lagrange'a przechodzący przez punkty A=(1,
3), B=(3,
5),
C=(4,
10), D=(16,
17)
Po pierwsze:
| | | | | | | | |
y(x) = 3* |
| + 5* |
| + 10* |
| + 17* |
| |
| | | | | | | | |
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
Po drugie, miejsca zerowe
| (x−3)(x−4)(x−16) | | (x−1)(x−4)(x−16) | |
y(x) = 3* |
| + 5* |
| + |
| | | | |
| (x−1)(x−3)(x−16) | | (x−1)(x−3)(x−4) | |
10* |
| + 17* |
| |
| | | | |
Wielomian y(x) ma tak jakby 4 części
Pierwsza część zaczyna się
3−ką to jest współrzędna y−kowa punktu A
w nawiasach są miejsca zerowe pozostałych punktów − czyli B, C, D
Druga część zaczyna się
5−tką − to jest współrzedna y−kowa punktu B
w nawiasach są miejsca zerowe pozostałych punktów a więc A, C, D
Analogicznie trzecia i czwarta część mam nadzieję że wiesz o co chodzi, jeśli nie to pytaj
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
Po trzecie, uzupełniamy mianowniki
| (x−3)(x−4)(x−16) | |
y(x) = 3* |
| + |
| (1−3)(1−4)(1−16) | |
| (x−1)(x−4)(x−16) | |
5* |
| + |
| (3−1)(3−4)(3−16) | |
| (x−1)(x−3)(x−16) | |
10* |
| + |
| (4−1)(4−3)(4−16) | |
| (x−1)(x−3)(x−4) | |
17* |
| |
| (16−1)(16−3)(16−4) | |
Uwaga!
Mianowniki będą takie same jak liczniki, tylko że w mianownikach zamiast x−sów będą po prostu
współrzędne x−sowe punktów odpowiadających za poszczególne części wielomianu
Np. za pierwszą część wielomianu a więc
| (x−3)(x−4)(x−16) | |
3* |
| odpowiada punkt A=(1,3) czyli x−sy |
| (1−3)(1−4)(1−16) | |
w mianowniku uzupełniamy jedynkami bo taka jest współrzędna na iksie punktu A
| (x−1)(x−4)(x−16) | |
Za drugą część wielomianu a więc 5* |
| |
| (3−1)(3−4)(3−16) | |
odpowiada punkt B=(3,5) więc x−sy w mianowniku uzupełniamy trójkami bo taka jest współrzędna
na iksie punktu B
dalej trzecia i czwarta część wielomianu − analogicznie
i teraz obliczamy mianowniki
| (x−3)(x−4)(x−16) | | (x−1)(x−4)(x−16) | | (x−1)(x−3)(x−16) | |
y(x) = 3* |
| + 5* |
| + 10* |
| + |
| −90 | | 26 | | −36 | |
Mamy jawny wzór wielomianu Lagrange'a
wracamy do naszej tabelki:
sekunda x y
1 1 3
2 3 5
3 4 10
4 7 ?
5 10 ?
6 13 ?
7 16 17
Możemy policzyć teraz y−greki na podstawie iksów
np. pierwszy z brzegu y policzymy, wstawiając do wielomianu Lagrange'a
| (x−3)(x−4)(x−16) | | (x−1)(x−4)(x−16) | | (x−1)(x−3)(x−16) | |
y(x) = 3* |
| + 5* |
| + 10* |
| + |
| −90 | | 26 | | −36 | |
x=7
czyli liczymy y(7)
| (7−3)(7−4)(7−16) | | (7−1)(7−4)(7−16) | | (7−1)(7−3)(7−16) | |
y(7) = 3* |
| + 5* |
| + 10* |
| + |
| −90 | | 26 | | −36 | |
y(7) = 3,6 − 31,15 + 60 + 0,52 ≈ 32,97
analogicznie, liczymy później y(10) i y(13)
wychodzi mi y(10) ≈ 53,84
y(13) ≈ 54,54
sekunda x y
1 1 3
2 3 5
3 4 10
4 7 32,97
5 10 53,84
6 13 54,54
7 16 17
28 sie 11:59
yht:
ewentualnie zamiast układem równań
4 = m*3 + n
16 = m*7 + n
możesz wyliczyć brakujące trzy iksy dla s=4,5,6 metodą wielomianu Lagrange'a − wtedy punkty by
były takie:
A=(1,1), B=(2,3), C=(3,4), D=(7,16)
wtedy być może uzyskalibyśmy dokładniejsze wyniki ?
28 sie 12:13
ola: rozumiem wszystko dziękuję
. A teraz takie pytanie , ponieważ
sekundy ze znanymi danymi to : 1,2,3 i 7. I ty użyłeś tych danych do budowy wielomianu:
A=(1,3), B=(3,5), C=(4,10), D=(16,17).
I teraz pytanie 1 )
Gdybym miała więcej danych:
1 1 3
2 3 5
3 4 10
4 8 12
5
6
7
8 20 20
9 21 29
To w takim przypadku biorę więcej punktów tak
czyli A(1,3) , B(3,5), C(4,10),
D(8,12), E(20,20), F(21,29)
(Wtedy wielomian będzie większego stopnia
)
Pytanie 2) A czy w takim przypadku mając tyle danych mogę wziąć np tylko 3 punkty
A(4,10), B(8,12), C(20,20)
?
Pytanie 3) Chociaż nie wiem sama czy to pytanie dobre , ponieważ w takim razie
biorąc pod uwagę powyższe "mniemania
" zastanawia się ,czy w przypadku gdy jest mi znane
wiele punktów (np jak w przypadku powyżej (pytania 1) ) lepiej zrobić do obliczeń wielomian
stopnia 3−go czy aż 6−go(bo tyle danych) czy może 4 −tego lub 5−tego
(przecież w zależności co wybiorę dane będą się troszkę różnić chyba )
?
28 sie 13:02
ola: dopiero przeczytałam Twoją drugą wiadomość
. Tak za pomocą Lagrang'a wyliczam iksy
i są raczej dokładniejsze.
28 sie 13:18
yht:
Pytanie 1)
Tak, więcej punktów i tak, wielomian będzie większego stopnia
Pytanie 2)
Wydaje mi się że można tylko 3 punkty, ale lepiej 6
Pytanie 3)
Przez 6 punktów możesz wygenerować wielomian max. 5−tego stopnia, nie szóstego
Dlaczego tak ?
Generalnie zasada jest taka że przez n punktów przechodzi wielomian stopnia co najwyżej n−1
Tak jak przez 2 punkty przechodzi linia prosta (czyli wielomian 1−wszego stopnia) − tak to
działa
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
Ja bym zaczął od wyznaczania x−sów i zrobił bym to też wielomianem, a nie układem równań
A=(1,1), B=(2,3), C=(3,4), D=(4,8), E=(8,20), F=(9,21)
napisał wielomian
i potem policzył wartości tego wielomianu dla 5, 6 i 7
i w ten sposób wyszłyby mi te 3 brakujące iksy z tabelki
załóżmy że brakujące iksy wyszły 9,5; 12; 18 (nie wiem czy takie wyjdą − zmyśliłem)
uzupełniłbym tabelkę
1 1 3
2 3 5
3 4 10
4 8 12
5 9,5
6 12
7 18
8 20 20
9 21 29
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
Potem bym zrobił kolejny wielomian y(x), z takimi punktami A,B,...,F jakie podałaś
i potem policzyłbym igreki jako wartości wielomianu w tych trzech iksach, które wyszły z tego
pierwszego wielomianu
y(9,5) = ...
y(12) = ...
y(18) = ...
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
Także masz zacząć od wyznaczenia wielomianu w oparciu o punkty
A=(1,1), B=(2,3), C=(3,4), D=(4,8), E=(8,20), F=(9,21)
Jeśli czegoś nie wiesz to pytaj
28 sie 13:27
ola: no tak, z tym wielomianem to gape strzeliłam
( no jeśli punktów jest 6 to jest 5−tego
stopnia ,
tylko się mi coś pomyliło
)
Zadałam wcześniej pytanie 3) (czy jeśli jest dużo znanych punktów, np: 6 jak w przykłąddzie,
to czy lepiej interpolować wielomianem 5 stopnia, czy wybrać 4 punkty i interpolować
wielomianem
stopnia 3−go?
Dlaczego tak pytałam ? Ponieważ w internecie znalazłam że najlepiej interpolować jest
wielomianem 3 stopnia i myślałam że jest najlepiej go wybrać jeśli jest nawet duzo punktów....
ale to chyba nieprawda.
28 sie 14:36
a: mi się wydaje, że jeśli masz 6 węzłów interpolacji, to używasz ich wszystkich,
przecież taka jest idea interpolacji − wielomian interpolacyjny ma przechodzić przez wszystkie
dane węzły.
28 sie 14:54
ola: Chyba tak... tylko im większy wielomian tym więcej obliczeń
. No ale raczej tak jest.
Dziękuję za pomoc ,bardzo dużo się dowiedziałam, super wytłumaczyłeś " yht "
dziękuję
28 sie 15:45
ola: Ostatnie pytanie już
a gdybym przeprowadzała interpolację dla współrzędnych : x, y, z i
miała
dane tylko sekundy jak we wcześniejszych rozważaniach to czy robię:
Najpierw z interpolacji lagrange'a obliczam "iksy" z pomocą danych z sekund, następnie za
pomocą
wyliczonych "iksów" obliczam interpolacją lagrange'a "igreki" . A jak liczę "zety"
?
Z użyciem x, czy może y
? czy to obojętne
?
31 sie 00:15
yht:
Pokaż mi tabelkę jakie konkretne masz dane
Być może da się zastosować taką interpolację żeby nią policzyć x −sy, y−ki i zety za jednym
razem
31 sie 15:52