Rungekuttametodene løser initialverdiproblemer på formen y' = F x, y, y x 0 = y 0 der F x, y står for et uttrykk i x og y. De er iterative metoder, så for - løkker egner seg ypperlig i denne sammenengen. Vi må bare vite va som skal utføres i løkken. For å plotte punktene vi får, skal vi bruke kommandoen pointplot men da må vi ente inn Maples plottekommandoer wit plots Ekstraoppgave 4.6.1 Iterasjonen er er y n C x n K 1 C x n K 1 $y n K 1 med y 0 = 0, x 0 = 0 (i) Vi setter startverdiene for x og y, verdien for og definerer plottet P 1 Legg merke til at vi bruker akeparenteser når vi skriver inn indekser. Kommandoen pointplot brukes for å plotte ett og ett punkt. av det første punktet. x 0 d 0 : y 0 d 0 : d 0. For å finne de resterende punktene og definere plottene for dem, bruker vi en for - løkke. Kontroller selv at denne løkken gjør akkurat det vi vil: for n from 1 by 1 to 5 do y n d y n K 1 C $ x n K 1 C x n K 1 $y n K 1 : x n d x n K 1 C end do For å plotte disse punktene, lager vi en liste av dem som vi kan kalle va vi vil. Her er listen kalt points
Kommandoen for å lage en slik liste er seq Legg merke til at vi bruker akeparentes rundt de to koordinatene til punktet også. Og så plotter vi punktene ved jelp av kommandoen pointplot, color = blue Eller vis du vil a linjestykker mellom punktene: plot points, color = blue Et lite råd på slutten: Dersom man skal plott mange punkter, og ikke trenger å vite tallkoordinatene til punktene, kan man unngå utskriften etter for -løkken og listekonstruksjonen ved å avslutte disse kommandoene med kolon. Prøv for eksempel x 0 d 0 : y 0 d 0 : d 0. : for n from 1 by 1 to 5 do y n d y n K 1 C $ x n K 1 C x n K 1 $y n K 1 d x n K 1 C end do: : plot points, color = blue : x n Ekstraoppgave 4.6. Rungekuttametodene løser initialverdiproblemer på formen y' = F x, y, y x 0 = y 0 der F x, y står for et uttrykk i x og y. De er iterative metoder, så for - løkker egner seg ypperlig i denne sammenengen. Vi må bare vite va som utføres i løkken.
Iterasjonen er er y n C xx n K 1 C xx n K 1 yy n K 1 der xx n K 1 = x n K 1 C og yy n K 1 C x C x n K 1 n K 1 y n K 1 $ med y 0 = 0, x 0 = 0 Her ar vi skrevet xx og yy istedenfor at x og at y Siden det ikke står noe multiplikasjonstegn mellom de to x K ene eller ykene, oppfatter Maple dem som nye navn. (i) Først setter vi startverdiene. Ikke eng dere opp i at Maple bare kvitterer for den siste kommandoen -- Maple ar merket seg alle tre. x 0 d 0 : y 0 d 0 : d 0. for n from 1 by 1 to 5 do xx n K 1 d x n K 1 C : yy n K 1 d x n K 1 C x n K 1 $y n K 1 $ C $ xx n K 1 C xx n K 1 $yy n K 1 : x n d x n K 1 C end do : y n d y n K 1 Ekstraoppgave 4.6.3 Iterasjonen er nå adskillig mer komplisert. Spesielt brukes funksjonsuttrykket F x, y = x C x$y gjentatte ganger. Det enkleste er derfor å definere denne funksjonen i Maple. Men det er en funksjon som er avengig av to variable. Definisjonen blir derfor F d x, y /x C x$y
Når vi skriver inn all beregningen som skal foregå i for-løkken, må vi passe på rekkefølgen. Uttrykket for y n må komme etter at vi ar gitt verdi til m n K 1. Uttrykket for m n K 1 må komme etter at vi ar gitt verdier til m1 n K 1, m n K 1, m3 n K 1 og m4 n K 1. Og disse siste 4 uttrykkene må komme akkurat i den rekkefølgen (fordi de avenger av verandre på den spesielle måten de gjør). (i) Først setter vi startverdiene. Ikke eng dere opp i at Maple bare kvitterer for den siste kommandoen -- Maple ar merket seg alle tre. x 0 d 0 : y 0 d 0 : d 0.; for n from 1 by 1 to 5 do m1 n K 1 d F x n K 1, y n K 1 : m n K 1 d F x n K 1 C, y n K 1 m1 n K 1 $ C : m3 n K 1 d F x n K 1 C m n K 1 $, y n K 1 C : m4 n K 1 d F x n K 1 C, m1 n K 1 C $ m n K 1 C $m3 n K 1 C m4 n K 1 y n K 1 C m3 n K 1 $ : m n K 1 d : y n d y n 6 K 1 C m n K 1 $ : x n d x n K 1 C end do eller vis du eller vil a linjestykkene mellom punktene: plot points, color = blue Ekstraoppgave 4.6.4. Ved diskretisering på intervallet Det gjør vi ved å sette a, b med skrittlengde skriver vi om differensiallikningen til en differenslikning.
x n = a C n, y x n z y n, y' x n z y n C 1 K y n og y'' x n z y' x K y' x n C 1 n inn i differensiallikningen. z y n C K y n C 1 K y n C 1 K y n = y n C K y n C 1 C y n y'c x $y = 4 omformes da til y n C 1 K y n C $x n $yn = 4 slik at y n C 1 = y n K $x n $yn C 4 Initialbetingelsen y 0 = 0 omformes til y 0 = 0. Dessuten skal = 0.1 ifølge oppgaven. Vi trenger derfor 0 trinn for å komme til x =. d 0.1 : x 0 d 0 : y 0 d 0 for n from 0 by 1 to 19 do y n C 1 d y n K $x n $y n C 4$ : x n C 1 d x n C end do points d seq x n, y n, n = 0..0