8 svar
1762 visningar
finbel 15
Postad: 8 aug 2017 21:41

Numeriska metoder: Finita differensmetoden på ickelinjärt randvärdesproblem.

Försöker att lära mig finita differensmetoden på ickelinjära randvärdesproblem.


Finita differensmetoden på ickelinjära randvärdesproblem (om ni undrar vad jag vet/inte vet/missförstått): 

Boken går igenom teorin för den finita differensmetoden på det linjära randvärdesproblemet och visar sen hur man även kan lösa ickelinjära randvärdesproblem med ett exempel:

y''+5y2=(6-y)x,     y(0)=1,     y(4)=-1,     0x4
Första delen av lösningen påminner om det linjära problemet:
Vi approximerar yi''yi+1-2yi+yi-1h2 , sätter in det i ekvationen ovan och multiplicerar båda led h2.
yi+1-2yi+yi-1+5h2yi2=6xih2-yixih2
Nu avviker lösningen för ickelinjära randvärdesproblem lite från den linjära formen, man ska samla alla yi-termer i G(yi):

yi-1+G(yi)+yi+1-6xih2=0, där G(yi) =(xih2-2)yi+5h2yi2

Sambanden ger oss (pga y2-termen i G(yi)) det ickelinjära ekvationssystemet:

1G(y1)y2-6h2x1y1G(y2)y3-6h2x2yn-2G(yn-1)yn-6h2xn-1yn-1G(yn)1-6h2xn=0000

Vi löser detta genom Newtons metod beräkna derivatan av G,    G'(yi) =(xjh2-2)+10h2yi och skapar Jakobianen som blir en tridiagonal matris.
J=G'(y1)1001G'(y2)1001G'(yn-1)1001G'(yn)


Problemet:
Jag tittar nu på en uppgift i en extenta som är en applicering av den finita differensmetoden på ett ickelinjärt randproblem:

Vi vill lösa randvärdesproblemet y''(x) =y(x)2+3cos(x) där y(0)=4 och y(π)=0. För att genomföra matrismetoden diskretiserar vi med x0=0, x1=h,...,xn+1=π, och behöver då lösa det olinjära ekvationssystemet f(y¯)=0¯ndär

f(y¯)=Ty¯+α00βωh2y12+3cos(x1)yn2+3cos(xn)

och Tn×n är en tridiagonal matris med -2 på diagonalen och övriga värden är 1 eller 0. Vad är α, β och ω?


Facit ger: (α,β,ω)=(4,0,-) men jag har verkligen ingen aning om hur man löser ut detta? Har bollat lite mer problemet (se nedan) men det känns som att de använt en helt annan algoritm :(

Jag antar att Ty¯+α00βωh2y12+3cos(x1)yn2+3cos(xn)

motsvarar 1G(y1)y2-6h2x1y1G(y2)y3-6h2x2yn-2G(yn-1)yn-6h2xn-1yn-1G(yn)1-6h2xn i exemplet.
Samtidigt verkar de inte samlat allt i en matris eller samlat alla y-termer i en G-funktion.

Förenklar den första med insättning i T och y:
2101221012y0=4y1ynyn+1=0+α00βωh2y12+3cos(x1)yn2+3cos(xn)
Men redan här känner jag att jag är ruskigt mycket ute och cyklar.

Palle Derkert Online 1381 – Admin
Postad: 11 aug 2017 14:55

Jag har tyvärr ingen aning om ämnet, men jag är mäkta imponerad över formlerna du fått ihop, snyggt jobbat!

Hoppas den här bumpningen ger ditt inlägg lite mer uppmärksamhet! :)

Stokastisk 3597 – Fd. Medlem
Postad: 11 aug 2017 15:13 Redigerad: 11 aug 2017 15:14

Edit: Latexkoden pajade ihop, jag orkar inte skriva det igen.

Palle Derkert Online 1381 – Admin
Postad: 11 aug 2017 16:48
Stokastisk skrev :

Edit: Latexkoden pajade ihop, jag orkar inte skriva det igen.

Om problemet var att latex-koden klipps så prova att lägga in ett mellanslag mellan dollartecken och uttrycket. 

Om problemet var att det blev error när du postade så prova att förvandsgranska latex-koden i latex-editorn innan du postar, visas det inte rätt där så kommer det inte posta.

Båda problemen är irriterande, vi vet... 

Guggle 1364
Postad: 12 aug 2017 18:02 Redigerad: 12 aug 2017 18:41

Du har fått:

yi-1+yi+1-h2yi2-2yi-3h2cos(xi)=0 y_{i-1}+y_{i+1}-h^2y_i^2-2y_i-3h^2\cos(x_i)=0

För i=1 ger detta

y0+y2-2y1-h2(y12+3cos(x1))=0 y_0+y_2-2y_1-h^2(y_1^2+3\cos(x_1))=0

För i=n får vi

yn-1+yn+1-2yn-h2(yn2+3cos(xn))=0 y_{n-1}+y_{n+1}-2y_n-h^2(y^2_n+3\cos(x_n))=0

Vi ser att vi kan bygga en tridiagonal matris T för i=1 till n med -2 på diagonalen för att hämta yi y_i och med 1:or för att hämta yi±1 y_{i\pm1} utom för index 0 och (n+1) . Problemet med de saknade elementen för i=1 och i=n löser vi genom att lägga till en vektor som innehåller y0=y(0) y_0=y(0) som första element (i=1) och och yn+1=y((n+1)h)=y(π)=0 y_{n+1}=y((n+1)h)=y(\pi)=0 som sista element (i=n). I övrigt ska denna vektor innehålla nollor.  Vi  ser också hur vi kan bygga en vektor av yi2+3cos(xi) y^2_i+3\cos(x_i) multiplicerat med h2 h^2 för i=1 till n.

Identifikation ger α=y0=y(0)=4    β=yn+1=y(π)=0    ω=- \alpha=y_0=y(0)=4 \qquad \beta=y_{n+1}=y(\pi)=0\qquad \omega=\mathbf{-}

Albiki 5096 – Fd. Medlem
Postad: 13 aug 2017 00:11 Redigerad: 13 aug 2017 00:14

Hej Finbel!

Du börjar med att diskretisera problemets definitionsområde: 

    0=x0<x1<x2<<xn=4, \displaystyle 0 = x_0 < x_1 < x_2 < \cdots < x_{n} = 4,

där avståndet mellan diskretiseringspunkterna är konstant, lika med

    h=xi+1-xi h = x_{i+1} - x_i för i=0,1,2,...(n-1) i = 0,1,2,...(n-1) .

I varje diskretiseringspunkt ( xi x_i ) vill du beräkna det motsvarande funktionsvärdet y(xi) y(x_i) . Eftersom detta är omöjligt -- det kräver att du känner den exakta lösningen till ODE:n -- beräknar du istället en approximation ( yi y_i ) till funktionsvärdet. Det finns flera metoder som man kan använda för att approximera derivator; du använder dig av centraldifferens för att approximera andraderivatan y''(xi). y^{''}(x_i).

    h2y''(xi)yi+1-2yi+yi-1 \displaystyle h^2 y^{''}(x_i) \approx y_{i+1} - 2 y_i + y_{i-1} .

Multiplicera ODE:n med h2 h^2 för att få ekvationen 

    h2y''(x)+5h2y2(x)+h2xy(x)-h26x=0. \displaystyle h^2 y^{''}(x) + 5h^2 y^2(x) + h^2 xy(x) - h^2 6x = 0.

Denna ekvation gäller för alla punkter ( x x ) i definitionsområdet; därför gäller den även i diskretiseringspunkterna ( xi x_i ).

    h2y''(xi)+5h2y2(xi)+h2xiy(xi)-h26xi=0. \displaystyle h^2 y^{''}(x_i) + 5h^2 y^2(x_i) + h^2 x_{i}y(x_i) - h^2 6 x_i = 0.

Du kräver även att ekvationen ska gälla för de approximativa funktionsvärdena yi y_i vilket ger dig följande ekvationssystem.

    yi+1-2yi+yi-1+5h2yi2+h2xiyi-6h2xi=0 \displaystyle y_{i+1} - 2 y_i + y_{i-1} + 5h^2y_i^2 + h^2 x_{i}y_i - 6h^2 x_i = 0 där i=1,2,3,...,(n-1). i = 1,2,3,...,(n-1).

Inför funktionerna Gi(u)=-2u+5h2u2+h2xiu-6h2xi G_{i}(u) = -2u + 5h^2u^2+h^2x_iu-6h^2x_i där i=1,2,3...,(n-1) i = 1,2,3...,(n-1) ; notera att du har en funktion Gi G_i för varje diskretiseringspunkt xi. x_i.

    y0+G1(y1)+y2=0y1+G2(y2)+y3=0y2+G3(y3)+y4=0. \begin{matrix}y_{0} + G_{1}(y_{1}) + y_{2} &=& 0\\ y_{1} + G_{2}(y_{2}) + y_{3} &=& 0\\y_{2} + G_{3}(y_{3}) + y_{4} &=& 0 \end{matrix} .

Detta kan du uttrycka som en icke-linjär matrisekvation

    F(y)=0 {\mathbf{F}}(\mathbf{y}) = \mathbf{0}

där vektorn

    y=y0y1yn {\mathbf{y}} = \begin{pmatrix}y_{0}\\y_{1}\\ \vdots \\ y_{n}\end{pmatrix} .

(Fortsättning följer.) 

Albiki

Albiki 5096 – Fd. Medlem
Postad: 13 aug 2017 00:30

Hej igen!

Du har bytt ut det komplicerade problemet att finna en exakt lösning till ODE:n mot det komplicerade problemet att finna en lösning till den icke-linjära matrisekvationen

    F(y)=0 {\mathbf{F}}(\mathbf{y}) = \mathbf{0}

Det går inte att lösa denna icke-linjära ekvation exakt; istället får du nöja dig med en approximativ lösning. En ofta använd metod för att lösa icke-linjära ekvationer är Newton-Raphsons metod som bygger på att approximera den icke-linjära funktionen med dess motsvarande Taylorpolynom av ordning 1.

    Error converting from LaTeX to MathML

där matrisen DF(y) {\mathbf{DF}}(\mathbf{y}) är funktionalmatrisen för den icke-linjära funktionen F {\mathbf{F}} beräknad i punkten y {\mathbf{y}} ; begreppet funktionalmatris är den flerdimensionella motsvarigheten till första ordningens derivata för endimensionella funktioner. 

(Fortsättning följer, om du vill)

Albiki

Albiki 5096 – Fd. Medlem
Postad: 13 aug 2017 00:35 Redigerad: 13 aug 2017 09:34

Hej igen!

Sambandet som inte visades var att Newton-Raphsons metod bygger på approximationen

    F(u)F(y)+DF(y)(u-y) {\mathbf{F}}({\mathbf{u}}) \approx {\mathbf{F}}({\mathbf{y}}) + {\mathbf{DF}}({\mathbf{y}})({\mathbf{u}}-{\mathbf{y}}) .

Albiki

finbel 15
Postad: 13 aug 2017 11:45

Hej!

Har varit borta över helgen! Ska titta på detta när jag har tid (samt papper och penna) och förhoppningsvis får jag räta på problemet! Tack så hemskt mycket för alla svar!

Svara
Close