Next: Parcijalne diferencijalne jednadžbe Up: Numerička matematika Previous: Aproksimacija funkcije i numerička Contents Index
Subsections

- Problem početnog uvjeta (Cauchyjev problem)
  - Eulerova metoda
  - Metoda Runge-Kutta
- Rubni problem
  - Metoda konačnih diferencija
  - Ritzova metoda
  - Metoda konačnih elemenata
  - Galerkinova metoda

#
Rješavanje običnih diferencijalnih jednadžbi

##
Problem početnog uvjeta (Cauchyjev problem)

Želimo riješiti diferencijalnu jednadžbu

na segmentu uz početni uvjet

Metode približnog rješavanja koje ćemo sada opisati osnivaju se na sljedećoj ideji. Podijelimo segment na jednakih dijelova

Duljina svakog podsegmenta je

Brojeve zovemo čvorovima, a broj zovemo korakom. Stavimo

Cilj nam je odrediti za svaki To činimo tako da derivaciju zamijenimo odgovarajućom algebarskom aproksimacijom, kojom dolazimo do rekurzivne formule, pomoću koje računamo iz poznatog Na taj način, rješenje, koje je neprekidna funkcija, zamjenjujemo konačnim brojem njezinih vrijednosti. Opisani postupak se zove diskretizacija. Očekujemo da će za dovoljno mali brojevi dovoljno dobro aproksimirati prave vrijednosti funkcije. Važno svojstvo koje diskretizacija treba imati jeste da s povećanjem dobivamo sve bolje aproksimacije, odnosno, preciznije, da brojevi teže prema pravim vrijednostima funkcije kada

###
Eulerova metoda

Neka je dana diferencijalna jednadžba

na segmentu uz početni uvjet

Na temelju Taylorovog teorema srednje vrijednosti imamo

| (3.23)

Zanemarimo zadnji član, koji sadrži pa dobivamo približnu vrijednost

Odatle

Tako imamo sljedeći algoritam

Algoritam 11 (Eulerova metoda) Izaberemo dovoljno velik prirodni broj Za zadani korak

računamo niz brojeva po formuli

s tim da je

a početna vrijednost je određena početnim uvjetom.

Mathematica program 6 (Eulerova metoda)

    f[x_,y_]=; (* upisuje se f(x,y), ako je jednadzba y'=f(x,y) *)
    pocuvj=;   (* pocetni uvjet u obliku {x0,y0} *)
    kraj=;     (* drugi rub segmenta na kojem se trazi rjesenje *)
    n=;        (* broj podsegmenata podjele *)
    h=(kraj-pocuvj[[1]])/n;
    x=pocuvj[[1]];
    y=pocuvj[[2]];
    rj={};
    While[x-h<kraj,
    rj=Append[rj,{x,y}]//N;
    y=y+h f[x,y];
    x=x+h];
    rj

Primjer 3.17 Riješiti Eulerovom metodom Cauchyjev problem

na segmentu dijeleći ga na deset dijelova.

Rješenje. Koristeći se ovim programom, dobivamo sljedeće točke grafa.

Rezultat se vidi na slici. Puna linija predstavlja graf točnog rješenja a crtkana linija spaja nađene točke dijelovima pravaca.

Ova metoda je vrlo jednostavna, ali i vrlo gruba (ocjena pogreške je vrlo gruba) tako da se rijetko kada upotrebljava.

###
Metoda Runge-Kutta

U metodi Runge-Kutta se također računa pomoću već poznate vrijednosti Taj račun je točniji, jer uzima u obzir i neke međuvrijednosti funkcije Imamo sljedeći algoritam

Algoritam 12 (Metoda Runge-Kutta) Izaberemo dovoljno velik prirodni broj Za zadani korak

računamo niz brojeva po formuli

gdje je

Početna vrijednost je određena početnim uvjetom.

Radi bolje preglednosti prilikom računanja se može koristiti sljedeća tabela.

0 |  |  |  |
| ... | ... | ... | ...

Mathematica program 7 (Metoda Runge-Kutta)

    f[x_,y_]=;      (* zadavanje f(x,y), ako je y'=f(x,y) *)
    x=;y=;          (* po\1etni uvjet *)
    h=;             (* korak *)
    rj={{x,y}};
    br=0;           (* po\1etna vrijednost broja\1a *)
    n=;             (* broj koraka *)
    While[br<n,
    k1=h f[x,y];
    k2=h f[x+h/2,y+k1/2];
    k3=h f[x+h/2,y+k2/2];
    k4=h f[x+h,y+k3];
    br=br+1;
    x=x+h;
    y=y+(k1+2 k2+2 k3+k4)/6;
    rj=Append[rj,{x,y}]];
    N[rj,10]        (* ispis rezultata s deset znamenaka *)

Primjer 3.18 Riješiti isti zadatak kao u primjeru 3.17 metodom Runge-Kutta.

Rješenje. Primijenimo li gornji program, koji slijedi algoritam metode Runge-Kutta, dobivamo sljedeće točke grafa rješenja.

0 |

Egzaktno rješenje je ispisano s deset znamenaka

0 |

Odmah možemo uočiti mnogo bolju točnost nego kod metode Eulera.

Postoji cijela familija metoda zasnovanih na ideji da se podsegment podijeli na još manje dijelove kako bi se izračunala vrijednost u sljedećem čvoru. Sve one nose naziv Runge-Kutta metode. Opisani postupak se najčešće upotrebljava.

##
Rubni problem

###
Metoda konačnih diferencija

Neka je dan rubni problem

Podijelimo segment na jednakih podsegmenata.

Točke se zovu čvorovi. Točke se zovu unutrašnji čvorovi, a se zovu rubni čvorovi. Svaki segment ima duljinu Broj se zove korak. On se izabire malen, da točnost bude veća, ali sa smanjivanjem koraka se javljaju drugi nepoželjni efekti, pa u odabiru koraka treba biti oprezan. Ideja metode se sastoji u tome da se u svakom čvoru diferencijalna jednadžba zamijeni odgovarajućom algebarskom jednadžbom i zatim riješi tako dobiveni sustav algebarskih jednadžbi. U tu svrhu treba derivacije zamijeniti odgovarajućim algebarskim aproksimacijama. Rješenje koje tako dobijemo predstavlja približne vrijednosti rješenja u čvorovima.

Uočimo jedan unutrašnji čvor Koristit ćemo sljedeće oznake

Na isti način kao u 3.5.1 imamo

Odatle

Ova aproksimacija derivacije se zove aproksimacija s desna.

Umjesto aproksimacije s desna ponekad se koriste aproksimacija s lijeva ili centralna aproksimacija. Polazeći od formule (3.23), u kojoj zamjenimo s

dobivamo, zanemarivanjem člana s aproksimaciju s lijeva

Centralnu aproksimaciju dobivamo, ako Taylorove formule

za i oduzmemo i podijelimo s Tada imamo

pa ako zanemarimo član s dobivamo

Za aproksimaciju druge derivacije, uzimamo

Zbrojimo ove jednakosti

Podijelimo s i izračunamo

Zanemarimo zadnji član s faktorom i dobivamo

U čvoru diferencijalna jednadžba iz rubnog problema glasi

Zamijenimo li drugu derivaciju s njezinom aproksimacijom, dobijemo algebarsku jednadžbu za -ti čvor

Pomnožimo jednadžbu s pa imamo

U rubnim čvorovima imamo zadan rubni uvjet. Tako je na lijevom rubu

|  | (3.24)
a na desnom
tj.
|  | (3.25)

Na taj način smo dobili sustav od -ne linearne algebarske jednadžbe. Rubni uvjeti imaju utjecaja samo na prvu jednadžbu koja postaje, zbog (3.24),

i na zadnju jednadžbu koja, zbog (3.25), postaje

Sustav možemo zapisati u matričnom obliku. Ako uzmemo prirodan poredak jednadžbi počevši od čvora preko sve do imamo vektor nepoznanica

matricu sustava

i vektor desne strane

Tada sustav možemo zapisati matrično

Za kvadratnu matricu kažemo da je striktno dijagonalno dominantna ako je

Može se pokazati da iz striktne dijagonalne dominantnosti matrice slijedi njezina regularnost. Ako je onda je matrica striktno dijagonalno dominantna, pa je regularna. Prema tome postoji jedinstveno rješenje.

Primjer 3.19 Riješiti metodom konačnih diferencija sljedeći rubni problem

Rješenje. Podijelimo segment na deset jednakih dijelova, tako da je korak Čvorovi su Stavimo Za prvu derivaciju upotrebimo desnu aproksimaciju, osim na desnom rubu, gdje uzmemo lijevu. U svakom unutrašnjem čvoru zamijenimo derivacije odgovarajućim aproksimacijama. Dobivamo sustav jednadžbi

čije rješenje je

Točke rješenja na sljedećoj slici spojene su ravnim linijama.

###
Ritzova metoda

Iz varijacijskog principa slijedi da se umjesto rješavanja jednadžbe, rješenje rubnog problema može dobiti rješavanjem problema minimizacije odgovarajućeg funkcionala.

Ima raznih metoda koje koriste varijacijsku formulaciju. Jedna od njih je Ritzova. Pogledajmo kako ona funkcionira kad se radi o rubnom problemu

gdje je za svaki

Izaberemo linearno nezavisnih funkcija koje zadovoljavaju Dirichletov homogeni rubni uvjet. Dakle Rješenje se pretpostavi u obliku

i neodređeni koeficijenti se odrede iz uvjeta da minimizira pripadni funkcional energije

Tako dobiveni leži u vektorskom prostoru razapetom s funkcijama tj. u vektorskom prostoru svih linearnih kombinacija funkcija Rješenje ne mora biti linearna kombinacija tih funkcija, pa u tom slučaju nije točno već samo približno rješenje. No, grešku koju tom pretpostavkom činimo, možemo umanjiti uzimanjem većeg

Prvi problem s kojim se susrećemo kod Ritzove metode je određivanje funkcija koje se često zovu koordinatne funkcije. One se obično biraju u skladu s problemom koji se rješava. Na pr. ako iz fizikalnih razloga očekujemo periodičko rješenje, onda ćemo takvima pretpostaviti i funkcije Inače se za koordinatne funkcije mogu koristiti polinomi.

Nakon što smo izabrali funkcije pretpostavljeno rješenje uvrstimo u funkcional

je derivabilna funkcija od varijabli pa jednadžbe

za predstavljaju nužan uvjet za ekstrem funkcije u točki Ovo je sustav od linearnih algebarskih jednadžbi s nepoznanica. Ako stavimo

dobivamo sustav jednadžbi

On se može matrično zapisati

| (3.26)

gdje je

Matrica koja se inače zove matrica krutosti, je očito simetrična, jer je

Ona je i pozitivno definitna. Doista,

Budući da je za svaki ovaj integral se može poništavati samo tako da bude

odnosno

Odatle

a kako je slijedi odnosno

Zbog linearne nezavisnosti koordinatnih funkcija slijedi da je za svaki tj. Dakle za pa je matrica pozitivno definitna.

Kao što smo vidjeli, takva matrica se može dijagonalizirati i ima pozitivne vlastite vrijednosti. To znači da je regularna. Zaista, neka su njezine vlastite vrijednosti Tada je

Odatle slijedi da jednadžba (3.26) ima jedno i samo jedno rješenje.

Nedostak ove metode je u tome što je matrica puna matrica, tj. općenito je svaki njezin element različit od nule.

Primjer 3.20 Riješimo Ritzovom metodom sljedeći rubni problem

Rješenje. Za koordinatne funkcije uzmimo polinome. Budući da na lijevom rubu imamo homogen Dirichletov uvjet, polinomi se moraju poništavati u nuli. Neka su, dakle, koordinatne funkcije

Rješenje pretpostavljamo u obliku

Kad s uđemo u funkcional, i njegove derivacije po koeficijentima izjednačimo s nulom, dobivamo sustav jednadžbi

Odavde dobijemo za koeficijente

pa je rješenje

Točno rješenje je

Greška računata u točkama iznosi

###
Metoda konačnih elemenata

Metoda konačnih elemenata je modifikacija Ritzove metode u tom smislu da što više elemenata matrice krutosti bude jednako nuli. Budući da su elementi matrice krutosti

funkcije treba birati tako da međusobni produkti njihovih derivacija budu nulfunkcije u što više slučajeva.

Pogledajmo na primjeru kako se to radi. Neka je dan rubni problem

Podijelimo segment na jednakih dijelova. Time smo dobili čvorove

gdje je

korak diskretizacije. Rješenje tražimo u obliku

gdje su koordinatne funkcije definirane formulom

| (3.27)

za Koordinatne funkcije i su definirane ovako

| (3.28)

| (3.29)

Rješenje će biti oblika

Imamo

pa je prema tome

| (3.30)

Dakle, neodređeni koeficijenti su upravo vrijednosti približnog rješenja u odgovarajućim čvorovima. Budući da je uvjet na lijevom rubu homogen, imamo

pa će, prema tome, rješenje biti oblika

Budući da na desnom rubu imamo prirodni (Neumannov) uvjet, nema nikakvih daljnjih zahtjeva na oblik rješenja.

Iz formule (3.27) slijedi

Odatle dobivamo

| (3.31)

Dalje radimo isto kao kod Ritzove metode, da bismo na kraju dobili sustav linearnih algebarskih jednadžbi

Elementi za fiksni čine -ti redak matrice krutosti Formula (3.31) nam pokazuje da u jednom retku matrica ima najviše tri elementa različita od nule. To znatno pojednostavnjuje rješavanje sustava.

Primjer 3.21 Riješimo primjer 3.20 metodom konačnih elemenata.

Rješenje. Budući da je uvjet na desnom rubu homogen i prirodan, njega ne treba uzimati u obzir kod izbora koordinatnih funkcija. Uvjet na lijevom rubu nam kaže da treba isključiti funkciju Dakle rješenje treba tražiti kao

Kad se izračunaju i dobije se sljedeći sustav jednadžbi

Iz ovog sustava se izračunaju koeficijenti

Budući da je rješenje između dva susjedna čvora linearna kombinacija polinoma prvog stupnja, rezultat će opet biti polinom prvog stupnja, tj. graf će biti dio pravca. Prema (3.30) rješenje je na rubu jednako odgovarajućim koeficijentima. Tako je za grafički prikaz rješenja dovoljno nanijeti točke kojima je dodana točka na lijevom rubu

i zatim te točke spojiti ravnim linijama.

###
Galerkinova metoda

Galerkinova metoda ili preciznije metoda Bubnova-Galerkina osniva se na sljedećoj jednostavnoj činjenici. Neka je dan vektorski prostor baza u i skalarni produkt u Tada je nulvektor, ako i samo ako je okomit na za svaki Ta tvrdnja je jasna, ako za uzmemo vektorski prostor radijvektora u prostoru ili ravnini.

Ono što nas zanima je rubni problem, na pr.

Rješenje tražimo u skupu funkcija koje su klase i koje zadovoljavaju rubne uvjete. Taj skup nije vektorski prostor, jer linearne kombinacije takvih funkcija više ne zadovoljavaju ove rubne uvjete. Međutim, ako su rubni uvjeti homogeni, onda skup jeste vektorski prostor. Homogenizacijom rubnih uvjeta možemo svaki rubni problem svesti na problem s homogenim uvjetima.

Promatrajmo dakle rubni problem

U skupu koji je sada vektorski prostor, definirajmo skalarni produkt

Izaberimo u linearno nezavisne funkcije

tako da čine bazu u U pravilu funkcija ima beskonačno mnogo. Neka je rješenje rubnog problema. Tada je i prema tome postoje brojevi takvi da je

U diferencijalnoj jednadžbi rubnog problema, funkcija je jednaka nulfunkciji. To možemo na drugi način iskazati tako da zahtijevamo da je funkcija okomita na za svaki pa nepoznati koeficijenti moraju zadovoljavati sljedeće jednadžbe

Problem je u tome što je to beskonačno mnogo jednadžbi s beskonačno mnogo nepoznanica. Zato uzmemo konačno mnogo funkcija iz baze

i rješenje pretpostavimo u obliku

Nepoznate koeficijente određujemo iz sustava jednadžbi

Ovaj sustav jednadžbi možemo prepisati u obliku

Stavimo

Tada sustav poprima oblik

odnosno matrično

| (3.32)

gdje je

U ovom slučaju se u formuli za može jednom parcijalno integrirati pa, uzevši u obzir rubne uvjete, imamo

Na taj način sustav jednadžbi (3.32) postaje identičan onome kod Ritzove metode. To se događa ako rubni problem ispunjava određene uvjete, o čemu ovdje nećemo detaljnije govoriti.

Istaknimo ovdje bitnu razliku u ideji između Ritzove i Galerkinove metode. Nužan uvjet za primjenu Ritzove metode je bila egzistencija varijacijske formulacije rubnog problema u kojoj se pojavljuje funkcional energije, dok za Galerkinovu metodu to uopće nije važno. Formalno, Galerkinova metoda se može primijeniti uvijek, pa i u slučaju nelinearnih rubnih problema. Tada sustav jednadžbi koji dobijemo nije više linearan.

Next: Parcijalne diferencijalne jednadžbe Up: Numerička matematika Previous: Aproksimacija funkcije i numerička Contents Index