Lydelsen till Lab.3

SF1518,SF1519,numpbd15
Laboration 3 i Numeriska Metoder och Programmering, ht 2015
DIFFERENTIALEKVATIONER
OBS! Rapportanvisningar på sista sidan
Deluppgifterna 1a, 1b, 2a, 2b, 2c redovisas i form av en rapport som gruppen lämnar in utskriven på papper, i brevlådan vid studentexpeditionen på Matematik senast
torsdag 22/10 2015.
Anvisningar för rapportens utformning, finns här på sista sidan.
Rapport som är godkänd och inlämnad i tid ger 1.5 bonuspoäng till tentamen.
1. Pendelrörelse
Rörelsen hos en pendel beskrivs av Newtons kraftekvation:
mL
d2 ϕ
+ mg sin (ϕ) = 0
dt2
I denna andra ordningens icke–linjära differentialekvation är m massan, L pendelns
längd och g tyngdkraftaccelerationen.
1a. Svängningstiden – numerisk integration
Här ska svängningstiden för pendeln beräknas.
Svängningstiden T beror av utslagsvinkeln ϕ0 enligt formeln:
s
T =4
L
I(ϕ0 )
g
där L är pendelns längd, g är tyngdkraftaccelerationen och
Z π/2
I(ϕ0 ) =
0
p
dϕ
,
1 − k 2 (sin ϕ)2
k = sin
ϕ0
2
Låt L = 0.25 och g = 9.81 m/s2 . Skriv ett program som beräknar svängningstiden
T för ϕ0 -värden motsvarande 5, 10, . . . , 90 grader. (Observera att integralen ovan är
uttryckt i radianer och att argumentet till funktionen sin i MATLAB uttrycks i
radianer.) För att beräkna integralen I(ϕ0 ) används MATLABs funktion integral.
Plotta resultatet, dvs T som funktion av ϕ0 i en graf (plotbild 1).
En ofta använd approximation av T är svängningstiden för små svängningar:
s
T̃ = 2π
L
g
Denna approximation är bra för små utslagsvinklar, men relativfelet ökar med ökande
utslagsvinkel. Plotta T̃ -värdet i samma graf som ovan, dvs plotbild 1.
Gör även en graf som visar det procentuella relativfelet i T̃ , dvs 100 ∗ (T − T̃ )/T som
funktion av utslagsvinkeln då 5 ≤ ϕ0 ≤ 90 grader, plotbild 2.
1b. Simulering av pendelrörelsen – begynnelsevärdesproblem
Om pendeln startar från stillastående med en given utslagsvinkel ϕ0 , ges begynnelsevillkoren av
dϕ
ϕ(0) = ϕ0 ,
(0) = 0
dt
Skriv om systemet på vektorform, dvs
du
= f (u)
dt
Skriv den MATLAB–funktion som svarar mot högerledet.
Simulera pendelns rörelse genom att anropa MATLAB-funktionen ode45. Tänk
vid funktionsdefinitionen på att ode45 internt kan använda er funktion på vektorer.
Välj själv ett lämpligt tidsintervall och några startvinklar ϕ0 och skriv ut en graf över
vinkeln ϕ som funktion av tiden t. Låt parametrarna i problemet ha samma värden
som i deluppgift 1: L = 0.25 och g = 9.81. Avläs i grafen svängningstiden T och jämför
med det värde du får i deluppgift 1.
2. Stationär värmeledning – randvärdesproblem
Randvärdesproblemet
d
− dx
k(x) dT
dx = Q(x),
T (0) = T0 ,
0<x<L
(1)
T (L) = TL
(2)
beskriver temperaturfördelningen T (x) i en cylindrisk stav av längden L. Här är k(x)
stavens värmeledningsförmåga och Q(x) den värmemängd som per tidsenhet och volymsenhet genereras i staven, t.ex. genom radioaktivitet. Vänster och höger ändpunkt
på staven hålls vid konstant temperatur T0 respektive TL .
Antag att L = 3.4 [m], T0 = 373 [K], TL = 295 [K], samt att k(x) [J/(K · m · s)]
ges av det styckvisa polynomet
k(x) = 5,
k(x) = c0 + c1 (x − 2.4) + c3 (x −
0 < x < 2.3
2.4)3
+ c5 (x −
2.4)5 ,
k(x) = 1,
c0 = 3,
c1 = −3.75 · 101 ,
2.3 ≤ x ≤ 2.5
2.5 < x < L
c3 = 2.5 · 103 ,
c5 = −7.5 · 104 ,
Visa att k(x) och k 0 (x) är kontinuerliga!
Q(x) [J/(s · m3 )] ges av funktionen
2
Q(x) = 300e−3(x−1) ,
0 < x < L.
Differentialekvation (1) med randvillkoren (2) kan lösas numeriskt med hjälp av
finita differensmetoden. Om vi diskretiserar intervallet [0, L] enligt xi = ih, i =
0, 1, 2, . . . , N − 1, N , där h · N = L, sätter y(xi ) ≈ yi och approximerar andraderivatan med centraldifferens erhålles ett linjärt ekvationssystem
AT = b
(3)
där A är en matris, T är en vektor som innehåller temperaturvärden, och b är en
vektor som beror av Q(xi )-värdena samt temperaturen i stavens ändpunkter.
a) Skriv ner matrisen A och vektorerna T och b för N = 4 med papper och
penna uttryckt i k, k 0 , och
Q. Vilken struktur har
matrisen A?
df (x)
dg(x)
d
Ledning: dx (f (x)g(x)) = dx g(x) + f (x) dx
b) Skriv en MATLAB-funktion som löser randvärdesproblemet och räknar ut ett
närmevärde för temperaturen T i punkten x = 1. Låt funktionen ta antalet delinterval,
N , som indata, och returnera närmevärdet till T (1) som utdata. Testa funktionen med
t.ex. N = 17, N = 34, och N = 68. Tar programmet lång tid att köra? Här är två
tips för snabbare program:
• Matrisen A kommer endast att ha ett fåtal nollskilda element. Kommandot
sparse är ett kommando för att skapa glesa matriser eller för att tala om för
MATLAB att matrisen kan lagras glest. MATLAB-satsen A=sparse(A) ändrar
till gles lagring i MATLAB.
• Hur mycket skall felet minska då steglängden halveras? Gör det det i ditt program?
c) Skriv ett MATLAB-program som använder funktionen i b) till att räkna ut
temperaturen T i punkten x = 1 med 4 säkra decimaler. (Glöm inte att visa vad du
gjort som gör att du vågar lita på dina 4 decimaler.) Plotta också temperaturen som
funktion av x på hela intervallet 0 ≤ x ≤ L.
ANVISNINGAR för rapporten om deluppgifterna 1a, 1b, 2a, 2b, 2c
Deluppgifterna i Lab 3 redovisas i form av en rapport, utskriven på papper. En
rapport per grupp lämnas in! Rapporten kan författas på svenska eller engelska.
Målsättningen med en teknisk rapport är att ge läsaren en välskriven, väldisponerad
och sammanfattande beskrivning av t.ex. en teknisk utredning, undersökning eller experiment. Tekniska rapporter följer vanligen ett visst mönster vad gäller dispositionen.
Man ska tänka på vilken målgrupp som rapporten vänder sig till. I detta fall kan man
tänka sig en civilingenjör med till hälften glömda kunskaper i numeriska metoder,
d.v.s. du om några år.
Rapporten ska vara en skrift, där avsnitten 4-5 nedan upptar 4-7 sidor.
Rapporten ska innehålla:
1. En speciell försättssida som Matematikinstitutionen vill ha den. Länk finns på
kursens webbplats.
2. Ett omslag som innehåller rapportens titel, författarnas namn och personnummer, program och inskrivningsår på KTH, kursens namn och kurskod och gärna
en figur.
3. En sida med kort sammanfattning på svenska (ca 5-8 rader) och samma sammanfattning på engelska.
4. En kort beskrivning av de bakomliggande problemen (totalt 2-3 sidor):
För deluppgift 1 och 2, den matematiska pendeln, pendelns ekvation, några
rader om vilka fysikaliska förutsättningar som gäller för att ekvationen ska gälla,
exempel på beräkningar som kan utföras för en pendel
För deluppgift 3 motsvarande för värmeledningsproblemet.
5. Det viktigaste: Beskrivning av de beräkningar som gjorts i uppgifterna.
Namnge metoder som använts, hur algoritmerna utformats, resultat presenterade med numeriska värden och grafer. Grafer ska vara försedda med rubrik,
variabelnamn vid axlarna, eventuell förklarande text i grafen. Grafer kan ingå
insprängda i texten eller med referens till sidor i appendix.
Kommentarer om resultatens rimlighet och noggrannhet. (totalt 2-4 sidor)
6. Eventuella referenser
7. Appendix: MATLAB-program och eventuella grafer.
OBS! INGA MATLAB-program i själva rapporten. MATLAB-program SKA
bifogas som appendix i slutet av rapporten. Använd gärna MATLAB-funktionen
publish.