Kontinuerliga system, Datorövning 2

Relevanta dokument
Introduktion till Maple

Datorövning 2. - Tag med lärobok och övningshäfte till övningen. - Fyll före övningenen i svaren på frågorna på sidan 5 i denna handledning.

Introduktion till Maple

Komplex Analys. Datorlaboration 1. av Sven Spanne. Reviderad ht av Anders Holst

Flervariabelanalys, inriktning bildbehandling, datorövning 1

Introduktion till Maple

Introduktion till Maple

Användarmanual till Maple

Tillämpad matematik. Lineära system. LAB1

Funktionsteori Datorlaboration 1

Datorövning 2 med Maple

Laboration: Grunderna i Matlab

3.3. Symboliska matematikprogram

Extra datorövning med Maple, vt2 2014

Introduktion till Matlab

Fouriers metod, egenfunktionsutvecklingar.

Introduktion till Matlab

Datorövning 2. För att få tillgång till några mer avancerade ritkommandon kör

MAPLE MIKAEL STENLUND

Texten är en omarbetning av en text skriven av Rikard Bögvad för kursen Matematik I (30 hp).

Laborationer i kursmomentet Datoranvändning E1. Laboration nr 3: Matematikverktyget Maple

Innehåll. Vad är MATLAB? Grunderna i MATLAB. Informationsteknologi. Informationsteknologi.

Technology Management Mapleövning 1 och 2

Mathematica. Utdata är Mathematicas svar på dina kommandon. Här ser vi svaret på kommandot från. , x

Kontinuerliga system, Datorövning 3

Introduktion till MATLAB

Lösningar av uppgifter hörande till övning nr 5.

SF1625 Envariabelanalys Lösningsförslag till tentamen

Matematik 3 Digitala övningar med TI-82 Stats, TI-84 Plus och TI-Nspire CAS

Datorövning 2 med Maple, vt

Uppgift 1. (SUBPLOT) (Läs gärna help, subplot innan du börjar med uppgiften.) 1 A) Testa och förklara hur nedanstående kommandon fungerar.

Symboliska beräkningar i Matlab

Rita även upp grafen till Fourierseriens summa på intervallet [ 2π, 3π], samt ange summans värde i punkterna π, 0, π, 2π. (5) S(t) = c n e int,

ÖVN 6 - DIFFERENTIALEKVATIONER OCH TRANSFORMMETODER - SF Nyckelord och innehåll. a n (x x 0 ) n.

Attila Szabo Niclas Larson Gunilla Viklund Mikael Marklund Daniel Dufåker. GeoGebraexempel

vux GeoGebraexempel 3b/3c Attila Szabo Niclas Larson Gunilla Viklund Mikael Marklund Daniel Dufåker

Polynomekvationer. p 2 (x) = x x 3 +2x 10 = 0

Frågorna 1 till 6 ska svaras med sant eller falskt och ger vardera 1

TATA42: Föreläsning 7 Differentialekvationer av första ordningen och integralekvationer

Föreläsningen ger en introduktion till differentialekvationer och behandlar stoff från delkapitel 18.1, 18.3 och 7.9 i Adams. 18.

de uppgifter i) Under m-filerna iv) Efter samlade i en mapp. Uppgift clear clc Sida 1 av 6

LABORATION 2. Trapetsregeln, MATLAB-funktioner, ekvationer, numerisk derivering

Datorövning 1 med Maple, vt

Rita även grafen till Fourierserien på intervallet [ 2π, 4π]. (5) 1 + cos(2t),

Lösa ekvationer på olika sätt

LMA515 Matematik, del B Sammanställning av lärmål

Datorövning 1 med Maple

Datorlaboration 1. 1 Komplexa funktioner som avbildningar (kan göras i slutet av läsvecka 1)

LABORATION I MAPLE MIKAEL STENLUND

Introduktion till Matlab

Fri programvara i skolan datoralgebraprogrammet Maxima

Uppsala Universitet Matematiska Institutionen Bo Styf. Genomgånget på föreläsningarna

Laboration 2, M0043M, HT14 Python

Moment 1.15, 2.1, 2.4 Viktiga exempel 2.2, 2.3, 2.4 Övningsuppgifter Ö2.2ab, Ö2.3. Polynomekvationer. p 2 (x) = x 7 +1.

Lösningar till tentamen i Transformmetoder okt 2007

Index. Vektorer och Elementvisa operationer. Summor och Medelvärden. Grafik i två eller tre dimensioner. Ytor. 20 januari 2016 Sida 1 / 26

Attila Szabo Niclas Larson Gunilla Viklund Mikael Marklund Daniel Dufåker. GeoGebraexempel

Laboration: Grunderna i MATLAB

Talmängder N = {0,1,2,3,...} C = {a+bi : a,b R}

Institutionen för matematik KTH. Tentamensskrivning, , kl B1202/2 Diff och Trans 2 del 2, för F och T.

Matlabövning 1 Funktioner och grafer i Matlab

En vanlig uppgift är att bestämma max resp min för en trigonometrisk funktion och de x- värden för vilka dessa antas.

LABORATION cos (3x 2 ) dx I =

Datorlaboration 2. 1 Serier (kan göras från mitten av läsvecka 4)

LÖSNINGSFÖRSLAG TILL TENTAMEN 2 SF1664

Preliminärt lösningsförslag till del I, v1.0

4. Bestäm eventuella extrempunkter, inflexionspunkter samt horisontella och vertikala asymptoter till y = 1 x 1 + x, och rita funktionens graf.

Matlabövning 1 Funktioner och grafer i Matlab

Allmänt om Mathematica

5B1134 Matematik och modeller Uppgifter från kontrollskrivningar och tentamina under läsåren och

Envariabelanalys 5B1147 MATLAB-laboration Derivator

Tentamen i tmv036c och tmv035c, Analys och linjär algebra C för K, Kf och Bt A =, = det(a λi) = e 2t + c 2. x(t) = c 1. = c 1.

Lägg märke till skillnaden, man ser det tydligare om man ritar kurvorna.

5B1134 Matematik och modeller Lösningsförslag till tentamen den 11 oktober 2004

SF1625 Envariabelanalys Lösningsförslag till tentamen DEL A

Matematisk analys för ingenjörer Matlabövning 2 Numerisk ekvationslösning och integration

Matematiska Institutionen, K T H. B. Krakus. Matematik 1. Maplelaboration 2.

Sidor i boken f(x) = a x 2 +b x+c

Funktionsteori Datorlaboration 2

Prov 1 2. Ellips 12 Numeriska och algebraiska metoder lösningar till övningsproven uppdaterad a) i) Nollställen för polynomet 2x 2 3x 1:

Laboration 3. Funktioner, vektorer, integraler och felskattning

Trigonometriska formler Integraler och skalärprodukter Fourierserier Andra ortogonala system. Fourierserier. Fourierserier

Polynomekvationer. p 2 (x) = x x 3 +2x 10 = 0

f(x + h) f(x) h f(x) f(x h) h

Euler-Mac Laurins summationsformel och Bernoulliska polynom

Talmängder. Målet med första föreläsningen:

SF1900 Sannolikhetsteori och statistik, HT 2017 Laboration 1 för CINEK2

14 min 60 s min 42 s 49m 2 =18 s m 2, alltså samma tid. Vi kan säga att den tid som mamman behövde åt dammsugning var beroende av husets storlek.

5B1134 Matematik och modeller

MATLAB Laboration problem med lokala extremvärden

Funktionsstudier med derivata

Laboration 3. Funktioner, vektorer, integraler och felskattning

Lösandet av ekvationer utgör ett centralt område inom matematiken, kanske främst den tillämpade.

Sekant och tangent Om man drar en rät linje genom två punkter på en kurva får man en sekant. (Den gröna linjen i figuren).

Institutionen för matematik och datavetenskap Karlstads universitet. GeoGebra. ett digitalt verktyg för framtidens matematikundervisning

Kapitel 5: Primitiva funktioner

= e 2x. Integrering ger ye 2x = e 2x /2 + C, vilket kan skrivas y = 1/2 + Ce 2x. Här är C en godtycklig konstant.

Tentamen, SF1629, Differentialekvationer och Transformer II (del 2) 11 april 2017 kl. 8:00-13:00

Transkript:

Vårterminen 2003 Kontinuerliga system, Datorövning 2 Inledning Ett modernt datoralgebrasystem har som huvudfunktion att göra symboliska beräkningar, i motsats till numeriska. Det kan utföra algebraiska manipulationer och förenklingar, lösa ekvationssystem, integrera och derivera symboliskt och lösa differentialekvationer. Dessutom kan de flesta sådana system också utföra numeriska beräkningar och har kraftfulla grafiska funktioner. Behöver man göra mera omfattande numeriska beräkningar använder man sig dock hellre av Matlab eller specialskrivna numeriska program. Maple är ett av de ledande datoralgebrasystemen. Några av de starkaste konkurrenterna är Mathematica, Macsyma och Reduce. LTH har en generell licens för Maple, och systemet bör därför finnas tillgängligt på alla institutioner och på skolans elevdatorer. Det kan köras på de flesta vanliga operativsystem. Syftet med denna datorlaboration är att Du skall bli bekant med Maple och se hur det kan användas för symboliska och numeriska beräkningar, för visualisering, i specialanvändningar, genom ett antal utbyggnadspaket, så kallade packages. Hinner du inte med alla uppgifterna under den handledda övningen, så genomför de återstående momenten på egen hand, antingen på LTH:s datorer eller på egen. Vi kommer i denna övning att arbeta med en del exempel från övningar och föreläsningar. Tag därför med läroboken och övningshäftet till laborationen. Läs noga igenom den allmänna Maple-introduktionen i avsnitt 1, så noga att du bara behöver ägna högst en halvtimme av laborationstiden åt detta. I avsnitt 2 och 3 finns några förberedelseuppgifter. Gör dessa innan laborationen. Skriv in dina svar på sista sidan och var beredd att motivera svaren under laborationen. 1 Om Maple Allmänt Maple är ett mycket mångsidigt program, och man kan ägna mycket tid åt att utforska dess användningsmöjligheter. Dess mångsidighet gör det samtidigt svårare att använda än tex Matlab. I denna övning kommer ganska mycket utrymme att ägnas åt allmänna förberedelser, innan vi kommer till de speciella användningarna inom Kontinuerliga system. Där kommer vi att använda Maple som en oerhört kraftfull räknedosa. Liksom de flesta programpaket uppgraderas Maple relativt ofta. Versionerna skiljer sig något åt, och anvisningarna nedan är gjorda för Maple6. Mer information om Maple än vad som ryms i denna korta introduktion kan man finna i det inbyggda hjälpsystemet samt i en stort antal skrifter och böcker. På institutionen har utgivits en utförligare introduktion (mest avsedd för envariabelanalys) Andersson Nilsson, Maplehandboken (1995). Den beskriver version MapleVR3 och finns att hämta på 1

http://www.maths.lth.se/matematiklu/personal/goran_a/maple/mh.html. En modernare version har författats av C.G. Werner: Maplehandboken i Lund 2002. Häftet kan köpas på studerandeexpeditionen vid Matematikavdelningen (NF) rum MH 456. En handledning för MapleVR5 är Heal, Hansen & Rickard, Maple V Learning Guide, Springer 1998. Starta Maple på UNIX-system genom att ge kommandot maple -x, eller, på vissa maskiner, xmaple &. På Windows-maskiner brukar finnas en Maple-ikon. Placera Maplefönstret, som strax kommer upp, på lämpligt ställe. Man går ur Maple genom att välja Exit i File-menyn. Behöver man avbryta någon process kan man använda en stop-knapp på menyraden. Hjälp Maple har ett omfattande inbyggt hjälpsystem. Om man klickar på Help i menyraden, så får man tillgång till hjälpfunktioner. Dessa fungerar på lite olika sätt, beroende på vilken Mapleversion man kör, men brukar vara lätta att använda. Plocka fram hjälpen för exp och constant. Observera i det senare fallet särskilt de symboliska konstanterna I, Pi och infinity. Dessa är reserverade namn, som inte får användas till annat. Observera att Maple skiljer på stora och små bokstäver. Talet e skrivs exp(1). Man kan också få hjälp genom att skriva ett sökord föregånget av ett frågetecken, t ex?exp,?constant. I slutet på varje hjälptext finns exempel och hänvisningar till andra kommandon som kan vara av nytta. Grundläggande kommandon och aritmetiska beräkningar I Maplefönstret hittar du en prompt >, som betyder att Maple väntar på ett kommando. Skriv in 7+5; och tryck på Enter, så utförs summationen. Observera att varje kommando till Maple måste avslutas med ett semikolon ;, utan detta händer ingenting. Detta gör att man kan slå in långa formler som inte får plats på en rad. Skriver man kolon : så utförs operationen, men resultatet kommer inte upp på skärmen. Kontrollera att Maple kan fungera som en vanlig räknedosa. Prova i tur och ordning 2-3*5; 1/2+1/3; sqrt(4)*sqrt(3); Observera att Maple ger exakta svar, inte närmevärden. Närmevärden erhålles genom kommandot evalf;, som står för evaluate using floating point arithmetic. För att få ett närmevärde för den senast utförda beräkningen (2 3 i vårt fall) kan man skriva evalf(%); Man kan naturligtvis också skriva evalf(sqrt(4)*sqrt(3));. På samma sätt kan resultatet av den näst senaste beräkningen åberopas genom %%, etc. En annan praktisk detalj i Maple är möjligheten att gå tillbaka till gamla kommandon på skärmen med pil-upp och pil-ner tangenterna, ändra i kommandona och utföra dem på nytt. Man kan också använda musen för att snabbt flytta sej till olika delar av skärmen. 2

Testa genom att gå tillbaka till kommandot 1/2+1/3; och gör en annan bråkberäkning genom att ändra siffror. När det gäller kommandot evalf så kan man ur hjälpfunktionen, som nås med?evalf, utläsa att man genom ett andra argument kan ange med hur många siffror man vill ha svaret. Använd detta för att få ett värde på π med 1000 decimaler, evalf(pi,1000);. Variabler Maple kan inte bara räkna med tal utan också med variabler och med funktioner. Detta gör att ett Maplesystem blir större och ofta mer invecklat att programmera än ett vanligt programmeringspråk, men också oerhört mycket mera kraftfullt. Ge kommandot (x+1)^3;. Maple svarar med samma sak. Som svar på expand(%); så utvecklar Maple uttrycket enligt binomialteoremet. Prova även med expand((a-b)*(a+b)); expand(x*(x+1)*(x+2)*(x+3)); expand(cos(x+y)); Som bekant vill man ofta gå åt andra hållet, och faktoruppdela ett givet uttryck. Detta görs med kommandot factor. Prova detta på de polynomuttryck som du fick ovan. Ett annat kommando för förenkling är simplify. Prova detta genom att skriva simplify(1/(x-1)+1/(x+1)); Maple gör inte alltid det man önskar. Ett annat kommando man kan ha nytta av för att göra omskrivningar är normal. Tilldelningssatser Man kan tilldela en variabel ett värde, numeriskt eller symboliskt. Tilldelningssymbolen är liksom i Pascal och Simula :=. Prova med x:=2;. Kommandot x; ger nu variabelvärdet 2. Prova också med (x+1)^2;. En variabel som fått ett värde behåller detta tills man går ur Maple eller ger den ett annat värde. För att ta bort värdet kan man använda kommandot x:= x ;, som gör att Maple tolkar bokstaven x som en variabel, betecknad x, inte som variabelns värde. Det är lätt att glömma bort att man gett en variabel ett värde tidigare, vilket kan leda till obegripliga resultat av räkningar. Vill man ta bort alla värden på variabler och helt och hållet börja om från början skriver man restart;. Variabler kan förutom numeriska värden även ha Mapleuttryck som värden. Genom tilldelningskommandot f:=(x+1)^3; så sätter vi f lika med (x + 1) 3. (Blir svaret 27 så tag bort det tidigare värdet från x och försök igen.) Man kan sedan räkna vidare med f och skriva t ex f^2; och expand(f^2);. Om man vill beräkna värdet av uttrycket f^2 för t ex x=2 utan att varaktigt tilldela x ett värde så kan man skriva subs(x=2,f^2); 3

Funktioner Maple kan hantera inte bara analytiska uttryck, som vi sett exempel på ovan, utan även funktioner. Dessa kan definieras på flera olika sätt. Det för våra ändamål enklaste påminner om beteckningen x g(x) för en funktion g. Ge kommandot g:= x->(x+1)^3; Nu kan funktionsvärden beräknas på det sätt man är van vid. Prova t ex med g(0);, g(-1);, g(a); och g(y+z);. Anmärkning Man måste noga hålla isär begreppen funktion och funktionsuttryck, där det senare behandlades under rubriken Tilldelningssatser ovan. För säkerhets skull upprepar vi skillnaden: Om vi ger ett värde till F genom tilldelningen F:=exp(x)-sin(x); så är F ett uttryck med variabeln x inbyggt. Om vi i stället ger F ett värde genom F:=x->exp(x)-sin(x); så är F en funktion, där x bara används för att definiera en regel, och där man skulle kunna använda vilken annan symbol som helst. Funktioner är mycket mer flexibla, men ibland något mer svårhanterliga än funktionsuttryck. Det finns lyckligtvis ett enkelt sätt att göra om ett uttryck till en funktion, nämligen genom att använda 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å funktioner av flera variabler. Funktionen h(x, y) = x 2 y 3 +x 2 y 3 definieras i Maple på följande sätt: Vad ger h(0,0); och h(3,2);? Derivation h := (x,y) -> x^2-y^3+x^2*y^3; Derivator beräknas med kommandot diff. Användningen framgår ur exemplen Andraderivator beräknas enligt diff(x^3+2*x^2,x); och diff(tan(x),x); diff(tan(x),x,x); På samma sätt beräknas derivator av högre ordning, där antalet x anger ordningen. För detta finns ett kortare skrivsätt. Beräkna fjärdederivatan av tan(x) genom att skriva diff(tan(x),x$4);. Prova även att förenkla svaret med hjälp av factor(%);. Vi kan också derivera det tidigare definierade funktionsuttrycket f och funktionen g genom att skriva diff(f,x); resp diff(g(x),x); 4

Tänk ut vad som kommer ut ur kommandona diff(f,y);, diff(g,x);, diff(g(y),y); och prova om det stämmer. Anmärkning. Maple har också en derivationsoperator och D(sin);. Man kan även lätt beräkna partiella derivator. Till exempel får man h x för funktionen h ovan genom kommandona och h y diff(h(x,y),x); resp diff(h(x,y),y); Högre derivator fås genom uppräkning av variabelnamnen. Pröva t ex Integration diff(h(x,y),x,y); D, se?d. Pröva tex D(g); Med hjälp av kommandot int(f,x); kan man beräkna en primitiv funktion till funktionen f(x) med avseende på x. Integrationskonstanten får man sedan själv lägga till om det skulle behövas. Pröva int(f,x);, int(g(x),x); Repetera nu några enkla primitiva funktioner från envariabelanalysen: cos x (med kommandot int(cos(x),x);), e t 1 (skrivet exp(t)), och med avseende på respektive variabel. Kvadratrotfunktionen skrivs i Maple som sqrt. 1 z 2 Om Maple inte kan någon primitiv funktion, så svarar Maple genom att ge tillbaka det man stoppat in. Försök med int(x^x,x); så får du tillbaka x x dx Anmärkning Prova också 1 2x 2 1 x2 dx och e x2 dx. Dessa exempel visar att Maple känner till fler primitiva funktioner än de vanliga elementära funktionerna. Den första av integralerna är exempel på en så kallad elliptisk integral. Vissa elliptiska integraler finns i Maple, se t ex?elliptice. I svaret på den andra integralen ingår den så kallade error function, erf, se läroboken kapitel 4. Denna uppträder bl a i samband med värmeledning och inom statistiken. För att beräkna bestämda integraler, till exempel 3 2 (x + 1) 3 dx 5

måste även gränserna anges. Detta görs i Maple genom x=-2..3, eller allmänt x=a..b för a x b. Detta har vissa likheter med Matlabs a:b, men fungerar både för diskreta och kontinuerliga variabler. Integralen ovan beräknas genom int((x+1)^3,x=-2..3);. Gränserna får gärna innehålla variabler, försök t ex med int(f,x=-y..(z+1));. Även generaliserade integraler kan beräknas. Prova t ex med int(1/(1+x^2),x=0..infinity); och evalf(int(1/(1+x^2),x=0..infinity)); Se även vad som händer med Int(1/(1+x^2),x=0..infinity); Summation Maple kan också användas för att beräkna summor. Syntaxen för summation är naturlig, n k=m a k fås genom Maplekommandot sum(a(k),k=m..n). Beräkna potenssummorna n k k=1 och med hjälp av kommandona sum(k,k=1..n); och sum(k^2,k=1..n);. Förenkla med simplify. 1 Även vissa seriesummor kan Maple beräkna. Vad blir k 4? Ekvationslösning Maple kan användas för att lösa ekvationer, se?solve och?fsolve. Prova de tre varianterna n k=1 k 2 k=1 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äs om dem i hjälpfunktionen. Pröva också solve(sin(x)=1/2,x); Observera att i det senare fallet ger Maple i grundinställning endast en lösning. Men skriv _EnvAllSolutions:=true; Lös ekvationen sin x = 1 2 igen. Saknas några lösningar nu? För polynomekvationer ger fsolve med optionen complex alla lösningar. Differentialekvationer Maple kan också lösa differentialekvationer, se?dsolve. Pröva med att lösa med kommandot y + λy = 0 dsolve(diff(y(x),x$2)+lambda*y(x)=0, y(x)); 6

Grafik Maple har omfattande grafiska möjligheter. Om du i fortsättningen vill att Maples figurer hamnar i egna fönster (vilket kan vara lättare att hantera) så går du in under menyn Options, väljer Plot Display och sen Window. Med kommandot plot ritar man tvådimensionella figurer i Maple, t ex funktionskurvor. Se hjälpen till kommandona plot. Prova med plot(sin(x),x=-pi..pi); Axlarna skalas automatiskt så att bilden fyller grafikfönstret maximalt. Om man vill ha samma skala på båda axlarna kan man gå in på menyraden vid Projection och välja Constrained. För att rita flera kurvor i en figur använder man [ ]-parenteser ( även {}-parenteser fungerar). Pröva plot([sin(x),x-x^3/6],x=-pi..pi); Vad är det för speciellt med polynomet? Man kan också rita kurvor i parameterform, pröva t ex plot([cos(x),sin(x),x=-pi..pi],scaling=constrained); Hur ser kurvan ut om scaling=constrained tas bort? Antalet grafikfönster växer snabbt. Man stänger dem man inte behöver genom att gå in rutan i vänstra övre hörnet i grafikfönstret märkt med och dra till Close. Maples tredimensionella grafik har en mängd varianter som vi inte går in på här. Läs om dem i?plot3d. Funktionsytan z = xe x2 y 2 kan ritas med plot3d(x*exp(-x^2-y^2),x=-2..2,y=-2..2); Man kan vrida och vända på bilden genom att placera musmarkören i grafikfönstret och hålla vänster musknapp nere och flytta på musen långsamt. Prova med hjälp av menyer de olika möjligheterna för axes, color och style. Det går också bra att beskriva ytor i parameterform. Cylindern y 2 + z 2 = 1 längs x-axeln kan ritas med plot3d([s,cos(t),sin(t)],s=-2..2,t=0..2*pi); Välj här Projection Constrained. Maple har många fler grafikrutiner. För att få tillgång till dessa görs kommandona with(plots); och with(plottools); Här är plots och plottools namnet på ett så kallat package. Det finns ett antal sådana i Maple, för olika användningar. Spara och skriva ut Man kan spara all text i Maple-fönstret genom att klicka på File och Save as samt ange ett filnamn. Texten sparas då i en fil med namnet filnamn.mws. När du senare vill ta fram texten igen klickar du på File och Open och anger hela filnamnet, även.mws. Det går också att samla alla kommandon i en scriptfil med ett enkelt namn, tex prov. För att köra scriptet skriver du i Maple-fönstret read prov;. Om du vill ta ut en bild på skrivare, kan du spara den i Post-Script format genom att klicka på File och Print samt ange filnamn.ps. 7

2 Skalärprodukter, normer och projektioner Starta med att skriva restart; för att ta bort gamla värden på f, g mm. Vi kommer att beräkna många skalärprodukter och det är därför lämpligt att definiera skalärprodukten som en funktion av två variabler f och g. Låt oss kalla denna skal. Skriv skal:=(f,g)->int(f*g*w,x=x0..x1); Innan denna används måste man specificera viktsfunktionen w och integrationsgränserna x 0 och x 1. 1. Förberedelser: Skriv upp formeln för skalärprodukten (f g) i L 2 ([0, L]). Skriv koefficienterna c k i en ortogonalutveckling, k c kϕ k, med hjälp av skalärprodukter. Gör en cosinusutvecklingen av en funktion f(x) på intervallet [0, L], välj {ϕ k (x)} 0 = {cos kπx/l} 0 och bestäm koefficientern med kommandot skal. Starta med att sätta w:=1; x0:=0; x1:=l; Tala därefter om att k och j är 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öva också fallet med j = k och speciellt j = k = 0. Definiera koefficienterna c k 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ör att få en integralformel för c k. Undersök speciellt c(0); (När det finns villkor på k markerar Maple det med ett efter variabeln, se?assume.) Fråga: Hur stämmer detta med formlerna för koefficienterna i cosinusutvecklingen på sidan 62 i boken? Händer något speciellt för k = 0? I så fall vad och varför? Testa svaret i övning 3.2 a) genom att välja f(x) = x och L = 1. Avsluta med att återställa k, j med k:= k ; j:= j ;. 2. Vi skall nu lösa uppgift H.22 i övningshäftet med hjälp av Maple. Förberedelser: Skriv upp formeln för den skalärprodukt som skall användas i H.22 och ange w, x 0 och x 1. Skriv med hjälp av projektionsformeln upp en formel för det sökta polynomet p. Uttryck koefficienterna med skalärprodukter och tänk efter vilka integraler som skall beräknas för att lösa uppgiften. Börja med att skriva in viktsfunktion w och integrationsgränserna x 0 och x 1. Definiera 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älp av skal att de är ortogonala i L 2 ((x 0, x 1 ), w). Prova med att beräkna tex skal(l0,f);. Maple vill inte beräkna integralen (varför?). Man måste ställa krav på α för att integralen skall vara konvergent. Skriv därför assume(alpha>-1/2); 8

Kan du beräkna skal(l0,f); nu? Beräkna koefficienterna c 0, c 1, c 2, t ex c0:=skal(l0,f)/skal(l0,l0); Beräkna sedan p = c 0 L 0 + c 1 L 1 + c 2 L 2 genom att skriva p:=c0*l0+c1*l1+c2*l2; Plotta funktionen och approximationen för några olika värden på α, tex plot(subs(alpha=1,[f,p]),x=0..10, color=[red,blue], thickness=2); Fråga: I vilken mening är p en bra approximation av e αx? För att undvika problem senare, ta bort villkoret på α med alpha:= alpha ; 3 Ortogonalpolynom I Maple finns flera typer av ortogonalpolynom i ett särskilt package. För att få tillgång till dem, skriv with(orthopoly); 3. Kontrollera med hjälpfunktionen att de ortogonalpolynom som finns nämnda i läroboken sid 271 273 också finns i Maple. För att få ett explicit uttryck för t ex Legendrepolynomet P 4 skriver man P(4,x); och för att få Laguerrepolynymet L 2 skriver man L(2,x);. Jämför Maples Laguerrepolynom med de som finns i övn H.22? Finns någon skillnad? Beräkna några skalärprodukter med skal, t ex skal(l(2,x),l(2,x));. Kommentar? Plotta några ortogonalpolynom, t ex plot([p(3,x),p(4,x),p(5,x)],x=-1..1); Detta kan också skrivas plot([p(n,x)$n=3..5],x=-1..1); Kan man med hjälp av figurerna avgöra om det är rimligt att polynomen är ortogonala? Detta är lättare att bedöma om man tittar på produkterna P 4 P 5 och P 3 P 5, i intervallet [ 1, 1]. Undersök ortogonaliteten med hjälp av skal. (Tänk på att först ange rätt viktsfunktion och integrationsgränser.) 4. Utveckla funktionen f = sin(10x) med avseende på Legendrepolynom över intervallet 1 x 1. Sätt f:=sin(10*x); Här är 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 q n av ortogonalutvecklingen skrivas 9

q:=n->sum(c(k)*p(k,x),k=0..n); Plotta sen f och delsummor q n samma diagram med t ex plot([f,q(5)],x=-1..1); för några olika värden på n, t ex n = 5, 7, 11, 13. Titta på storleken av koefficienterna för några värden på n, t ex evalf(c(10));, evalf(c(11));, evalf(c(20));, evalf(c(21));. Gör samma med sin(10x) utbytt mot stegfunktionen f:=heaviside(x);. Tag n = 5, 11, 25. Observera att liksom för Fourierserier uppkommer här ett Gibbs-fenomen. Titta på storleken av koefficienterna med evalf. Fråga: Kan man göra några iaktagelser om koefficienternas storlek i de båda fallen? 5. Förberedelse: Skriv upp definitionen på egenvärde och egenfunktion till en differentialoperator A. Kontrollera att Legendrepolynomen är egenfunktioner till Legendres differentialoperator d dx (1 x2 ) d dx. Skriv Skriv sen exempelvis d:=n->-diff((1-x^2)*diff(p(n,x),x),x)/p(n,x); d(5); och förenkla därefter med simplify(%); Pröva med några olika värden på n, t ex 6, 7, 8, 10, 20. Fråga: Vad har detta med egenvärden att göra? Vad är egenvärdena uttryckta i n? Stämmer detta med teorin? (Jämför sats S.4 sidan 340 i läroboken.) 4 Besselfunktioner 6. Besselfunktionerna J ν och Y ν finns naturligtvis i Maple, där de anropas med BesselJ(n,k); resp BesselY(n,k);, se?bessel. Även nollställena till Besselfunktionena finns i Maple. De fås med kommandot BesselJZeros(n,k);. För att slippa skriva så mycket kan det vara praktiskt att införa kortare beteckningar, t ex alias(j=besselj, Y=BesselY, alpha=besseljzeros); Rita några grafer, tex med plot([j(n,x)$n=0..5],x=0..15);. Man kan också 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ända på denna. Lägg in lämpliga axlar. Med kommandot matrix(10,9,(k,n)->evalf(alpha(n-1,k))); genereras en massa nollställen. Jämför med tabellen i formelsamlingen. 10

7. Pröva om Maple klarar övning S.11. (Här behöver man använda simplify.) 8. Maple kan många formler för Besselfunktioner. Pröva att beräkna J ν(x). Pröva också att uttrycka J 1/2 (x), J 3/2 (x), Y 1/2 (x) med elementära funktioner. Tänk på att skriva J(3/2,x), inte J(1.5,x). 9. Extrauppgift. Lös Bessels differentialekvation u (x) + 1 x u (x) + (λ ν2 x 2 )u(x) = 0 med dsolve (jämför sidan 6 i denna handledning). Här måste du själv tänka på att undersöka fallen λ = 0 och λ = 0, ν = 0. (Jämför lemma S.1 (sid 333) och övn S.13.) Lös även differentialekvationen u (x) + 2 x u (x) + (λ l(l + 1) x 2 )u(x) = 0. (Jämför (20) sid 340 och övning S.18.) Pröva speciellt l = 0. Glöm inte fallet λ = 0. 10. Förberedelse: Repetera exemel S.3, sidan 334 i boken. Enligt detta exempel är Besselfunktionerna J 0 (α 0k r) egenfunktioner till den singulära Sturm-Liouvilleoperatorn Au = 1 r (ru ) D A = { u C 2 [0, 1] u begränsad nära 0, u(1) = 0 }. Ange en skalärprodukt i vilken funktionerna J 0 (α 0k r) är ortogonala. Skriv in rätt viktsfunktion och intervallgränser. (Tänk på att variabeln heter x i kommandot skal.) Kontrollera ortogonaliteten mellan J 0 (α 0k r) för några olika k-värden med hjälp av skal. Plotta också produkten J 0 (α 0k r)j 0 (α 0m r)w(r), där w är viktsfunktionen, över intervallet [0, 1]. Gör motsvarande undersökning för några Besselfunktioner J n med n > 0. Slutsats? 11. Titta på tredimensionella bilder av egenfunktionerna J n (α nk r) cos(nθ) till Laplaceoperatorn med Dirichletvillkor i polära koordinater (exempel S.4 sid 335 337) för några olika värden på n och k. För 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ända cirkulära membran (se exempel 3.14 sid 108) har svängningsmoder av typ u nk = J n (α nk r) cos nθ sin cα nk t. Sådana svängningsmoder kan man se röra sig i Maple med hjälp av kommandot animate3d. Detta får man tillgång till om man skriver with(plots); För att se membranet svänga i fallet n = 2, k = 1, och med c vald så att cα nk = 1, kan man skriva 11

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ån menyraden (starta genom att klicka på rutan märkt ). Genom att klicka på lämplig knapp kan man få den att gå oavbrutet. Titta på svängningsmoder för några andra värden på n och k. Man kan få en jämnare rörelse genom att öka antalet indeningspunkter i tids- eller rumsled, se?animate. Vill man titta på ett membran som inte är fast inspänt, utan kan röra sig fritt på randen, på så sätt att det uppfyller ett homogent Neumannvillkor, så kan man byta α nk mot α nk (nollställen till J n). Dessa kan hämtas tabellen i formelsamlingen eller fås med fsolve. Pröva t ex fsolve(diff(j(1,x),x)=0,x=1..3); Här har vi angivit i vilket intervall det sökta nollstället ligger. För att kunna göra detta är det lämpligt att plotta funktionen J 1. 12. Extrauppgift: Utveckla funktionen f(x) = x, 0 < x < 1 i den ortogonala basen J 0 (α 0k x). Plotta delsummor S N och funktionen f i samma diagram för några olika värden på N. Gör sedan samma sak med f(x) = 1 x. Märks någon skillnad? Vad kan det bero på? Förberedelser: Skriv upp formeln för skalärprodukt i L 2 ([0, L]): (f g) = Antag att ortogonalutveckligen f = k=1 c kϕ k gäller. Beskriv Fourierkoefficienterna c k med hjälp av skalärprodukt: c k = H.22 Laguerrepolynomen L n (x) är ortogonala i L 2 (I, w), där I = [0, ) och w(x) = e x. De tre första är L 0 (x) = 1, L 1 (x) = 1 x, L 2 (x) = x 2 4x + 2. Bestäm med hjälp härav det polynom p = p α av andra graden som minimerar integralen 0 (e αx p(x)) 2 e x dx, där konstanten α > 1/2. Skriv upp en användbar skalärprodukt: (f g) = Skriv med projektionsformeln upp en formel för p: 12