archnisse.blogg.se

Plugg-dagbok

Randvärdesproblem Diffekvationer

Publicerad 2013-10-26 14:58:00 i Diffekvationer, Matte, Numme,

Randvärdesproblem!
 
 Innebär att de givna värdena till en Diffekvation inte befinner sig i början av intervallet, vid samma ställe, utan finns för olika $x$.
 
För begynnelsevärden är det $y$ som sökes för $x$-värdet en bit bort från ursprungsplatsen. Vid ett Randvärdesproblem sökes snarare $y$-värdet för funktionen mellan startpunkten $a$ och slutpunkten $b$.
 
 

Högre ordningens Diffekvationer

Publicerad 2013-10-25 16:52:00 i Diffekvationer, Matte, Numme,

Standardform:
$u'' = F(t, u, u')$
Detta kan substitioneras till ett system av två första ordningens diffekvationer med substitioneringen
$y_1 = u, y_2 = u'$
Som leder till systemet
$y'_1 = y_2, y'_2 = F(t, y_1, y_2)$
 
På vektorform blir det
$y' = f(t,y) \quad \text{där} \quad f = (y_2, F(t, y_1, y_2))$
 
En $n$-te ordningens diffekvation,
$u^{(n)} = f(t, u, u', ... , u^{(n-1)})$
kan på motsvarande vis alltid skrivas om till ett system av $n$ st första ordningens diffekvationer.
 
Och där vekrar det som att det är klart, man har sitt $F$ som vi vet hur vi applicerar i RK4.

I teori-boken 8.5 ges ett väldigt bra exempel på en högre ordningens diffekvation med RK4. Det man vill få ut är funktionen av diffekvationen, om inget annat efterfrågas antar jag.. i dunno. Men med RK4 får man funktionen som jag fattar det.

Det nya ekvationssystemet kan var för sig med givna startvärden räknas ut med RK4 som har högst nogrannhet. Det är bara ett system var för sig, för smidig MATLAB-kod kan man med fördel använda sig av vektorer för att slippa fler variabler.

första ordningens Diffekvationer

Publicerad 2013-10-25 15:58:00 i Diffekvationer, Matte, Numme,

It has come to this.. Diffekvationer känns som den största delen i nummen.
 
Alla de numeriska metoder vi använder är stegmetoder (richardsonsextrapolation? :D) och beräknar approximationer i varje steg för funktionen.
 
Eulers metod
Trunkeringsfel: proportionellt mot $h^2$
Det kallas även för lokalt fel, dvs. felet i varje steg.
Globala felet är det felet som samtliga lokala fel har samlat ihop, är proportionellt mot $h$.
För att förbättra ett värde med Eulers metod får man skilja på om det är slutvärdet eller varje enskilt värde vi vill förbättra. En genomgående förbättring i varje punkt skulle ge mindre lokala fel och därav ett mindre globalt fel, och det globala felet kan förbättras genom att använda $p=1$. Men jag blir lite osäker på hur man kan göra nu.
 
Första odrningens diffekvation:

Första ordningens diffekvation innebär att den involverar $y'$ och $y$.
Standardform: $y' = f(x, y)$ där $f(t, y)$ alltså är ett samlat uttryck med $t$ och $y$.
Eulers metod ger då följande:
£y_{i+1} = y_i + hf(t_i, y_i)£
där $y_{i+1}$ är approximationen till lösningen då variablen $t$ flyttas steget $h$, alltså vid $t_{i+1}$
En härledning kan göra med hjälp av taylorutveckling, och även med framåtdifferenskvot.
 
Eulers metod är en så kallad enstegsmetod, eftersom den bara utnyttjar värdet i en punkt för varje steg. Geometriskt sett räknar man ut lutningen i en punkt och låter den vara konstant ett steg $h$ framåt.
 
 Runge-Kuttas metod

Runge-Kutta delas upp i RK2 och RK4.
RK2
Runge-kutta baserar sig på Euler vill jag påstå när den utnyttjar nuvarande punkt och en approximerad nästa punkt för att ge en bättre gissning för sitt steg.
 
£y_{i+1} = y_i + \frac{h}{2}\Big(f_1 + f_2 \Big)£
där
$f_1 = f(t_i, y_i)$ (Eulers) och
$f_2 = f(t_i+h, y_i + hf_1)$ En andra punk baserad på Euler helt enkelt
 
Globala felet i RK2 är proportionellt mot $h^2$
 
RK4
RK4 är lik RK2 i metoden, men den använder sig av fler punkter. Den är inte mer komplex direkt, bara lite mer att skriva och mycket högre nogrannhet.
 
£y_{i+1} = y_i + \frac{h}{6} \Big ( f_1 + 2f_2 + 2f_3 + f_4 \Big )£
där
$f_1 = f(t_i, y_i)$
$f_2 = f(t_i+\frac{h}{2}, y_i+\frac{hf_1}{2})$
$f_3 = f(t_i+\frac{h}{2}, y_i+\frac{hf_2}{2})$
$f_4 = f(t_i+h, y_i+hf_3)$
 
RK4 har ett globalt proportionellt mot $h^4$, såna grejer!

Senaste inläggen

Kategorier

Arkiv

Prenumerera och dela