Kapitel 9. Partiella differentialekvationer Partiella differentialekvationer är mycket vanliga i den tillämpade fysiken. De bäst kända tillämpningarna är måhända numeriska väderförutsägelser, varvid förändringarna i atmosfären beskrivs med ett system av partiella differentialekvationer med två till tre rumsvariabler, och en tidsvariabel. Utgångsvärdena fås från de senaste meteorologiska observationerna från ett område på jorden. Med en snabb dator (superdator) räcker det kanske någon timme att beräkna atmosfärens flödesförändringar under t.ex. några dagar. Partiella differentialekvationer uppträder också i elasticitetsteorin, i elektromagnetismen (Maxwells ekvationer) och kvantmekaniken. För att lösa dessa partiella differentialekvationer använder man oftast differensmetoder, varvid man lägger ett finmaskigt fyrdimensionellt gitter över det område som man vill studera. Att beräkna funktionsvärden i varje punkt är naturligtvis mycket tidsödande och kräver snabba datorer. Ofta är det dock möjligt att reducera antalet dimensioner genom att utnyttja symmetriegenskaper, eller genom att separera variablerna. Här skall vi nöja oss med att ge en liten inblick i de vanligaste problemen som uppträder. Vetenskapliga beräkningar III, Tom Sundius 2008 1
Som exempel på några av de vanligaste partiella differentialekvationerna av andra ordningen, som uppträder i fysiken, kan vi nämna u 2 u (värmeledningsekvationen), (vågekvationen), och t = κ ρc x 2 2 u t 2 = v2 2 u x 2 (Poissons ekvation). 2 u = ρ ɛ Vi skall för enkelhetens skull anta, att differentialekvationen är linjär och av andra ordningen i derivatorna. Den kan då framställas i formen a 2 u x 2 + 2b 2 u x y + c 2 u y 2 = d, analogt med ekvationen för ett kägelsnitt (ax 2 + 2bxy + cy 2 = d), där a, b, c och d är funktioner av x, y, u, u/ x och u/ y. Vetenskapliga beräkningar III, Tom Sundius 2008 2
Om vi inför beteckningarna p = u/ x och q = u/ y för de partiella derivatorna av u i avseende på koordinaterna x och y, så kan de totala differentialerna i avseende på u, p och q uttryckas du = u u dx + dy = pdx + qdy x y dp = ( ) u dx + ( ) u dy = rdx + sdy x x y x dq = ( ) u dx + ( ) u dy = sdx + tdy, x y y y där de partiella derivatorna av andra ordningen har betecknats med r = 2 u x 2, s = 2 u x y och t = 2 u y 2. Med hjälp av dessa beteckningar kan differentialekvationen uttryckas helt enkelt som ar + 2bs + ct = d. Då vi studerade ordinära differentialekvationer av andra ordningen hade vi två utgångsvillkor, t.ex. y 0 = y(x 0 ) och y 0 = y (x 0 ). När vi nu behandlar partiella differentialekvationer är det naturligt att använda en liknande procedur. Vi kan då försöka ersätta utgångspunkten med en utgångskurva där värdena av u, p och q är kända. Men hur skall vi beräkna r, s och t i en godtycklig punkt på kurvan? Vetenskapliga beräkningar III, Tom Sundius 2008 3
Antag att kurvans ekvation är given i parameterform: x = x(τ), y = y(τ). Eftersom vi antas känna till värdena av u, p och q längs kurvan, så kan vi uttrycka dem som funktioner av parametern τ: u = u(τ), p = p(τ) och q = q(τ). Om primbeteckningen anger derivering i avseende på τ, så följer av formlerna för de totala differentialerna x r +y s = p x s +y t = q ar +2bs +ct = d. Ur detta ekvationssystem kan vi lösa r, s och t i avseende på τ, förutsatt att systemets determinant D 0. Genom uträkning får vi D = ay 2 2bx y + cx 2. Överraskande nog visar det sig, att det intressantaste specialfallet uppträder då D = 0. Lösningarna till denna ekvation utgör två riktningar y /x = dy/dx = (b ± b 2 ac)/a. Egentligen kommer varje punkt i planet att tillordnas två riktningar, som definierar två kurvfamiljer, som kallas karaktäristiker. Vetenskapliga beräkningar III, Tom Sundius 2008 4
Karaktäristikerna är reella, om b 2 ac, men imaginära om b 2 < ac. Härav följer att varje lineär partiell differentialekvation, kan reduceras till någon av tre standardformer (i analogi med motsvarande klassificering av kägelsnitt): a) elliptiska ekvationer med b 2 ac < 0 (ex: Poissons ekvation) b) paraboliska ekvationer med b 2 ac = 0 (ex: värmeledningsekvationen) c) hyperboliska ekvationer med b 2 ac > 0 (ex: vågekvationen) Som man lätt inser, kan en ekvation vara elliptisk inom ett område och hyperbolisk i ett annat. Hyperboliska ekvationer uppträder i samband med oscillationer (t.ex. vågekvationen), och paraboliska har att göra med diffusion. Ett specialfall är Schrödingers ekvation. Elliptiska ekvationer uppträder i samband med jämviktstillstånd och potentialproblem. Vid lösning av differentialekvationer brukar man ofta skilja mellan a) initialvärdesproblem, där alla randvillkor ges i en enda punkt (t.ex. t = 0), så funktionsvärden för t > 0 kan beräknas steg för steg, och b) randvärdesproblem i avs. på en variabel x, där endel randvillkor ges i punkten x = 0, och andra i punkten x = a. Vetenskapliga beräkningar III, Tom Sundius 2008 5
Vid behandlingen av ett initialvärdesproblem kommer man alltså att studera, hur funktionen u utvecklas med tiden. Den numeriska beräkningen strävar efter att beskriva funktionens tidsutveckling med önskad noggrannhet. Vid lösningen av ett randvärdesproblem å andra sidan försöker man beräkna en statisk funktion u(x, y) som satisfierar ekvationen inom en region bestämd av koordinaternas värden. Ändamålet med den numeriska beräkningen är att den skall konvergera mot den rätta lösningen överallt inom denna region. På grund av att de två typerna av problem är så olika, är det därför viktigt att först avgöra vilken av dessa problemtyper som det är fråga om, innan man försöker lösa en partiell differentialekvation. Vetenskapliga beräkningar III, Tom Sundius 2008 6
9.1. Initialvärdesproblem Ett typiskt initialvärdesproblem är den tidsberoende diffusionsekvationen eller den tidsberoende vågekvationen. Några initialvärdesproblem är olinjära, som t.ex. Navier-Stokes ekvation i hydrodynamiken. En ekvation, som innehåller derivator av högre ordning kan skrivas som ett ekvationssystem som endast innehåller derivator av första ordningen. Om vi t.ex. väljer hastigheten v(x, t) = u(x,t) t som en ny variabel i vågekvationen, så kan denna uttryckas ett system av två kopplade differentialekvationer u(x, t) t 1 v(x, t) c 2 t = v(x, t) = v 2 2 u x 2 vilket är ekvivalent med den ursprungliga ekvationen. Detta innebär, att vi kan använda differensekvationer, som endast innehåller derivator av första ordningen i avseende på tiden. Differensekvationerna som vi konstruerar på detta sätt påminner om de ekvationer som härleddes för ordinära differentialekvationer, men de metoder som används för att beräkna differenserna kommer inverka på beräkningens stabilitet och noggrannhet. Vetenskapliga beräkningar III, Tom Sundius 2008 7
Som ett exempel skall vi studera den endimensionella diffusionsekvationen (eller värmeledningsekvationen) u(x, t) t = D 2 u(x, t) x 2 + S(x, t), där u är koncentrationen, D diffusionskonstanten och S(x, t) är källfunktionen. Detta är ett exempel på en parabolisk differentialekvation. Om vi approximerar tidsderivatan med en differens över ett tidsintervall t och andra derivatan i avseende på x med trepunktsformeln över intervallet h (jfr föregående kapitel) så får vi differensekvationen (Eulers metod) u i (t + t) = u i (t) + γ[u i 1 (t) 2u i (t) + u i+1 (t)] + ts i (t), där u i (t) = u(x i, t) och γ = D t/h 2. Vi kan lösa problemet om vi känner begynnelsevärdet u(x, 0) och källfunktionen S(x, t). Emellertid är Eulers metod i detta fall instabil om γ är större än 1 2. Detta kan man visa genom att beräkna förstärkningsfaktorn. En bättre metod är Crank-Nicolsons metod, där Eulers metod har modifierats genom att beräkna medeltalet av den andra derivatan i avseende på x och källfunktionen i punkterna t och t + t: u i (t + t) = u i (t) + 1 2 [δ2 u i (t) + ts i (t)] + 1 2 [δ2 u i (t + t) + ts i (t + t)], där uttrycket δ 2 u i (t) = γ[u i 1 (t) 2u i (t) + u i+1 (t)] är proportionellt mot trepunktsformeln. Vetenskapliga beräkningar III, Tom Sundius 2008 8
Denna iterativa formel kan omskrivas i formen (2 δ 2 )u i (t + t) = (2 + δ 2 )u i (t) + t[s i (t) + S i (t + t)], där alla de termer som skall beräknas nu uppträder i vänstra membrum. Vi skall nu studera mera ingående ett exempel på värmeledning, vars differentialekvation är mycket lik diffusionsekvationen. Låt oss anta, att vi vill beräkna temperaturvariationerna i en homogen vägg, där temperaturen är högre på den ena sidan än på den andra. Om ena sidan av väggen har koordinaten x = 0, och den andra x = 2L, så kan vi dela upp väggen i n 1 stycken jämntjocka skikt med tjockleken h = 2L/n, så att skiktens medelpunkter får koordinaterna x i = ih. Låt oss beteckna temperaturen vid tidpunkten t j = j t med u ij = u(x i, t j ). Värmeflödet förbi en viss punkt är då lika med en konstant (κ = värmeledningsförmågan) gånger u/ x, där derivatan beräknas i ifrågavarande punkt. Om detta tillämpas på ett skikt med mittpunkten x i, finner man att flödet, som kommer in från vänster är κ u x x=x i 1/2, medan flödet som kommer ut till höger är κ u x x=x i+1/2. Om vi approximerar dessa storheter med differenskvoter, så kan värmeflödet genom det i:te skiktet under tidsintervallet t = t j+1 t j uttryckas som Q = ( κ u i,j u i 1,j h + κ u ) i+1,j u i,j t = κ h h (u i+1,j 2u i,j + u i 1,j ) t. Vetenskapliga beräkningar III, Tom Sundius 2008 9
Å andra sidan är flödet genom ett tunt lager approximativt lika med temperaturförändringen i mittpunkten av skiktet. I ett skikt vars mittpunkt är x i, blir värmeflödet således proportionellt mot temperaturförändringen u i,j+1 u i,j, dvs Q = (u i,j+1 u i,j )ρch, där c betecknar det specifika värmet och ρ densiteten. Genom att kombinera de båda ekvationerna fås slutligen u i,j+1 u i,j = κ t ρc h (u 2 i+1,j 2u i,j + u i 1,j ). Genom att dividera med t och låta h, t 0, fås den tidigare angivna värmeledningsekvationen. I fortsättningen skall vi för enkelhetens skull anta κ = ρc. Randvillkoren kan anges på olika sätt, men vi skall här anta, att temperaturen i x = 0 anges av u(0, t) = 1000 sin(8πt/3), och att systemet är helt isolerat i punkten x = 2L (dvs intet värmeflöde: u(2l,t) x = 0). Vi skall också anta begynnelsevillkoret u(x, 0) = 1000 sin(πx/4). Om det första randvillkoret insätts i differensekvationen ovan fås u 0,j = 1000 sin(8πt j /3). Det andra randvillkoret kan beaktas genom att införa en ny punkt x n+1 varvid 0 = u(2l, t j) x u n+1,j u n 1,j 2h eller u n+1,j = u n 1,j j. Vetenskapliga beräkningar III, Tom Sundius 2008 10
Eftersom u n 1,0 är känd, och u n+1,0 = u n 1,0, så kan man beräkna u(x i, t j ) för alla värden (i, j) med hjälp av differensekvationen. Om vi t.ex. väljer h = 1 4 och t/h2 = 1 1 2 (alltså t = 32 ) så får vi den enkla ekvationen (obs. att u i,j försvinner) u i,j+1 = 1 2 (u i 1,j + u i+1,j ), 1 i 8, j = 0, 1, 2,... Med dessa värden kan randvillkoren och begynnelsevillkoret uttryckas: u i,0 = 1000 sin(πi/16), u 0,j = 1000 sin(πj/12), u 9,j = u 7,j. Beräkningarna kan lämpligen arrangeras i ett tvådimensionellt schema. Man kan tillämpa några idéer lånade från lösningsmetoderna för ordinära differentialekvationer genom att approximera värmeledningsekvationen med ett system av ordinära differentialekvationer. Detta tillgår så, att man approximerar 2 u/ x 2 med differenser som förut, men approximerar inte tidsderivatan: du i /dt = h 2 (u i 1 2u i + u i+1 ), (i = 1, 2,..., n). Av begynnelse- och randvillkoren följer då u 0 (t) = 1000 sin(8πt/3), u n+1 u n 1 2h = 0 u n+1 = u n 1. Vetenskapliga beräkningar III, Tom Sundius 2008 11
Dessa ekvationer kan uttryckas i vektorform, om man inför beteckningarna u = (u 1, u 2,..., u n ) T, f(t) = h 2 (u 0 (t), 0,..., 0) T, 2 1 0 0... 0 0 1 2 1 0... 0 0 0 1 2 1... 0 0 A = : :. : : 0 0 0 0... 2 1 0 0 0 0... 1 2 Vi får då ekvationen du = Au + f(t). dt Man kan visa, att alla egenvärden av matrisen A är reella och negativa. Av Gerschgorins teorem följer att för egenvärdena gäller λ + 2 h 2 2 h 2. Ett av dem är ganska nära 4/h2, vilket leder till att ekvationssystemet är stabilt (i själva verket t.o.m. stelt, ifall h är litet). Om man tillämpar Eulers metod på detta system får man de ursprungliga differensekvationerna. Som vi redan nämnt, är Eulers metod stabil, ifall t/h 2 1 2. Noggrannare resultat får man med hjälp av Crank-Nicolsons metod, som är stabil för alla positiva värden av h och t. Vetenskapliga beräkningar III, Tom Sundius 2008 12
9.2. Ett randvärdesproblem För att kunna lösa Poissons ekvation 2 u = f(x, y) behöver vi randvillkor, dvs vi måste ange värden av u eller u/ n på gränsytan av ett slutet område (n betecknar här normalen mot gränsytan). Ett specialfall av Poissons ekvation är Laplaces ekvation, som man får om man sätter f(x, y) = 0. Här har vi alltså att göra med elliptiska differentialekvationer. Låt oss betrakta ett kvadratiskt nät med maskstorleken h, och antaga, att gränsytan antingen består av linjer, som är parallella med koordinataxlarna, eller som bildar 45 vinklar med dem. Vi kan alltså representera funktionen u(x, y) med dess värden i de diskreta punkterna x i = x 0 + ih, i = 0, 1,..., n i y j = y 0 + jh, j = 0, 1,..., n j. Vetenskapliga beräkningar III, Tom Sundius 2008 13
På ett sådant nät kan man approximera Laplace operatorn 2 med fempunktsoperatorn 2 5 : som i stencilformat kan skrivas 2 u = 2 u x 2 + 2 u y 2 2 5 u ij = u i+1,j 2u i,j + u i 1,j h 2 + u i,j+1 2u i,j + u i,j 1 h 2 = u i+1,j + u i 1,j + u i,j+1 + u i,j 1 4u i,j h 2 2 5 = 1 h 2 där beteckningarna framgår av figuren nedan: 1 1 4 1 1 h, Vetenskapliga beräkningar III, Tom Sundius 2008 14
Härav följer differensekvationen u i+1,j + u i 1,j + u i,j+1 + u i,j 1 4u i,j = h 2 f i,j. Emedan differensekvationen ovan grundar sig på en approximation av derivatorna som har ett avrundningsfel av storleksordningen O(h 2 ), så kan man vänta sig ett fel av motsvarande storleksordning i lösningen. Om man numrerar punkterna i nätet enligt ett visst schema, så kan man bilda en vektor av n funktionsvärden u = (u 1, u 2,..., u n ) T. Detta går till så, att man transformerar det tvådimensionella nätet till en endimensionell räcka genom definitionen k i(n j + 1) + j, i = 0, 1,..., n i, j = 0, 1,..., n j Indexet i kommer alltså att växa snabbast längs de kolumner, som representerar y värdena. Differensekvationen ovan kan alltså skrivas i formen u k+nj +1 + u k nj 1 + u k+1 + u k 1 4u k = h 2 f k Denna ekvation gäller dock endast i de inre punkterna i = 1, 2,..., n i 1; j = 1, 2,..., n j 1. De övriga punkterna är randpunkter, där antingen u eller dess derivata är känd. Vetenskapliga beräkningar III, Tom Sundius 2008 15
Genom att kombination av denna information kan vi uttrycka differensekvationen i formen där A är en matris som är tridiagonal med fransar. Au = h 2 f, I Dirichlets problem är endast värdena av funktionen u bestämda på gränsytan. Därvid gäller följande villkor: a) f består dels av f i,j, och dels av u-värden på gränsytan. b) A i,i = 4 i. c) A i,j = 1 ifall punkten i ligger intill punkten j. I annat fall är A i,j = 0. Av detta följer A i,j = A j,i, dvs A är en symmetrisk matris. d) Ingen punkt gränsar till fler än fyra punkter, varav följer, att A måste vara en bandmatris. Vetenskapliga beräkningar III, Tom Sundius 2008 16
En sådan matris kan t.ex. se ut såhär: 4 1 0 1 0 0 0 0 1 4 1 0 1 0 0 0 0 1 4 1 0 1 0 0 1 0 1 4 1 0 1 0 A = 0 1 0 1 4 1 0 1 0 0 1 0 1 4 1 0 0 0 0 1 0 1 4 1 0 0 0 0 1 0 1 4 För att lösa differensekvationerna, använder man ofta Gauss elimineringsmetod, om inte antalet punkter är mycket stort. Ibland måste man dock välja h så litet, att Gauss metod inte längre lönar sig. I sådana fall är det mera praktiskt att använda successiv överrelaxation (jfr iterativ lösning av ekvationssystem). I denna metod används formeln u (n+1) ij = u (n) ij + ω 4 (u(n+1) i 1,j + u(n+1) i,j 1 + u(n) i+1,j + u(n) i,j+1 4u(n) ij h 2 f ij ) där ω är en relaxationsparameter. Vetenskapliga beräkningar III, Tom Sundius 2008 17
Punkterna i nätet genomgås här i den ordning de blivit numrerade. Iterationsprocessen konvergerar då 0 < ω < 2. Om antalet punkter i nätet är mycket stort, använder man ett värde på ω nära 2. I litteraturen kan man finna regler för hur punkterna borde ordnas, och hur värdet av ω skall väljas för att metoden skall vara effektiv. En god strategi för randvärdesproblem är, att man utgår från ett stormaskigt nät, och använder Gauss elimineringsmetod. Om noggrannheten är otillräcklig, så kan man använda de resultat man uppnått för att konstruera en god utgångspunkt för en ny iterationsprocess med ett finare nät. Metoderna som här beskrivits är också till nytta vid behandlingen av mera komplicerade differentialekvationer. Det finns metoder som är effektivare, men mer komplicerade, såsom t.ex. de symmetriska successiva överrelaxationsmetoderna, som innehåller metoder att accelerera konvergensen. Vid lösningen av Poissons ekvation kan man också använda Fouriermetoder, som vi skall närmare studera i nästa kapitel. Vetenskapliga beräkningar III, Tom Sundius 2008 18
När man löser Poissons ekvation är det ofta fördelaktigare att i stället för fempunktsoperatorn använda niopunktsoperatorn: 2 9 = 2 3 2 5 + 1 3 u i+1,j+1 + u i 1,j 1 + u i+1,j 1 + u i 1,j+1 4u ij 2h 2 = 1 6h 2(u i+1,j 1 + u i 1,j 1 + u i+1,j+1 + u i 1,j+1 + 4u i+1,j + 4u i 1,j + 4u i,j+1 + 4u i,j 1 20u i,j ) = 1 1 4 1 4 20 4 6h 2 1 4 1 h Genom att utnyttja Poissons ekvation ( 2 u = f) kan vi nämligen visa, att 2 9 u = 2 u + h2 4 u 12 + O(h 4 ) = f + h2 2 f 12 + O(h 4 ). Om vi således använder differensekvationen 2 9 u ij = f ij + h 2 2 9 f ij/12 istället för den ursprungliga, så blir avkortningsfelet endast O(h 4 ). Vetenskapliga beräkningar III, Tom Sundius 2008 19