6 svar
1141 visningar
Omet behöver inte mer hjälp
Omet 3 – Fd. Medlem
Postad: 26 nov 2020 11:48

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 6 – Fd. Medlem
Postad: 1 dec 2020 23:17

Har ni löst denna?

Albiki 5096 – Fd. Medlem
Postad: 1 dec 2020 23:42

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 6 – Fd. Medlem
Postad: 2 dec 2020 00:35 Redigerad: 2 dec 2020 01:16
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 5096 – Fd. Medlem
Postad: 2 dec 2020 01:10 Redigerad: 2 dec 2020 01:10

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 6 – Fd. Medlem
Postad: 2 dec 2020 01:17
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 5096 – Fd. Medlem
Postad: 2 dec 2020 02:56 Redigerad: 2 dec 2020 03:02

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
Close