Vetenskapliga beräkningar III 139 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. 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. Som exempel på några av de vanligaste partiella differentialekvationerna av andra ordningen, som uppträder i fysiken, kan vi nämna u t = κ 2 T ρc x 2 (värmeledningsekvationen), 2 u t 2 = v2 2 u x 2 (vågekvationen), och 2 u = ρ ɛ (Poissons ekvation). 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. 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
Vetenskapliga beräkningar III 140 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 och t = 2 u. Med hjälp av dessa beteckningar kan differentialekvationen x y y 2 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 med kända värden av u, p och q. Men hur skall vi beräkna r, s och t i en godtycklig punkt på kurvan? Antag att dess 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 ± b2 ac)/a. Egentligen kommer varje punkt i planet att tillordnas två riktningar, som definierar två kurvfamiljer, som kallas karaktäristiker. 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)
Vetenskapliga beräkningar III 141 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 oskillationer, 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. 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. 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) som en ny variabel i vågekvationen, så kan t 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.
Vetenskapliga beräkningar III 142 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. 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. 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. Detta kan man visa genom att beräkna förstärkningsfaktorn. 2 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. 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
Vetenskapliga beräkningar III 143 κ 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 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. Å 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ärmeutbyte: u(2l,t) = 0). Vi skall också anta begynnelsevillkoret u(x, 0) = 1000 sin(πx/4). Det första randvillkoret går lätt att sätta x in i differensekvationen ovan eftersom u 0,j = 1000 sin(8πt j /3). Som vi ser, kan differensekvationen ovan omskrivas i formen (obs: κ = ρc) u i,j+1 = t/h 2 u i 1,j + (1 2 t/h 2 )u i,j + t/h 2 u i+1,j. Om vi nu t.ex. väljer h = 1 och 4 t/h2 = 1 2 ekvationen 1 (alltså t = ) så får vi den enkla 32 u i,j+1 = 1 2 (u i 1,j + u i+1,j ), 1 i 8, j = 0, 1, 2,... eftersom termen som innehåller u i,j försvinner. 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 låter tidsderivatan stå kvar: du i dt = h 2 (u i 1 2u i + u i+1 ), (i = 1, 2,..., n).
Vetenskapliga beräkningar III 144 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. 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 dt = Au + f(t). Man kan visa, att alla egenvärden av matrisen A är reella och negativa, samt att ett av dem är ganska nära 4/h 2, 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. 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. 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 145 På ett sådant nät kan man approximera Laplace operatorn 2 med fempunktsoperatorn 2 5: 2 u = 2 u x 2 + 2 u y 2 2 5u ij = u i+1,j 2u i,j + u i 1,j h 2 Härav följer differensekvationen + 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 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. Genom att kombination av denna information kan vi uttrycka differensekvationen i formen Au = h 2 f, där A är en matris som är tridiagonal med fransar. 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.
Vetenskapliga beräkningar III 146 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. 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. 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. 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 u i+1,j+1 + u i 1,j 1 + u i+j,j 1 + u i 1,j+1 4u ij 3 2h 2 Genom att utnyttja Poissons ekvation ( 2 u = f) kan vi nämligen visa, att 2 9u = 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 9u ij = f ij + h 2 2 9f ij /12 istället för den ursprungliga, så blir avkortningsfelet endast O(h 4 ).