6 svar
230 visningar
Omet är nöjd med hjälpen
Omet 3
Postad: 26 nov 2020

Fixpunktsmetoden med bakåt-Euler

Hej, vi har lite problem att förstå hur vi ska implementera detta till kod. Vi förstår problemet och hur man kan lösa det, men när vi skriver våran kod blir det som en vanlig bakåt-Euler metod utan FPI. Ett exempel hade varit till stor hjälp.

jatorkob 10
Postad: 1 dec 2020

Har ni löst denna?

Albiki 5320
Postad: 1 dec 2020

Hej,

Bakåt-Euler ger er systemet

    xn+1=xn+Fh(xn)x^{n+1}=x^{n}+F_h(x^{n})

där vektorfunktionen FhF_h bestäms av funktionerna ff och gg och steglängden hh. Systemet kan skrivas som

    xn+1=Gh(xn)x^{n+1} = G_h(x^{n})

där du definierar vektorfunktionen Gh(y)=y+Fh(y)G_h(y) = y+F_h(y).

jatorkob 10
Postad: 1 dec 2020 Redigerad: 2 dec 2020
Albiki skrev:

Hej,

Bakåt-Euler ger er systemet

    xn+1=xn+Fh(xn)x^{n+1}=x^{n}+F_h(x^{n})

där vektorfunktionen FhF_h bestäms av funktionerna ff och gg och steglängden hh. Systemet kan skrivas som

    xn+1=Gh(xn)x^{n+1} = G_h(x^{n})

där du definierar vektorfunktionen Gh(y)=y+Fh(y)G_h(y) = y+F_h(y).

Förstår tack!

Om vi ska iterera med fixpunktsmetoden, är antalet iterationer godtyckligt valda eller använder vi oss av antalet tidssteg?

Albiki 5320
Postad: 2 dec 2020 Redigerad: 2 dec 2020

Vad du kan göra är att dela in tidsintervallet [tn,tn+1][t_n,t_{n+1}] i mm stycken delintervall med steglängder hmh_m och köra FPI mm gånger för att finna god approximation till x(tn+1)x(t_{n+1}) med utgångspunkt från xnx^n; välj mm tillräckligt stort för att få hyfsad konvergens. 

jatorkob 10
Postad: 2 dec 2020
Albiki skrev:

Vad du kan göra är att dela in tidsintervallet [tn,tn+1][t_n,t_{n+1}] i mm stycken delintervall med steglängder hmh_m och köra FPI mm gånger för att finna god approximation till x(tn+1)x(t_{n+1}) med utgångspunkt från xnx^n; välj mm tillräckligt stort för att få hyfsad konvergens. 

Tack!!!!!

Albiki 5320
Postad: 2 dec 2020 Redigerad: 2 dec 2020

Korrigering: Metoden som jag skrivit tidigare är Framåt Euler, men frågan gällde Bakåt-Euler.

    xn+1=xn+Fh(xn+1)x^{n+1} = x^{n} + F_h(x^{n+1})

där vektorfunktionen FhF_h bestäms av steglängd hh och funktionerna ff och gg. För att finna xn+1x^{n+1} behöver man lösa det icke-linjära ekvationssystemet

    Gh(y)=yG_h(y)=y

där vektorfunktionen Gh(y)=xn+Fh(y).G_h(y) = x^n+F_h(y).

För varje xnx^n skapas en följd (ykn)k=0(y_k^n)_{k=0}^\infty där

    y0n=xnyk+1n=Ghykn.\displaystyle y_0^n=x^n\\y_{k+1}^n=G_h\left(y_k^n\right).

Om GhG_h är en kontraktion så kommer följden att konvergera mot en fixpunkt till GhG_h vilken är den sökta vektorn xn+1x^{n+1}.

    xnyknk=0xn+1\displaystyle x^n \stackrel{\left(y_k^n\right)_{k=0}^{\infty}}{\longrightarrow} x^{n+1}

Svara Avbryt
Close