Kontinuerliga system, Datorövning 1

Relevanta dokument
Datorövning 1. - med hjälp av matlab kort repetera fourier-, sinus- och cosinus-serier och deras konvergensegenskaper,

Kontinuerliga system, Datorövning 1

Kontinuerliga system, Datorövning 1

Kontinuerliga system, Datorövning 3

Fouriers metod, egenfunktionsutvecklingar.

Kontinuerliga system, Datorövning 3

Numerisk lösning av PDE: Comsol Multiphysics

Uppsala Universitet Matematiska Institutionen Bo Styf. Sammanfattning av föreläsningarna 11-14, 16/11-28/

Partiella differentialekvationer och randvärdesproblem Separabla PDE Klassiska ekvationer och randvärdesproblem

TMA226 datorlaboration

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,

Studio 6: Dubbelintegral.

FEM1: Randvärdesproblem och finita elementmetoden i en variabel.

Funktionsteori Datorlaboration 2

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

FYSIKENS MATEMATISKA METODER

Instuderingsfrågor i Funktionsteori

Lösningar till tentamen i Transformmetoder okt 2007

Funktionsteori Datorlaboration 2

Egenvärdesproblem för matriser och differentialekvationer

TANA17 Matematiska beräkningar med Matlab

SF1661 Perspektiv på matematik Tentamen 24 oktober 2013 kl Svar och lösningsförslag. z 11. w 3. Lösning. De Moivres formel ger att

TAIU07 Matematiska beräkningar med Matlab

= 1, fallet x > 0 behandlas pga villkoret. x:x > 1

Laboration: Grunderna i MATLAB

FMNF15 HT18: Beräkningsprogrammering Numerisk Analys, Matematikcentrum

Projekt Finit Element-lösare

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

= y(0) för vilka lim y(t) är ändligt.

Institutionen för matematik KTH. Tentamensskrivning, , kl B1210 och 5B1230 Matematik IV, för B, M, och I.

Högskolan i Skövde (SK, JS) Svensk version Tentamen i matematik Lösningsförslag till del I

SF1626 Flervariabelanalys Lösningsförslag till tentamen DEL A

SF1626 Flervariabelanalys Lösningsförslag till tentamen DEL A

Del I. Modul 1. Betrakta differentialekvationen

CHALMERS Finit Elementmetod M3 Institutionen för tillämpad mekanik. Teorifrågor

= 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.

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

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

SF1626 Flervariabelanalys Lösningsförslag till tentamen DEL A. 1. En svängningsrörelse beskrivs av

Introduktion till Matlab

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

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

Introduktion till Matlab

av envariabelfunktionen g(t) och flervariabelfunktionen t = h(x, y) = x 2 + e y.)

Tentamen i matematik. f(x) = ln(ln(x)),

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

Föreläsning 14: Exempel på randvärdesproblem. LU-faktorisering för att lösa linjära ekvationssystem.

Dataprojekt. Nanovetenskapliga tankeverktyg. January 18, 2008

LABORATION cos (3x 2 ) dx I =

Numerisk lösning till den tidsberoende Schrödingerekvationen.

= = i K = 0, K =

Precis som var fallet med förra artikeln, Geogebra för de yngre i Nämnaren

9.3. Egenvärdesproblem

SF1626 Flervariabelanalys Tentamen Tisdagen den 12 januari 2016

SF1669 Matematisk och numerisk analys II Lösningsförslag till tentamen DEL A. r cos t + (r cos t) 2 + (r sin t) 2) rdrdt.

Oändligtdimensionella vektorrum

6. Temperaturen u(x) i positionen x av en stav uppfyller värmeledningsekvationen. u (x) + u(x) = f(x), 0 x 2, u(0) = 0 u(2) = 1,

Träff 1 Skissa & Extrudera

Vi betraktar homogena partiella differentialekvationer (PDE) av andra ordningen

SF1625 Envariabelanalys Lösningsförslag till tentamen

SF1626 Flervariabelanalys Tentamen Måndagen den 16 mars 2015

MMA127 Differential och integralkalkyl II

Lösningsskiss för tentamen Vektorfält och klassisk fysik (FFM232)

Fourierserier: att bryta ner periodiska förlopp

SF1646 Analys i flera variabler Tentamen 18 augusti 2011, Svar och lösningsförslag

LAB 1. FELANALYS. 1 Inledning. 2 Flyttal. 1.1 Innehåll. 2.1 Avrundningsenheten, µ, och maskinepsilon, ε M

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

Laboration 4: Stora talens lag, Centrala gränsvärdessatsen och enkla punktskattningar

Tentamen, del 2 Lösningar DN1240 Numeriska metoder gk II F och CL

Lösning till tentamen i SF1633 Differentialekvationer I för BD, M och P, , kl

5B1146 med Matlab. Laborationsr. Laborationsgrupp: Sebastian Johnson Erik Lundberg, Ann-Sofi Åhn ( endst tal1-3

3 Man kan derivera i Matlab genom att approximera derivator med differenskvoter. Funktionen cosinus deriveras för x-värdena på följande sätt.

(4 2) vilket ger t f. dy och X = 1 =

Lösningar till Matematisk analys

Laboration 6. Ordinära differentialekvationer och glesa system

} + t { z t -1 - z t (16-8)t t = 4. d dt. (5 + t) da dt. {(5 + t)a} = 4(5 + t) + A = 4(5 + t),

Datorövning 2 med Maple

MMA132: Laboration 2 Matriser i MATLAB

2320 a. Svar: C = 25. Svar: C = 90

7 Extremvärden med bivillkor, obegränsade områden

Tentamen del 1 SF1546, , , Numeriska metoder, grundkurs

Kontinuerliga system, Datorövning 3

Chalmers tekniska högskola Datum: kl Telefonvakt: Milo Viviani MVE500, TKSAM-2

Kurs DN1215, Laboration 3 (Del 1): Randvärdesproblem för ordinära differentialekvationer

Linjär algebra med tillämpningar, lab 1

Kap Inversfunktion, arcusfunktioner.

SF1626 Flervariabelanalys Lösningsförslag till tentamen DEL A

Introduktionskurs i matematik LÄSANVISNINGAR

Bose-Einsteinkondensation. Lars Gislén, Malin Sjödahl, Patrik Sahlin

varandra. Vi börjar med att behandla en linjes ekvation med hjälp av figur 7 och dess bildtext.

Euler-Mac Laurins summationsformel och Bernoulliska polynom

Användarmanual till Maple

FFM234, Klassisk fysik och vektorfält - Föreläsningsanteckningar

MAPLE MIKAEL STENLUND

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

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 9 november 2015 Sida 1 / 28

Switch Driver 4. Programvara för Radio Switch, JoyBox och JoyCable. Sensory Software

SF1626 Flervariabelanalys Lösningsförslag till tentamen DEL A

Flervariabelanalys och Matlab Kapitel 3

Partiella differentialekvationer: Koppling Diskret - Kontinuum och Finita Elementmetoden

Transkript:

200 Kontinuerliga system, Datorövning Inledning I denna laboration ska vi dels använda programmet COMSOL Multiphysics för numerisk lösning av partiella differentialekvationer med finita elementmetoden, dels MATLAB för att illustrera användningen av cosinus- och sinusserier för lösning av värmelednings- och svängningsproblem. I avsnitt 2 nedan kommer vi att göra en mycket kort presentation av finita elementmetoden. Den intresserade kan även titta i kapitel 8 i läroboken. Finita elementmetoden är den ena av två förhärskande metoder för numerisk lösning av partiella differentialekvationer, där den andra är finita differensmetoden. Litet mera information kan fås i kapitel 2 i boken. Kursen i stort går främst ut på att studera analytiska lösningsmetoder. Sådana finns bara i ganska speciella situationer, med enkla områden, differentialekvationer och randvillkor. De numeriska metoderna fungerar i mycket allmännare situationer, med godtyckliga områden och där koefficienterna i differentialekvation och randvillkor får bero av rums- och tidsvariabler. Man finner dock ganska snart att för att effektivt och kritiskt kunna använda ett numeriskt programpaket som COMSOL så måste man vara väl förtrogen med den analytiska teorin. Under denna datorlaboration kommer du att bli något bekant med COMSOL och se hur programmet kan användas som stöd för förståelsen av teori och lösningsmetoder från kursen i övrigt, för visualisering av lösningar. Du kommer att använda programmet under ytterligare en laboration. Lägg därför diverse kommandon på minnet. Syftet med MATLAB-delen av laborationen är att du skall med hjälp av MATLAB kort repetera Fourier-, sinus- och cosinus-serier och deras konvergensegenskaper, med hjälp av MATLAB experimentellt studera egenskaperna hos lösningar till endimensionella värmelednings- och svängningsproblem. Hjälpfiler som behövs för denna laboration kan hämtas från kursens hemsida, adress http://www.maths.lth.se/ ~ lv/ks0.html Matlab, Comsol och Maple kan laddas ner gratis hos Dator- och driftgruppen LTH, http://program.ddg.lth.se/ I texten nedan finns dels frågor du ska besvara under laborationen, dels frågor (se sidorna 5 6) du ska besvara före laborationen. Börja arbetet med dessa senare frågor i så pass god tid att du hinner fråga din övningsledare om det skulle vara några oklarheter. Förberedelser:

Tag med lärobok och övningshäfte till laborationen. Läs igenom denna handledning samt avsnitt 3..2 (om Fourierserier) och exempel 3. och 3.2 i läroboken. Titta också på anmärkningen på sidan 36 i läroboken. Fyll i svaren på frågorna på sidorna 5 6 i denna handledning. Var också beredd att under laborationen motivera dina svar. Även om ni laborerar i par så ska var och en individuellt ha fyllt i svaren på frågorna och kunna motivera sina svar. Arbeta i förväg igenom avsnitt 5 om Fourierserier (drygt sidorna 9 0 i denna handledning). Du får gärna göra dessa förberedelser på din egen dator. Vissa filer behöver du hämta från kursens hemsida. 2 Om finita elementmetoden Antag att u är en lösning till randvärdesproblemet u = f i Ω u n + qu = g på Ω () för ett område Ω med styckvis glatt rand Ω. Låt ϕ vara en C -funktion i en omgivning av Ω. Sådana funktioner kallar vi testfunktioner. Multiplicera differentialekvationen med ϕ och integrera över Ω. Med hjälp av en partialintegration, Greens formel I, får vi Z Z ( u)ϕdv = f ϕdv D Z Insättning av randvillkoret ger Z D D D Z gradu gradϕdv D u n ZD ϕds = f ϕdv. Z Z Z gradu gradϕdv + quϕds = gϕds+ f ϕdv. (2) D D D Om u är en lösning till () så gäller alltså (2) för varje testfunktion ϕ. Om (2) är uppfylld för alla testfunktioner sägs u vara en svag lösning till (). För att u skall vara en svag lösning till () krävs bara att u är en gång deriverbar, trots att andraderivator ingår i problemformuleringen (). Situationen påminner om derivation i distributionsmening, fast där har man en annan klass av testfunktioner. Om Ω, f och q är tillräckligt regulära kan man visa att varje svag lösning också är en klassisk lösning till (). Vid finita elementmetoden går man ett steg längre, och betraktar en diskret variant av (2). Börja med att göra en uppdelning av området Ω i trianglar, se figuren nedan, och ersätt klassen av testfunktioner ovan med klassen T av funktioner vars grafer är plana över var och en av trianglarna. Hörnen i trianglarna kallas noder. Ett viktigt exempel på en funktion i T är 2

tältfunktionen τ k i figuren nedan. Den har värdet i centralnoden (x k,y k ) och 0 i alla andra noder. Det fina med tältfunktioner är att varje funktion ϕ T kan skrivas ϕ(x,y) = ϕ(x k,y k )τ k (x,y). k Tänk efter att detta är riktigt. Tältfunktionerna utgör alltså en bas för T, och koefficienterna i utvecklingen av en funktion i denna bas är helt enkelt funktionens värde i centralnoden. 0.8 0.6 0.4 0.2 0 0.5 0 0.5 0.5 0 0.5 Vid en vanlig variant av finita elementmetoden, Galerkins metod, vill man att även lösningen u skall tillhöra klassen T. Detta leder till problemet: Bestäm u T så att (2) gäller för alla ϕ T. Eftersom tältfunktionerna är en bas för T räcker det här att låta ϕ genomlöpa tältfunktionerna τ j. För varje j är det lätt att räkna ut tex första integralen i (2), Z u(x k,y k )gradτ k (x,y) gradτ j (x,y)dv. D k Här är alla gradienter konstanta över varje triangel, och alla termer i summan försvinner utom det fåtal som svarar mot noder k som ingår i någon triangel tillsammans med noden j. På samma sätt hanteras de andra termerna i (2). Detta leder till ett kvadratiskt ekvationssystem KU = F, där U är en kolonnmatris som innehåller u:s värden i noderna, F är en kolonnmatris uträknad från f och g, och där koefficientmatrisen K kallas för styvhetsmatrisen. Beräkningen av K och F kallas assemblering. På detta sätt övergår problemet att lösa randvärdesproblemet () till att lösa ett, i allmänhet mycket stort, linjärt ekvationssystem. Antalet obekanta är lika med antalet noder. Man kan visa att om Ω, f, q och g är tillräckligt regulära, och om man väljer en svit av allt finare indelningar, så kommer de lösningar man får ur finita elementmetoden att konvergera mot lösningen till (). På liknande sätt kan man behandla allmännare differentialekvationer av Sturm-Liouvilletyp (beskrivs senare i kapitel H) och allmännare randvillkor. 3

3 Om COMSOL Multiphysics Allmänt COMSOL kan användas för att lösa problem i en, två eller tre rumsdimensioner, tex randvärdesproblem för Laplace-Poissons ekvation, begynnelse-randvärdesproblem för värmeledningsoch vågekvationen samt egenvärdesproblem. Man kan göra väldigt mycket enbart med hjälp av menyer. Programmet fungerar fr o m version 3 helt fristående men finns också i en version med MATLAB i bakgrunden. Starta COMSOL (i Windows-miljö) på följande sätt:. Klicka med musens vänsterknapp på Start-knappen i nedre vänstra hörnet av skrivbordet. 2. Välj i fortsättningen:all Programs, COMSOL 3.5, ochcomsol 3.5 with MATLAB. Nu händer det att först startar MATLAB och automatiskt därefter COMSOL. Så småningom visas fönstretmodel Navigator. Det avbildas på nästa sida - dock ej studentversionen. 4

Det är nu dags att göra vissa val. Vilket spår man väljer beror givetvis på den uppgift som ska lösas. Till allmänna kunskaper om COMSOL hör också att veta hur programmet avslutas: Man går ut ur COMSOL genom att väljaexit ifile-menyn eller genom en kryss -knapp längst upp till höger i COMSOL-fönstret. MATLAB stänger du med kommandotquit. 4 Användning av COMSOL 4. Formulering och lösning av randvärdesproblem Här skall du bekanta dig med det grundläggande handhavandet av COMSOL 3.5 och experimentera med Poissons ekvation u = f i ett lagom komplicerat område och med ganska allmänna randvillkor. Följ nedanstående anvisningar. a) Uppgiften går ut på att lösa u = 0 i ett området Ω. Området ska anges grafiskt. Precisering kommer senare. Flera typer av randvillkor ska testas. Markera 2-D. Klicka en gång på + i COMSOL Multiphysics, på + i PDE Modes, på + i Classical PDEs och på Poisson s Equation. Avsluta med OK. Nu öppnar sig en ritbräda med ett flertal knappar. För musen långsamt över dessa knappar. Då visar sig en hjälptext till varje knapp. Överst finns också en rad fönsternamn File, Edit, Options etc. En musklick på någon av dessa öppnar rullgardin med flera kommandon. 5

Generering av område. Du har nu tillgång till ett rutnät. Indelning duger i stort i detta inledande skede men en mindre komplettering behövs. Klicka på Options, Axes/Grid Settings.. följt av Grid. Ta bort bocken i rutan framför Auto. Skriv på raden Extra x: in -0.5 0.5. Avsluta med OK. Granska nu rutnätet i x-led. Notera att nya punkter har skapats. Med hjälp av mus och/eller kommandon ska du nu försöka rita följande område: Rektanglarna fäster vid rutnätet. Klicka nu på knappen Rectangle/Square. För sedan musen till punkten (,0.4). Väl där trycker du ner vänster musknapp och med den nedtryckt för du musen till (0, 0.4). Släpp musknappen och rektangeln R är klar. Rita sedan rektanel R2 på analogt sätt. Notera hur rektanglarna fäster vid rutnätet. E är en ellips som kan skapas på följande sätt: Tryck pådraw Ellipse/Circle (Centered). För musen till punkten (0,0). Tryck där ner vänster musknapp och rör musen tills dess att du har en ellips med föreskrivna halvaxlar. Släpp musknappen. Du ska nu markera alla delområden. Snabbast sker det med Ctrl a. Alternativt kan du med Ctrl-knappen nedtryckt klicka på ett delområde åt gången. Tryck nu på knappenunion (till vänster). Då uppstår en del inre ränder som du tar bort med ett tryck på Delete Interior Boundaries. Området Ω (CO2) är nu klart. Randvillkor. Du ska nu ställa in homogena Dirichletvillkor, vilket egentligen är detsamma som att inte göra något alls, ty detta är defaultläge. Svenska? 6

Gå till fönstret Physics och välj där Boundary Settings... (Alternativt kan du klicka på knappen med utseendet: Ω och därefter dubbelklicka på området.) Fönstret Boundary Settings - Poisson s Equation kommer upp. I rutan med rubriken Boundary selection finns åtta delar. Du kan få veta vilket nummer en speciell del av randen har genom att klicka en gång på den randdelen. Då markeras motsvarande del i rutanboundary selection. Genom att hållactrl-knappen nedtryckt medan du klickar på de olika randdelarna kan du markera samtliga. Snabbast går det dock genom att markera rand och sedan gå till rand 8, trycka nershift-tangenten och därefter klicka på 8. I rutan Boundary conditions ser du att Dirichlet redan är markerat och att r = 0. Du behöver därför bara trycka påok. Differentialekvation Gå tillphysics och välj därsubdomain Settings... (Alternativt kan du klicka på knappen med utseendet Ω och därefter dubbelklicka på området.) Upp kommer fönstret Subdomain Settings - Poisson s Equation. Klicka på i rutan Subdomain selection. Byt i rutan PDE coefficients ut mot 0 som värde förf. Avsluta medok. Triangelgenerering. Genom ett tryck på knappen - kalladinitialize Mesh - genereras en indelning av Ω i triangulära delområden. (Trianglar som ansluter till randen är inga perfekta trianglar.) Triangelgenereringen kunde också åstadkommits via Mesh följt avinitialize Mesh. Genom ett tryck på knappenrefine Mesh åstadkommer du ett mera finmaskigt triangelnät.(vanligen ger finare nät bättre precision i lösningen men beräkningarna tar mera tid och är mera minneskrävande.) Lös problemet. Randvärdesproblemet löses genom att man väljer = Solve Problem på Solve-rullgardinen eller trycker på snabbknappen =. Lösningen (numerisk) erhålls tämligen omgående. Visualisering. Notera att nya snabbknappar nu har dykt upp till vänster i COMSOLfönstret. För musen långsamt över ikonerna så framträder deras namn och i stort deras funktion. Tryck på var och en av de fem första knapparna 2 Begrunda frågorna nedan. Den som vill att figuren ska hamna i ett vanligt MATLAB-fönster trycker på snabbknappen Plot Parameters. Välj sedan fliken General. I nedre vänstra hörnet finns Plot in:. Välj där MATLAB figure. Avsluta med ett klick på Apply. Figuren hamnar nu ifigure. Frågor att besvara: Hur stämmer lösningen med randvillkoren? Verkar nivåkurvorna och flödesbilden stämma med randvillkoren? b) Nästan samma uppgift som under a). Men randvillkoren ska modifieras. Randvillkor. Ändra till homogena Neumannvillkor på randdel och 8. Gå viaphysics och Boundary Settings... Markera randdel och 8 och Neumannvillkor. Avsluta medok. 2 Den sista ska varastreamline Plot. Knapparnas ordningsföljd varierar mellan olika installationer. 7

Triangelgenerering. Tryck påinitialize Mesh följt avrefine Mesh. Lös problemet. Trycka på=. Visualisering. Upprepa förfarande från föregående problem. Betänk samtidigt frågorna nedan. Frågor att besvara. Hur stämmer lösningen med randvillkoren? Hur ser nivåkurvorna ut vid de randdelar, där homogena Neumanvillkor gäller? Hur ser man i en 3D-plot av lösningen att den uppfyller homogena Neumannvillkor? c) Samma problem som tidigare men med homogena Neumannvillkor på hela randen. Försök att följa rutinerna från föregående problem. Frågor att besvara. Är det något konstigt med lösningen? Jämför anmärkningen på sidan 36 i läroboken. Har problemet någon lösning? d) Uppgift: Lös u = 0 i Ω, där Ω är en cirkelring med inre radien 0.5 och yttre radien. På den inre cirkelringen ska homogena Dirichletrandvillkor gälla och på den yttre homogena Neumannvillkor. Några tips. Gå till File och välj New. Spara inget. Välj sedan COMSOL Multiphysics, 2-D, PDE Modes, Clasical PDEs, Poisson s Equation och OK. Klicka nu på rullgardinen Draw och välj där Specify Objects följt av Circle. Notera att radien är redan satt till. Klicka därför påok. Rita på samma sätt en cirkel med radien 0.5 och medelpunkt i origo. Tryck nu på Ctrl a och sedan på Difference. Cirkelringen Ω är nu klar. Ställ in rätt randvärden och rätt f i Poisson s ekvation. Gör en triangelindelning med förfining. Lös problemet och visualisera lösningen. Frågor att besvara. Hur stämmer lösningen med randvillkoren? Beter sig nivåkurvorna vid den yttre randen som du väntat dig? Kan det vara homogena Neumannvillkor på den yttre cirkeln trots att nivåkurvorna inte går vinkelrätt mot randen? AnvändContour Plot ocharrow Plot. Syns de olika typerna av randvillkor i en 3D-bild? Stäng COMSOL! Gå vidare till värmeledningsekvationen sidan i denna handledning. 8

5 Fourierserier Repetition En funktion f, som är given på intervallet [0,L], kan ofta utvecklas antingen i trigonometrisk Fourierserie 2 a 0 + a k cos(2πkx/l)+b k sin(2πkx/l) eller i cosinusserie eller i sinusserie k= 2 a 0 + k= α k cos(πkx/l) β k sin(πkx/l) k= där talföljderna (a k ) 0, (b k), (α k) och (β k) kan beräknas då funktionen f är känd. Se formelsamlingen för Funktionsteori och Komplex analys. I denna laboration ska vi dels utgå från att funktionen är given av ett analytiskt uttryck, dels given grafiskt. Börja förberedelsen här Funktioner givna av analytiska uttryck Börja med att från kursens hemsida hämta filerna delsum.m, filminsp.m, funklick.m, koeff.m, labpre.m, summera.m,swing.m ochvarme.m Starta MATLAB genom att klicka på Start och sedan välja All programs och Matlab 7. Med kommandot labpre läser du in och definierar värdet på vissa variabler. Ta reda på vilka genom att skriva who. Notera att i denna laboration är L =. Ändra inte de nu satta värdena under resten av laborationen. Här skall vi låta MATLAB räkna ut koefficienterna. Detta sker med den numeriska metoden snabb Fouriertransformation, FFT. Det finns naturligtvis ett MATLAB-kommando som heter fft. Detta utnyttjas i m-filen koeff för att beräkna koefficienterna i den trigonometriska Fourier-serien och i halvperiodsutvecklingar med cosinus- och sinus-serier. Valet mellan de tre alternativen sker genom att en fråga besvaras med f, c resp s. Det kommer också upp en MATLAB-figur därakoeff ochbkoeff är plottade. Genom att köralabpre får du bl a följande funktioner definierade. funktion = max(sin(2*pi*x),0) ; funktion2 = (X <L/2) - (X > L/2) ; funktion3 = 3*X.*(X < L/4) + (L-X).*(X >= L/4) ; funktion4 = (X<L/4).*X - (X>2*L/3).*(X<3*L/4) ; funktion5 = sin(0*pi*x).*(x > 0.4*L).*(X<0.5*L) ; 9

Detta kräver en förklaring. Citationstecknen betyder att det som står innanför av MATLAB uppfattas som en sträng. Man skall tänka på det som en funktionsbeskrivning med hjälp av en regel, utan att värden beräknas. Här är funktion en halvvågslikriktad sinusfunktion. Det uttryck (X > L/2) som förekommer i funktion2 är ett logiskt uttryck, som när man stoppar in en matris X skapar en matris av samma storlek som X där det står ettor på alla platser där matriselementet i X är > L/2 och nollor för övrigt. Uttrycket(X > L/2) beskriver alltså den förskjutna Heavisidefunktionen θ L/2. Genom att tänka på sådana funktioner inser man att funktion2 beskriver en fyrkantvåg, att funktion3 beskriver en triangelvåg, och att funktion4 beskriver en mera komplicerad funktion.funktion5 används bl a på sidan 3. Undersök nu några av dessa funktioner. De evalueras med hjälp av kommandoteval. Till exempel kommer f=eval(funktion); att skapa en vektor som innehåller funktionsvärdena för funktion i de punkter som står som komponenter i vektornx. För att se hur funktionen ser ut, skriv plot(x,f) För laborationens fortsättning är det viktigt att denna funktionsvärdesvektor heter f. Det är sedan lätt att definiera om den med hjälp aveval-kommandot. Kör nukoeff ochdelsum på de olika funktionerna, och prova de olika optionernaf,coch s. Denna gång är funktionen känd, och frågan från delsum besvaras med j. (Du kan avbryta delsum.m med Ctrl-C.) Studera koefficienternas uppträdande och seriernas konvergens i de olika fallen. Titta särskilt på överslängarna vid diskontinuitetspunkter eller i områden där funktionen växer kraftigt. 5. Funktioner givna genom sina grafer Vi skall nu definiera funktioner genom att rita dem med hjälp av ett skript funklick. Efter det att kommandot skrivits kan man flytta runt ett hårkors i ett koordinatsystem med hjälp av musen, och lägga in ett antal punkter genom att klicka med vänster musknapp. Låt första punkten ligga på y-axeln. Det gör inget om x-koordinaten inte blir exakt 0, ty programmet justerar din ritning så att första punktens x-koordinat blir 0. Fortsätt att klicka på vänster musknapp där du vill ha en brytpunkt i den sträckvis linjära funktion, som ritningen producerar. Låt sista punkten få x-koordinaten. Programmet justerar så att sista punkten får exakt x- koordinaten. Avsluta ritandet genom ett tryck på höger musknapp. Om du har klickat på en punkt (x,y ) och om du vill att nästa punkt ska vara (x,y 2 ) så ska du klicka på en punkt (x 2,y 2 ), där x 2 < x. Du erhåller då en funktion med språng då x = x. På detta sätt kan man lätt konstruera funktioner med språngdiskontinuiteter, vilka kan vara lämpliga testobjekt när man studerar Fourierutvecklingar. Rita ett par stycken funktioner, av varierande snällhetsgrad, och kör för var och en av dem koeff och delsum på samma sätt som i föregående uppgift. Utveckla en och samma funktion 0

i Fourier-, sinus- och cosinusserie, och konstatera hur olika graferna blir. Titta i de två senare fallen på de approximerande funktionernas halvperiods- och paritetsegenskaper. (Paritet = udda, jämn.) Det är intressant att studera hur delsummorna anpassar sig till funktionen när denna är komplicerad. 6 Värmeledningsekvationen och vågekvationen Förberedelsen klar 6. Värmeledningsekvationen Enligt Fouriers metod, eller variabelseparationsmetoden, gäller att ett värmeledningsproblem med Dirichletvillkor, u t 2 u x 2 = 0, 0 < x < L, t > 0 u(0,t) = u(l,t) = 0, t > 0 u(x,0) = f(x), 0 < x < L, har en lösning av formen u(x,t) = b k e k2 π 2 t/l 2 sinkπx/l, där (b k ) är koefficienterna i sinusutvecklingen av begynnelsevärdesfunktionen f(x). MATLAB körs redan. Hämta hem filerna delsum.m, filminsp.m, funklick.m, koeff.m, labpre.m, summera.m,swing.m ochvarme.m Kör kommandotlabpre på samma sätt som du gjort före labben. Lös nu värmeledningsproblemet för några olika val av begynnelsefunktioner f, dels ritade med hjälp av funklick, dels analytiskt givna av funktion,...,funktion5. Ritkommandot funklick levererar en funktion kallad f. Om du använder t ex den fördefinierade funktionen funktion behöver du tillverka funktionen f med kommandot f=eval(funktion);. Beräkna koefficienterna b k med hjälp avkoeff. Vilken optionf,cellersskall användas? Svar: Lösningsformeln ovan är inlagd i skriptet varme, som beräknar lösningen vid en från t = 0 växande följd av tidpunkter. Detta skript visar ej delsummorna av serien, utan summerar direkt 27 termer. Lägg särskilt märke till den kraftiga utjämningen hos lösningen med tiden, även från diskontinuerliga begynnelsedata. Allteftersom som man stegar sig fram i tiden lagras lösningen radvis i en matris losn. Man kan sedan åskådliggöra denna i en tredimensionell plot, genom att skriva mesh(losn). Använd även kommandot view för att ändra synvinkeln. Gör tex view(20,0), view(0,20) eller view(0,90), se help view. Du kan alternativt klicka på ikonen med en cirkel med en pil, som antyder rotation. Peka sedan på figuren med musen. Håll vänster musknapp nedtryckt

samtidigt som du rör musen. Som du ser roteras boxen. När du släpper musen roteras figuren till det läge du flyttat boxen. Vinklarna visas i nedre vänstra hörnet då vänster musknapp hålls nedtryckt. Värmeledningsekvationen ovan kan vara en modell för värmeledning i en stav med längden L. Ett mått på enegiinnehållet i staven vid begynnelsetiden t = 0 är integral kan beräknas approximativt med en rektangelapproximation. Vad blir sum(f)/n? Undersök vad som händer med energin med växande tid, dvs beräkna Z L 0 Z L f(x)dx. Denna 0 u(x,t) dx för några olika tider t. Detta kan ske på följande sätt: Skriv sum(losn(j,:))/n för några heltalsvärden på j i intervallet [, 6]. (Intervallets utseende beror på det sätt på vilket tiden beskrivs ivarme.) Skriv ner värdena du fick! Vad händer med temperaturen u(x,t) då t blir stort? Svar: Lös även värmeledningsproblemet med Neumannvillkor. Välj någon funktion som begynnelsevillkor. Vilka är randvillkoren i detta fall? Välja sedan en lämplig option ikoeff. Vilken? Hur ser lösningsformeln ut i detta fall? Kör varme. När varme är klart kan du köra mesh(losn) och betrakta lösningen grafiskt som ovan. Beräkna begynnelseenerginsum(f)/n: Beräkna ocksåsum(losn(j,:))/n för några olikajisamma intervall som ovan. Resultat: Vad händer med temperaturen u(x,t) då t blir stort? Svar: I mån av tid: Öppna och titta på skriptet varme.m. Undersök vad som händer om man summerar färre termer. Ändra i scriptet på antalterm. Pröva då både begynnelsefunktioner med diskontinuteter och utan. Genom att kommentera bort raden pause (sätt ett %-tecken framför) kan se hur temperaturen ändras med tiden. Vill man följa utvecklingen ända fram till det stationära tillståndet kan man behöva ändra tidsteget (tidsteg). 2

6.2 Vågekvationen På samma sätt visas med Fouriers metod att svängningsproblemet för en fast inspänd sträng, 2 u t 2 c2 2 u x 2 = 0, 0 < x < L t > 0 u(0,t) = u(l,t) = 0, t > 0 u(x,0) = f(x), u t (x,0) = g(x), 0 < x < L. har lösningen u(x,t) = ( bk cos kπct L + c k sin kπct ) kπx sin L L, där (b k ) är koefficienterna i sinusutvecklingen av begynnelselägesfunktionen f, och där kπc c k L är koefficienterna i sinusutvecklingen av begynnelsehastigheten g, k =,2,... Denna lösningsformel i fallet c = och g = 0 finns programmerad i scriptet swing. Experimentera med några olika utseenden av begynnelselägesfunktionen f på samma sätt som i värmeledningsfallet. Låt till en början funktionerna vara kontinuerliga, och låt dem inte variera alltför kraftigt eller ha alltför många pucklar. Koefficienterna beräknas med hjälp av koeff, (option? ) varefter man körswing. Ett bra sätt att åskådliggöra lösningen i detta fall är som en animation, där man i en film ser hur strängens utböjning varierar med tiden. Genom att köra skriptet filminsp lagrar MAT- LAB de successiva plottarna från swing i en matris M. Genom att sedan köra movie(m,antal) så visas filmen så många gånger som antal anger. Man kan även påverka hastigheten i uppspelningen, se help movie. Undersök speciellt halvvågsfunktionen funktion och triangelvågenfunktion3, jämför exempel 3.2 (gitarrsträngen) i läroboken. Prova också med funktionerna f=sin(pi*x), f=sin(2*pi*x) och sin(3*pi*x) som begynnelseläge för en svängande sträng. Fråga: Vad kallas det fenomen man ser? Svar: En funktion, som består av en smal puckel, är den vialabpre.m definierade funktion5 = sin(0*pi*x).*(x > 0.4*L).*(X<0.5*L) ; Använd denna som begynnelseläge och gör en film på samma sätt som ovan. 3

Uppgift: Beskriv i ord vad som händer. Extrauppgift. Öppna och titta på skriptet swing.m. På de första raderna kan du utläsa hur långa och många tidssteg som tagits vid filminspelningen. Övertyga dig om att detta gör att filmen visar en tidsperiod av svängningsförloppet, dvs en tidsperiod för grundtonen. Detta gör att höga övertoner blir glest samplade, vilket är störande när man ser på animationen. Tyvärr räcker datorns minne inte till för att göra längre filmer, med kortare tidssteg. Släpp kravet att man skall se en hel period, och ändra tidsperioden på lämpligt sätt. Gör sedan en film med en krångligare begynnelsevärdesfunktion. Stäng MATLAB! 4

Förberedelser: Namn:. Betrakta funktionen f(x) = { x då 0 x då x 2 På intervallet 0 x 2 kan funktionen f då beskrivas t ex med en trigonometrisk Fourierserie, en cosinusserie eller en sinusserie. a) Rita i koordinatsystemet nedan den trigonometriska Fourierseriens summa då 4 x 4. y 4 3 2 2 3 4 x Vilken period T har den trigonometriska Fourierserien? T = b) Rita i koordinatsystemet nedan cosinusseriens summa då 4 x 4. y 4 3 2 2 3 4 x Vilken period T har cosinusserien? T = c) Rita i koordinatsystemet nedan sinusseriens summa då 4 x 4. y 4 3 2 2 3 4 x Vilken period T har sinusserien? T = 5

2. Låt u vara lösningen till svängningsproblemet 2 u t 2 c2 2 u x 2 = 0 0 < x < L,t > 0 u(0,t) = u(l,t) = 0 t > 0 u(x,0) = f(x),u t (x,0) = g(x) 0 < x < L För att lösa problemet kan det vara lämpligt att utveckla u, f och g i lämplig serie. Vilken typ av serie är den lämpliga? 3. I figuren nedan är några nivåkurvor till en funktion u ritade med hjälp av Maple. Rita i figuren in grad u(a) och grad u(b). Den exakta längden av gradienterna kan inte bestämmas men det ska framgå vilken gradient som är längst. Punkterna A och B är finns i figuren..4.2 u(x,y) = 5 u = 6 u = 7 u = 8 u = 9 u = 0 A y 0.8 0.6 0.4 0.2 B 0.2 0.4 0.6 0.8.2.4 x 6