CSB10. Kursusgang, 19. april 2004Opgaverrestart;IntroduktionVi introducerer f\370rst nogle Maple kommandoer og nogle procedurer, som kan anvendes til l\370sning af opgaverne nedenfor.Vi starter med retningsfeltet for en differentialligning. Det kan plottes ved hj\346lp af kommadoer i DEtools pakken. Vi starter med at indl\346se den.with(DEtools):Kommandoen dfieldplot anvendes til at plotte retningsfeltet for en differentialligning. Vi tager eksemplet fra Turner side 172. Vi skal f\370rst definere ligningen:eqn:=diff(y(x),x)=3*x^2*y(x);dfieldplot(eqn,y(x),x=-1..2,y=0..3);Herunder er plottet for ligningen fra opgaverne i Turner afsnit 6.1. Vi skal se p\345 den nedenfor. Denne gang skriver vi direkte ligningen ind i plotkommandoen.dfieldplot(diff(y(x),x)=x/y(x),y(x),x=-4..4,y=-4..4);Eulers metode som Maple procedure. Vi laver to versioner. Den f\370rste er beregnet til at plotte grafer for approksimationer med Eulers metode. (Den sidste del af proceduren skifter til de rette datastruktur for at kunne plotte.)myEuler1:=proc(f,x0,y0,h,N)
local k,x,y,pair,s,t;
x[0]:=evalf(x0):
y[0]:=evalf(y0):
for k from 1 to N do
x[k]:=evalf(x[k-1]+h):
y[k]:=evalf(y[k-1]+h*f(x[k-1],y[k-1])):
end do;
pair:=(s,t)->[s,t]:
zip(pair,convert(x,list),convert(y,list)):
end proc;Vi illustrerer med Turners standardeksempel:g:=(x,y)->3*x^2*y;x0:=0;y0:=1;Lad os lige se hvad output er med to inddelinger:myEuler1(g,x0,y0,1/2,2);Vi laver nu plot med 2 og 4 inddelinger, p\345 intervallet fra 0 til 1. Vi gemmer plottene, og viser dem sammen. Derefter ogs\345 sammen med retningsfeltet ovenfra. Vi skal lige have plotpakken indl\346st f\370rst.with(plots):retfelt:=dfieldplot(eqn,y(x),x=-1..2,y=0..3):p1:=plot(myEuler1(g,x0,y0,1/2,2),color=blue):p2:=plot(myEuler1(g,x0,y0,1/4,4),color=green):display({p1,p2});display({p1,p2,retfelt});Opgave 1Eksperimenter med ovenst\345ende kommandoer og procedure, for at forst\345 hvordan de skal anvendes. Pr\370v ogs\345 med f\370lgende ligninger. Bem\346rk forskellen i notation, n\345r man skal anvende dfieldplot, og n\345r man skal definere en funktion til brug i myEuler1.diff(y(x),x)=x/y(x); diff(y(x),x)=y(x)^2; Tag begyndelsesbetingelsen NiMvLUkieUc2IjYjIiIhIiIi. Find de eksakte l\370sninger til disse to ligninger. Hvad sker der i de to tilf\346lde, n\345r man fors\370ger at beregne NiMtSSJ5RzYiNiMiIiI=? Kan man se problemet p\345 plot af retningsfeltet? Hvad sker der, hvis man fors\370ger at beregne NiMtSSJ5RzYiNiMiIiM= i de to tilf\346lde?Opgave 2Skriv 3 Maple procedurer til den korrigerede Euler metode, den modificerede Euler metode, og Heuns metode. Sammenlign de tre metoder indbyrdes, og med Euler metoden, ved at plotte grafer for 2 og 4 trin i l\370sning af de tre ligninger ovenfor, p\345 intervallet fra 0 til 1. Lav eventuelt flere eksperimenter.Opgave 3Vi giver nu en anden version af Eulers metode, hvor man specificerer starv\346rdien NiNJI3gwRzYi og slutv\346rdien NiNJJ3hmaW5hbEc2Ig==, samt antallet af trin NiNJIk5HNiI=.myEuler2:=proc(f,x0,xfinal,y0,N)
local k,h,k1,xold,xnew,yold,ynew;
xold:=evalf(x0):
yold:=evalf(y0):
h:=evalf((xfinal-x0)/N):
for k from 1 to N do
xnew:=evalf(xold+h):
k1:=evalf(f(xold,yold)):
ynew:=evalf(yold+h*k1):
xold:=xnew:
yold:=ynew:
end do;
ynew;
end proc;Vi sammenligner de to her:myEuler1(g,x0,y0,1/2,2);myEuler2(g,x0,1,y0,2);Opgaven g\345r nu ud p\345 at skrive tilsvarende procedurer for de tre anden ordens Runge-Kutta metoder (korrigeret Euler, modificeret Euler, og Heun). De skal derefter anvendes til at fors\370ge at beregne v\346rdien NiMtSSJ5RzYiNiMiIiM= som ovenfor under Opgave 1. Hvad g\345r galt i tilf\346ldet med ligningen diff(y(x),x)=y(x)^2;Opgave 4Vi skal nu se p\345 ligningendiff(y(x),x)=x+y(x)^2;med begyndelsesbetingelsen NiMvLUkieUc2IjYjIiIhIiIi. Denne ligning kan ikke l\370ses ved hj\346lp af de kendte element\346re funktioner (sinus, cosinus, polynomier osv). Opgaven g\345r ud p\345 at beregne v\346rdien NiMtSSJ5RzYiNiMiIiI= med 6 betydende cifre. Det oplyses, at v\346rdien med 10 betydende cifre er -14.37910614. Hvor mange trin skal man anvende i de forskellige metoder for at finde denne approksimation?
AppendiksDette appendiks er for de nysgerrige. Maple kan faktisk godt finde den eksakte l\370sning til ligningen i opgave 4. Den udtrykkes ved hj\346lp af nogle specielle funktioner, der hedder Airy funktioner, samt Eulers Gammafunktion. Her er kommandoerne, uden n\346rmere forklaring:dsolve({diff(y(x),x)=y(x)^2+x,y(0)=1},y(x));eksakt:=unapply(rhs(%),x);evalf(eksakt(1));