Metody matematycznej fizyki - Zimny

Post on 25-Jun-2015

531 views 0 download

Transcript of Metody matematycznej fizyki - Zimny

Metody matematycznej fizyki

Paweł Zimny

Katedra

Elektrotechniki Teoretycznej

i Informatyki

www.ely.pg.gda.pl/Zimny

A. Krupowicz: Metody numeryczne zagadnień początkowych

równań różniczkowych zwyczajnych.

Z. Fortuna, B. Macukow, J. Wąsowski: Metody numeryczne.

G.I. Marczuk: Analiza numeryczna zagadnień fizyki

matematycznej.

D. Poter: Metody obliczeniowe fizyki.

O.C. Zienkiewicz: Metoda elementów skończonych.

Gelfand I.M., Fomin S.W.: Rachunek wariacyjny.

Krzyżański M.: Równania różniczkowe cząstkowe

rzędu drugiego.

Rektorys K.: Variational Methods in Mathematics,

Science and Engineering.

Smirnow W.I.: Matematyka wyższa.

Snedon I.N.: Równania różniczkowe cząstkowe.

Zimny P.: Metody wariacyjne w elektrotechnice.

Równanie różniczkowe zwyczajne rzędu n-go

0x,...,x,x,tf n

przykład: tsinExxx1ax 22

Układ równań różniczkowych I-go rzędu w postaci normalnej:

n21nn

n2122

n2111

x,...,x,x,tfx

............................

x,...,x,x,tfx

x,...,x,x,tfx

Sprowadzenie równania rzędu n do układu n równań naprzykładzie:

tsinExxx1ax 22

oznaczamy:

22

21

1

xxdtd

xdtd

x

xxx

xx

i ostatecznie:

12

2212

21

xxx1atsinEx

xx

Równanie różniczkowe rzędu n może praktycznie zawszebyć zapisane w formie układu n równań I-go rzędu.

Zagadnienie początkowe dla równania różniczkowego:

Przykład: tfxx

całka ogólna: 0xx

texpAx Rozwiązanie:

Całka szczególna metodą uzmienniania stałej:

tftexpA

czyli

t

0

dexpfCA

Rozwiązanie równania: tfxx

ma postać: t

0

dtexpftexpCx

Stałą C wyznaczamy z warunków początkowych

Dla równania różniczkowego I-go rzędu potrzebujemyjeden warunek początkowy:

0x0tx

i dla wyznaczenia stałej C mamy równanie:

Cx0

i rozwiązanie ma postać:

t

00 dtexpftexpxtx

Przykład równania różniczkowego II rzędu:

R0

E C

R

L

t=0

i(t)

uc

cuCi

0uuRCuLC ccc

Warunki początkowe:

ERR

R0u

0c

0RRE

)0(i

ERR

R0u

0c

0RRE

)0(i

Biorąc pod uwagę, że cuCi zapisujemy warunki w postaci:

CRRE

u

ERR

R0u

00tc

0c

Warunków początkowych należy postawić tyle i nie więcej

ile wynosi rząd równania różniczkowego

0uuRCuLC ccc

CRRE

u

ERR

R0u

00tc

0c

Rozwiązanie:

Niech równanie charakterystyczne:

01RCLC 2

ma dwa różne pierwiastki rzeczywiste 21 ,

wtedy całka ogólna ma postać: t2

t1c

21 eAeAtu

Stałe A1 i A2 wyznaczamy z warunków początkowych:

CRRE

u

ERR

R0u

00tc

0c

czyli

CRRE

AA

ERR

RAA

02211

021

Rozwiązując powyższy układ równań wyznaczamy stałea następnie znajdujemy napięcie na kondensatorze.

Podsumowanie:

1. Mamy kłopoty z rozwiązywaniem równań o stałych współczynnikach, jeżeli rząd wyższy od dwóch równanie charakterystyczne jest wielomianem rzędu n i nie znamy wzorów na pierwiastki.2. Równań o zmiennych w czasie współczynnikach i nieliniowych nie potrafimy rozwiązać w ogólnym przypadku często już dla rzędu I-go

Konieczność użycia metod numerycznych

Ze względu na łatwość zbudowania ogólnego algorytmuobliczenia prowadzimy dla układu równań różniczkowych

I-go rzędu w postaci normalnej

który po wprowadzeniu formalnego zapisu w postaci wektorów:

tx

tx

tx

tX

n

2

1

tx

tx

tx

tX

n

2

1

n21nn

n2122

n2111

x,...,x,x,tfx

............................

x,...,x,x,tfx

x,...,x,x,tfx

n21n

n212

n211

x,...,x,x,tf

x,...,x,x,tf

x,...,x,x,tf

X,tF

zapisujemy: X,tFX

X,tFX

Wniosek – Jeżeli opanujemy metodę numerycznego rozwiązywania jednego równania różniczkowego pierwszego rzędu, czyli

x,tfx

to wyniki łatwo uogólnimy na układ n równań I-go rzędu w postaci normalnej

Rozpoczynamy od następującego zadania:

x,tfx

z warunkiem początkowym: 0x0tx

Należy znaleźć rozwiązanie dla t[0,T]

Metoda aproksymacji wielomianowej

metody wielokrokowe

t,xfx

Przyjmujemy algorytm w postaci

p

0i

p

1iininiini1n )t,x(fbhxax

tk=kh

Algorytm nazywamy jawnym, jeżeli sumowanie rozpoczynasię od 0 w przeciwnym przypadku mówimy, że algorytm jest

niejawny

Wyznaczenie współczynników ai, bi.

Metoda jest dokładna, jeżeli rozwiązaniem równania:

t,xfx

jest wielomian stopnia zerowego, czyli równanie ma postać:

0x.

którego rozwiązaniem jest: 0ctx

p

1i0i0 cac

podstawiając do

p

0i

p

1iininiini1n )t,x(fbhxax

mamy ponieważ f(x,t)=0. Dzieląc przez c0

otrzymujemy warunek:

1ap

0ii

Jeżeli współczynniki ai dobierzemy tak, aby spełnićpowyższy warunek, to algorytm jest dokładny dla

wielomianów stopnia zerowego.

Żądamy, aby jeżeli rozwiązaniem równania

01 ctcx

t,xfx

jest wielomian pierwszego stopnia

to algorytm

p

0i

p

1iininiini1n )t,x(fbhxax

jest dokładny.

Równanie spełniane przez wielomian 01 ctcx

ma postać: 1

.

cx czyli c)t,x(f 1

a więc algorytm:

p

0i

p

1iininiini1n )t,x(fbhxax

uwzględniając, że ti=ih przyjmuje postać:

p

1iii

p

0i01i01 cbh]ch)in(c[ach)1n(c

Biorąc pod uwagę, że dla wielomianu stopnia zerowegomamy warunek:

1ap

0ii

Z równania:

p

1iii

p

0i01i01 cbh]ch)in(c[ach)1n(c

otrzymujemy: 1biap

1ii

p

0ii

Powtórzmy jeszcze jako ćwiczenie rozumowanie dla wielomianu II-go stopnia:

012

2 ctctcx

który spełnia równanie 12

.

ctc2x

czyli 12 ctc2)t,x(f

Przyjmując dla skrócenia zapisu tn=0 algorytm:

p

0i

p

1iininiini1n )t,x(fbhxax

zapisujemy:

i uwzględniając:

12inin

012

2in

012

21n

c)ih(c2)t,x(f

c)ih(c)ih(cx

chchcx

p

1i12i

p

0i01

22i01

22 ]cihc2[bh]cihc)ih(c[achchc

a biorąc pod uwagę dwa poprzednie warunki:

1ap

0ii

1biap

1ii

p

0ii

otrzymujemy:

1ib2iap

1ii

2i

Dla wielomianu stopnia k:

011k

1kk

k ctc...tctcx

równie różniczkowe ma postać

12k

1k1k

k

.

c...tc)1k(tkcx

Przyjmując podobnie jak dla drugiego stopnia iht i

k

1m

1mminin

k

0m

mmin

k

0m

mm1n

)ih(mc)t,x(f

)ih(cx

hcx

i podstawiając do:

p

0i

p

1iininiini1n )t,x(fbhxax

otrzymujemy:

p

1i

k

1m

1mmi

p

0i

k

0m

mmi

k

0m

mm )ih(mcbh)ih(cahc

Porównując współczynniki przy tych samych potęgachh i poprzednie k-1 równań znajdujemy:

1)i(bk)i(ap

1i

1ki

p

0i

ki

Algorytm wielokrokowy:

p

0i

p

1iininiini1n )t,x(fbhxax

jest dokładny dla wielomianu stopnia k, jeżeli współczynnikiai, bi spełniają następujący układ k równań:

1ap

0ii

1biap

1ii

p

0ii

1ib2iap

1ii

2i

...............................

1)i(bk)i(ap

1i

1ki

p

0i

ki

Każdy algorytm spełniający warunki dla k>1 nazywamy

zwartym

Liczba niewiadomych do wyznaczenia w algorytmie:

p

0i

p

1iininiini1n )t,x(fbhxax

Współczynników ai wynosi: p+1

Współczynników bi wynosi: p+2

Całkowita liczba niewiadomych: 2p+3

1)i(bk)i(ap

1i

1ki

p

0i

ki

Układ równań:k=0,1,...,n

można spełnić pod warunkiem, że liczba równań n+1 2p+3

W metodzie Adamsa - Bashfortha przyjmujemy p=n-1

Liczba niewiadomych wynosi: 2(n-1)+3=2n+1, więc przy

spełnieniu n+1 równań możemy dowolnie wybrać

n współczynników

Przyjmujemy n-1 współczynników a1=a2=....=an-1=0

Pierwsze

z równań przy spełnieniu powyższych warunków

przyjmuje postać:

1ap

0ii

1a0

Jako n-ty dowolnie wybrany współczynnik przyjmujemy b-1=0A więc schemat Adamsa - Bashfortha jest schematem jawnym

Dla n=1 mamy p=0 i równanie wyznaczające b0

1)i(bk)i(ap

1i

1ki

p

0i

ki

jest 1b0

Przy n=2 będzie p=1 i mamy dwie niewiadome b0 i b1

spełniające układ równań:

21

b

1bb

1

10

czyli21

b;23

b 10

n1.3

1211

b

.

b

b

b

))1n((...)2()1(0

.......

)1n(...410

)1n(...210

1...111

1n

2

1

0

1nnn

2

Ogólnie jeżeli mamy n niewiadomych współczynników bi , to wyznaczamy je z równań

Rozwiązanie powyższego układu równań przedstawia tabela:

Współczynniki bk metoda Adamsa - Bashfortha

n b0 b1 b2 b3 b4 b5

1 1

2 3/2 -1/2

3 23/12 -16/12 5/12

4 55/24 -59/24 37/24 -9/24

5 1901/720 -2774/720 2616/720 -1274/720 251/720

6 4277/1440 -7923/1440 9982/1440 -7298/1440 2877/1440 -475/1440

Algorytm Adamsa - Bashfortha rzędu pierwszego jest

nazywany algorytmem Eulera i ma postać:

iii1i t,xhfxx

Przykład: t30sin10x3x

z warunkiem początkowym x(0)=0

Zapisujemy równanie w postaci normalnej:

x3t30sin10x

czyli w tym przypadku funkcja f(x,t) jest

x3t30sin10t,xf

Wybór kroku całkowania h:

Wybór kroku całkowania h:

Równanie jednorodne ma postać:

0x3x

Całka ogólna tego równania ma postać:

t3expAx

Przebieg rozwiązania jest scharakteryzowany przezwielkość tłumienia, które w tym przypadku wynosi

a=3 i charakterystyczny czas wynosi 1/a=1/3 s. Krok czasowy h należy wybrać co najwyżej

h<1/(10a), co w tym przypadku pozwala wybraćh=0.03s.

Należy również uważnie rozważyć funkcję wymuszającą,która w rozpatrywanym przypadku ma postać:

t30sin10

Okres T zmian analizowanej funkcji wynosi:

s21.0302

T

Rysunek funkcji sinus jest „gładki”, jeżeli podzielimyokres na co najmniej 20 kroków, czyli krok h powinien

wynosić h<T/20, a więc h=0.01s.

t0 h 2h 3h 4h

Z obu ograniczeń h=0.03s i h=0.01s wybieramy mniejszyczyli w tym przypadku przyjmujemy h=0.01s.Algorytm przy przyjętym kroku h ma postać:

nn1n x3n01.030sin1001.0xx

x0=0

i mamy: 02955.00301.030sin1001.0x

01.0t

1

1

następny:

08513.002955.0302.30sin1001.02955.0x

02.0t

2

2

itd..

0 6 12 18 24 30 36 42 48 54 600.5

0.25

0

0.25

0.5

0.75

1

xn

y n h( )

ny(t) - rozwiązanie dokładne

h=0.01

0 6 12 18 24 30 36 42 48 54 600.05

0.025

0

0.025

0.05

0.075

0.1

xn y n h( )

n

błąd bezwzględny

h=0.01

0 2 4 6 8 10 12 14 16 18 200.5

0.25

0

0.25

0.5

0.75

1

xn

y n h( )

n

h=0.05

0 2 4 6 8 10 12 14 16 18 200.5

0.33

0.17

0

0.17

0.33

0.5

xn y n h( )

n

h=0.05

0 2 4 6 8 10 12 14 16 18 205

3.33

1.67

0

1.67

3.33

5

xn

y n h( )

n

h=0.3

0 2 4 6 8 10 12 14 16 18 205

3.33

1.67

0

1.67

3.33

5

xn y n h( )

n

h=0.3

0 2 4 6 8 10 12 14 16 18 201000

666.67

333.33

0

333.33

666.67

1000

xn

y n h( )

n

h=0.75

0 2 4 6 8 10 12 14 16 18 201000

666.67

333.33

0

333.33

666.67

1000

xn y n h( )

n

h=0.75

Równanie drugiego rzędu na przykładzie wahadłamatematycznego o długości l:

0sinlg

dt

d2

2

Wprowadzamy nowe zmiennecelem zastąpienia układem równań I-go rzędu:

sinlg

dtddtd

Przyjmujemy wahadło o długości l=1m i g=10m/s2

Warunki początkowe:

0dtd

0

30

0t

Jeżeli zlinearyzujemy równanie: 0sinlg

dt

d2

2

to przyjmie on postać: 0lg

dt

d2

2

którego całka ogólna ma postać:

t

lg

cosAtlg

sinA 21

Okres T drgań zlinearyzowanego wahadła wynosi:

s2gl

2T

czyli krok należy przyjąć

1.0h20T

h

ponieważ mamy nieliniowe równanie, więc dla bezpieczeństwaprzyjmujemy h=0.05s.

Jawny schemat Eulera dla układu równań

sinlg

dtddtd

przyjmuje postać:

nn1n

nn1n

sinlg

h

h

z warunkiem startowym:

03

0

0

i dla n=0 mamy:

0433.03

sin05.00

0472.1005.03

1

1

czyli0433.0

0472.1

1

1

Znamy

0433.0

0472.1

1

1

możemy przyjąć n=1 i wyznaczyć wartości w następnymkroku

0866.00472.1sin05.00433.0

045035.10433.005.00472.1

2

2

czyli mamy:

0866.

045035.1

2

2

i obliczenia możemy powtórzyć.

0 400 800 1200 1600 20002

1.33

0.67

0

0.67

1.33

2

n

x n h( )

n

h=0.001

0 200 400 600 800 10005

3.33

1.67

0

1.67

3.33

5

n

x n h( )

n

h=0.005

0 200 400 600 800 10001

0.67

0.33

0

0.33

0.67

1

n

x n h( )

n

h=0.005 warunek początkowy:

0t

0t

0

18

Metody niejawne

Metoda Adamsa - Moultona

W metodzie Adamsa - Moultona przyjmujemy, że b-10

Przyjmujemy p=n-2

Liczba niewiadomych wynosi: 2(n-2)+3=2n-1,

w tym ai – n-1 nieznanych i bi – n nieznanych

więc przy spełnieniu n+1 równań możemy dowolnie wybrać

n-2 współczynników i przyjmujemy a1=a2=...=an-2=0

p

0i

p

1iininiini1n )t,x(fbhxax

pierwsze

z równań przy spełnieniu powyższych warunków

przyjmuje postać:

1ap

0ii

1a0

Z układu równań:

zapewniających zwartość metody otrzymujemy:

1)i(bk)i(ap

1i

1ki

p

0i

ki

k=0,1,...,n

Dla wyznaczenia pozostałych mamy układ równań:

k1

)i(b2n

1i

1ki

k=1,2,...,n

Jeżeli n=1, to mamy: b-1=1

i schemat metody I-go rzędu zwanej niejawną metodą Eulera

będzie: 1n1nn1n t,xhfxx

Dla n=2 mamy:

k1

)i(b0

1i

1ki

k=1,2

czyli

21

b

1bb

1

01

i rozwiązaniem powyższego układu równań są b-1=b0= 0.5

Algorytm niejawny II-go rzędu zwany metodą trapezów

jest:

1n1nnnn1n t,xft,xf2h

xx

Jest to jeden z najpopularniejszych obecnie algorytmów

całkowania równań różniczkowych zwyczajnych.

Następne współczynniki dla metody Adamsa – Moultona

otrzymujemy biorąc kolejno n=3,4, itd.. Poniżej podane

zostaną współczynniki dla metody do 5-go rzędu:

n=3

1n1nnn1n1nn1n t,xft,xf8t,xf512h

xx

w tym przypadku metoda nie jest metodą samostartującą

n=4

2n2n

1n1nnn1n1nn1n

t,xf

t,xf5t,xf19t,xf924h

xx

3n3n2n2n

1n1nnn1n1nn1n

t,xf19t,xf106

t,xf264t,xf646t,xf251720h

xx

n=5

Przykład zastosowania

Niejawna metoda Eulera

Załączenie siły elektromotorycznej sinusoidalnie zmiennej

w obwodzie RC.R

Ce(t)

t=00tC 0u

tsinEte m

Równanie obwodu ma postać:

teudt

duRC C

C

lub pisząc w postaci normalnej otrzymujemy:

RCu

tsinRCE

dtdu CmC

z warunkiem początkowym: 0tC 0u

Dla przeprowadzenia obliczeń numerycznych przyjmujemy

dane liczbowe: R=10, C=100F, Em=100V, =314rad-1,

=/4

Po podstawieniu danych liczbowych otrzymujemy:

C35C u10

4t314sin10

dtdu

z warunkiem początkowym: 0u 0C

Ustalenie kroku: stała czasowa obwodu RC=1ms okres przy 50Hz = 20ms

Dobry wybór powinien być 0.1ms. Zaryzykujmy h=0.0005.

Algorytm niejawny Eulera ma postać:

1n

31n

5n1n u10

4t314sin100005.0uu

Startujemy dla n=0 t=0 i mamy0u 0C

t=0.5ms

1

351 u10

40005.314sin100005.00u

Niewiadoma występuje po obu stronach równości i rozwiązującmamy:

5.01

942398.sin100005.0u

5

1

9657.26u1

Następny krok n=2, t=0.001s i mamy:

235

2 u107854.0001.0314sin100005.09657.26u

i rozwiązując otrzymujemy:

5.1

099398.1sin509657.26u2

6749.47u2

itd. W ramach ćwiczenia zalecane przeliczenie kilku kroków i porównać z rozwiązaniem dokładnym

0 50 100 150 200 250 300 350 400100

50

0

50

100

u n

uc n h( )

n

h=0.0005

0 50 100 150 200 250 300 350 4005

2.5

0

2.5

5

u n uc n h( )

n

błąd bezwzględny

0 12.5 25 37.5 50 62.5 75 87.5100100

50

0

50

100

u n

uc n h( )

n

h=0.002

0 12.5 25 37.5 50 62.5 75 87.510020

12.5

5

2.5

10

u n uc n h( )

n

0 2.5 5 7.5 10 12.5 15 17.5 20100

50

0

50

100

un

uc n h( )

n

h=0.01

0 2.5 5 7.5 10 12.5 15 17.5 2040

25

10

5

20

u n uc n h( )

n

0 2.5 5 7.5 10 12.5 15 17.5 200

25

50

75

100

u n

uc n h( )

n

h=0.02

0 2.5 5 7.5 10 12.5 15 17.5 200

10

20

30

40

u n uc n h( )

n

Jako następny przypadek rozpatrzymy nieliniową

indukcyjność

E

=f(i)

Rt=0

3i002.0i1.0 Charakterystyka dławika:

Przyjmujemy R=5, E=15V

Równanie obwodu jest ERidtd

Biorąc pod uwagę, że 3i002.0i1.0

mamy: ERidtdi

i006.0dtdi

1.0 2

lub zapisując w postaci normalnej będzie:

2i006.01.0

RiEdtdi

z warunkiem początkowym: i(0)=0

Wybór kroku całkowania: Jeżeli odrzucimy człon nieliniowy,

to mamy obwód o indukcyjności L=0.1H i rezystancji 5.

Stała czasowa tego obwodu wynosi 0.1/5=20ms. Należałobyprzyjąć krok co najwyżej 2ms. Spróbujmy zaryzykować i przyjmujemy h=0.004s.

Obliczenia przeprowadzimy korzystając z metody trapezów

Mamy po podstawieniu danych następujący schemat:

2

1n

1n2n

nn1n i006.01.0

i515

i006.01.0

i5152h

ii

z punktem startowym i0=0. Dla n=1 mamy:

21

121 i006.01.0

i515

0006.01.0

05152004.0

0i

lub21

11 i006.01.0

i515002.03.0i

21

11 i006.01.0

i515002.03.0i

Powyższe równanie nieliniowe rozwiązujemy jedną z metodnumerycznych. Zastosujemy iterację oznaczając:

k1i - wartość prądu w k-tej iteracji

mamy schemat iteracyjny:

2k1

k1k

i006.01.0

i515002.03.0i 1

1

punkt startowy:0ii 0

01

i mamy: 6.0i11 5453.i2

1 54993.i31 54953.i4

1

Kończymy iteracje: 54953.i41

na czwartej i mamy:

5495.i

ii

1

411

Możemy przystąpić do następnego kroku t=2h=0.008sprzyjmując jako punkt startowy otrzymany wynikdla t=h=0.004s.

22

222 i006.01.0

i515

5495.006.01.0

5495.5152004.0

5495.i

czyli

2k2

k1k

i006.01.0

i515002.07991.0i 2

2

5495.i01

Start:

0487.1i12

008.1i22

01123.1i32

011.1i42

Kończymy: 011.1ii 422

Metoda jawna wstecznego różniczkowania

p=m-1

W algorytmie jawnym:

p

0i

p

0iininiini1n )t,x(fbhxax

Wybieramy:

i przyjmujemy: b-1=b1=...=bm-1=0

mamy:)t,x(hfbxax nn0

1m

0iini1n

Układ równań : 1)i(bk)i(a1m

0i

1ki

1m

0i

ki

k=0,1,...,m

przyjmuje postać:

m2,3,4....,=k dla 1a)i(

1iab

1a

1m

1ii

k

1m

1ii0

1m

0ii

dla m=1 mamy:

1b

1a

0

0

znowu mamy metodę Eulera: nnn1n t,xhfxx

m=2 i mamy:

1a

1ab

1aa

1

10

10

którego rozwiązanie ma postać: a0=0; a1=1; b0=2i schemat: nn1n1n t,xhf2xx

Dla m=3 mamy schemat:

nn2n1nn1n t,xhf3x21

x3x23

x

m=4

nn3n2n1nn1n t,xhf4x31

x2x6x3

10x

m=5

nn4n3n2n1nn1n t,xhf5x41

x35

x5x10x1265

x

Metody jawne wstecznego różniczkowania nie są używanedo samodzielnego rozwiązywania numerycznego równańróżniczkowych. Są niestabilne.

Metody niejawne wstecznego różniczkowania

(metody Geara)

Algorytm:

p

0i

p

1iininiini1n )t,x(fbhxax

przyjmujemy: p=m-1

b0=b1=...bm-1=0

czyli: )t,x(hfbxax 1n1n1

1m

0iini1n

a dla wyznaczenia współczynników mamy równania:

m1,2,...,=k dla 1kba)i(

1a

1

1m

1ii

k

1m

0ii

m=1

1b

1a

1

0

i schemat: 1n1nn1n t,xhfxx

niejawny schemat Eulera !

m=2

1b2a

1ba

1aa

11

11

10

którego rozwiązanie jest:32

b;31

a;34

a 110

schemat przyjmuje postać:

1n1n1nn1n t,xhf32

x31

x34

x

dla m=3 mamy:

1n1n2n1nn1n t,xhf116

x112

x119

x1118

x

m=4

1n1n3n2n1nn1n t,xhf2512

x253

x2516

x2536

x2548

x

Lokalny błąd obcięcia wzorów całkowania numerycznego

Definicja błędu obcięcia T :

1n1nT xtx

gdzie x(t) rozwiązanie dokładne.

W metodach wielokrokowych błąd ten można obliczyć.

Dla metody Adamsa – Bashfortha lokalny błąd obcięcia dla metody k-go rzędu wyraża się zależnością:

Dla metody Adamsa – Bashfortha lokalny błąd obcięcia dla metody k-go rzędu wyraża się zależnością:

2k

0i

ki

1k1kk

4321

1nn

1k1kkT

i1kb1k1kk!1k

1C

720251

C;83

C;125

C;21

C

t,t

hxC

Dla metody Adamsa – Moultona lokalny błąd obcięcia dla metody k-go rzędu wyraża się zależnością:

3k

1i

ki

1k1kk

4321

1nn

1k1kkT

i2kb1k2k1k!1k

1C

72019

C;241

C;121

C;21

C

t,t

hxC

Dla metody Geara lokalny błąd obcięcia dla metody k-go rzędu wyraża się zależnością:

2k

0i

k1

1ki

1kk

4321

1nn

1k1kkT

k1kbi1kak!1k

1C

12512

C;243

C;92

C;21

C

t,t

hxC

Oszacowanie pochodnej rzędu k+1

Jeżeli mamy równanie różniczkowe:

t,xfx przyjmiemy oznaczenia:

nn

nnnn

txx

t,txfxf

Definiujemy operator różnicy wstecznej jfn:

1n1j

n1j

nj

3n2n1nn1n2

n2

n3

2n1nn1n1

n1

n2

1nn1n0

n0

n1

nn0

fff

ff3f3ffff

ff2ffff

fffff

ff

i mamy: nnn0 hfxhxh

czyli łatwo wyznaczyć ocenę I pochodnej.

Druga pochodna:

n2

nnn1nnn1

xh

xhhxhxhxhxhxh

czyli mamy ocenę drugiej pochodnej:

1nnn2 ffhxh

Ocena trzeciej pochodnej:

n

3n

2n

2n

2

1n2

n2

1n1

n1

n2

xhxhhxhxh

xhxhxhxhxh

i ostatecznie n1nnn3 ff2fhxh

Dla k+1 pochodnej mamy:

1kn

k1kn

kkn

kkn

k

k1n

kkn

k1n

1kn

1kn

k

xhxhhxhxh

xhxhxhxhxh

czyli w każdym kroku potrafimy szacować lokalnybłąd obcięcia

Przykład:

Dany jest obwód:10

10V tcosm1CC 0

gdzie C0=100F m=0.5 f=10kHz =2f

tq

równanie:

uc

Cq

u

EuqR

c

c

i ostatecznie w postaci normalnej:

tcosm1RCq

RE

q0

tcosm1RCq

RE

q0

z warunkiem początkowym: q(t=0)=0

Będziemy liczyli jawną metodą Adamsa – Bashfortha drugiego rzędu o schemacie:

00

001 tcosm1RC

qRE

hqq

1n1nnnn1n t,qf

21

t,qf23

hqq

Ponieważ schemat nie jest schematem samostartującym,wystartujemy z metody Eulera

Ocena błędu dla metody Eulera jest:

qh21 2

T

Z przybliżonej oceny mamy: 0112 ffhqh

Ze względu na częstotliwość 10kHz wybierzmy krokrzędu 1/10f co daje h=10-5s i mamy:

q1=10-5C

szacujemy drugą pochodną: 5E9832.qh2

Błąd obcięcia wynosi: 5E4916.T

Dużo czy mało?

Odpowiedź w obliczeniu błędu względnego

4916.05E1

5E4916.0q

e1

T

Jeżeli przyjmiemy, że błąd nie większy od .01, to niestetyprzekroczyliśmy zakres i musimy zmniejszyć krok.Krok należy zmniejszyć około 50 razy.

Nowy krok h=.2E-6

q1=.2E-6C

Druga pochodna: 11E8qh2

Błąd obcięcia: 11E4T

Błąd względny: e=.0002

Chyba wybraliśmy zbyt mały? Spróbujemy zwiększyć

Zwiększamy krok pięciokrotnie czyli h=1.0E-6

i mamy: q1=1.0E-6

f0=1f1=0.998

ocena drugiej pochodnej: 9E9961.1qh2

czyli błąd obcięcia: 9E998.0T

Błąd względny:001.3E998.

6E0.19E998.

qe

1

T

Można było wybrać większy.

Mamy już dwa punkty policzone: t0=0 q0=0

t1=1.0E-6 q1=1.0E-6

możemy przejść do schematu o dokładności II rzęduAdamsa – Bashfortha:

1n1nnnn1n t,qf

21

t,qf23

hqq

z błędem: qh125 3

T

lub ponieważ 2n1nnn3 ff2fhqh

to 2n1nnT ff2f12h5

Przy n=2 mamy policzone:998.0ff

1ff

112

022

czyli na mocy algorytmu:

0112

1n1nnnn1n

f21

f23

hqq

t,qf21

t,qf23

hqq

i po podstawieniu: 6E997.1q2

Ocena błędu:

99604.0f

ff2f12h5

2

012T

i 11E55197.1T stąd błąd względny6E772.7

qe

2

T

3E0.16E772.7q

e2

T

Spełniliśmy więc błąd z dużym zapasem.

Warto było lepiej policzyć pierwszy krok.

Następny krok wykonamy biorąc krok 2 razy większy,

bo mamy taką możliwość, czyli:

99604.0ff

1ff

112

022

6E997.1q6E0.2t

0q0t

6E0.2h

11

00

0112

1n1nnnn1n

f21

f23

hqq

t,qf21

t,qf23

hqq

6E98512.3q

f21

f23

hqq

t,qf21

t,qf23

hqq

2

0112

1n1nnnn1n

99227.f2

Ocena błędu:

3E0.15E9731.3q

e

10E58333.1

2

T

T

Można znowu startując z dwóch znanych punktów dwukrotniezwiększyć krok czyli h=4.0E-6

Metody predyktor - korektor

Predyktor

Jawny algorytm Adamsa -Bashfortha

p

0iininin

01n t,xfbhxx

Korektor

Niejawny algorytm Adamsa - Moultona

1nk

1n1

p

0iininin

1k1n t,xhfbt,xfbhxx

Jako przykład rozpatrzymy nieliniową indukcyjność

E

=f(i)

Rt=0

3i002.0i1.0 Charakterystyka dławika:

Przyjmujemy R=5, E=15V

Równanie obwodu jest ERidtd

Biorąc pod uwagę, że 3i002.0i1.0

mamy: ERidtdi

i006.0dtdi

1.0 2

lub zapisując w postaci normalnej będzie:

2i006.01.0

RiEdtdi

z warunkiem początkowym: i(0)=0

Wybór kroku całkowania: Jeżeli odrzucimy człon nieliniowy,

to mamy obwód o indukcyjności L=0.1H i rezystancji 5.

Stała czasowa tego obwodu wynosi 0.1/5=20ms. Przyjmujemy krok czasowy h=0.005s

Obliczenia poprowadzimy wykorzystując jako predyktor

metodę Eulera

2n

nn

01n

i006.01.0

i515hii

nnn0

1n t,xhfxx

w naszym przypadku:

i jako korektor – metodę trapezów:

1tn,xf2h

t,xf2h

xx k1nnnn

1k1n

2k1n

k1n

2n

nn

1k1n

i006.01.0

i5152h

i006.01.0

i5152h

ii

Dopuszczamy błąd względny dla algorytmu trapezów e=0.001i taki sam przyjmiemy błąd względny dla metody iteracji

w korektorze.

Start: t0=0

i0=0

Predyktor:2

01

0006.01.0

0515005.00i

75.i01

Korekcja:

2k1n

k1n1k

1i006.01.0

i5152005.0

375.0i

666074.i11

Błąd względny:

126.0e

i

iie

iter

1k1

k1

1k1

iter

Powtórzyć iterację!

0128.e

6747191.i

iter

21

Powtórzyć iterację!

00133.e

6738224.i

iter

31

Powtórzyć iterację!

000138.e

673915.0i

iter

41

Zakończyliśmy iterację

i1=.673915

Ocena błędu algorytmu trapezów:

1129.e

07609.

ff2h

T

01T

Błąd jest zbyt duży, ale nie mogliśmy zrobić dobrej ocenygdyż powinniśmy liczyć błąd obcięcia z zależności:

012T ff2f12h

ale jeszcze nie doszliśmy do punktu t2.

Wykonamy następny krok:

Predyktor:

27173.1i

i006.01.0

i515005.0ii

02

21

11

02

Korektor:

21734377.1i

00047.e

21734377.1i

0048.e

2179165.1i

0492.e

21207.1i

i006.01.0

i5152005.0

972821.0i

2

iter

32

iter

22

iter

12

2k2

k21k

1

Ocena błędu algorytmu trapezów:00298.e

0036279.T

No niestety błąd jest zbyt duży. Należy zmniejszyć krok.

Stabilność metod wielokrokowych

Analiza przenoszenia błędu:

Rozważmy następujący algorytm wielokrokowy:

2n2n1n1nnn3n1n t,xf

38

t,xf34

t,xfhxx

który jest algorytmem czwartego rzędu z błędem obcięcia:

55T hx

9028

2n2n1n1nnn3n1n t,xf

38

t,xf34

t,xfhxx

Zastosujemy ten algorytm do bardzo prostego równania:

xx

z warunkiem początkowym x(0)=1, którego rozwiązaniemjest:

tetx Dla

0

jest to rozwiązanie wykładniczo dążące do zera

0 0.5 10

0.5

1

f x( )

x

np. =10

Stosując algorytm:

2n2n1n1nnn3n1n t,xf

38

t,xf34

t,xfhxx

do równania: xx

mamy:

2n1nn3n1n x

38

x34

x38

hxx

oznaczamy: h

i równanie zapisujemy jako równanie różnicowe:

0x38

x34

x38

xx 2n1nn3n1n

Szukamy rozwiązania w postaci:

nn Azx

Podstawiając mamy:

0Az38

Az34

Az38

AzAz 2n1nn3n1n

0x38

x34

x38

xx 2n1nn3n1n

Dzieląc przez Azn-3 mamy równanie charakterystyczne:

01z38

z34

z38

z 234

Dobieramy mały krok h tak, że 1

Równanie ma 4 pierwiastki. Jeżeli =0, to tymi pierwiastkami są:

3,2,1,0ke1z k20j4

1j

jz

1z

jz

1z

4

3

2

1

Rozwiązanie dla małych różnych od zera powinno być funkcjąanalityczną , czyli można je zapisać w postaci:

...ddd1z

...ccciz

...bbbiz

...aaa1z

33

2211

33

2213

33

2212

33

2211

podstawiając kolejno pierwiastki do równania:

01z38

z34

z38

z 234

otrzymujemy dla z1:

01...zazaza138

...zazaza134

...zazaza138

...zazaza1

33

221

233

221

333

221

433

221

Dla z2=j

01...zbzbzbj38

...zbzbzbj34

...zbzbzbj38

...zbzbzbj

33

221

233

221

333

221

433

221

dla z3=-j

01...zczczcj38

...zczczcj34

...zczczcj38

...zczczcj

33

221

233

221

333

221

433

221

dla z4=-1

01...zdzdzd138

...zdzdzd134

...zdzdzd138

...zdzdzd1

33

221

233

221

333

221

433

221

Podnosząc do potęgi i porównując współczynniki przy tychsamych znajdujemy:

!41

a

!31

a

21

a

1a

4

3

2

1

3j

b1 3j

c1 35

d1

czyli

24

22

22

5432

1

O35

1z

O3j

jz

O3j

jz

eO!4!3!2

1z

Rozwiązanie równania:

01z38

z34

z38

z 234

ma postać:

n44

n33

n22

n11n zAzAzAzAx

Stałe A1, A2, A3, A4 wyznaczamy z warunków początkowych