Metody numeryczne wykład no 8
Jak dobrać punkty podziału [a,b] przedziału na N części Metoda Gaussa Jak dobrać punkty podziału [a,b] przedziału na N części aby uzyskać dokładność 2(N+1)? Rozwiązanie problemu można znaleźć za pomocą wielomianów ortogonalnych. Ciąg wielomianów: jest ortogonalny w przedziale [a,b] z wagą p(x) jeżeli zachodzi:
Wielomiany Legendre’a: Waga p(x)=1, przedział [-1,1].
Interpolując funkcję podcałkową f(x) za pomocą wielomianu Legendre’a otrzymujemy: gdzie a xk jest k-tym pierwiastkiem równania: i błąd metody jest:
Pierwiastki i współczynniki kwadratury Gaussa z wagą p(x)=1: 2 -0.577350269189626 0.577350269189626 3 -0.774596669241483 0.774596669241483 5/9 8/9 4 -0.861136311594053 -0.339981043584856 0.339981043584856 0.861136311594053 0.347854845137454 0.652145154862546 5 4 -0.906179845938664 -0.538469310105683 0.538469310105683 0.906179845938664 0.236926885056189 0.478628670499366 0.568888888888889 węzły xk współczynniki Ak
W przypadku całkowania w przedziale [a,b] dokonujemy jego transformacji na przedział [-1,1]: Przykład n 1 2 3 4 5 In 0.8660254 0.79611301 0.78725969 0.7870574 0.78629544 błąd% 10.3 1.36 0.237 0.211 0.114
Ta sama całka, ale liczona w ten sposób, że przedział całkowania jest podzielony na 5 równych części i w każdym przedziale zastosowano aproksymację N=1 I1=0.792996956 z błędem 0.97% Całki typu: Transformacja przedziału całkowania: Pozwala zapisać całkę w postaci: gdzie
Wystarczy więc rozważyć całkę: Mamy obliczyć całkę funkcji f(t) z wagą Wielomiany ortogonalne na przedziale [-1,1] z wagą w(t) są nazywane wielomianami Jacobiego i mają postać: i całkę I można obliczyć z zależności:
gdzie a tk jest pierwiastkiem równania: i Przypadki szczególne: dla n=0,1,2,... dla n=1,2,3,... dla n=0,-1,-2,...
W tym przypadku wielomiany Jacobiego są powiązane Typowe funkcje wagowe ==-0.5 czyli a całka ma postać: W tym przypadku wielomiany Jacobiego są powiązane z wielomianami Czebyszewa Tn(t) związkiem: gdzie Cn – stała , a
Łatwo więc znaleźć pierwiastki tk z równania: i mamy: dla k=1,2,3,...,N Korzystając z odpowiednich tożsamości dla funkcji Czebyszewa i Jacobiego można wykazać, że współczynniki wagi są: a ponieważ nie są zależne od k, więc dla danego N powinny być stałe i równe A. Stałą A łatwo wyznaczymy jeżeli przyjmiemy, że f(t)=1 i mamy: i stąd
mamy ostatecznie: gdzie RN(f) jest błędem aproksymacji wynoszącym: i –1<<1 Przykład gdzie |k|<1 czyli: Podstawiamy: cos=t i
w tym przypadku: funkcja f(t) ma postać: i na mocy zależności: mamy:
2. ==0.5 Funkcja wagowa: a całka ma postać: W tym przypadku funkcje Jacobiego można wyrazić przez funkcje Czebyszewa II – go rodzaju Un(t): gdzie i wzór dla kwadratur ma postać:
gdzie błąd określa wzór: -1<<1 Przykład: transformacja przedziału [0,1] do przedziału [-1,1]: i całka przyjmuje postać: Z oceny błędu widać, że wystarczy wybrać N=3, a wynik będzie dokładny i mamy: I=1.96349541
Jeszcze jeden przypadek szczególny 3. =0.5 =-0.5 Funkcja wagowa jest: i liczymy całkę: Również w tym przypadku można wyrazić wielomiany Jacobiego przez wielomiany Czebyszewa:
i kwadraturę można zapisać: gdzie gdzie -1<<1 Całki na przedziale nieograniczonym Można wybrać specjalne reguły całkowania za pomocą wielomianów ortogonalnych Laguerre’a lub Hermite’a w przedziale [0,] lub [-,+] odpowiednio.
Całki postaci: gdzie >-1 wagą jest Wielomianami ortogonalnymi na półosi [0,) z wagą w(x) są wielomiany Laguerre’a: Dla =0 mamy: a xk – zera wielomianu Laguerre’a i współczynniki Ak podaje tablica:
N=1 x1=1.00000000 A1=1.00000000 N=2 x1=0.585786437627 x2=3.414213562373 A1=0.853553390593 A2=0.146446609407 N=3 x1=0.215774556783 x2=2.294280360279 x3=6.289945082937 A1=0.711093009929 A2=0.278517733569 A3=0.0103892565016 N=4 x1=0.322547689619 x2=1.745761101158 x3=4.536620296921 x4=9.395070912301 A1=0.603154104342 A2=0.357418692438 A3=0.038887908515 A4=0.539294705561·10-3
N=5 x1=0.263560319718 x2=1.413403059107 x3=3.596425771041 x4=7.085810005859 x5=12.640800844276 A1=0.521755610583 A2=0.398666811083 A3=0.0759424496817 A4=0.00361175867992 A5=233699723858·10-4 N=6 x1=0.222846604179 x2=1.188932101673 x3=2.992736326059 x4=5.775143569105 x5=9.837467418383 x6=15.982873980602 A1=0.458964673950 A2=0.417000830772 A3=0.113373382074 A4=0.0103991974531 A5=0.261017202815·10-3 A6=0.89854790643·10-6
Przykład: Dana jest całka: Dokładna wartość całki jest: Obliczenia metodą trapezów przy obcięciu górnej granicy: Błąd obliczeń liczymy z zależności: Wyniki przedstawia tabela:
x=1 -61.6% x=5 -3.28% x=10 -0.04% x=100 -2.28·10-10% x=1000 2.26·10-9% dlaczego? Obliczenia korzystając z wielomianu Laguerre’a N=1 -6.26% N=2 -0.7% N=3 0.068% N=4 0.048% N=5 7.82·10-3% N=6 -2.52·10-3%
Można też zastosować następujące postępowanie dla całki: podstawiamy: i mamy: Warunkiem istnienia całki I1 jest: a więc stosując np. metodę trapezów trzeba w punkcie t=0 uwzględnić wartość graniczną.
Funkcja podcałkowa posiada osobliwość wewnątrz przedziału całkowania najwygodniej rozbić na dwie: które liczymy jak poprzednio. Funkcja podcałkowa posiada osobliwość wewnątrz przedziału całkowania Np.: ogólnie: i w punkcie x0[a,b] występuje osobliwość.
1. Jeżeli istnieje to wydzielamy osobliwość: Przykład: wewnątrz przedziału całkowania mianownik ma miejsce zerowe x0=1, a granica funkcji w tym punkcie wynosi: czyli
w obliczeniach numerycznych mamy funkcję podcałkową: z której całkę w przedziale [-2,2] liczymy dowolną metodą. 2. Funkcja f(x) posiada słabą osobliwość w punkcie x0[a,b]: gdzie 0<<1 oraz g(x0)0.
i mamy: Ostatnią całkę można obliczyć analitycznie: Natomiast funkcja podcałkowa: ma w punkcie x0 granicę: jeżeli
Numeryczne metody całkowania równań różniczkowych Równanie różniczkowe rzędu n-go przykład: Układ równań różniczkowych I-go rzędu w postaci normalnej:
Sprowadzenie równania rzędu n do układu równań na przykładzie: oznaczamy: i ostatecznie: Równanie różniczkowe rzędu n może praktycznie zawsze być zapisane w formie układu n równań I-go rzędu mówimy, że mamy układ równań w postaci normalnej.
Zagadnienie początkowe dla równania różniczkowego: Przykład: całka ogólna: Rozwiązanie: Całka szczególna metodą uzmienniania stałej: czyli
Rozwiązanie równania: ma postać: Stałą C wyznaczamy z warunków początkowych Dla równania różniczkowego I-go rzędu potrzebujemy jeden warunek początkowy: i dla wyznaczenia stałej C mamy równanie:
i rozwiązanie ma postać: Przykład równania różniczkowego II rzędu: R0 Warunki początkowe: t=0 uc R E C i(t) L
zapisujemy warunki w postaci: Biorąc pod uwagę, że zapisujemy warunki w postaci: Warunków początkowych należy postawić tyle i nie więcej ile wynosi rząd równania różniczkowego
Rozwiązanie: Niech równanie charakterystyczne: ma dwa różne pierwiastki rzeczywiste wtedy całka ogólna ma postać:
Stałe A1 i A2 wyznaczamy z warunków początkowych: czyli Rozwiązując powyższy układ równań wyznaczamy stałe a następnie znajdujemy napięcie na kondensatorze.
Mamy kłopoty z rozwiązywaniem równań o stałych Podsumowanie: Mamy kłopoty z rozwiązywaniem równań o stałych współczynnikach, jeżeli rząd wyższy od dwóch równanie charakterystyczne jest wielomianem rzędu n i nie znamy wzorów na pierwiastki. Równań o zmiennych w czasie współczynnikach i nieliniowych nie potrafimy rozwiązać w ogólnym przypadku często już dla rzędu I-go Konieczność użycia metod numerycznych Ze względu na łatwość zbudowania ogólnego algorytmu obliczenia prowadzimy dla układu równań różniczkowych I-go rzędu w postaci normalnej
który po wprowadzeniu formalnego zapisu w postaci wektorów: i układ zapisujemy:
Wniosek – Jeżeli opanujemy metodę numerycznego rozwiązywania jednego równania różniczkowego pierwszego rzędu, czyli to wyniki łatwo uogólnimy na układ n równań I-go rzędu w postaci normalnej Rozpoczynamy od następującego zadania: z warunkiem początkowym: Należy znaleźć rozwiązanie dla t[0,T]
Metoda aproksymacji wielomianowej metody wielokrokowe Przyjmujemy algorytm w postaci tk=kh Algorytm nazywamy jawnym, jeżeli sumowanie rozpoczyna się od 0 w przeciwnym przypadku mówimy, że algorytm jest niejawny
Wyznaczenie współczynników ai, bi. Metoda jest dokładna jeżeli rozwiązaniem równania: jest wielomian stopnia zerowego, czyli równanie ma postać: którego rozwiązaniem jest: podstawiając do mamy ponieważ f(x,t)=0. Dzieląc przez c0
Wyznaczenie współczynników ai, bi. Metoda jest dokładna dla wielomianu stopnia zerowego jeżeli rozwiązaniem równania: jest wielomian stopnia zerowego, czyli równanie ma postać: którego rozwiązaniem jest: podstawiając do mamy ponieważ f(x,t)=0. Dzieląc przez c0
otrzymujemy warunek: Jeżeli współczynniki ai dobierzemy tak, aby spełnić powyższy warunek, to algorytm jest dokładny dla wielomianów stopnia zerowego. Żądamy, jeżeli rozwiązaniem równania jest wielomian pierwszego stopnia to algorytm jest dokładny.
Równanie spełniane przez wielomian ma postać: czyli a więc algorytm: uwzględniając, że ti=ih przyjmuje postać: Biorąc pod uwagę, że dla wielomianu stopnia zerowego mamy warunek:
Z równania: otrzymujemy: Powtórzmy jeszcze jako ćwiczenie rozumowanie dla wielomianu II-go stopnia: który spełnia równanie czyli
Przyjmując dla skrócenia zapisu tn=0 algorytm: i uwzględniając: zapisujemy: a biorąc pod uwagę dwa poprzednie warunki:
otrzymujemy: Dla wielomianu stopnia k: równie różniczkowe ma postać
Przyjmując podobnie jak dla drugiego stopnia i podstawiając do: otrzymujemy:
Porównując współczynniki przy tych samych potęgach h i poprzednie k-1 równań znajdujemy: Algorytm wielokrokowy: jest dokładny dla wielomianu stopnia k, jeżeli współczynniki ai, bi spełniają następujący układ k równań:
Każdy algorytm spełniający warunki dla k>1 nazywamy ............................... Każdy algorytm spełniający warunki dla k>1 nazywamy zwartym. Jeżeli metoda jest dokładna dla wielomianu stopnia k, to mówimy o metodzie rzędu k-go.
Liczba niewiadomych do wyznaczenia w algorytmie: Współczynników ai wynosi: p+1 Współczynników bi wynosi: p+2 Całkowita liczba niewiadomych: 2p+3 Układ równań: k=0,1,...,n można spełnić pod warunkiem, że liczba równań n+1 2p+3
W metodzie Adamsa - Bashfortha przyjmujemy p=n-1 Liczba niewiadomych wynosi: 2(n-1)+3=2n+1, więc przy spełnieniu n+1 równań możemy dowolnie wybrać n współczynników Przyjmujemy n-1 współczynników a1=a2=....=an-1=0 Pierwsze z równań przy spełnieniu powyższych warunków przyjmuje postać: Jako n-ty dowolnie wybrany współczynnik przyjmujemy b-1=0 A więc schemat Adamsa - Bashfortha jest schematem jawnym
Dla n=1 mamy p=0 i równanie wyznaczające b0 jest Przy n=2 będzie p=1 i mamy dwie niewiadome b0 i b1 spełniające układ równań: czyli
Rozwiązanie powyższego układu równań przedstawia Ogólnie jeżeli mamy n niewiadomych współczynników bi , to wyznaczamy je z równań Rozwiązanie powyższego układu równań przedstawia tabela:
Współczynniki bk metoda Adamsa - Bashfortha 1 2 3/2 -1/2 3 23/12 -16/12 5/12 4 55/24 -59/24 37/24 -9/24 5 1901/720 -2774/720 2616/720 -1274/720 251/720 6 4277/1440 -7923/1440 9982/1440 -7298/1440 2877/1440 -475/1440
Algorytm Adamsa - Bashfortha rzędu pierwszego jest nazywany algorytmem Eulera i ma postać: Przykład: z warunkiem początkowym x(0)=0 Zapisujemy równanie w postaci normalnej: czyli w tym przypadku funkcja f(x,t) jest Wybór kroku całkowania h:
Wybór kroku całkowania h: Równanie jednorodne ma postać: Całka ogólna tego równania ma postać: Przebieg rozwiązania jest scharakteryzowany przez wielkość tłumienia, które w tym przypadku wynosi a=3 i charakterystyczny czas wynosi 1/a=1/3 s. Krok czasowy h należy wybrać co najwyżej h<1/(10a), co w tym przypadku pozwala wybrać h=0.03s.
Należy również uważnie rozważyć funkcję wymuszającą, która w rozpatrywanym przypadku ma postać: Okres T zmian analizowanej funkcji wynosi: Rysunek funkcji sinus jest „gładki”, jeżeli podzielimy okres na co najmniej 20 kroków, czyli krok h powinien wynosić h<T/20, a więc h=0.01s. t 3h 4h h 2h
Z obu ograniczeń h=0.03s i h=0.01s wybieramy mniejszy czyli w tym przypadku przyjmujemy h=0.01s. Algorytm przy przyjętym kroku h ma postać: x0=0 i mamy: następny: itd..
Równanie drugiego rzędu na przykładzie wahadła matematycznego o długości l: Wprowadzamy nowe zmienne celem zastąpienia układem równań I-go rzędu:
Przyjmujemy wahadło o długości l=1m i g=10m/s2 Warunki początkowe: Jeżeli zlinearyzujemy równanie: to przyjmie on postać: którego całka ogólna ma postać:
Okres T drgań zlinearyzowanego wahadła wynosi: czyli krok należy przyjąć ponieważ mamy nieliniowe równanie, więc dla bezpieczeństwa przyjmujemy h=0.05s. Jawny schemat Eulera dla układu równań
przyjmuje postać: z warunkiem startowym: