V˚arterminen 2003
Kontinuerliga system, Dator¨ ovning 2
Inledning
Ett modernt datoralgebrasystem har som huvudfunktion att g¨ora symboliska ber¨akning- ar, i motsats till numeriska. Det kan utf¨ora algebraiska manipulationer och f¨orenklingar, l¨osa ekvationssystem, integrera och derivera symboliskt och l¨osa differentialekvationer.
Dessutom kan de flesta s˚adana system ocks˚a utf¨ora numeriska ber¨akningar och har kraft- fulla grafiska funktioner. Beh¨over man g¨ora mera omfattande numeriska ber¨akningar anv¨ander man sig dock hellre av Matlab eller specialskrivna numeriska program.
Maple ¨ar ett av de ledande datoralgebrasystemen. N˚agra av de starkaste konkurren- terna ¨ar Mathematica, Macsyma och Reduce. LTH har en generell licens f¨or Maple, och systemet b¨or d¨arf¨or finnas tillg¨angligt p˚a alla institutioner och p˚a skolans elevdatorer.
Det kan k¨oras p˚a de flesta vanliga operativsystem.
Syftet med denna datorlaboration ¨ar att Du skall bli bekant med Maple och se hur det kan anv¨andas
• f¨or symboliska och numeriska ber¨akningar,
• f¨or visualisering,
• i specialanv¨andningar, genom ett antal utbyggnadspaket, s˚a kallade ’packages’.
Hinner du inte med alla uppgifterna under den handledda ¨ovningen, s˚a genomf¨or de
˚aterst˚aende momenten p˚a egen hand, antingen p˚a LTH:s datorer eller p˚a egen.
Vi kommer i denna ¨ovning att arbeta med en del exempel fr˚an ¨ovningar och f¨orel¨as- ningar. Tag d¨arf¨or med l¨aroboken och ¨ovningsh¨aftet till laborationen. L¨as noga igenom den allm¨anna Maple-introduktionen i avsnitt 1, s˚a noga att du bara beh¨over ¨agna h¨ogst en halvtimme av laborationstiden ˚at detta. I avsnitt 2 och 3 finns n˚agra f¨orberedelseupp- gifter. G¨or dessa innan laborationen. Skriv in dina svar p˚a sista sidan och var beredd att motivera svaren under laborationen.
1 Om Maple
Allm¨ant
Maple ¨ar ett mycket m˚angsidigt program, och man kan ¨agna mycket tid ˚at att utforska dess anv¨andningsm¨ojligheter. Dess m˚angsidighet g¨or det samtidigt sv˚arare att anv¨anda
¨an tex Matlab.
I denna ¨ovning kommer ganska mycket utrymme att ¨agnas ˚at allm¨anna f¨orberedel- ser, innan vi kommer till de speciella anv¨andningarna inom Kontinuerliga system. D¨ar kommer vi att anv¨anda Maple som en oerh¨ort kraftfull r¨aknedosa.
Liksom de flesta programpaket uppgraderas Maple relativt ofta. Versionerna skiljer sig n˚agot ˚at, och anvisningarna nedan ¨ar gjorda f¨or Maple6. Mer information om Maple
¨an vad som ryms i denna korta introduktion kan man finna i det inbyggda hj¨alpsystemet samt i en stort antal skrifter och b¨ocker. P˚a institutionen har utgivits en utf¨orligare introduktion (mest avsedd f¨or envariabelanalys) Andersson–Nilsson, Maplehandboken (1995). Den beskriver version MapleVR3 och finns att h¨amta p˚a
http://www.maths.lth.se/matematiklu/personal/goran_a/Maple/mh.html.
En modernare version har f¨orfattats av C.G. Werner: Maplehandboken i Lund 2002.
H¨aftet kan k¨opas p˚a studerandeexpeditionen vid Matematikavdelningen (NF) rum MH 456. En handledning f¨or MapleVR5 ¨ar Heal, Hansen & Rickard, Maple V Learning Guide, Springer 1998.
Starta Maple p˚a UNIX-system genom att ge kommandot maple -x, eller, p˚a vis- sa maskiner, xmaple &. P˚a Windows-maskiner brukar finnas en Maple-ikon. Placera Maplef¨onstret, som strax kommer upp, p˚a l¨ampligt st¨alle. Man g˚ar ur Maple genom att v¨alja Exit i File-menyn. Beh¨over man avbryta n˚agon process kan man anv¨anda en stop-knapp p˚a menyraden.
Hj¨alp
Maple har ett omfattande inbyggt hj¨alpsystem. Om man klickar p˚a Help i menyraden, s˚a f˚ar man tillg˚ang till hj¨alpfunktioner. Dessa fungerar p˚a lite olika s¨att, beroende p˚a vilken Mapleversion man k¨or, men brukar vara l¨atta att anv¨anda.
Plocka fram hj¨alpen f¨or exp och constant. Observera i det senare fallet s¨arskilt de symboliska konstanterna I, Pi och infinity. Dessa ¨ar reserverade namn, som inte f˚ar anv¨andas till annat. Observera att Maple skiljer p˚a stora och sm˚a bokst¨aver. Talet e skrivs exp(1).
Man kan ocks˚a f˚a hj¨alp genom att skriva ett s¨okord f¨oreg˚anget av ett fr˚agetecken, t ex ?exp, ?constant. I slutet p˚a varje hj¨alptext finns exempel och h¨anvisningar till andra kommandon som kan vara av nytta.
Grundl¨aggande kommandon och aritmetiska ber¨akningar
I Maplef¨onstret hittar du en ’prompt’ >, som betyder att Maple v¨antar p˚a ett kommando.
Skriv in 7+5; och tryck p˚a Enter, s˚a utf¨ors summationen.
Observera att varje kommando till Maple m˚aste avslutas med ett semikolon ;, utan detta h¨ander ingenting. Detta g¨or att man kan sl˚a in l˚anga formler som inte f˚ar plats p˚a en rad. Skriver man kolon : s˚a utf¨ors operationen, men resultatet kommer inte upp p˚a sk¨armen.
Kontrollera att Maple kan fungera som en vanlig r¨aknedosa. Prova i tur och ordning 2-3*5; 1/2+1/3; sqrt(4)*sqrt(3);
Observera att Maple ger exakta svar, inte n¨armev¨arden.
N¨armev¨arden erh˚alles genom kommandot evalf;, som st˚ar f¨or ’evaluate using flo- ating point arithmetic’. F¨or att f˚a ett n¨armev¨arde f¨or den senast utf¨orda ber¨akningen (2√
3 i v˚art fall) kan man skriva
evalf(%);
Man kan naturligtvis ocks˚a skriva evalf(sqrt(4)*sqrt(3));. P˚a samma s¨att kan re- sultatet av den n¨ast senaste ber¨akningen ˚aberopas genom %%, etc.
En annan praktisk detalj i Maple ¨ar m¨ojligheten att g˚a tillbaka till gamla kommandon p˚a sk¨armen med pil-upp och pil-ner tangenterna, ¨andra i kommandona och utf¨ora dem p˚a nytt. Man kan ocks˚a anv¨anda musen f¨or att snabbt flytta sej till olika delar av sk¨armen.
Testa genom att g˚a tillbaka till kommandot 1/2+1/3; och g¨or en annan br˚akber¨akning genom att ¨andra siffror.
N¨ar det g¨aller kommandot evalf s˚a kan man ur hj¨alpfunktionen, som n˚as med
?evalf, utl¨asa att man genom ett andra argument kan ange med hur m˚anga siff- ror man vill ha svaret. Anv¨and detta f¨or att f˚a ett v¨arde p˚a π med 1000 decimaler, evalf(Pi,1000);.
Variabler
Maple kan inte bara r¨akna med tal utan ocks˚a med variabler och med funktioner. Detta g¨or att ett Maplesystem blir st¨orre och ofta mer invecklat att programmera ¨an ett vanligt programmeringspr˚ak, men ocks˚a oerh¨ort mycket mera kraftfullt.
Ge kommandot (x+1)^3;. Maple svarar med samma sak. Som svar p˚a expand(%);
s˚a utvecklar Maple uttrycket enligt binomialteoremet. Prova ¨aven med
expand((a-b)*(a+b)); expand(x*(x+1)*(x+2)*(x+3)); expand(cos(x+y));
Som bekant vill man ofta g˚a ˚at andra h˚allet, och faktoruppdela ett givet uttryck.
Detta g¨ors med kommandot factor. Prova detta p˚a de polynomuttryck som du fick ovan.
Ett annat kommando f¨or f¨orenkling ¨ar simplify. Prova detta genom att skriva simplify(1/(x-1)+1/(x+1));
Maple g¨or inte alltid det man ¨onskar. Ett annat kommando man kan ha nytta av f¨or att g¨ora omskrivningar ¨ar normal.
Tilldelningssatser
Man kan tilldela en variabel ett v¨arde, numeriskt eller symboliskt. Tilldelningssymbolen
¨ar liksom i Pascal och Simula :=. Prova med x:=2;. Kommandot x; ger nu variabelv¨ardet 2. Prova ocks˚a med (x+1)^2;.
En variabel som f˚att ett v¨arde beh˚aller detta tills man g˚ar ur Maple eller ger den ett annat v¨arde. F¨or att ta bort v¨ardet kan man anv¨anda kommandot x:=’x’;, som g¨or att Maple tolkar bokstaven x som en variabel, betecknad x, inte som variabelns v¨arde.
Det ¨ar l¨att att gl¨omma bort att man gett en variabel ett v¨arde tidigare, vilket kan leda till obegripliga resultat av r¨akningar. Vill man ta bort alla v¨arden p˚a variabler och helt och h˚allet b¨orja om fr˚an b¨orjan skriver man restart;.
Variabler kan f¨orutom numeriska v¨arden ¨aven ha Mapleuttryck som v¨arden. Genom tilldelningskommandot
f:=(x+1)^3;
s˚a s¨atter vi f lika med (x + 1)3. (Blir svaret 27 s˚a tag bort det tidigare v¨ardet fr˚an x och f¨ors¨ok igen.) Man kan sedan r¨akna vidare med f och skriva t ex f^2; och expand(f^2);.
Om man vill ber¨akna v¨ardet av uttrycket f^2 f¨or t ex x=2 utan att varaktigt tilldela xett v¨arde s˚a kan man skriva
subs(x=2,f^2);
Funktioner
Maple kan hantera inte bara analytiska uttryck, som vi sett exempel p˚a ovan, utan
¨aven funktioner. Dessa kan definieras p˚a flera olika s¨att. Det f¨or v˚ara ¨andam˚al enklaste p˚aminner om beteckningen
x 7→ g(x) f¨or en funktion g. Ge kommandot
g:= x->(x+1)^3;
Nu kan funktionsv¨arden ber¨aknas p˚a det s¨att man ¨ar van vid. Prova t ex med g(0);, g(-1);, g(a); och g(y+z);.
Anm¨arkning Man m˚aste noga h˚alla is¨ar begreppen funktion och funktionsuttryck, d¨ar det senare behandlades under rubriken ’Tilldelningssatser’ ovan. F¨or s¨akerhets skull upprepar vi skillnaden:
Om vi ger ett v¨arde till F genom tilldelningen F:=exp(x)-sin(x); s˚a ¨ar F ett uttryck med variabeln x inbyggt. Om vi i st¨allet ger F ett v¨arde genom F:=x->exp(x)-sin(x);
s˚a ¨ar F en funktion, d¨ar x bara anv¨ands f¨or att definiera en regel, och d¨ar man skulle kunna anv¨anda vilken annan symbol som helst. Funktioner ¨ar mycket mer flexibla, men ibland n˚agot mer sv˚arhanterliga ¨an funktionsuttryck. Det finns lyckligtvis ett enkelt s¨att att g¨ora om ett uttryck till en funktion, n¨amligen genom att anv¨anda kommandot unapply. Till exempel ger kommandot F:=unapply(exp(x)-sin(x),x); samma sak som F:=x->exp(x)-sin(x);.
Maple klarar ocks˚a funktioner av flera variabler. Funktionen h(x, y) = x2− y3+ x2y3 definieras i Maple p˚a f¨oljande s¨att:
h := (x,y) -> x^2-y^3+x^2*y^3;
Vad ger h(0,0); och h(3,2);?
Derivation
Derivator ber¨aknas med kommandot diff. Anv¨andningen framg˚ar ur exemplen diff(x^3+2*x^2,x);och diff(tan(x),x);
Andraderivator ber¨aknas enligt
diff(tan(x),x,x);
P˚a samma s¨att ber¨aknas derivator av h¨ogre ordning, d¨ar antalet x anger ordningen. F¨or detta finns ett kortare skrivs¨att. Ber¨akna fj¨ardederivatan av tan(x) genom att skriva
diff(tan(x),x$4);.
Prova ¨aven att f¨orenkla svaret med hj¨alp av factor(%);.
Vi kan ocks˚a derivera det tidigare definierade funktionsuttrycket f och funktionen g genom att skriva
diff(f,x); resp diff(g(x),x);
T¨ank ut vad som kommer ut ur kommandona
diff(f,y); , diff(g,x); , diff(g(y),y);
och prova om det st¨ammer.
Anm¨arkning. Maple har ocks˚a en derivationsoperator D, se ?D. Pr¨ova tex D(g);
och D(sin);.
Man kan ¨aven l¨att ber¨akna partiella derivator. Till exempel f˚ar man
∂h
∂x och ∂h
∂y f¨or funktionen h ovan genom kommandona
diff(h(x,y),x); resp diff(h(x,y),y);
H¨ogre derivator f˚as genom uppr¨akning av variabelnamnen. Pr¨ova t ex diff(h(x,y),x,y);
Integration
Med hj¨alp av kommandot int(f,x); kan man ber¨akna en primitiv funktion till funk- tionen f (x) med avseende p˚a x. Integrationskonstanten f˚ar man sedan sj¨alv l¨agga till om det skulle beh¨ovas. Pr¨ova
int(f,x); , int(g(x),x);
Repetera nu n˚agra enkla primitiva funktioner fr˚an envariabelanalysen: cos x (med kommandot int(cos(x),x);), et (skrivet exp(t)), och 1
√1 − z2 med avseende p˚a re- spektive variabel. Kvadratrotfunktionen skrivs i Maple som sqrt.
Om Maple inte kan n˚agon primitiv funktion, s˚a svarar Maple genom att ge tillbaka det man stoppat in. F¨ors¨ok med int(x^x,x); s˚a f˚ar du tillbaka
Z xxdx Anm¨arkningProva ocks˚a
Z r 1 − 2x2
1 − x2 dx och Z
e−x2dx .
Dessa exempel visar att Maple k¨anner till fler primitiva funktioner ¨an de vanliga ele- ment¨ara funktionerna. Den f¨orsta av integralerna ¨ar exempel p˚a en s˚a kallad elliptisk integral. Vissa elliptiska integraler finns i Maple, se t ex ?EllipticE. I svaret p˚a den andra integralen ing˚ar den s˚a kallade ’error function’, erf, se l¨aroboken kapitel 4. Denna upptr¨ader bl a i samband med v¨armeledning och inom statistiken.
F¨or att ber¨akna best¨amda integraler, till exempel Z 3
−2
(x + 1)3dx
m˚aste ¨aven gr¨anserna anges. Detta g¨ors i Maple genom x=-2..3, eller allm¨ant x=a..b f¨or a ≤ x ≤ b. Detta har vissa likheter med Matlabs a:b, men fungerar b˚ade f¨or diskreta och kontinuerliga variabler. Integralen ovan ber¨aknas genom
int((x+1)^3,x=-2..3);.
Gr¨anserna f˚ar g¨arna inneh˚alla variabler, f¨ors¨ok t ex med int(f,x=-y..(z+1));.
Aven generaliserade integraler kan ber¨aknas. Prova t ex med¨
int(1/(1+x^2),x=0..infinity); och evalf(int(1/(1+x^2),x=0..infinity));
Se ¨aven vad som h¨ander med Int(1/(1+x^2),x=0..infinity);
Summation
Maple kan ocks˚a anv¨andas f¨or att ber¨akna summor. Syntaxen f¨or summation ¨ar naturlig, Pn
k=mak f˚as genom Maplekommandot sum(a(k),k=m..n).
Ber¨akna potenssummorna
n
X
k=1
k och
n
X
k=1
k2
med hj¨alp av kommandona sum(k,k=1..n); och sum(k^2,k=1..n);. F¨orenkla med simplify.
Aven vissa seriesummor kan Maple ber¨akna. Vad blir¨
∞
X
k=1
1 k4 ? Ekvationsl¨osning
Maple kan anv¨andas f¨or att l¨osa ekvationer, se ?solve och ?fsolve. Prova de tre vari- anterna
solve(x^3+x^2+x-3=0,x);
fsolve(x^3+x^2+x-3=0,x);
fsolve(x^3+x^2+x-3=0,x,complex);
och l¨as om dem i hj¨alpfunktionen. Pr¨ova ocks˚a
solve(sin(x)=1/2,x);
Observera att i det senare fallet ger Maple i grundinst¨allning endast en l¨osning. Men skriv _EnvAllSolutions:=true; L¨os ekvationen sin x = 12 igen. Saknas n˚agra l¨osningar nu? F¨or polynomekvationer ger fsolve med optionen complex alla l¨osningar.
Differentialekvationer
Maple kan ocks˚a l¨osa differentialekvationer, se ?dsolve. Pr¨ova med att l¨osa y00+ λy = 0
med kommandot
dsolve(diff(y(x),x$2)+lambda*y(x)=0, y(x));
Grafik
Maple har omfattande grafiska m¨ojligheter.
Om du i forts¨attningen vill att Maples figurer hamnar i egna f¨onster (vilket kan vara l¨attare att hantera) s˚a g˚ar du in under menyn Options, v¨aljer Plot Display och sen Window.
Med kommandot plot ritar man tv˚adimensionella figurer i Maple, t ex funktions- kurvor. Se hj¨alpen till kommandona plot. Prova med
plot(sin(x),x=-Pi..Pi);
Axlarna skalas automatiskt s˚a att bilden fyller grafikf¨onstret maximalt. Om man vill ha samma skala p˚a b˚ada axlarna kan man g˚a in p˚a menyraden vid Projection och v¨alja Constrained. F¨or att rita flera kurvor i en figur anv¨ander man [ ]-parenteser ( ¨aven {}-parenteser fungerar). Pr¨ova
plot([sin(x),x-x^3/6],x=-Pi..Pi);
Vad ¨ar det f¨or speciellt med polynomet?
Man kan ocks˚a rita kurvor i parameterform, pr¨ova t ex
plot([cos(x),sin(x),x=-Pi..Pi],scaling=constrained);
Hur ser kurvan ut om scaling=constrained tas bort?
Antalet grafikf¨onster v¨axer snabbt. Man st¨anger dem man inte beh¨over genom att g˚a in rutan i v¨anstra ¨ovre h¨ornet i grafikf¨onstret m¨arkt med − och dra till Close.
Maples tredimensionella grafik har en m¨angd varianter som vi inte g˚ar in p˚a h¨ar. L¨as om dem i ?plot3d. Funktionsytan z = xe−x2−y2 kan ritas med
plot3d(x*exp(-x^2-y^2),x=-2..2,y=-2..2);
Man kan vrida och v¨anda p˚a bilden genom att placera musmark¨oren i grafikf¨onstret och h˚alla v¨anster musknapp nere och flytta p˚a musen l˚angsamt.
Prova med hj¨alp av menyer de olika m¨ojligheterna f¨or ’axes’, ’color’ och ’style’.
Det g˚ar ocks˚a bra att beskriva ytor i parameterform. Cylindern y2 + z2 = 1 l¨angs x-axeln kan ritas med
plot3d([s,cos(t),sin(t)],s=-2..2,t=0..2*Pi);
V¨alj h¨ar Projection Constrained.
Maple har m˚anga fler grafikrutiner. F¨or att f˚a tillg˚ang till dessa g¨ors kommandona with(plots); och with(plottools); H¨ar ¨ar plots och plottools namnet p˚a ett s˚a kallat ’package’. Det finns ett antal s˚adana i Maple, f¨or olika anv¨andningar.
Spara och skriva ut
Man kan spara all text i Maple-f¨onstret genom att klicka p˚a File och Save as samt ange ett filnamn. Texten sparas d˚a i en fil med namnet filnamn.mws. N¨ar du senare vill ta fram texten igen klickar du p˚a File och Open och anger hela filnamnet, ¨aven .mws. Det g˚ar ocks˚a att samla alla kommandon i en scriptfil med ett enkelt namn, tex prov. F¨or att k¨ora scriptet skriver du i Maple-f¨onstret read prov;.
Om du vill ta ut en bild p˚a skrivare, kan du spara den i Post-Script format genom att klicka p˚a File och Print samt ange filnamn.ps.
2 Skal¨ arprodukter, normer och projektioner
Starta med att skriva restart; f¨or att ta bort gamla v¨arden p˚a f, g mm. Vi kommer att ber¨akna m˚anga skal¨arprodukter och det ¨ar d¨arf¨or l¨ampligt att definiera skal¨arprodukten som en funktion av tv˚a variabler f och g. L˚at oss kalla denna skal. Skriv
skal:=(f,g)->int(f*g*w,x=x0..x1);
Innan denna anv¨ands m˚aste man specificera viktsfunktionen w och integrationsgr¨anserna x0 och x1.
1. F¨orberedelser: Skriv upp formeln f¨or skal¨arprodukten (f | g) i L2([0, L]). Skriv koef- ficienterna ck i en ortogonalutveckling, P
kckϕk, med hj¨alp av skal¨arprodukter.
G¨or en cosinusutvecklingen av en funktion f (x) p˚a intervallet [0, L], v¨alj {ϕk(x)}∞0 = {cos kπx/L}∞0 och best¨am koefficientern med kommandot skal. Starta med att s¨atta
w:=1; x0:=0; x1:=L;
Tala d¨arefter om att k och j ¨ar heltal genom att skriva assume(k,integer, j, integer);.
Kontrollera ortogonaliteten genom att skriva
skal(cos(k*Pi*x/L),cos(j*Pi*x/L));
Pr¨ova ocks˚a fallet med j = k och speciellt j = k = 0. Definiera koefficienterna ck i cosinusutvecklingen som
c:=k->skal(cos(k*Pi*x/L),f(x))/skal(cos(k*Pi*x/L),cos(k*x*Pi/L));
Skriv c(k); f¨or att f˚a en integralformel f¨or ck. Unders¨ok speciellt c(0); (N¨ar det finns villkor p˚a k markerar Maple det med ett ∼ efter variabeln, se ?assume.)
Fr˚aga: Hur st¨ammer detta med formlerna f¨or koefficienterna i cosinusutvecklingen p˚a sidan 62 i boken? H¨ander n˚agot speciellt f¨or k = 0? I s˚a fall vad och varf¨or?
Testa svaret i ¨ovning 3.2 a) genom att v¨alja f (x) = x och L = 1. Avsluta med att
˚aterst¨alla k, j med k:=’k’; j:=’j’;.
2. Vi skall nu l¨osa uppgift H.22 i ¨ovningsh¨aftet med hj¨alp av Maple.
F¨orberedelser:Skriv upp formeln f¨or den skal¨arprodukt som skall anv¨andas i H.22 och ange w, x0 och x1. Skriv med hj¨alp av projektionsformeln upp en formel f¨or det s¨okta polynomet p. Uttryck koefficienterna med skal¨arprodukter och t¨ank efter vilka integraler som skall ber¨aknas f¨or att l¨osa uppgiften.
B¨orja med att skriva in viktsfunktion w och integrationsgr¨anserna x0 och x1. Defi- niera sen
L0:=1; L1:=1-x; L2:=x^2-4*x+2; f:=exp(-alpha*x);
Plotta de tre polynomen i samma figur (se sidan 7 i denna handledning). Kontrollera med hj¨alp av skal att de ¨ar ortogonala i L2((x0, x1), w).
Prova med att ber¨akna tex skal(L0,f);. Maple vill inte ber¨akna integralen (var- f¨or?). Man m˚aste st¨alla krav p˚a α f¨or att integralen skall vara konvergent. Skriv d¨arf¨or
assume(alpha>-1/2);
Kan du ber¨akna skal(L0,f); nu? Ber¨akna koefficienterna c0, c1, c2 , t ex c0:=skal(L0,f)/skal(L0,L0);
Ber¨akna sedan p = c0L0+ c1L1+ c2L2 genom att skriva p:=c0*L0+c1*L1+c2*L2;
Plotta funktionen och approximationen f¨or n˚agra olika v¨arden p˚a α, tex
plot(subs(alpha=1,[f,p]),x=0..10, color=[red,blue], thickness=2);
Fr˚aga: I vilken mening ¨ar p en bra approximation av e−αx? F¨or att undvika problem senare, ta bort villkoret p˚a α med
alpha:=’alpha’;
3 Ortogonalpolynom
I Maple finns flera typer av ortogonalpolynom i ett s¨arskilt package. F¨or att f˚a tillg˚ang till dem, skriv
with(orthopoly);
3. Kontrollera med hj¨alpfunktionen att de ortogonalpolynom som finns n¨amnda i l¨aroboken sid 271–273 ocks˚a finns i Maple. F¨or att f˚a ett explicit uttryck f¨or t ex Legendrepolynomet P4 skriver man P(4,x); och f¨or att f˚a Laguerrepolynymet L2 skriver man L(2,x);.
J¨amf¨or Maples Laguerrepolynom med de som finns i ¨ovn H.22? Finns n˚agon skillnad?
Ber¨akna n˚agra skal¨arprodukter med skal, t ex skal(L(2,x),L(2,x));. Kommentar?
Plotta n˚agra ortogonalpolynom, t ex
plot([P(3,x),P(4,x),P(5,x)],x=-1..1);
Detta kan ocks˚a skrivas plot([P(n,x)$n=3..5],x=-1..1); Kan man med hj¨alp av fi- gurerna avg¨ora om det ¨ar rimligt att polynomen ¨ar ortogonala? Detta ¨ar l¨attare att bed¨oma om man tittar p˚a produkterna P4P5 och P3P5, i intervallet [−1, 1]. Unders¨ok ortogonaliteten med hj¨alp av skal. (T¨ank p˚a att f¨orst ange r¨att viktsfunktion och integ- rationsgr¨anser.)
4. Utveckla funktionen f = sin(10x) med avseende p˚a Legendrepolynom ¨over intervallet
−1 ≤ x ≤ 1. S¨att
f:=sin(10*x);
H¨ar ¨ar det praktiskt att definiera koefficienterna i ortogonalutvecklingen som en funktion av k,
c:=k->skal(P(k,x),f)/skal(P(k,x),P(k,x));
Sedan kan delsumman qn av ortogonalutvecklingen skrivas
q:=n->sum(c(k)*P(k,x),k=0..n);
Plotta sen f och delsummor qn samma diagram med t ex plot([f,q(5)],x=-1..1);
f¨or n˚agra olika v¨arden p˚a n, t ex n = 5, 7, 11, 13. Titta p˚a storleken av koefficien- terna f¨or n˚agra v¨arden p˚a n, t ex evalf(c(10));, evalf(c(11));, evalf(c(20));, evalf(c(21));.
G¨or samma med sin(10x) utbytt mot stegfunktionen f:=Heaviside(x);. Tag n = 5, 11, 25. Observera att liksom f¨or Fourierserier uppkommer h¨ar ett Gibbs-fenomen. Titta p˚a storleken av koefficienterna med evalf.
Fr˚aga:Kan man g¨ora n˚agra iaktagelser om koefficienternas storlek i de b˚ada fallen?
5. F¨orberedelse: Skriv upp definitionen p˚a egenv¨arde och egenfunktion till en differen- tialoperator A.
Kontrollera att Legendrepolynomen ¨ar egenfunktioner till Legendres differentialoperator
− d
dx(1 − x2) d
dx. Skriv
d:=n->-diff((1-x^2)*diff(P(n,x),x),x)/P(n,x);
Skriv sen exempelvis
d(5);
och f¨orenkla d¨arefter med simplify(%); Pr¨ova med n˚agra olika v¨arden p˚a n, t ex 6, 7, 8, 10, 20.
Fr˚aga: Vad har detta med egenv¨arden att g¨ora? Vad ¨ar egenv¨ardena uttryckta i n?
St¨ammer detta med teorin? (J¨amf¨or sats S.4 sidan 340 i l¨aroboken.)
4 Besselfunktioner
6. Besselfunktionerna Jνoch Yνfinns naturligtvis i Maple, d¨ar de anropas med BesselJ(n,k);
resp BesselY(n,k);, se ?Bessel. ¨Aven nollst¨allena till Besselfunktionena finns i Maple.
De f˚as med kommandot BesselJZeros(n,k);. F¨or att slippa skriva s˚a mycket kan det vara praktiskt att inf¨ora kortare beteckningar, t ex
alias(J=BesselJ, Y=BesselY, alpha=BesselJZeros);
Rita n˚agra grafer, tex med plot([J(n,x)$n=0..5],x=0..15);. Man kan ocks˚a uppfatta Jν(x) som en funktion av ν och x och rita en tredimensionell bild med
plot3d(J(v,x),x=0..10,v=0..10);
och vrida och v¨anda p˚a denna. L¨agg in l¨ampliga axlar.
Med kommandot matrix(10,9,(k,n)->evalf(alpha(n-1,k))); genereras en mas- sa nollst¨allen. J¨amf¨or med tabellen i formelsamlingen.
7. Pr¨ova om Maple klarar ¨ovning S.11. (H¨ar beh¨over man anv¨anda simplify.)
8. Maple kan m˚anga formler f¨or Besselfunktioner. Pr¨ova att ber¨akna Jν0(x). Pr¨ova ocks˚a att uttrycka J1/2(x), J3/2(x), Y1/2(x) med element¨ara funktioner. T¨ank p˚a att skriva J(3/2,x), inte J(1.5,x).
9. Extrauppgift. L¨os Bessels differentialekvation u00(x) + 1
xu0(x) + (λ − ν2
x2)u(x) = 0
med dsolve (j¨amf¨or sidan 6 i denna handledning). H¨ar m˚aste du sj¨alv t¨anka p˚a att unders¨oka fallen λ = 0 och λ = 0, ν = 0. (J¨amf¨or lemma S.1 (sid 333) och ¨ovn S.13.) L¨os ¨aven differentialekvationen
u00(x) + 2
xu0(x) + (λ − `(` + 1)
x2 )u(x) = 0 .
(J¨amf¨or (20) sid 340 och ¨ovning S.18.) Pr¨ova speciellt ` = 0. Gl¨om inte fallet λ = 0.
10. F¨orberedelse: Repetera exemel S.3, sidan 334 i boken. Enligt detta exempel ¨ar Bes- selfunktionerna J0(α0kr) egenfunktioner till den singul¨ara Sturm-Liouvilleoperatorn
Au = −1 r(ru0)0
DA=u ∈ C2[0, 1] | u begr¨ansad n¨ara 0, u(1) = 0 . Ange en skal¨arprodukt i vilken funktionernaJ0(α0kr) ¨ar ortogonala.
Skriv in r¨att viktsfunktion och intervallgr¨anser. (T¨ank p˚a att variabeln heter x i kom- mandot skal.) Kontrollera ortogonaliteten mellan J0(α0kr) f¨or n˚agra olika k-v¨arden med hj¨alp av skal. Plotta ocks˚a produkten J0(α0kr)J0(α0mr)w(r), d¨ar w ¨ar viktsfunktionen,
¨over intervallet [0, 1].
G¨or motsvarande unders¨okning f¨or n˚agra Besselfunktioner Jn med n > 0. Slutsats?
11. Titta p˚a tredimensionella bilder av egenfunktionerna Jn(αnkr) cos(nθ) till Laplaceo- peratorn med Dirichletvillkor i pol¨ara koordinater (exempel S.4 sid 335–337) f¨or n˚agra olika v¨arden p˚a n och k. F¨or n = 2, k = 1 kan man skriva
plot3d([r*cos(v),r*sin(v),J(2,alpha(2,1)*r)*cos(2*v)],r=0..1,v=0..2*Pi);
Fast insp¨anda cirkul¨ara membran (se exempel 3.14 sid 108) har sv¨angningsmoder av typ
unk = Jn(αnkr) cos nθ sin cαnkt .
S˚adana sv¨angningsmoder kan man se r¨ora sig i Maple med hj¨alp av kommandot animate3d.
Detta f˚ar man tillg˚ang till om man skriver
with(plots);
F¨or att se membranet sv¨anga i fallet n = 2, k = 1, och med c vald s˚a att cαnk = 1, kan man skriva
animate3d([r*cos(v),r*sin(v),J(2,alpha(2,1)*r)*cos(2*v)*sin(t)], r=0..1,v=0..2*Pi,t=0..2*Pi);
Filmen startas och styrs fr˚an menyraden (starta genom att klicka p˚a rutan m¨arkt I).
Genom att klicka p˚a l¨amplig knapp kan man f˚a den att g˚a oavbrutet. Titta p˚a sv¨ang- ningsmoder f¨or n˚agra andra v¨arden p˚a n och k. Man kan f˚a en j¨amnare r¨orelse genom att ¨oka antalet indeningspunkter i tids- eller rumsled, se ?animate.
Vill man titta p˚a ett membran som inte ¨ar fast insp¨ant, utan kan r¨ora sig fritt p˚a randen, p˚a s˚a s¨att att det uppfyller ett homogent Neumannvillkor, s˚a kan man byta αnk mot α0nk (nollst¨allen till Jn0). Dessa kan h¨amtas tabellen i formelsamlingen eller f˚as med fsolve. Pr¨ova t ex
fsolve(diff(J(1,x),x)=0,x=1..3);
H¨ar har vi angivit i vilket intervall det s¨okta nollst¨allet ligger. F¨or att kunna g¨ora detta
¨ar det l¨ampligt att plotta funktionen J10.
12. Extrauppgift:Utveckla funktionen f (x) = x, 0 < x < 1 i den ortogonala basen J0(α0kx).
Plotta delsummor SN och funktionen f i samma diagram f¨or n˚agra olika v¨arden p˚a N . G¨or sedan samma sak med f (x) = 1 − x. M¨arks n˚agon skillnad? Vad kan det bero p˚a?
F¨orberedelser:
Skriv upp formeln f¨or skal¨arprodukt i L2([0, L]): (f |g) =
Antag att ortogonalutveckligen f =P∞
k=1ckϕk g¨aller. Beskriv Fourierkoefficienterna ck med hj¨alp av skal¨arprodukt: ck =
H.22Laguerrepolynomen Ln(x) ¨ar ortogonala i L2(I, w), d¨ar I = [0, ∞) och w(x) = e−x. De tre f¨orsta ¨ar
L0(x) = 1, L1(x) = 1 − x, L2(x) = x2− 4x + 2.
Best¨am med hj¨alp h¨arav det polynom p = pα av andra graden som minimerar integralen Z ∞
0
(e−αx− p(x))2e−xdx, d¨ar konstanten α > −1/2.
Skriv upp en anv¨andbar skal¨arprodukt: (f |g) =
Skriv med projektionsformeln upp en formel f¨or p: