Professional Documents
Culture Documents
Johan Jansson
December 8, 2010
Johan Jansson ()
M8
December 8, 2010
1/8
Exempeluppgifter / fr
agor
Anvand modulerna f
or att f
orst
a hur man kan l
osa uppgifterna.
Johan Jansson ()
M8
December 8, 2010
2/8
del 1 p
a tavlan
Johan Jansson ()
M8
December 8, 2010
3/8
LT
k
2
(aven f
or skillnad mot minskande tidssteg, med annan konstant)
Generellt kan vi saga:
|u u| Ck p
Vi tittar allts
a p
a skillnaderna och f
ors
oker bestamma p:
d1 2.87 2.31 = 0.56
d2 2.31 2.24 = 0.07
d3 2.24 2.23 = 0.01
Varje halvering av k ger ca. en faktor
1
8
1
23
Allts
a kan vi uppskatta att metoden ar av ordning 3.
Johan Jansson ()
M8
December 8, 2010
4/8
f (x) = 0
def newton ( f , x0 ) :
def g ( x ) :
# Compute t h e J a c o b i a n : f ( x )
J = jacobian ( f , x )
# Compute r i g h t hand s i d e o f Newton
# i t e r a t i o n and s o l v e t h e l i n e a r s y s t e m .
r = dot ( J , x ) f ( x )
return linear_solve ( J , r )
return fixedpoint ( g , x0 )
def fixedpoint ( g , x0 ) :
TOL = 1 . 0 e10
while ( diff > TOL ) :
y = g(x)
diff = max_norm ( y x )
x = y
def f ( x ) :
...
x0 = zeros ( 3 )
x = newton ( f , x0 )
Johan Jansson ()
M8
December 8, 2010
5/8
10 1
2
10
A = 0 10 1 b = 12
1
2 20
24
Vi definierar D som diagonalen av A och M = A D. Jacobis metod kan d
a
formuleras som:
x1 = D 1 (Mx0 + b)
dar 1 och 0 ar iterationsnummer.
Vi valjer x0 =
x1 = D
(Mx0 + b) =
Johan Jansson ()
>
, vi har d
a att
>
9
19
4
10
10
20
M8
December 8, 2010
6/8
Vi vill l
osa begynnelsevardesproblemet: u = f (t, w )
w0
u
w=
=
w1
v
f0 (t, w )
w12 w0 + sin(t)
w = f (t, w ) =
=
f1 (t, w )
w02 w1 + sin(2t)
Formulera timestep() och solve() fr
an modul 3 och anropa solve() med
f (t, w ).
R2
For att berakna integralen 0 (u(t)2 + v (t)2 )dt kan vi skriva:
fenergy (t, z) = (u(t)2 + v (t)2 ) dar vi stoppar in de beraknade losningarna u(t) och
v (t), genom exempelvis en funktion som piecewise linear adapter(). Sedan
anropar vi solve() med fenergy (t, z) f
or att berakna integralen.
Johan Jansson ()
M8
December 8, 2010
7/8
Johan Jansson ()
M8
December 8, 2010
8/8