Numeriska metoder - Karlstads universitet

Download Report

Transcript Numeriska metoder - Karlstads universitet

Numeriska metoder
Kompendiet
Lektor: Yury Shestopalov
e-mail:
[email protected]
Hemsidan:
Tel.
054-7001856
www.ingvet.kau.se\ ∼youri
Karlstads Universitet
2002
1
Inneh˚
all
1 Grundbegrepp av numeriska metoder
1.1 Positionssystem . . . . . . . . . . . .
1.2 Avrundning . . . . . . . . . . . . . .
1.3 Avhuggning . . . . . . . . . . . . . .
1.4 Felfortplantning . . . . . . . . . . . .
1.5 Felgr¨anser. . . . . . . . . . . . . . . .
1.6 Ackumulerade fel . . . . . . . . . . .
1.7 Kancellation: f¨orlusten av signifikanta
1.8 Felformeln . . . . . . . . . . . . . . .
1.9 Bin¨ara systemet . . . . . . . . . . . .
1.10 Problem . . . . . . . . . . . . . . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
siffror
. . . .
. . . .
. . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
7
7
8
8
9
10
10
11
13
15
17
2 Funktionsber¨
akning
19
2.1 Serieutveckling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3 Interpolation
3.1 Interpolation med polynom . . . . . . . . . . . . . . . .
3.2 Linj¨ar interpolation . . . . . . . . . . . . . . . . . . . . .
3.2.1 Styckvis-linj¨ar interpolation . . . . . . . . . . . .
3.2.2 Andragradsinterpolation . . . . . . . . . . . . . .
3.2.3 Felprincipuppskattning . . . . . . . . . . . . . . .
3.3 Differenser . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3.1 Differensf¨oljder och differensschema . . . . . . . .
3.3.2 Fram˚
atdifferenser . . . . . . . . . . . . . . . . . .
3.3.3 Fram˚
atdifferenser – ekvidistanta fallet . . . . . .
3.4 Interpolationspolynom och differenser . . . . . . . . . . .
3.4.1 Newtons allm¨ana interpolationsformel . . . . . . .
3.4.2 Newtons interpolationsformel i ekvidistanta fallet
3.5 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . .
4 Icke-linj¨
ara ekvationer
4.1 Intervallhalvering . . . . . . . . . . . .
4.2 Interpolationsmetoder: sekantmetoden
4.3 Iterativa metoder . . . . . . . . . . . .
4.3.1 Substitutionsmetoden . . . . . .
4.3.2 Newtons metod . . . . . . . . .
4.3.3 Stopregeln . . . . . . . . . . . .
4.3.4 Fixpunktsiteration . . . . . . .
2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
23
23
25
25
26
32
32
32
33
34
35
35
37
38
.
.
.
.
.
.
.
50
50
52
53
53
53
54
54
4.4
4.5
.
.
.
.
58
59
63
64
.
.
.
.
.
67
67
67
68
69
72
6 Differensapproximationer av derivator och differentialekvationer
6.1 Approximation av derivator . . . . . . . . . . . . . . . . . . . . . .
6.2 Approximationen av differentialekvationer. Differensekvationer . . .
6.3 Differensekvationer p˚
a matrisformen . . . . . . . . . . . . . . . . .
6.4 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
74
74
81
83
86
4.6
Konvergens av fixpunktsiteration . . . .
Kaotiskt och periodiskt beteende . . . .
4.5.1 Ett exempel av kaotiskt beteende
Problem . . . . . . . . . . . . . . . . . .
5 Numerisk integration
5.1 Rektangelsregeln . . . . . . . . . .
5.2 Trapetsregeln . . . . . . . . . . . .
5.2.1 Feluppskattning . . . . . . .
5.2.2 Felgr¨anser f¨or trapetsregeln
5.3 Problem . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
7 Numerisk l¨
osning av ordin¨
ara differentialekvationer
7.1 Grundbegrepp . . . . . . . . . . . . . . . . . . . . . .
7.2 Numerisk l¨osning av begynnelsev¨ardesproblem . . . .
7.2.1 Eulers metod . . . . . . . . . . . . . . . . . .
7.2.2 Heuns metod . . . . . . . . . . . . . . . . . .
7.2.3 Runge–Kutta-metoder . . . . . . . . . . . . .
7.3 Problem . . . . . . . . . . . . . . . . . . . . . . . . .
8 Numeriska metoder f¨
or linj¨
ar algebra
8.1 Grundl¨aggande begrepp . . . . . . . . .
8.2 Matrisalgebra . . . . . . . . . . . . . . .
8.3 Bandmatriser och blockmatriser . . . . .
8.3.1 Bandmatriser . . . . . . . . . . .
8.3.2 Blockmatriser . . . . . . . . . . .
8.4 Gausselimination . . . . . . . . . . . . .
8.4.1 Pivotering . . . . . . . . . . . . .
8.5 Problem . . . . . . . . . . . . . . . . . .
8.6 Iterativa metoder . . . . . . . . . . . . .
8.6.1 Vektor- och matrisnormer . . . .
8.6.2 Konvergens av iterativa metoder .
8.6.3 Geometriska serien . . . . . . . .
8.6.4 Jacobi iteration . . . . . . . . . .
8.6.5 Gauss–Seidel iteration . . . . . .
3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
87
87
96
96
100
101
102
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
104
. 104
. 107
. 111
. 111
. 115
. 117
. 121
. 123
. 127
. 128
. 130
. 130
. 131
. 137
9 Tridiagonala matriser och randv¨
ardesproblem
9.1 Tridiagonala linj¨ara ekvationssystem . . . . . .
9.2 Randv¨ardesproblem f¨or station¨ara
en-dimensionella v¨armeledningsekvationen . . .
9.3 Numerisk l¨osning till randv¨ardesproblem . . . .
9.4 Problem . . . . . . . . . . . . . . . . . . . . . .
141
. . . . . . . . . . . 141
. . . . . . . . . . . 143
. . . . . . . . . . . 147
. . . . . . . . . . . 156
10 Numerisk l¨
osning till en-dimensionella
v¨
armeledningsekvationen och diffusionekvationen
157
10.1 V¨armeledningsekvationen . . . . . . . . . . . . . . . . . . . . . . . . 158
10.2 Crank–Nicolsons metod . . . . . . . . . . . . . . . . . . . . . . . . . 159
10.3 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
11 Randv¨
ardesproblemet f¨
or station¨
ara
tv˚
a-dimensionella v¨
armeledningsekvationen
och Laplaces och Poissons ekvationer
166
11.1 Numerisk l¨osning till Laplaces och Poissons ekvationer i en rektangel 167
12 Minstakvadratmetoden
171
¨
12.1 Overbest¨
amda ekvationssystem . . . . . . . . . . . . . . . . . . . . 171
12.2 Minsta kvadratproblemet . . . . . . . . . . . . . . . . . . . . . . . . 173
13 Spline-interpolation
179
13.1 Kubisk spline-interpolation . . . . . . . . . . . . . . . . . . . . . . . 179
13.2 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
14 Approximation
185
14.1 B¨asta polynomapproximationen i maximumnorm . . . . . . . . . . 189
14.2 Chebyshevpolynom . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
15 Facit
15.1 Problem
15.2 Problem
15.3 Problem
15.4 Problem
15.5 Problem
15.6 Problem
15.7 Problem
15.8 Problem
3.2 .
5.2. .
5.3. .
6.1 .
8.5 .
8.6 .
9.1 .
10.1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
197
. 197
. 198
. 199
. 200
. 202
. 203
. 204
. 207
16 Tentor
16.1 Tenta
16.2 Tenta
16.3 Tenta
16.4 Tenta
16.5 Tenta
16.6 Tenta
16.7 Tenta
1
2
3
4
5
6
7
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
209
209
219
227
235
240
246
255
17 MATLAB¨
ovningar
264
17.1 MATLAB grunder . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
17.1.1 Komma ig˚
ang . . . . . . . . . . . . . . . . . . . . . . . . . . 264
17.1.2 Filer i MATLAB . . . . . . . . . . . . . . . . . . . . . . . . 264
17.2 MATLAB som minir¨aknare . . . . . . . . . . . . . . . . . . . . . . 265
17.2.1 Exempel: r¨akna genom att skriva direkt i MATLABf¨onstret 265
17.2.2 Exempel: ber¨akna ett tal genom att skriva en kommandofil . 266
17.2.3 Exempel: funktionsber¨akning . . . . . . . . . . . . . . . . . 266
17.2.4 Exempel: ber¨akna ett algebraiskt uttryck . . . . . . . . . . . 267
17.2.5 Exempel: en kommandofil som ber¨aknar tal . . . . . . . . . 267
17.3 Vektorer och matriser . . . . . . . . . . . . . . . . . . . . . . . . . . 267
17.3.1 Exempel: en matris av typ 2 × 3 . . . . . . . . . . . . . . . . 267
17.3.2 Exempel: skapa matriser . . . . . . . . . . . . . . . . . . . . 268
17.3.3 Exempel: skapa matriser genom att skriva en kommandofil . 268
17.3.4 Exempel: radvektorer och kolonnvektorer . . . . . . . . . . . 268
17.3.5 Exempel: definition av matriser
genom radvektorer och kolonnvektorer . . . . . . . . . . . . 269
17.3.6 Exempel: MATLABkommandot ones(1,m) . . . . . . . . . 269
17.3.7 Exempel: MATLABkommandot i:h:k . . . . . . . . . . . . 269
17.3.8 Exempel: en kommandofil som r¨aknar dina r¨akningar . . . . 270
17.3.9 Exempel: MATLABkommandon diag och diagonalmatriser . 270
17.3.10 Exempel: diagonalmatriser . . . . . . . . . . . . . . . . . . . 271
17.3.11 Exempel: en funktionsfil som l¨oser ett linj¨art ekvationssystem 272
17.3.12 Exempel: v¨ardetabeller f¨or funktioner . . . . . . . . . . . . . 272
17.4 Ekvationer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
17.4.1 Exempel: en sk¨arningspunkt mellan kurvor . . . . . . . . . . 273
17.4.2 Exempel: fixpunktsiteration . . . . . . . . . . . . . . . . . . 274
17.4.3 Exempel: koordinater av en sk¨arningspunkt . . . . . . . . . 276
17.4.4 Exempel: l¨os en ekvation med fixpunktsiteration . . . . . . . 277
17.4.5 Exempel: fixpunktsiteration och Newtons metod . . . . . . . 277
17.5 Polynom i MATLAB . . . . . . . . . . . . . . . . . . . . . . . . . . 277
17.5.1 Exempel: kommandot polyval . . . . . . . . . . . . . . . . 278
5
17.6 Polynomanpassning i MATLAB . . . . . . . . . . . . . . . .
17.6.1 Exempel: b¨asta anpassningen i minstakvadratmening
17.7 Polynomanpassning och tendenskurvor . . . . . . . . . . . .
17.7.1 Exempel: dagsv¨ardef¨or¨andring i ett aktiebolag . . . .
17.8 Tendenskurvor och referenspunkter . . . . . . . . . . . . . .
17.8.1 Polynomanpassning till periodiska kurvor . . . . . . .
18 Referenser
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
278
278
279
279
280
280
281
6
1
Grundbegrepp av numeriska metoder
1.1
Positionssystem
I ett positionssystem anges ett tal s˚
a att en siffras betydelse beror av dess plats
i talbeteckningen. Varje plats (position) har ett best¨amt platsv¨arde, som ¨ar en
heltalspotens av systemets bas.
I decimalsystemet, ¨ar basen tio.
Ett tal skrivet i decimalsystemet s¨ags vara skrivet i decimalform.
Siffrorna till h¨oger om decimaltecken kallas decimaler.
En signifikant siffra (S) av ett tal c (skrivet i decimalform) a¨r varje c’s siffra
utom nollor till v¨anster om den f¨orsta ickenoll siffran:
talen 1360. 1.360, 0.001360 har 4 S.
I fix representation anv¨ands ett givet (fixerat) antal S:
62.358 (fem S), 0.013 (tv˚
a S), 1.0 (tv˚
a S).
I flyttalsrepresentation (floating-point system), fixerar man antalet S och decimaltecken flyttar: Betrakta t ex tre tal med fyra S:
0.6238 × 103 = 6.238 × 102 = 0.06238 × 104 = 623.8,
0.1714 × 10−13 = 17.14 × 10−15 = 0.01714 × 10−12 = 0.00000000000001714
(13 nollor till h¨oger om decimaltecken)
−0.2000 × 101 = −0.02000 × 102 = −2.000,
Tal ocks˚
a skrivas p˚
a formen
0.6238E03 0.1714E-13, −0.2000E01.
Allm¨ant kan varje reelt tal a i talsystemet med basen β framst¨allas p˚
a formen
a = M · β e,
e ett helt tal.
(1)
d¨ar
M = ±D0 .D1 D2 . . . ,
0 ≤ Di < β,
i = 0, 1, 2, . . . , D0 6= 0,
och M kan vara ett tal med o¨andligt m˚
anga siffror.
I decimalsystemet (med basen β = 10) skrivas ett tal i utvecklad form, t ex
3
9
+
=
10 100
= 2 · 100 + 4 · 10 + 5 · 1 + 9 · 0.1 + 3 · 0.01 =
= 2 · 102 + 4 · 101 + 5 · 100 + 9 · 10−1 + 3 · 10−2
245.93 = 200 + 40 + 5 +
7
(2)
N¨ar man skall lagra ett tal p˚
a formen (1) i en dator m˚
aste man avkorta M .
Antag, att t (signifikanta) siffror anv¨ands f¨or att representera M . Man lagra d˚
a
talet (i decimalsystemet)
a = ±m · 10e ,
0.1 ≤ m < 1,
m = 0.d1 d2 . . . dt ,
d1 > 0,
e ett helt tal,
¯.
|e| < M
m a¨r M avkortat till t siffror. m kallas taldelen (eller mantissan), och e kallas
exponentdelen
Enligt IEEE Standard (’single precision’), −38 < e < 38.
1.2
Avrundning
Betrakta avrundning av decimala tal till t decimaler. Formulera avrundningsreglar:
t:e decimalen o¨kas med 1 om den del av talet som st˚
ar i positioner till h¨oger om t:e
−t
decimalen har v¨arde st¨orre ¨an 0.5 · 10 . Om v¨ardet mindre ¨an 0.5 · 10−t , f¨or¨andras
t:e decimalen inte. Om det ¨ar lika med 0.5 · 10−t , ¨okas t:e decimalen bara om den
¨ar udda.
Exempel 1.1
1. Avrundning till t = 2 decimaler: 1.2535 avrundas till 1.25. Den del av talet
1.2535 som st˚
ar i positioner till h¨oger om andra decimalen a¨r 0.0035 och det a¨r
mindre ¨an 0.5 · 10−t med t = 2: 0.0035 < 0.005 = 0.5 · 10−2 ; d˚
a f¨or¨andras andra
decimalen 5 inte och 1.2535 ≈ 1.25.
2. 0.756322 ≈ 0.7563 till t = 3 decimaler.
3. 2.859 ≈ 2.86 till t = 2 decimaler.
4. 1.2535 ≈ 1.2 till t = 1 decimal; den f¨orsta decimalen 2 ¨ar j¨amn.
5. 1.2535 ≈ 1.254 till t = 3 decimaler; den 3:e decimalen 3 ¨ar udda.
6. 3.45 ≈ 3.4, 3.55 ≈ 3.6 till t = 1 decimal.
Av avrundningsregler f¨oljer att felet vid avrundning till t decimaler ¨ar mindre
¨an eller lika med 0.5 · 10−t .
1.3
Avhuggning
Vid avhuggning stryks alla siffror till h¨oger om t:e decimalen.
Exempel 1.2
1. Avhuggning till t = 2 decimaler:
1.2535 avhuggs till 1.25.
8
0.3333333 avhuggs till 0.33.
1.9999 avhuggs till 1.99.
1. Avhuggning till t = 4 decimaler:
1.73205 avhuggs till 1.7320.
3.14159 avhuggs till 3.1415.
Felet vid avhuggning till t decimaler ¨ar mindre a¨n eller lika med 10−t och ¨ar
systematiskt: det avkortade v¨ardet a¨r alltid mindre a¨n det oavkortade v¨ardet.
1.4
Felfortplantning
L˚
at a beteckna ett exakt v¨arde och a
˜ ett n¨armev¨arde till ett tal a, t ex
√
a = 2, a
˜ = 1.414 4S,
a = π,
a
˜ = 3.1415 5S.
Vi inf¨or f¨oljande definitioner
Absolut fel i a
˜ : ² = ∆a = a − a
˜;
d˚
a
a=a
˜+²
Exempel 1.3
Om a
˜ = 10.5 ¨ar n¨armev¨ardet till talet a = 10.2, ¨ar absolut felet ² = −0.3.
Relativt fel i a
˜ : ²r =
∆a
²
a−a
˜
Fel
= =
=
a
a
a
exakt v¨arde
²
²r ≈ .
a
˜
I exemplet ovan har vi
²=a−a
˜=
√
2 − 1.414 = 0.0002135 . . . ;
²
0.0002135
0.0002135
√
=
.
≈
a
1.414
2
²=a−a
˜ = π − 3.1415 = 0.0000925 . . . ;
²
0.0000925
0.0000925
²r = =
≈
.
a
π
3.1415
²r =
9
(a 6= 0).
En approximation a
˜ s¨ags ha n korrekta decimaler (KD) om
|∆a| = |˜
a − a| ≤ 0.5 · 10−n
(dvs approximationen har ett fel mindre ¨an eller lika med en halv enhet i n:te
decimalen).
Som m˚
att p˚
a relativ nogrannhet anv¨ander man ofta talets v¨ardesiffror (antalet
korrekta siffror som inleder approximationen; inledande nollor medr¨aknas d˚
a inte).
1.5
Felgr¨
anser.
Felgr¨ans βa i absolut fel :
Felgr¨ans βr i relativt fel :
|²| ≤ βa
|²r | ≤ βr
d˚
a |a − a
˜| ≤ β.
¯
¯
¯a − a
˜ ¯¯
¯
≤ βr .
d˚
a ¯
a ¯
Exempel 1.4
approximation med felgr¨ans
3.142±0.0005
0.0063860±0.5E-7
244000±500
1.6
3
7
0
KD v¨ardesiffror
4
5
3
Ackumulerade fel
Vi ska formulera en sats som ger felgr¨anser i addition och multiplikation (se
THEOREM 17.1.1, E. Kreyszig, Advanced Engineering Mathematics, 8th Edition
(AEM)):
I addition, S = a1 + a2 , och subtraktion, D = a1 − a2 , kan felgr¨ansen (²) upskattas
|²| ≤ β1 + β2 .
d¨ar βi , i = 1, 2, ¨ar a0i s felgr¨anser i absolut fel. I multiplikation, M = a1 · a2 , och
division, Di = a1 /a2 (a2 6= 0), kan felgr¨anserna ²r upskattas approximativt
|²r | ≤ βr1 + βr2 .
d¨ar βri , i = 1, 2, ¨ar a0i s felgr¨anser i relativt fel.
10
1.7
Kancellation: f¨
orlusten av signifikanta siffror
Om vi skall anv¨anda n¨armev¨arden i ber¨akningar, ¨ar det viktigt attinformationen
inte i on¨odan g˚
ar f¨rlorad.
Exempel 1.5
N¨armev¨ardena
x1 = 3.162277 ± 0.5 · 10−6 ,
x2 = 3.162589 ± 0.5 · 10−6 ,
(3)
har b˚
ada 7 S (6 KD). Differensen
y = x1 − x2 = −0.000312 ± 10−6
(4)
har bara tv˚
a S eftersom 0.5 · 10−6 < 10−6 < 0.5 · 10−5 . Vi har kancellation av fyra
S.
Exempel 1.6
Andragradsekvationen
x2 − 18x + 1 = 0
har l¨osningen
Om
√
x=9±
√
81 − 1 = 9 ±
(5)
√
80.
80 ≈ 8.9443 ± 0.5 · 10−4 ges med fyra KD, f˚
ar vi
x1 = 9 + 8.9443 ± 0.5 · 10−4 = 17.9443 ± 0.5 · 10−4 ,
x2 = 9 − 8.9443 ± 0.5 · 10−4 = 0.0557 ± 0.5 · 10−4 .
(6)
Det f¨orsta n¨armev¨adret har 6 S, medan det andra har tre S. Kancellationen undviks
om man ber¨aknar x2 enligt
√
√
√
(9 − 80)(9 + 80)
1
1
√
√ =
x2 = 9 − 80 =
=
, (7)
17.9443 ± 0.5 · 10−4
9 + 80
9 + 80
och
1
= 0.055728002 . . .
(8)
17.9443
(resultatet avrundas till 7 decimaler). F¨or divisionen y = p1 /p2 , uppskattas felgr¨ansen i relativt fel
¯ ¯
¯
¯ ¯
¯
¯ ∆y ¯ ¯ ∆p1 ¯ ¯ ∆p2 ¯
¯ ¯
¯
¯ ¯
¯
(9)
¯ y ¯ ≤ ¯ p1 ¯ + ¯ p2 ¯ .
11
I (7), p1 = 1, p2 = 17.9443, ∆p1 = 0, ∆p2 = 0.5 · 10−4 , y = 0.055728002 . . . , och
relativa felet i n¨armev¨ardet till x2 = y uppskattas enligt (9) med
¯
¯
¯ ∆p2 ¯ 0.5 · 10−4
0.51 · 10−4
¯
¯=
<
= 0.3 · 10−5 .
(10)
¯ p2 ¯
17.9443
17
Det absoluta felet i n¨armev¨ardet till x2 = y = 0.0557280 blir d˚
a mindre ¨an
0.3·10−5 ·0.0557280 < 0.3·10−5 ·0.05573 < 0.3·10−5 ·0.056 = 0.0168·10−5 < 0.17·10−6 .
(11)
−7
Felet vid avrundning till 7 decimaler 0.055728002 · · · − 0.0557280 < 0.3 · 10 . Det
totala felet uppskatas med 0.17 · 10−6 + 0.3 · 10−7 = 0.2 · 10−6 , och resultatet
x2 = 0.0557280 ± 0.2 · 10−6
(12)
√
√
f (x) = x[ x + 1 − x]
(13)
har 6 KD och 5 S.
Exempel 1.7
Ber¨akna
f¨or v¨axande x med 6S:
———————————————————————–
x
ber¨aknad f (x) exakt f (x)
———————————————————————–
1.00000
.414210
.414214
10.0000
1.54430
1.54347
100.000
4.99000
4.98756
1000.00
15.8000
15.8074
10000.0
50.0000
49.9988
100000
100.000
158.113
———————————————————————–
I 6S ber¨akningar, f˚
ar vi, n¨ar x = 100,
√
√
100 = 10.0000,
101 = 10.0499.
(14)
Det f¨orsta v¨ardet a¨r exakt, och det andra v¨ardet ¨ar den r¨atta 6S-avrundningen.
Vidare
√
√
√
√
x + 1 − x = 101 − 100 = 0.04990
(15)
12
Det exakta v¨ardet ¨ar .049876 (avrundat till 6S). Ber¨akningar i (15) har
√
√ f¨orlusten
av signifikanta siffror (a loss-of-significance
error):
subtraktion
av
x
=
100
√
√
eliminerar de tre signifikanta siffrorna i x + 1 = 101.
Skriv (13) p˚
a formen
√
√ √
√
x
x+1− x
x+1+ x
f (x) = x
(16)
·√
√ =√
√
1
x+1+ x
x+1+ x
I (16), f¨orl¨orar man inte signifikanta siffror eftersom man subtraherar inte. 6S
ber¨akningar i (16) med avrundning ger
f (100) = 4.98756,
(17)
och (17) ¨ar r¨atta resultatet avrundat till 5 (korrekta) decimaler (6S).
1.8
Felformeln
Om resultatet av en ber¨akning ¨ar en kontinuerlig och deriverbar funktion f (x) av
indata, kan man h¨arleda ett samband mellan felet ∆f (x) i resultatet f (x) och felet
∆x i indata x. L˚
at x˜ = x + ∆x vara en approximation av x f¨oruts¨att att felet ∆x
a g¨aller felformeln
¨ar litet. D˚
|∆f (x)| ≈ |∆x| · |f 0 (x)|.
(18)
Felformeln s¨ager att i punkten x, ¨ar felet |∆f (x)| i resultatet approximativt lika
med felet |∆x| i indata multiplicerat med derivatans absolutbelopp |f 0 (x)|. Eftersom x-v¨ardet vanligen inte ¨ar k¨ant, brukar man approximera f 0 (x) med f 0 (˜
x)..
Observera att man kan skriva felformeln som
∆f (x) = ∆xf 0 (¯
x),
x ≤ x¯ ≤ ∆x,
s˚
a att
|∆f (x)| ≤ M |∆x|,
M = max |f 0 (ξ)|.
x≤ξ≤∆x
D˚
a blir felet ∆f (x) i resultatet mindre a¨n felet ∆x i indata om M = maxx≤ξ≤∆x |f 0 (ξ)| <
1.
Exempel 1.8
Hur noggrant ¨ar det m¨ojligt att ber¨akna a2 d˚
a a = 0.11 ¨ar k¨ant med noggranheten
0.01?
L¨
osning. H¨ar ¨ar felet ∆a i indata a mindre ¨an eller lika med 0.01. Vi har
|∆a| ≤ 0.01,
a = 0.11 ± 0.01,
0.10 = 0.11 − 0.01 ≤ a ≤ 0.11 + 0.01 = 0.12.
13
Approximationen a
˜ = 0.11 har n = 1 KD eftersom
|∆a| ≤ 0.01 < 0.05 = 0.5 · 10−1
(approximationen har ett fel mindre ¨an en halv enhet 0.5 · 0.1 = 0.05 i f¨orsta
decimalen). y = x2 a¨r en v¨axande funktion i omr˚
adet x ≥ 0, dvs x21 ≤ x22 om
0 ≤ x1 ≤ x2 . D˚
a 0.0100 ≤ a2 ≤ 0.0144 (eftersom 0.10 ≤ a ≤ 0.12) och man kan
skriva
a2 = 0.0122 ± 0.0022,
s˚
a att man kan ber¨akna a2 med noggranheten 0.0022 om a = 0.11 a¨r k¨ant med
noggranheten 0.01.
Kolla det med hj¨alp av felformeln. H¨ar ¨ar resultatet av ber¨akning en kontinuerlig och deriverbar funktion f (a) = a2 av indata och felet i indata |∆a| = 0.01.
D˚
a g¨aller felformeln
|∆f (a)| ≈ |∆a| · |f 0 (a)| = 0.01 · |2a|.
I punkten a ≈ a
˜ = 0.11
|∆f (a)| ≈ 0.01 · 2 · 0.11 = 0.01 · 0.22 = 0.0022.
Observera att |f 0 (a)| = 2|a| ≤ q = 0.24 < 1 i intervallet 0.10 ≤ a ≤ 0.12 och
felet ∆f (x) i resultatet mindre ¨an felet ∆x i indata: |∆f (x)| < 0.24|∆x|, eftersom
h¨ar
M = maxx≤ξ≤∆x |f 0 (ξ)| = max0.10≤ξ≤0.12 2|ξ| < 0.24.
Exempel 1.9
Hur noggrant ¨ar det m¨ojligt att ber¨akna a1 d˚
a a = 0.11 ¨ar k¨ant med noggranheten
0.01?
Lo
¨sning. H¨ar
|∆a| ≤ 0.01,
a = 0.11 ± 0.01,
0.10 = 0.11 − 0.01 ≤ a ≤ 0.11 + 0.01 = 0.12.
1
adet x > 0, dvs x11 ≥ x12 om 0 < x1 ≤ x2 .
¨ar en avtagande funktion i omr˚
x
1
1
1
≥ 0.11
= 9.0909 ≥ 0.12
= 8.3333 (eftersom 0.10 ≤ a ≤ 0.12)
D˚
a 10.0000 = 0.10
och man kan skriva a1 = 9.1667 ± 0.8333 ≈ 0.83, s˚
a att man kan ber¨akna a1 med
noggranhetetn 0.8333 om a = 0.11 ¨ar k¨ant med noggranhetetn 0.01.
Kolla det med hj¨alp av felformeln. H¨ar a¨r resultatet av ber¨akning en kontinuerlig och deriverbar funktion f (a) = a1 , a > 0, av indata och felet i indata
|∆a| = 0.01. D˚
a g¨aller felformeln
y=
|∆f (a)| ≈ |∆a| · |f 0 (a)| = 0.01
14
1
.
a2
I punkten a ≈ a
˜ = 0.11
|∆f (a)| ≈ 0.01
1
= 0.8264 ≈ 0.83.
0.112
Observera att |f 0 (˜
a)| ≈ 83 > 1 och 69 < |f 0 (˜
a)| < 100 i intervallet 0.10 ≤ a ≤ 0.12.
D˚
a ¨ar felet ∆f (x) i resultatet st¨orre ¨an felet ∆x i indata: |∆f (x)| > |∆x|, eller
approximativt 0.83 > 0.01.
Exempel 1.10
Hur noggrant ¨ar det m¨ojligt att ber¨akna sin(π/3) d˚
a π ¨ar k¨ant med noggranheten
0.0001?
L¨
osning. H¨ar ¨ar felet ∆x i indata x = π mindre ¨an eller lika med ∆x = 0.0001.
Vi har
|∆x| ≤ 0.0001,
x = π = 3.1415 ± 0.0001,
3.1414 = 3.1415 − 0.0001 ≤ π ≤ 3.1415 + 0.0001 = 3.1416.
L˚
at oss anv¨anda felformeln. H¨ar ¨ar resultatet av ber¨akning en kontinuerlig och
deriverbar funktion f (x) = sin(x/3) av indata och felet i indata |∆x| = 0.0001.
D˚
a g¨aller felformeln
|∆f (x)| ≈ |∆x| · |f 0 (x)| = 0.0001 ·
| cos(x/3)|
3
I punkten x ≈ x˜ = π
|∆f (x)| ≈ 0.0001 ·
| cos(π/3)|
1/2
= 0.0001 ·
= 0.00001667 ≈ 0.00002.
3
3
sin(π/3) kan s˚
aledes ber¨aknas med ett fel som upg˚
ar till h¨ogst 0.00002.
1.9
Bin¨
ara systemet
I decimalsystemet (som har basen 10 och man kan anv¨anda 10 siffror 0, 1, ..., 9),
skrivas ett tal, t ex, 342.105, i utvecklad form
3 · 102 + 4 · 101 + 2 · 100 + 1 · 10−1 + 0 · 10−2 + 5 · 10−3
(19)
I det bin¨ara systemet, som har basen 2 och man kan anv¨anda 2 siffror 0, 1,
skrivas ett tal, t ex, 1101.11, i utvecklad form
1 · 23 + 1 · 22 + 0 · 21 + 1 · 20 + 1 · 2−1 + 1 · 2−2
15
(20)
(i decimalsystemet). Man skriver ocks˚
a
(1101.11)2 = (13.75)10
eftersom
1 · 23 + 1 · 22 + 0 · 21 + 1 · 20 + 1 · 2−1 + 1 · 2−2 = 8 + 4 + 1 + 0.5 + 0.25 = 13.75.
F¨or att skriva det bin¨ara talet
an · 2n + an−1 · 2n−1 + · · · + a1 · 21 + a0 · 20 = x,
(21)
eller
(an an−1 . . . a1 a0 )2 = (x)10
i decimalsystemet, dividera det decimala talet x med 2 och beteckna kvoten med
x1 ; resten blir a0 . Vidare dividerar man x1 med 2 och betecknar kvoten med x2
(resten ¨ar a1 ), osv, och f˚
ar det bin¨ara talet a2 , a3 , . . . an .
Varje reelt tal x i talsystemet med basen β = 2 kan framst¨allas p˚
a formen (1)
och (2)
x = ±M · 2e .
(22)
x’s f¨ortecken ± ¨ar + eller −; exponentdelen e = ±E1 E2 . . . , Ek ¨ar ett helt tal
best˚
aende av k siffror 0, 1; taldelen
M = ±.D1 D2 . . . , Dn ,
0 ≤ Di < β = 2,
i = 1, 2, . . . , n,
(23)
och M ¨ar ett tal med n bin¨ara decimaler 0, 1.
F¨or l¨agring av ett flyttal x anv¨ands ett ord i datorn. Ordet har l¨angden L = 32
(eller st¨orre) bitar, dvs bin¨ara siffror 0, 1. De enskilda bitarna i ett ord disponeras
enligt f¨oljande:
± − − − − − − M − − − − − − − − − e − −−
1
n = 23
k=8
Exempel 1.11. Bin¨
ara flyttal i datorn
0.50000
+ .100...00
25.0 = 0.78125 · 25
+ .110010...0
−4
0.046875 = 0.75 · 2
+ .1100...00
Exempel 1.12
16
+0..0
+0000101
−0000100
Ber¨akna 100 · π d˚
a man i varje operation avkortar till 4 S.
F¨orst, utf¨or addition av 100 termer:
tre termer: 3.141 + 3.141 + 3.141 = 9.423
+ 1 term: 9.423 + 3.141 = 12.564, avkortas till 4S 12.56.
+ 27 termer: 12.56 + 3.141 + · · · + 3.141, avkortas till 4S (2D) 12.56 + 3.14 +
· · · + 3.14 = 97.34.
+ 1 term: 97.34 + 3.14 = 100.48, avkortas till 4S 100.4.
+ 68 termer: 100.4 + 3.141 + · · · + 3.141, avkortas till 4S (1D) 100.4 + 3.1 + · · · +
3.1 = 311.2.
Addition av 100 termer ger s˚
aledes att 100 · π = 311.2, ett resultat som ¨ar
s¨amre ¨an multiplikation 100 · π = 314.1 (exakt med 4S, 1D).
1.10
Problem
Problem 1.1
Flyttalsrepresentation:
23.49, −302.867, 0.000527532, −0.25700
avrundat till 4S (signifikanta siffror):
0.2349 × 102 , −0.3029 × 103 , 0.5275 × 10−3 , −0.2570 × 105
Man kan skriva ocks˚
a
0.2349E02, −0.3029E03, 0.5275E-3, −0.2570E05.
Problem 1.2
Hur m˚
anga korrekta decimaler (KD) och signifikanta siffror (S) har n¨armev¨ardena
a = 0.0987 ± 0.5 · 10−4 ,
b = 2.370 ± 6 · 10−3 ,
c = 0.00438 ± 10−5 ,
d = 20.104 ± 4 · 10−3 .
L¨
osning. Enligt definitionerna, (1) ¨ar en signifikant siffra (S) av ett tal c (skrivet i
decimalform) varje c’s siffra utom nollor till v¨
anster om den f¨
orsta ickenoll siffran, och
(2) ett n¨armev¨arde a
˜ har n korrekta decimaler om
|∆a| = |˜
a − a| ≤ 0.5 · 10−n
(n¨armev¨ardets fel ¨ar mindre ¨an eller lika med en halv enhet i n:te decimalen).
D˚
a f˚
ar man
a = 0.0987 ± 0.5 · 10−4 :
17
4 KD och 3 S,
b = 2.370 ± 6 · 10−3 = 2.370 ± 0.6 · 10−2 ,
0.5 · 10−2 < 0.6 · 10−2 < 0.5 · 10−1 :
b har 1 KD och 1 (siffran 2) +1 KD = 2 S,
c = 0.00438 ± 10−5 = 0.00438 ± 1 · 10−5 ,
0.5 · 10−5 < 1 · 10−5 < 0.5 · 10−4 :
c har 4 KD och 4 KD - 2 (tv˚
a nollor till v¨anster om siffran 4) = 2 S,
d = 20.104 ± 4 · 10−3 = 20.104 ± 0.4 · 10−2 ,
0.5·10−3 < 0.4·10−2 < 0.5·10−2 :
d har 2 KD och 2 (siffrorna 2, 0) +2 KD = 4 S.
Problem 1.3
L˚
at x = 1.00 ± 0.005 och y = 2.00 ± 0.01. Best¨am gr¨anser f¨or absoluta fel i r och
f d˚
a
x
r = x · y, f = .
y
L¨
osning. Enligt definitionen, har talen x = 1.00 ± 0.005 = 1.00 ± 0.5 · 10−2 2 KD
och y = 2.00 ± 0.01 = 2.00 ± 1 · 10−2 < 0.5 · 10−1 1 KD. Vi har
0.995 ≤ x ≤ 1.005, 1.99 ≤ y ≤ 2.01.
0.995 · 1.99 = 1.98 ≤ xy ≤ 1.005 · 2.01 = 2.02,
r = xy = 2.00 ± 0.02.
1.99 ≤ y ≤ 2.01,
1
1
1
= 0.502 ≥ y1 = ≥
= 0.498.
1.99
y
2.01
0.995 ≤ x ≤ 1.005, 0.498 ≤ y1 ≤ 0.502.
0.995 · 0.498 = 0.495 ≤ xy1 ≤ 1.005 · 0.502 = 0.504,
x
f = xy1 = = 0.500 ± 0.005.
y
D˚
a blir gr¨anserna f¨or absoluta fel i r = xy och f = x/y resp. 0.02 och 0.005.
Problem 1.4
Ber¨akna
a(b + c)
a
= 2
,
b−c
b − c2
with a = 0.81534, b = 35.724, c = 35.596.
18
och anv¨and olika avrundningar.
L¨
osning. Ber¨akna
R=
a(b + c)
b2 − c2
med 5S:
b+c = 71.320,
a(b+c) = 58.150,
R=
b2 = 1276.2,
c2 = 1267.1,
b2 −c2 = 9.1290,
58.150
= 6.3698
9.1290
Avrund till 4S, 3S, och 2S:
R=
58.15
= 6.370,
9.129
R=
58.2
= 6.37,
9.13
58
= 6.4,
9.1
R=
60
= 6.
10
R=
2
Funktionsber¨
akning
2.1
Serieutveckling
Vid anv¨andning av serieutveckling f¨or funktionsber¨akning approximerar man seriens summa med en partialsumma.
∞
X
L˚
at S =
an vara en konvergent serie (S betecknar ocks˚
a dess summa).
n=1
Partialsumman SN och resttermen RN definieras
SN =
N
X
an . RN = S − SN =
n=1
∞
X
an .
(24)
n=N +1
Resttermuppskattning inneb¨ar att vi uppskattar trunkeringfelet, dvs f¨ors¨oker finna
ett tal R s˚
adan att |RN | ≤ R (en o¨vre grans f¨or RN ).
Exempel 2.1
Betrakta en alternerande serie
S=
∞
X
(−1)n+1
n=1
n2
=1−
1 1
1
+ −
+ ....
4 9 16
19
(25)
Man kan visa att i det fallet |RN | ≤ |aN +1 |. Vi har |aN +1 | = 1/(N + 1)2 och
1
.
(N + 1)2
|RN | ≤
(26)
Best¨am hur m˚
anga termer m˚
aste man ta med f¨or att ber¨akna S med 3 KD: |RN | ≤
−3
0.5 · 10 , vilket ger en olikhet
1
≤ 0.5 · 10−3 .
(N + 1)2
(27)
Dess l¨osning a¨r
N≥
√
2 · 10−3 − 1 =
√
2000 − 1
(28)
och man kan ta N = 44 eftersom 442 = 1936 < 2000 < 452 = 2025.
Exempel 2.2
Betrakta en serie med positiva termer
∞
X
1
1
1
S=
=1+
+
+ ....
4
n
16 81
n=1
(29)
Man kan skriva om (29)
S=
∞
X
f (n),
f (x) =
n=1
1
x4
(x ≥ 1)
(30)
och visa att resttermen kan uppskattas
RN = S − SN =
Z
∞
X
∞
f (n) ≤
f (x)dx.
(31)
N
n=N +1
H¨ar
Z
∞
RN ≤
N
Z r
dx
lim
= lim
x−4 dx =
r→∞ N x4
r→∞ N
¯r
µ
¶
1
x−3 ¯¯
1
1
= − lim
= lim
−
=
r→∞ (−3) ¯
3 r→∞ r3 N 3
dx
=
x4
Z
1
=
.
3N 3
r
N
(32)
20
Best¨am hur m˚
anga termer m˚
aste man ta med f¨or att ber¨akna S med 3 KD: |RN | ≤
0.5 · 10−3 , vilket ger en olikhet
1
≤ 0.5 · 10−3 .
3
3N
(33)
Dess l¨osning ¨ar
µ
N≥
2 · 10−3
3
¶1/3
µ
=
2000
3
¶1/3
≈ 8.7
(34)
och man kan ta N = 9 eftersom 8 < N < 9.
Exempel 2.3
Betrakta en serie med positiva och negativa termer
S=
∞
X
2
an ,
n=1
e−bn
an =
sin(cn),
n
(35)
H¨ar a¨r b > 0 och c givna tal (parametrar). Best¨am hur m˚
anga termer m˚
aste man
ta med f¨or att ber¨akna S med noggranhet ²; dvs, best¨am N s˚
adan att
|RN | < ²,
∞
X
R N = S − SN =
an .
(36)
n=N +1
J¨amf¨or (35) med en k¨and serie som har positiva termer, dvs skriv en olikhet
¯
¯
¯ e−bn2
¯ e−bn2
2
¯
¯
|an | = ¯
sin(cn)¯ =
|sin(cn)| ≤ An = e−bn · n (n > 1)
(37)
¯ n
¯
n
och anv¨and (31) f¨or en serie
S=
∞
X
An .
n=1
Vi har
RN =
∞
X
n=N +1
Z
An ≤
e
N +1
Z
Z
∞
−bx2
r
xdx = lim
r→∞
Z
r2
−bx2
e
N +1
1
xdx = lim
2 r→∞
21
r
2
e−bx dx2 =
N +1
r2
1
1
lim
e−bu du = − lim
de−bu =
2 r→∞ (N +1)2
2b r→∞ (N +1)2
¯r 2
1
1
2
= − lim e−bu ¯(N +1)2 = e−b(N +1) .
r→∞
2b
2b
=
Z
(38)
Nu l¨os olikheten
2
RN < ² :
e−b(N +1)
<²
2b
och best¨am gr¨ansen f¨or N :
r
N>
1
1
ln
− 1.
b 2b²
Om t ex b = 1 och ² = 10−4 , f˚
ar vi
r
10000
N > ln
− 1 = 2.9184 . . . .
2
(39)
(40)
D˚
a ¨ar det tillr¨ackligt att ta med tre termer f¨or att ber¨akna S i (35) (om b = 1 och
c ¨ar ett godtyckligt tal) med noggranheten ² = 10−4 .
Kolla resultatet (ta c = 1 och r¨akna med fyra KD):
S≈
2
2
X
e−n
n=1
n
sin n = e−1 sin 1 +
e−4
sin 2 = 0.7011
2
och
S≈
2
3
X
e−n
n=1
n
sin n = e−1 sin 1 +
e−4
e−9
sin 2 +
sin 3 = 0.7011
2
3
eftersom
e−9
sin 3 < 0.5 · 10−4 .
3
Om b = 2 och ² = 10−4 , f˚
ar vi
r
1 10000
N>
ln
− 1 = 1.9778 . . . .
2
4
D˚
a a¨r det tillr¨ackligt att ta med tv˚
a termer.
2.2
Problem
Problem 2.1
22
(41)
Best¨am hur m˚
anga termer m˚
aste man ta med f¨or att ber¨akna S med tre och fyra
KD:
a) S =
∞
X
(−1)n+1
n
n=1
;
∞
X
1
b) S =
;
3
n
n=1
c) S =
∞
X
sin n
n=1
3
n2
;
Interpolation
Antag att funktionsv¨arden fi = f (xi ) ¨ar k¨anda i n + 1 olika punkter xi , i =
0, 1, . . . , n. Vi s¨oker en funktion P (x) s˚
adan att
P (xi ) = fi
(i = 0, 1, . . . n).
(42)
P (x) skall interpolera f i punkterna xi .
3.1
Interpolation med polynom
Antag att vi k¨anner funktionsv¨arden fi = f (xi ) i tre olika punkter xi , i = 0, 1, 2,
och vill konstruera ett interpolationspolynom till f . Man kan best¨amma t ex en
linj¨ar funktion, som g˚
ar genom punkterna (x0 , f0 ) och (x1 , f1 ) och ett andragradspolynom P2 (x), som g˚
ar genom de tre (olika) punkterna (x0 , f0 ), (x1 , f1 ) och
(x2 , f2 ) :
P2 (xi ) = fi
(i = 0, 1, 2).
(43)
F¨oljande sats utg¨or grunden f¨or polynominterpolation.
Sats 3.1 L˚
at x0 , x1 , . . . , xn vara godtyckliga, fr˚
an varandra skilda punkter. Till
godtyckliga v¨arden f0 , f1 , . . . , fn finns ett entydigt best¨amt polynom P (x) av grad
≤ n s˚
adant att
P (xi ) = fi
(i = 0, 1, . . . n).
(44)
Bevis (n = 1). F¨or n = 1 a¨r P = P1 (x) = Ax + B en linj¨ar funktion som g˚
ar
genom punkterna (x0 , f0 ) och (x1 , f1 ):
f (x0 ) = P1 (x0 ),
f (x1 ) = P1 (x1 ).
23
(45)
Vi f˚
ar ett linj¨art ekvationssystem ned tv˚
a obekanta A och B
P1 (x0 ) = f0 = Ax0 + B,
P1 (x1 ) = f1 = Ax1 + B,
vilken ger
A =
f (x1 ) − f (x0 )
,
x1 − x0
B =
x1 f (x0 ) − x0 f (x1 )
.
x1 − x0
D˚
a, enligt (45),
P1 (x) = f0 +
x − x0
(f1 − f0 ).
x1 − x0
(46)
Om f (x) ¨ar en linj¨ar funktion, d˚
a ¨ar interpolation exakt och funktionen P1 (x)
i (46) sammanfaller med f (x).
Interpolationsfel
²(x) = f (x) − P (x).
I interpolationspunkterna
²(x0 ) = ²(x1 ) = 0
och
²(x) ≡ 0, x ∈ [a, b]
om f (x) ¨ar en linj¨ar funktion.
Sats 3.2 L˚
at f vara en funktion med n + 1 kontinuerliga derivator inom det
intervall som bildas av punkterna x0 , x1 , . . . , xn . Om P (x) ¨ar entydigt best¨amda
polynom av grad ≤ n som upfyller (44), g¨aller
f (x) − P (x) =
f (n+1) (ξ(x))
(x − x0 )(x − x1 ) . . . (x − xn )
(n + 1)!
(47)
f¨or n˚
agot ξ(x) inom det intervall som bildas av punkterna x0 , x1 , . . . , xn .
F¨or n = 1, ¨ar P (x) en linj¨ar funktion, och vi f˚
ar
f (x) − P (x) =
f 00 (ξ(x))
(x − x0 )(x − x1 ).
2
(48)
Sats 3.3 L˚
at f vara en funktion med 2 kontinuerliga derivator inom intervallet
x0 , x1 = x0 +h och f (x) approximeras genom linj¨ar interpolation mellan punkterna
(x0 , f0 ) och (x1 , f1 ). (P (x) ¨ar entydigt best¨amda polynom av grad ≤ 1 som upfyller
(44) med n = 1). D˚
a kan interpolationsfelet uppskattas
|f (x) − P (x)| ≤
h2
max |f 00 (x)|.
8 x0 ≤x≤x1
24
(49)
Bevis Enligt Sats 3.2 och (48),
f 00 (ξ(x))
R(x) = f (x) − P (x) =
(x − x0 )(x − x1 )
2
f¨or n˚
agot ξ(x) inom det intervall som bildas av punkterna (x0 , x1 ). S¨att x = x0 +ph
och utnyttja, att x1 = x0 + h (p = 1). D˚
a f˚
as
R(x) =
f 00 (ξ(x0 + ph)) 2
h p(p − 1).
2
D˚
a
max |p(p − 1)| =
0≤p≤1
1
4
f¨oljer satsen.
Figur 1: Linj¨ar interpolation och MATLABkoder.
3.2
3.2.1
Linj¨
ar interpolation
Styckvis-linj¨
ar interpolation
Antag att funktionsv¨arden fi = f (xi ) a¨r k¨anda i M + 1 olika punkter xi , i =
0, 1, . . . , M , t ex i punkterna
xk = a + kh; k = 0, 1, 2, . . . , M, h =
b−a
,
M
(M = 2, 3, . . . ),
(50)
som bildar ett likformigt n¨at . Styckvis linj¨ar interpolation utf¨oras genom att vi
konstruerar en styckvis-linj¨ar interpolationsfunktion F (M ; x) som sammanfaller
25
med i f (x) i M + 1 interpolationspunkter. I varje intervall [xk , xk+1 ] f˚
as F (M ; x)
genom (46):
F (M ; x) = f (xk ) +
x − xk
(f (xk+1 ) − f (xk )),
xk+1 − xk
x ∈ [xk , xk+1 ].
Definiera fram˚
atdifferensen ∆fk = fk+1 − fk d¨ar fk = f (xk ); d˚
a f˚
ar vi
F (M ; x) = fk + (x − xk )
∆fk
,
h
x ∈ [xk , xk+1 ].
(51)
Exempel 3.1 Linj¨
ar Lagranges interpolation
Anv¨and linj¨ar Lagranges interpolation och ber¨akna ln 9.2 med hj¨alp av ln 9.0 =
2.1972 och ln 9.5 = 2.2513. Ber¨akna interpolationsfelet. Det exakta v¨ardet ¨ar a =
ln 9.2 = 2.2192 (4D).
L¨
osning. H¨ar kan man utf¨ora linj¨ar Lagranges interpolation genom linj¨ar interpolation i punkterna (x0 , f0 ) och (x1 , f1 ) (se ovan). De linj¨ara funktionerna
L0 (x) =
x − x1
,
x0 − x1
L1 (x) =
x − x0
x1 − x0
ger Lagranges polynom
p1 (x) = L0 (x)f0 + L1 (x)f1 =
x − x1
x − x0
f0 +
f1 .
x0 − x1
x1 − x 0
Vi har x0 = 9.0, x1 = 9.5, f0 = 2.1972, och f1 = 2.2513. Ber¨akna
L0 (9.2) =
9.2 − 9.5
= 0.6,
9.0 − 9.5
L1 (9.2) =
9.2 − 9.0
= 0.4,
9.5 − 9.0
d˚
a
ln 9.2 ≈ a
˜ = p1 (9.2) = L0 (9.2)f0 + L1 (9.2)f1 = 0.6 · 2.1972 + 0.4 · 2.2513 = 2.2188.
Interpolationsfelet ¨ar ² = a − a
˜ = 2.2192 − 2.2188 = 0.0004.
3.2.2
Andragradsinterpolation
Andragradsinterpolation utf¨oras med hj¨alp av ett polynom av grad n = 2 i tre
(olika) noder x0 , x1 , x2 , eftersom man kan entydigt best¨amma ett andragradspolynom P2 (x), som g˚
ar genom de tre (olika) punkterna (x0 , f0 ), (x1 , f1 ) och (x2 , f2 )
(se Sats 3.1):
P2 (xi ) = fi
(i = 0, 1, 2).
26
(52)
Lagranges polynom av grad 2 ¨ar
(x − x1 )(x − x2 )
;
(x0 − x1 )(x0 − x2 )
(x − x0 )(x − x2 )
l1 (x) =
;
(x1 − x0 )(x1 − x2 )
(x − x0 )(x − x1 )
l2 (x) =
.
(x2 − x0 )(x2 − x1 )
(53)
P2 (x) = f0 l0 (x) + f1 l1 (x) + f2 l2 (x).
(54)
l0 (x) =
Uttrycket
ger ett andragradspolynom, som satisfierar (52):
P2 (xj ) = fj ,
j = 0, 1, 2,
eftersom
l0 (x1 ) = l0 (x2 ) = 0, l0 (x0 ) = 1,
l1 (x0 ) = l1 (x2 ) = 0, l1 (x1 ) = 1,
l2 (x0 ) = l2 (x1 ) = 0, l2 (x2 ) = 1.
(55)
Om Q2 (x) ¨ar ett annat andragradspolynom s˚
adant att Q2 (xj ) = fj , d˚
a ¨ar
R2 (x) = P2 (x) − Q2 (x) ocks˚
a ett andragradspolynom som ¨ar lika med 0 i tre olika
punkter x0 , x1 , x2 ; dvs den andragradsekvationen R2 (x) = 0 har tre olika r¨otter,
som ger R2 (x) ≡ 0.
Vi har visat att Lagranges interpolationsformel (54) definierar ett entydigt
best¨amt andragradsinterpolationspolynom s˚
a snart interpolationsdata [interpolationsnoder x0 , x1 , x2 (tre olika punkter) och interpolationsordinator f0 , f1 , f2 ] ¨ar
fixerad.
Exempel 3.2
L˚
at x0 = 1, x1 = 2, x2 = 4 vara tre olika interpolationsnoder. Motsvarande
Lagranges polynom (53) ¨ar:
x−2 x−4
1
= (x2 − 6x + 8);
1−2 1−4
3
x−1 x−4
1
l1 (x) =
= − (x2 − 5x + 4);
2−1 2−4
2
1
x−1 x−2
= (x2 − 3x + 2).
l2 (x) =
4−1 4−2
6
l0 (x) =
27
Lagranges andragradsinterpolationspolynom ¨ar
P2 (x) =
f0 2
f1
f2
(x − 6x + 8) − (x2 − 5x + 4) + (x2 − 3x + 2).
3
2
6
Figur 2: Andragradsinterpolationspolynom P2 (x) = 0.5(x − 2)(x − 3) som imterpolerar interpolationsdata (x0 , f0 ), (x1 , f1 ), (x2 , f2 ) = (1, 1), (2, 0), (4, 1).
Betrakta interpolationsordinator f0 = f2 = 1, f1 = 0, dvs interpolationsdata
(x0 , f0 ), (x1 , f1 ), (x2 , f2 ) = (1, 1), (2, 0), (4, 1).
D˚
a f˚
ar vi ett entydigt best¨amt andragradsinterpolationspolynom
P2 (x) =
1 2
1
(x − 5x + 6) = (x − 2)(x − 3)
2
2
och P2 (x) sammanfaller med givna interpolationsordinator i interpolationspunkterna:
P2 (1) = 1; P2 (2) = 0; P2 (4) = 1.
Om f (x) = ax2 + bx + c, a 6= 0 ¨ar ett andragradspolynom, d˚
a ¨ar andragradsinterpolation exakt och funktionen P2 (x) i (54) sammanfaller med f (x).
Interpolationsfelet
²(x) = f (x) − P2 (x)
²(x0 ) = ²(x1 ) = ²(x2 ) = 0
28
Figur 3: MATLABkoder f¨or andragradsinterpolationspolynom P2 (x) = 0.5(x −
2)(x − 3) i Exemplet 2.2.
och
r(x) ≡ 0, x ∈ [x0 , x2 ]
om f (x) ¨ar ett andragradspolynom.
Exempel 3.3 Lagranges andragradsinterpolation
Anv¨and Lagranges andragradsinterpolation och ber¨akna ln 9.2 med hj¨alp av ln 9.0 =
2.1972, ln 9.5 = 2.2513, och ln 11.0 = 2.3979; best¨am interpolationsdata; ber¨akna
interpolationsfelet [det exakta v¨ardet ¨ar a = ln 9.2 = 2.2192 (4D)].
L¨
osning. Interpolationsdata ¨ar
(x0 , f0 ), (x1 , f1 ), (x2 , f2 ) = (9.0, 2.1972), (9.5, 2.2513), (11.0, 2.3979).
S¨att
L0 (x) =
l0 (x)
(x − x1 )(x − x2 )
=
,
l0 (x0 )
(x0 − x1 )(x0 − x2 )
L1 (x) =
l1 (x)
(x − x0 )(x − x2 )
=
,
l1 (x1 )
(x1 − x0 )(x1 − x2 )
L2 (x) =
l2 (x)
(x − x0 )(x − x1 )
=
,
l2 (x2 )
(x2 − x0 )(x2 − x1 )
som ger Lagranges andragradsinterpolationspolynom
p2 (x) = L0 (x)f0 + L1 (x)f1 + L2 (x)f2 .
H¨ar x0 = 9.0, x1 = 9.5, x2 = 11.0 och f0 = 2.1972, f1 = 2.2513, f2 = 2.3979.
Ber¨akna
L0 (x) =
(x − 9.5)(x − 11.0)
= x2 − 20.5x + 104.5,
(9.0 − 9.5)(9.0 − 11.0)
29
L0 (9.2) = 0.5400;
L1 (x) =
(x − 9.0)(x − 11.0)
1
=
(x2 − 20x + 99),
(9.5 − 9.0)(9.5 − 11.0)
0.75
L1 (9.2) = 0.4800;
(x − 9.0)(x − 9.5)
1
= (x2 − 18.5x + 85.5),
(11.0 − 9.0)(11.0 − 9.5)
3
och f˚
a resultatet
L2 (x) =
L2 (9.2) = −0.0200
ln 9.2 ≈ p2 (9.2) = L0 (9.2)f0 + L1 (9.2)f1 + L2 (9.2)f2 =
0.5400 · 2.1972 + 0.4800 · 2.2513 − 0.0200 · 2.3979 = 2.2192,
som ¨ar exakt med 4D.
Lagranges polynom av grad n = 2, 3 . . . ¨ar
l0 (x) = w10 (x)w20 (x) . . . wn0 (x);
k
k
lk (x) = w0k (x)w1k (x) . . . wk−1
(x)wk+1
. . . wnk (x),
k = 1, 2 . . . , n − 1;
n
n
ln (x) = w0 (x)w1n (x) . . . wn−1
(x),
d¨ar
wjk (x) =
x − xj
;
xk − xj
k = 0, 1, . . . n, j = 0, 1, . . . n, k 6= j.
och
lk (xk ) = 1,
lk (xj ) = 0, j 6= k.
Lagranges allm¨
anna interpolationspolynom ¨ar
Pn (x) = f0 l0 (x) + f1 l1 (x) + . . . + fn−1 ln−1 (x) + fn ln (x),
n = 1, 2, . . . ,
(56)
som sammanfaller med ett entydigt best¨amt polynom Pn (x) av grad ≤ n s˚
adant
att
Pn (xi ) = fi
(i = 0, 1, . . . n).
dvs Pn (x) g˚
ar genom interpolationsnoder och ordinator.
Interpolationselet uppskattas
f n+1 (t)
,
(n + 1)!
t ∈ (x0 , xn )
²n (x) = f (x) − Pn (x) = (x − x0 )(x − x1 ) . . . (x − xn )
n = 1, 2, . . . ,
30
om f (x) har (n + 1) kontinuerliga derivator.
Exempel 3.4 Felet vid linj¨
ar interpolation i Exempel 3.3
L¨
osning. Betrakta interpolationsdata (x0 , f0 ) och (x1 , f1 ). S¨att
L0 (x) =
x − x1
,
x0 − x1
L1 (x) =
x − x0
,
x1 − x0
och skriv motsvarande Lagranges polynom
p1 (x) = L0 (x)f0 + L1 (x)f1 =
x − x1
x − x0
f0 +
f1 .
x0 − x1
x1 − x 0
I Exempel 3.3, x0 = 9.0, x1 = 9.5, f0 = 2.1972, f1 = 2.2513. och
ln 9.2 ≈ a
˜ = p1 (9.2) = L0 (9.2)f0 + L1 (9.2)f1 = 0.6 · 2.1972 + 0.4 · 2.2513 = 2.2188.
Interpolationsfelet i punkten x = 9.2 ¨ar ² = a − a
˜ = 2.2192 − 2.2188 = 0.0004.
Enligt (48) och (49), kan felet upskattas
²1 (x) = f (x) − p1 (x) = (x − x0 )(x − x1 )
f 00 (t)
,
2
t ∈ (9.0, 9.5)
d¨ar
f (t) = ln t,
f 0 (t) = 1/t,
f 00 (t) = −1/t2 .
Vidare
²1 (x) = (x − 9.0)(x − 9.5)
(−1)
,
2t2
²1 (9.2) = (0.2)(−0.3)
(−1)
0.03
=
(t ∈ (9.0, 9.5)),
2t2
t2
¯
¯
¯
¯
¯ 0.03 ¯
¯ 0.03 ¯ 0.03
0.03
0.00033 =
= min ¯¯ 2 ¯¯ ≤ |²1 (9.2)| ≤ max ¯¯ 2 ¯¯ =
= 0.00037
t∈[9.0,9.5]
t∈[9.0,9.5]
9.52
t
t
9.02
Vi har
0.00033 ≤ |²1 (9.2)| ≤ 0.00037
(57)
som ¨ar mindre ¨an det aktuella felet 0.0004 = ² = a − a
˜. Ber¨akna resultatet med
5D ist¨allet f¨or 4D
ln 9.2 ≈ a
˜ = p1 (9.2) = 0.6 · 2.19722 + 0.4 · 2.25129 = 2.21885.
Interpolationsfelet blir
² = 2.21920 − 2.21885 = 0.00035
som satisfierar (57) eftersom 0.00035 ligger mellan 0.00033 och 0.00037.
31
3.2.3
Felprincipuppskattning
Ber¨akna f¨orst
p1 (9.2) = 2.21885
och sedan
p2 (9.2) = 0.54 · 2.1972 + 0.48 · 2.2513 − 0.02 · 2.3979 = 2.21916
med 5D. Differensen
p2 (9.2) − p1 (9.2) = 2.21916 − 2.21885 = 0.00031
ger ett approximativt fel f¨or p1 (9.2): 0.00031 ¨ar en approximation till felet 0.00035
ovan.
3.3
Differenser
3.3.1
Differensf¨
oljder och differensschema
Betrakta ett n¨at som best˚
ar av punkter (funktionsv¨ardena) y0 , y1 , y2 , . . . . Differensoperatorn ∆ avbildar talf¨oljden {yn } p˚
a talf¨oljden
∆yn = yn+1 − yn
(58)
∆yn kallas f¨orsta differensf¨oljden av {yn }.
Differensf¨oljder av h¨ogre ordning definieras rekursivt:
∆k yn = ∆(∆k−1 yn ) = ∆k−1 yn+1 − ∆k−1 yn ,
n = 0, 1, 2, . . . .
(59)
Vi har
∆y0 = y1 − y0 ,
∆y1 = y2 − y1 , . . . .
∆2 y0 = ∆(∆y) = ∆y1 − ∆y0 = y2 − y1 − (y1 − y0 ) = y2 − 2y1 + y0 .
(60)
(61)
Ett differensschema best˚
ar av en (given) talf¨oljd {yn } och dess differensf¨oljder
0
y0
∆y0
1
y1
∆y1
2
y2
∆2 y0
∆2 y1
∆y2
..
.
..
.
∆yn−1
n
yn
32
∆3 y0
∆3 y1
..
.
...
Exempel 3.5
En talf¨oljd {yn } och dess differensf¨oljder
0
1
1
9
8
8
16
0
2 25
8
24
3
3.3.2
49
Fram˚
atdifferenser
Betrakta ett n¨at som best˚
ar av punkter
x0 , x 1 , x 2 , . . . ,
xi 6= xj , i 6= j,
och motsvarande f (x)’s funktionsv¨ardena f0 , f1 , f2 , . . . .
Definiera f¨orsta fram˚
atdifferenserna
f [x0 , x1 ] =
f1 − f0
f2 − f1
; f [x1 , x2 ] =
; ...
x1 − x0
x2 − x1
(j¨amf¨or med den f¨orsta differensf¨oljden ∆fk = fk+1 − fk ).
Andragradsfram˚
atdifferenserna definieras
f [x1 , x2 ] − f [x0 , x1 ]
;
x2 − x0
f [x2 , x3 ] − f [x1 , x2 ]
f [x1 , x2 , x3 ] =
, ....
x3 − x1
f [x0 , x1 , x2 ] =
(62)
Fram˚
atdifferenserna av h¨ogre ordning definieras rekursivt:
f [x0 , x1 , . . . , xn , xn+1 ] =
f [x1 , x2 , . . . , xn+1 ] − f [x0 , x1 , . . . xn ]
.
xn+1 − x0
Man kan visa att differensernas v¨arden ¨ar oberoende av ordningen i n¨atet x0 , x1 , x2 , . . . , xn ,
dvs, t ex,
f [x0 , x1 , . . . , xn , xn+1 ] = f [x1 , x0 , . . . , xn+1 , xn ] = . . .
Visa det f¨or f¨orsta fram˚
atdifferenserna (n = 1):
f [x1 , x0 ] =
f1 − f0
f0 − f1
=
= f [x0 , x1 ].
x0 − x1
x1 − x0
33
Om n = 2, f˚
ar vi
f [x0 , x1 , x2 ] =
f0
f1
+
(x0 − x1 )(x0 − x2 )
(x1 − x0 )(x1 − x2 )
f2
+
.
(x2 − x0 )(x2 − x1 )
Om man byter x0 , x1 och x2 , d˚
a bytas bara termernas ordning men inte deras
summa.
Differensschemat ¨overg˚
ar i
x0 f (x0 )
f [x0 , x1 ]
x1 f (x1 )
f [x0 , x1 , x2 ]
f [x1 , x2 ]
f [x0 , x1 , x2 , x3 ]
x2 f (x2 )
f [x1 , x2 , x3 ]
f [x2 , x3 ]
..
.
..
.
f [x1 , x2 , x3 , x4 ] . . .
..
.
f [xn−1 , xn ]
xn f (xn )
3.3.3
Fram˚
atdifferenser – ekvidistanta fallet
I m˚
anga till¨ampningar ¨ar n¨atpunkterna (noder) ekvidistanta:
xj = x0 + jh, j = 0, 1, 2, . . .
(63)
Antag att fj = f (x0 +jh) ¨ar givna tal. D˚
a kan man skriva f¨orsta fram˚
atdifferenserna
f [x0 , x1 ] = f [x0 , x0 + h] =
f1 − f0
∆f0
f (x0 + h) − f (x0 )
=
=
,
x0 + h − x0
h
1!h
(64)
och andragradsfram˚
atdifferenserna
1
f [x0 , x1 , x2 ] =
2h
µ
∆f1
∆f0
−
1!h
1!y
¶
=
∆ 2 f0
,
2!h2
etc. Fram˚
atdifferenserna av h¨ogre ordning i ekvidistanta noder definieras
f [x0 , x0 + h, . . . , x0 + nh] =
Exempel 3.6
34
∆n f0
.
n!hn
(65)
Best¨am differensschemat (med 3D) f¨or
y = f (x) =
1
,
1 + x2
i noderna xk = kh, k = 0, 1, 2, . . . , 10, h = 0.1:
0.0 1.000
−0.100
0.1 0.990
−0.900
−0.280
0.2 0.962
0.167
−0.850
−0.450
0.3 0.917
3.4
3.4.1
Interpolationspolynom och differenser
Newtons allm¨
ana interpolationsformel
L˚
at Pn (x) vara interpolationspolynomet (av grad ≤ n) till funktionen f (x) i noderna xi , i = 0, 1, 2, . . . , n, som satisfierar interpolationsvillkoren
Pn (xi ) = f (xi ), i = 0, 1, 2, . . . n.
(66)
D˚
a uttrycks Lagranges interpolationspolynom av grad ≤ n som interpolerar f (x)
i noderna xi (i = 0, 1, . . . , n) p˚
a f¨oljande s¨att
P1 (x) = f0 + (x − x0 )f [x0 , x1 ];
P2 (x) = f0 + (x − x0 )f [x0 , x1 ] + (x − x0 )(x − x1 )f [x0 , x1 , x2 ]
.
.
.
Pn (x) = f0 + (x − x0 )f [x0 , x1 ] + . . .
+ (x − x0 )(x − x1 )(x − xn−1 )f [x0 , x1 , . . . xn ].
(67)
(68)
(69)
(69) kallas Newtons allm¨ana interpolationsformel. Iinterpolationspolynomet av h¨ogre
ordning definieras rekursivt:
Pk+1 = Pk (x) + (x − x0 ) . . . (x − xk )f [x0 , x1 , . . . xk+1 ].
Visa (67). Vi har P1 (x0 ) = f0 och
f (x1 ) − f (x0 )
x1 − x0
= f0 + (f1 − f0 ) = f1 .
P1 (x1 ) = f0 + (x1 − x0 )
35
D˚
a ¨ar P1 (x) ett interpolationspolynom av grad ≤ 1, dvs den linj¨ara funktionen
som uppfyller interpolationsvillkoren (66):
P1 (xi ) = f (xi ), i = 0, 1.
Visa (68). Vi har ett interpolationspolynom av grad ≤ 2
P2 (x) = P1 (x) + (x − x0 )(x − x1 )f [x0 , x1 , x2 ]
som satisfierar
P2 (xi ) = P1 (xi ) + 0 = fi , i = 0, 1.
Vidare
P2 (x2 ) = f0 + (x2 − x0 )f [x0 , x1 ] + (x2 − x0 )(x2 − x1 )f [x0 , x1 , x2 ]
= f0 + (x2 − x0 )f [x0 , x1 ] + (x2 − x1 )(f [x1 , x2 ] − f [x0 , x1 ])
= f0 + (x1 − x0 )f [x0 , x1 ] + (x2 − x1 )f [x1 , x2 ]
= f0 + (f1 − f0 ) + (f2 − f1 ) = f2 .
(70)
Enligt Sats 3.1, ger (70) ett entydigt best¨amt interpolationspolynom av grad ≤ 2
som interpolerar funktionen f (x) i tre noderna x0 , x1 , x2 .
Exempel 3.7
Best¨am f (9.2) d˚
a f¨oljande funktionsv¨arden ¨ar k¨anda:
8.0
2.079442
9.0
2.197225
0.117783
−0.006433
0.108134
9.5
2.251292
0.000411
−0.005200
0.097735
11.0 2.397895
Vi har
f (x) ≈ p3 (x) = 2.079442 + 0.117783(x − 8.0)−
0.006433(x − 8.0)(x − 9.0) + 0.000411(x − 8.0)(x − 9.0)(x − 9.5).
I punkten x = 9.2,
f (9.2) ≈ 2.079442 + 0.141340 − 0.001544 − 0.000030 = 2.219208.
Observera att interpolationsfelet minskar n¨ar n ¨okar:
p1 (9.2) = 2.220782,
p2 (9.2) = 2.219238,
36
p3 (9.2) = 2.219208.
3.4.2
Newtons interpolationsformel i ekvidistanta fallet
Betrakta ekvidistanta interpolationspunkter x0 , x0 + h, x0 + 2h, . . . och s¨att
x − x0
r =
,
h
x = x0 + rh, x − x0 = rh, (x − x0 )(x − x0 − h) = r(r − 1)h2 , . . . .
D˚
a ¨overg˚
ar (69) i Newtons interpolationsformel i ekvidistanta fallet
f (x) = f (x0 + rh) = Pn (x) + ²n (x) =
f0 +
r
r(r − 1) 2
r(r − 1) . . . (r − n + 1) n
∆f0 +
∆ f0 +
∆ f0 + ²n (x),
1!
2!
n!
(71)
(72)
eller
f (x) ≈ Pn (x) = f0 + r∆f0 +
r(r − 1) . . . (r − n + 1) n
r(r − 1) 2
∆ f0 + · · · +
∆ f0 .
2!
n!
Interpolationsfelet uppskattas
²n (x) = f (x) − Pn (x) =
hn+1
r(r − 1) . . . (r − n)f (n+1) (t),
(n + 1)!
n = 1, 2, . . . , t ∈ (x0 , xn )
(om f (x) har (n + 1) kontinuerliga derivator).
Exempel 3.8
Best¨am cosh(0.56) d˚
a f¨oljande funktionsv¨arden ¨ar k¨anda:
0.5
0.6
0.7
0.8
1.127626
1.185645
1.255169
1.337435
Utf¨or feluppskattning.
L¨
osning. Konstruera differensschemat (med 6D)
0.5 1.127626
0.058019
0.6 1.185645
0.011505
0.069524
0.7 1.255169
0.001237
0.012742
0.082266
0.8 1.337435
37
Vi har
x = 0.56,
x0 = 0.50,
h = 0.1,
r=
x − x0
0.56 − 0.50
=
= 0.6,
h
0.1
och
cosh(0.56) ≈ p3 (0.56) = 1.127626+0.6·0.058019+
0.6(−0.4)
0.6(−0.4)(−1.4)
·0.011505+
·0.001237 =
2
6
1.127626 + 0.034703 − 0.001424 + 0.000039 = 1.160944.
Feluppskattning. Vi har f (t) = cosh(t), f (4) (t) = cosh(4) (t) = cosh(t), n = 3,
h = 0.1, och r = 0.6, och
²3 (0.56) = cosh(0.56) − p3 (0.56) =
(0.1)4
0.6(0.6 − 1)(0.6 − 2)(0.6 − 3) cosh(4) (t) = A cosh(t),
(4)!
t ∈ (0.5, 0.8)
d¨ar A = −0.0000036,
A cosh 0.8 ≤ ²3 (0.56) ≤ A cosh 0.5
och
p3 (0.56) + A cosh 0.8 ≤ cosh(0.56) ≤ p3 (0.56) + A cosh 0.5,
1.160939 ≤ cosh(0.56) ≤ 1.160941
3.5
Problem
Problem 3.1
Anv¨and ett likformigt n¨at som best˚
ar av M + 1 interpolationspunkter och konstruera en styckvis linj¨ar interpolationsfunktion F (M ; x) och ett andragradsinterpolationspolynom till funktionerna f (x) nedan; rita funktionskurvor och ber¨akna
interpolationsfelet (med 3D) i punkten xj+0.5 = xj + 0.5h, 0 ≤ j ≤ M .
a) f (x) = x3 − 3x2 + 2; a = 1, h = 1, M = 2, j = 0;
b) f (x) = sin πx; a = 0, h = 0.5, M = 2, j = 1;
√
c) f (x) =
x; a = 0, h = 1, M = 2, j = 1;
1
d) f (x) =
; a = 2, h = 0.2, M = 1, j = 0.
x
Problem 3.2
38
Best¨am differensscheman (med 2D) i noderna xk = kh, k = 0, 1, 2, . . . , N f¨or
√
2x + 1, h = 0.2, N = 5;
a) f (x) =
b) f (x) = (2x2 + 1)2 , h = 0.1, N = 10.
L¨
osning till problemet 2.1 a)
Vi har M = 2, M + 1 = 3, x0 = a = 1. Det likformiga n¨atet ¨ar xj = x0 + jh,
j = 0, 1, 2.
Best¨am ett andragradsinterpolationspolynom. Konstruera differensschemat i
noderna
x0 = 1, x1 = 2, x2 = 3
f¨or f (x) = x3 − 3x2 + 2 med f (x0 ) = 0, f (x1 ) = −2, f (x2 ) = 2:
1
0
−2
2 −2
6
4
3
2
.
.
.
.
.
Vi har n = 2 och
x0 = 1,
h = 1,
r=
x − x0
= x − 1.
h
Interpolationspolynomet (ett andragradspolynom)
P2 (x) = f0 + r∆f0 +
(x − 1)(x − 2)
r(r − 1) 2
∆ f0 = 0 + (x − 1)(−2) +
6 = (x − 1)(3x − 8).
2!
2
Interpolationspolynomet satisfierar interpolationsvillkor P2 (xj ) = fj , j = 0, 1, 2:
P2 (1) = 0,
P2 (2) = −2,
P2 (3) = 2.
Vi har xj+0.5 = xj + 0.5h = x0 + 0.5h = 1 + 0.5 = 1.5 (j = 0).
I punkten x0.5 = 1.5,
r = 1.5 − 1 = 0.5,
och
f (1.5) ≈ P2 (1.5) = (1.5 − 1)(3 · 1.5 − 8) = 0.5 · (−3.5) = −1.75.
39
Interpolationsfelet uppskattas
²2 (x) = f (x) − P2 (x) =
h3
r(r − 1)(r − 2)f (3) (t),
(3)!
t ∈ (1, 3)
(f (x) = x3 − 3x2 + 2 har 3 kontinuerliga derivator).
Vi har f (t) = t3 − 3t2 + 2,
f (3) (t) = 6, n = 2, h = 1, r = 0.5 och (vi r¨aknar med 3D utan avr.)
1
3
²2 (x0.5 ) = ²2 (1.5) = f (1.5) − P2 (1.5) = 0.5(0.5 − 1)(0.5 − 2) · 6 = = 0.375,
6
8
(73)
som sammanfaller med det aktuella interpolationsfelets v¨arde
²2 (1.5) = f (1.5) − P2 (1.5) = −1.375 − (−1.75) = 0.375,
(74)
Styckvis linj¨
ar interpolation utf¨oras genom att vi konstruerar en styckvis
linj¨ar interpolationsfunktion F (M ; x) som sammanfaller med M + 1 givna interpolationsv¨ardena f (x0 ) = y0 = 0, f (x1 ) = y1 = −2 och f (x2 ) = y2 = 2. H¨ar M = 2
(tv˚
a interpolationsintervall). I varje intervall [xk , xk+1 ], k = 0, 1, d¨ar (xk , yk ) ¨ar
interpolationsdata
(x0 , y0 ) (x1 , y1 ) (x2 , y2 )
(1, 0) (2, −2) (3, 2)
f˚
as F (M ; x) genom (46):
F (M ; x) = F (3; x) = yk +
x − xk
(yk+1 − yk ),
xk+1 − xk
x ∈ [xk , xk+1 ],
k = 0, 1
(tv˚
a interpolationsintervall [x0 , x1 ] och [x1 , x2 ]: [1, 2] och [2, 3]).
k = 0:
F (3; x) = y0 +
x − x0
x−1
(y1 − y0 ) = 0 +
(−2 − 0) = −2(x − 1) = 2 − 2x,
x1 − x0
2−1
x ∈ [1, 2].
k = 1:
F (3; x) = y1 +
x − x1
x−2
(y2 − y1 ) = −2 +
(2 − (−2)) = 2(2x − 5),
x2 − x1
3−2
s˚
a att (se Fig. 4)
F (3; x) = 2 − 2x, x ∈ [1, 2],
= 2(2x − 5), x ∈ [2, 3],
40
x ∈ [2, 3].
Kolla interpolationsvillkor: F (3; 1) = 0 = y0 , F (3; 2) = −2 = y1 , F (3; 3) = 2 = y2 .
Interpolationsfelet uppskattas enligt Sats 3.2
h2
1
6
max |f 00 (x)| = max |6(x − 1)| = = 0.75.
8 1≤x≤2
8 1≤x≤2
8
|²1 (x)| = |f (x) − F (3; x)| = |f (x) − (2 − 2x)| ≤
Absolutbeloppet av det aktuella interpolationsfelets i punkten x0.5 = 1.5
f (1.5) − F (3; 1.5) = −1.375 − (2 − 2 · 1.5) = −0.375,
¨ar mindre ¨an 0.75.
Figur 4: Andragradsinterpolationspolynom P2 (x) = (x − 1)(3x − 8) och styckvis
linj¨ar interpolationsfunktion F (3; x) som imterpolerar f (x) = x3 − 3x2 + 2 (interpolationsdata (x0 , f0 ), (x1 , f1 ), (x2 , f2 ) = (1, 0), (2, −2), (3, 2)).
L¨
osning till problemet 2.1 b)
Vi har M = 2, M + 1 = 3, x0 = a = 0, det likformiga n¨atet xj = x0 + jh,
j = 0, 1, 2.
Konstruera differensschemat i noderna
x0 = 0,
x1 = h = 0.5,
x2 = 2h = 1
f¨or f (x) = sin πx med f (x0 ) = 0, f (x1 ) = 1, f (x2 ) = 0:
0.0 0.0
1.0
0.5 1.0
−2
−1.0
1.0 0.0
.
.
.
.
.
Vi har n = 2,
x0 = 0,
h = 0.5,
41
r=
x − x0
= 2x.
h
Interpolationspolynomet (ett andragradspolynom)
P2 (x) = f0 + r∆f0 +
r(r − 1) 2
2x(x − 1)
∆ f0 = 0 + 2x · 1 +
(−2) = 4x(1 − x).
2!
2
Interpolationspolynomet satisfierar interpolationsvillkor P2 (xj ) = fj , j = 0, 1, 2:
P2 (0) = 0,
P2 (0.5) = 1,
P2 (1) = 0.
Vi har xj+0.5 = xj + 0.5h = x1 + 0.5h = 0.5 + 0.25 = 0.75 (j = 1).
I punkten x1.5 = 0.75 = 3/4,
r = 2 · 0.75 = 1.5,
och
f (0.75) ≈ P2 (0.75) = 4 · 0.75(1 − 0.75) = 3 · 0.25 = 0.75.
Interpolationsfelet uppskattas
h3
²2 (x) = f (x) − P2 (x) =
r(r − 1)(r − 2)f 3 (t),
(3)!
t ∈ (0, 1)
(f (x) = sin πx har 3 kontinuerliga derivator).
Vi har f (t) = sin πt,
f (3) (t) = −π 3 cos πt, n = 2, h = 0.5, r = 1.5 och (vi r¨aknar med 3D utan
avrundning)
²2 (x1.5 ) = ²2 (0.75) = f (0.75) − P2 (0.75) =
(0.5)3
1.5(1.5 − 1)(1.5 − 2) · (−π 3 cos πt) =
6
0.125 · 0.375π 3
cos πt = 0.243 cos πt.
6
Det aktuella interpolationsfelets v¨arde
√
²2 (0.75) = f (0.75) − P2 (0.75) = sin 0.75π − 0.75 = 0.5 2 − 0.75 ≈ 0.707 − 0.750 = −0.043,
ligger mellan de extrema cos πts v¨arden, 0 ≤ t ≤ 1,
0.243 cos (π · 1) ≤ ²2 (0.75) ≤ 0.243 cos (π · 0),
s˚
a att
−0.243 ≤ −0.043 ≤ 0.243.
Styckvis linj¨
ar interpolation. Konstruera en styckvis linj¨ar interpolationsfunktion F (M ; x) som sammanfaller med M +1 givna interpolationsv¨ardena f (x0 ) =
42
y0 = 0, f (x1 ) = y1 = 1 och f (x2 ) = y2 = 0. H¨ar M = 2 (tv˚
a interpolationsintervall). I varje intervall [xk , xk+1 ], k = 0, 1, d¨ar (xk , yk ) ¨ar interpolationsdata
(x0 , y0 ) (x1 , y1 ) (x2 , y2 )
(0, 0) (0.5, 1) (1, 0)
f˚
as F (M ; x) genom (46):
F (M ; x) = F (3; x) = yk +
x − xk
(yk+1 − yk ),
xk+1 − xk
x ∈ [xk , xk+1 ],
k = 0, 1
(tv˚
a interpolationsintervall [x0 , x1 ] och [x1 , x2 ]: [0, 0.5] och [0.5, 1]).
k = 0:
F (3; x) = y0 +
x − x0
x−0
(y1 − y0 ) = 0 +
(1 − 0) = 2x,
x1 − x0
0.5 − 0
x ∈ [0, 0.5].
k = 1:
F (3; x) = y1 +
x − x1
x − 0.5
(y2 − y1 ) = 1 +
(0 − 1) = 2 − 2x,
x2 − x1
1 − 0.5
x ∈ [0.5, 1].
s˚
a att (se Fig. 5)
F (3; x) = 2x, x ∈ [0, 0.5],
= 2 − 2x, x ∈ [0.5, 1],
Kolla interpolationsvillkor: F (3; 0) = 0 = y0 , F (3; 0.5) = 1 = y1 , F (3; 1) = 0 = y2 .
Interpolationsfelet uppskattas enligt Sats 3.2
h2
1
max |f 00 (x)| =
max |π 2 sin πx|
8 0.5≤x≤1
32 0.5≤x≤1
π2
≤
≈ 0.308
32
|²1 (x)| = |f (x) − F (3; x)| = |f (x) − (2 − 2x)| ≤
Absolutbeloppet av det aktuella interpolationsfelets i punkten x1.5 = 0.75
√
f (0.75)−F (3; 0.75) = sin 0.75π−(2−2·0.75) = 0.5 2−(2−2·0.75) ≈ 0.707−0.5 = 0.207
¨ar mindre ¨an 0.308.
Problem 3.3 (se Problem 17.3.1, AEM)
Anv¨and linj¨ar Lagranges interpolation och ber¨akna ln 9.3 med hj¨alp av ln 9.0 =
2.1972 och ln 9.5 = 2.2513; best¨am interpolationsdata.
L¨
osning. Interpolationsdata (x0 , f0 ) och (x1 , f1 ) ger
L0 (x) =
x − x1
,
x0 − x1
L1 (x) =
43
x − x0
,
x1 − x0
Figur 5: Andragradsinterpolationspolynom P2 (x) = 4x(1 − x) och styckvis linj¨ar
interpolationsfunktion F (3; x) som imterpolerar f (x) = sin πx (interpolationsdata
(x0 , f0 ), (x1 , f1 ), (x2 , f2 ) = (0, 0), (0.5, 1), (1, 0)).
och Lagranges polynom
p1 (x) = L0 (x)f0 + L1 (x)f1 =
x − x0
x − x1
f0 +
f1 .
x0 − x1
x1 − x 0
H¨ar, x0 = 9.0, x1 = 9.5, f0 = 2.1972, och f1 = 2.2513.
L0 (x) =
x − 9.5
= 2(9.5 − x) = 19 − 2x,
(−0.5)
L1 (x) =
x − 9.0
= 2(x − 9) = 2x − 18.
0.5
Lagranges polynom ¨ar
p1 (x) = L0 (x)f0 + L1 (x)f1 =
(19−2x)2.1972+(2x−18)2.2513 = 2x(2.2513−2.1972)+19·2.1972−18·2.2513 = 0.1082x+1.2234.
Ber¨akna
L0 (9.3) =
9.3 − 9.5
= 0.4,
9.0 − 9.5
L1 (9.3) =
9.3 − 9.0
= 0.6,
9.5 − 9.0
och f˚
a
ln 9.3 ≈ a
˜ = p1 (9.3) = L0 (9.3)f0 + L1 (9.3)f1 = 0.4 · 2.1972 + 0.6 · 2.2513 = 2.2297.
Felet ¨ar ² = a − a
˜ = 2.2300 − 2.2297 = 0.0003.
Problem 3.4 (se Problem 17.3.2, AEM)
Upskatta interpolationsfelet vid linj¨ar interpolation i Problem 3.3; det exakta
v¨ardet ¨ar ln 9.3 = 2.2300 med 4D.
L¨
osning. Upskatta interpolationsfelet med hj¨alp av (47) (n = 1)
f 00 (t)
,
²1 (x) = f (x) − p1 (x) = (x − x0 )(x − x1 )
2
44
t ∈ (9.0, 9.5)
d¨ar f (t) = ln t, f 0 (t) = 1/t och f 00 (t) = −1/t2 . D˚
a
²1 (x) = (x − 9.0)(x − 9.5)
(−1)
,
t2
²1 (9.3) = (0.3)(−0.2)
(−1)
0.03
= 2 (t ∈ (9.0, 9.5)),
2
2t
t
¯
¯
¯
¯
¯ 0.03 ¯
¯ 0.03 ¯ 0.03
0.03
0.00033 =
= min ¯¯ 2 ¯¯ ≤ |²1 (9.3)| ≤ max ¯¯ 2 ¯¯ =
= 0.00037
t∈[9.0,9.5]
t∈[9.0,9.5]
9.52
t
t
9.02
och 0.00033 ≤ |²1 (9.3)| ≤ 0.00037, som ¨ar mindre ¨an det aktuella felet 0.0003 =
²=a−a
˜ p˚
a grund av avrundingsfel. Ber¨akna resultatet med 5D ist¨allet f¨or 4D
ln 9.3 ≈ a
˜ = p1 (9.3) = 0.4 · 2.19722 + 0.6 · 2.25129 = 0.87889 + 1.35077 = 2.22966
Interpolationsfelet blir
² = 2.23001 − 2.22966 = 0.00035
som satisfierar (57) eftersom 0.00035 ligger mellan 0.00033 och 0.00037.
Problem 3.5 (se Problem 17.3.3, AEM)
Ber¨akna e−0.25 och e−0.75 med linj¨ar interpolation; interpolera funktionen e−x och anv¨
and
interpolationsnoder x0 = 0, x1 = 0.5 och x0 = 0.5, x1 = 1. Sedan best¨
am andragradsinterpolationspolynom p2 (x) till e−x i interpolationsnoder x0 = 0, x1 = 0.5, och x2 = 1
och ber¨akna e−0.25 och e−0.75 . J¨amf¨or interpolationsfelen vid linj¨
ar interpolation och
andragradsinterpolation.
L¨
osning. Interpolationsdata (x0 , f0 ) och (x1 , f1 ) ger interpolationspolynom
L0 (x) =
x − x1
,
x0 − x1
L1 (x) =
x − x0
,
x1 − x0
och Lagranges polynom
p1 (x) = L0 (x)f0 + L1 (x)f1 =
x − x1
x − x0
f0 +
f1 .
x0 − x1
x1 − x0
Vid linj¨ar interpolation, vi skall interpolera ex och anv¨
anda noderna x0 = −0.5 och
−x
x1 = 0 (eller e
och noderna x0 = 0.5 och x1 = 0) och interpolationsordinatorna
f0 = e−0.5 = 0.6065 och f1 = e0 = 1.0000.
L0 (x) =
x−0
= −2x,
(−0.5)
L1 (x) =
x + 0.5
= 2(x + 0.5) = 2x + 1.
(0.5)
Lagranges polynom ¨ar
p1 (x) = L0 (x)f0 + L1 (x)f1 =
45
−2x · 0.6065 + (2x + 1)1.0000 = 2x(1.0000 − 0.6065) + 1 = 2 · 0.3935x + 1.
Resultatet ¨ar
e−0.25 ≈ p1 (−0.25) = −0.25 · 2 · 0.3935 + 1 = 1 − 0.1967 = 0.8033.
Felet ¨ar ² = e−0.25 − p1 (−0.25) = 0.7788 − 0.8033 = −0.0245.
Nu anv¨and noderna x0 = −1 och x1 = −0.5 och interpolationsordinatorna f0 =
−1
e = 0.3679 och f1 = e−0.5 = 0.6065. Vi f˚
ar
L0 (x) =
x + 0.5
= −2(x + 0.5) = −2x − 1,
(−0.5)
L1 (x) =
x+1
= 2(x + 1).
(0.5)
Lagranges polynom blir
p1 (x) = L0 (x)f0 + L1 (x)f1 =
(−2x−1)·0.3679+(2x+2)0.6065 = 2x(0.6065−0.3679)−0.3679+2·0.6065 = 2·0.2386x+0.8451.
Resultatet ¨ar
e−0.75 ≈ p1 (−0.75) = −0.75 · 2 · 0.2386 + 0.8451 = −0.3579 + 0.8451 = 0.4872.
Felet ¨ar ² = e−0.75 − p1 (−0.75) = 0.4724 − 0.4872 = −0.0148.
Vid andragradsinterpolation, interpolerar vi ex i noderna x0 = −1, x1 = −0.5 och
x2 = 0 och interpolationsordinatorna f0 = e−1 = 0.3679, f1 = e−0.5 = 0.6065 och
f2 = 1.0000.
Interpolationsdata (x0 , f0 ), (x1 , f1 ), och (x2 , f2 ) ger andragradsinterpolationspolynomen
(x − x1 )(x − x2 )
l0 (x)
=
,
L0 (x) =
l0 (x0 )
(x0 − x1 )(x0 − x2 )
L1 (x) =
(x − x0 )(x − x2 )
l1 (x)
=
,
l1 (x1 )
(x1 − x0 )(x1 − x2 )
L2 (x) =
l2 (x)
(x − x0 )(x − x1 )
=
,
l2 (x2 )
(x2 − x0 )(x2 − x1 )
och Lagranges andragradspolynom
p2 (x) = L0 (x)f0 + L1 (x)f1 + L2 (x)f2 .
Vi har
L0 (x) =
(x + 0.5)(x)
= 2x(x + 0.5);
(−0.5)(−1)
L0 (−0.25) = −0.5 · 0.25 = −0.125,
L1 (x) =
L0 (−0.75) = (−1.5) · (−0.25) = 0.375.
(x + 1)(x)
= −4x(x + 1);
(0.5)(−0.5)
L1 (−0.25) = 1 · 0.75 = 0.75,
L1 (−0.75) = 3 · 0.25 = 0.75.
46
L2 (x) =
(x + 1)(x + 0.5)
= 2(x + 0.5)(x + 1);
(1)(0.5)
L2 (−0.25) = 0.5 · 0.75 = 0.375,
L2 (−0.75) = (−0.5) · 0.25 = −0.125.
Det f¨orsta resultatet ¨ar
e−0.25 ≈ p2 (−0.25) = L0 (−0.25)f0 + L1 (−0.25)f1 + L2 (−0.25)f2 =
−0.1250·0.3679+0.7500·0.6065+0.3750·1.0000 = −0.0460+0.4549+0.3750 = 0.7839.
Felet ¨ar ² = e−0.25 − p2 (−0.25) = 0.7788 − 0.7839 = −0.0051..
Det andra talet ¨ar
e−0.75 ≈ p2 (−0.75) = L0 (−0.75)f0 + L1 (−0.75)f1 + L2 (−0.75)f2 =
0.3750 · 0.3679 + 0.7500 · 0.6065 − 0.1250 · 1.0000 = 0.1380 + 0.4549 − 0.1250 = 0.4679.
Felet ¨ar ² = e−0.75 − p2 (−0.75) = 0.4724 − 0.4679 = 0.0045..
Lagranges andragradspolynom
p2 (x) = L0 (x)f0 + L1 (x)f1 + L2 (x)f2 =
2x(x+0.5)·0.3679−4x(x+1)·0.6065+2(x+0.5)(x+1)·1.0000 = 0.3095x2 −0.9418x+1.
Problem 3.6 (Andragradsinterpolation) (se Problem 17.3.5, AEM)
Best¨am Lagranges polynom p2 (x) f¨or att ber¨akna 4-D v¨arden av Gamma-funktionen
Z ∞
Γ(x) =
e−t tx−1 dt,
0
Γ(1.00) = 1.0000, Γ(1.02) = 0.9888, och Γ(1.04) = 0.9784, och anv¨and de h¨ar
v¨ardena f¨or att ber¨akna Γ(1.01) och Γ(1.03).
L¨
osning. Vi interpolerar Γ(x) i noderna x0 = 1.00, x1 = 1.02, och x2 = 1.04 och
f0 = 1.0000, f1 = 0.9888, och f2 = 0.9784.
Interpolationsdata (x0 , f0 ), (x1 , f1 ), och (x2 , f2 ) definierar andragradsinterpolationspolynom
(x − x1 )(x − x2 )
l0 (x)
=
,
L0 (x) =
l0 (x0 )
(x0 − x1 )(x0 − x2 )
L1 (x) =
l1 (x)
(x − x0 )(x − x2 )
=
,
l1 (x1 )
(x1 − x0 )(x1 − x2 )
L2 (x) =
l2 (x)
(x − x0 )(x − x1 )
=
,
l2 (x2 )
(x2 − x0 )(x2 − x1 )
47
och motsvarande Lagranges andragradspolynom
p2 (x) = L0 (x)f0 + L1 (x)f1 + L2 (x)f2 .
Best¨am
L0 (x) =
L0 (1.01) =
(x − 1.02)(x − 1.04)
= 1250(x − 1.02)(x − 1.04);
(−0.02)(−0.04)
(−0.01)(−0.03)
3
= = 0.375,
(−0.02)(−0.04)
8
L1 (x) =
L1 (1.01) =
(0.01)(−0.01)
1
= − = −0.125.
(−0.02)(−0.04)
8
(x − 1)(x − 1.04)
= −2500(x − 1)(x − 1.04);
(0.02)(−0.02)
(0.01)(−0.03)
3
= = 0.75,
(0.02)(−0.02)
4
L2 (x) =
L2 (1.01) =
L0 (1.03) =
L1 (1.03) =
(0.03)(−0.01)
3
= = 0.75.
(0.02)(−0.02)
4
(x − 1)(x − 1.02)
= 1250(x − 1)(x − 1.02);
(0.04)(0.02)
(0.01)(−0.01)
1
= − = −0.125,
(0.04)(0.02)
8
L1 (1.03) =
(0.03)(0.01)
3
= = 0.375.
(0.04)(0.02)
8
Nu kan vi ber¨akna resultatet
Γ(1.01) ≈ p2 (1.01) = L0 (1.01)f0 + L1 (1.01)f1 + L2 (1.01)f2 =
0.3750·1.0000+0.7500·0.9888−0.1250·0.9784 = 0.3750+0.7416−0.1223 = 0.9943.
Felet ¨ar ² = Γ(1.01) − p2 (1.01) = 0.9943 − 0.9943 = 0.0000. Resultatet ¨ar exakt
med 4D.
Γ(1.03) ≈ p2 (1.03) = L0 (1.03)f0 + L1 (1.03)f1 + L2 (1.03)f2 =
−0.1250·1.0000+0.7500·0.9888+0.3750·0.9784 = −0.1250+0.7416+0.3669 = 0.9835.
Felet ¨ar ² = Γ(1.03) − p2 (1.03) = 0.9835 − 0.9835 = 0.0000. Resultatet ¨ar exakt
med 4D.
Lagranges andragradspolynom a¨r
p2 (x) = L0 (x)f0 + L1 (x)f1 + L2 (x)f2 =
1250(x−1.02)(x−1.04)·1.0000−2500(x−1)(x−1.04)·0.9888+1250(x−1)(x−1.02)·0.9784 =
= x2 (1250(·1.9784−2·0.9888))+· · · = x2 (1250((2−0.0216)−2(1−·0.0112)))+· · · =
x2 (1250(−0.0216+2·0.0112))+· · · = x2 (1250·0.0008)+· · · = x2 ·1.000+· · · = x2 −2.580x+2.580.
48
Problem 3.7 (Newtons interpolationsformel) (se Problem 17.3.11, AEM)
Ber¨akna Γ(1.01), Γ(1.03), och Γ(1.05) med Newtons interpolationsformel.
L¨
osning. Konstruera differensschemat
1.00 1.0000
0.0112
1.02 0.9888
0.0008
0.0104
1.04 0.9784
Best¨am data f¨or att skriva Newtons interpolationsformel
x = 1.01, 1.03, 1.05;
x0 = 1.00,
h = 0.02,
r=
x−1
= 50(x − 1);
h
r(r − 1) 2
∆ f0 =
2
r(r − 1)
= 1.000 − 0.0112r + 0.0008
= x2 − 2.580x + 2.580,
2
som sammanfaller med andragradsinterpolationspolynom (se ovan), och vi kan
ber¨akna
p2 (x) = f0 + r∆f0 +
Γ(1.01) ≈ p2 (1.01) = 0.9943,
Γ(1.03) ≈ p2 (1.03) = 0.9835,
Γ(1.05) ≈ p2 (1.05) = 0.9735.
Problem 3.8 (se Problem 17.3.13, AEM)
Best¨am interpolationspolynomets grad f¨or f¨oljande interpolationsdata (1,5), (2,18),
(3,37), (4,62), (5,93).
L¨
osning. Antag att interpolationspolynomet har grad n = 2, dvs ¨ar ett andragradspolynom p2 (x) = ax2 + bx + c. Man kan kolla att interpolationspolynomet
som uppfyller interpolationsdata (1,5), (2,18), (3,37), (4,62), (5,93) a¨r inte en linj¨ar
funktion, Ax + B, eftersom
A+B = 5
2A + B = 18
ger A = 13 och B = −8, och
3A + B = 37
4A + B = 62
49
ger A = 25 och B = −38.
F¨or att best¨amma a, b och c, anv¨and interpolationsdata och skriv ett linj¨art
system med tre obekanta
a + b + c = 5,
4a + 2b + c = 18
9a + 3b + c = 37
L¨osning
3a + b = 13
8a + 2b = 32
eller
6a + 2b = 26
8a + 2b = 32
ger 2a = 6, a = 3, b = 13 − 3a = 4, och c = 5 − b − a = −2.
D˚
a f˚
ar vi interpolationspolynomet p2 (x) = 3x2 + 4x − 2 av grad n = 2 som
uppfyller interpolationsdata:
p2 (1) = 5, p2 (2) = 18, p2 (3) = 37, p2 (4) = 62, och p2 (5) = 93.
4
Icke-linj¨
ara ekvationer
Betrakta metoder som ber¨aknar (reela) nollst¨allen till en given funktion, dvs reela
r¨otter till ekvationen
f (x) = 0,
(75)
eller x-v¨arden x = s f¨or vilka f (x) blir noll: f (s) = 0.
4.1
Intervallhalvering
Man utg˚
ar fr˚
an ett startintervall [a, b] s˚
adant att f (a) och f (b) har olika tecken
dvs f (a) · f (b) < 0. I intervallet finns d˚
a minst ett nollst¨alle till (kontinuerlig)
funktionen f (x). Sedan best¨ams ett v¨arde c i intervallet [a, b]. Om f (c) har samma
tecken som f (a) kan intervallet f¨or nollst¨allet begr¨ansas till intervallet [c, b] annars
till [a, c]. Processen upprepas sedan med det nya kortare intervallet.
I intervallhalvering a¨r v¨ardet c mittpunkten mellan a och b. Algoritmen har
f¨oljande utseende:
50
[givet a och b s˚
adana att f (a) och f (b) har olika tecken]
repetera:
mitt : = (a + b)/2
om f(a)f(mitt) > 0 s˚
a
a : = mitt
annars
b : = mitt
tills abs(a - b) tillr¨ackligt litet
[resultat: mitt ¨ar nollst¨alle till f (x)]
Figur 6: Intervallhalvering.
Exempel 4.1
Betrakta ekvationen
f (x) ≡ cos x − ln x = 0
och ber¨akna dess rot α i intervallet [1.0, 1.5] (5D).
L¨
osning. H¨ar a = 1.0, b = 1.5 och f (a) = 0.54030 och f (b) = −0.33473 har
olika tecken. Anv¨and intervallhalveringsalgoritm.
mitt
f(a)f(mitt)
a
b
1.0
1.5
1.25000
>0
1.25000
1.37500
<0
1.37500
1.31250
<0
1.31250
1.28125
>0
1.28125
1.29688
>0
1.29688
1.30469
<0
1.30469
1.30079
>0
1.30079
1.30274
>0
1.30274
Efter 8 iterationer har vi kommit fram till att rotten 1.30274 < α < 1.30469.
51
4.2
Interpolationsmetoder: sekantmetoden
I interpolationsmetoder g¨ot man linj¨ar interpolation mellan punkterna (a, f (a))
och f (b, (b)) f¨or att f˚
a fram n¨asta x-v¨arde (man antar att f (a) och f (b) har
olika tecken dvs f (a) · f (b) < 0 och i intervallet [a, b] finns d˚
a ett nollst¨alle till
(kontinuerlig) funktionen f (x)). Algoritmen av en s˚
adan sekantmetod har f¨oljande
utseende:
[givet a och b s˚
adana att f (a) och f (b) har olika tecken]
repetera:
l¨agg en r¨at linje genom (a,f(a)) och (b,f(b))
c: = linjens sk¨arningspunkt med x-axeln
a: = b
b: = c
tills abs(a - b) ≤ abs(b) · epsilon
Figur 7: Sekantmetoden.
Exempel 4.2
Betrakta ekvationen
f (x) ≡ cos x − ln x = 0
och ber¨akna dess rot α i intervallet [1.0, 1.5] med sekantmetoden (5D).
L¨
osning. H¨ar a = 1.0, b = 1.5 och f (a) = 0.54030 och f (b) = −0.33473 har
olika tecken. Anv¨and sekantmetoden.
c
a
b
1.0
1.5
1.30873 1.50000 1.30873
1.30285 1.30873 1.30285
1.30296 1.30285 1.30296
52
4.3
Iterativa metoder
Betrakta iterativa metoder som ber¨aknar (reela) r¨otter till ekvationen
f (x) = 0.
(76)
Vi utg˚
ar fr˚
an n˚
agot approximativt startv¨arde x0 p˚
a den s¨okta roten x = α (f (α) =
0) och bildar en f¨oljd av v¨arden x1 , x2 , . . . som utg¨or allt b¨attre approximationer
av roten α. Den numeriska metoden ¨ar iterativ och ber¨akningen av varje xn kallas
iteration.
Vi ska anv¨anda f¨oljande definition: en iterativ metod konvergerar (divergerar)
om talf¨oljden xn konvergerar mot roten α till ekvationen f (x) = 0 (resp. divergerar).
4.3.1
Substitutionsmetoden
Skriv (76) p˚
a formen
x = g(x),
(77)
d¨ar g(x) ¨ar en deriverbar funktion, och iterera
xn+1 = g(xn ),
n = 0, 1, 2, . . .
(78)
med en startgissning x0 = x0 (b¨orja med n = 0 och repetera (78) flera g˚
anger).
4.3.2
Newtons metod
Newtons metod (eller Newton–Raphsons metod) ¨ar ett specialfall av substitutionsmetoden: ekvationen (76) skrivs om i formen
x = G(x),
(79)
d¨ar
G(x) = x −
f (x)
f 0 (x)
(80)
¨ar en deriverbar funktion, f 0 (x) 6= 0. N¨ar man anv¨ander Newtons metod, itererar
man enligt
xn+1 = G(xn ),
G(xn ) = xn −
f (xn )
,
f 0 (xn )
53
n = 0, 1, 2, . . . .
(81)
Figur 8: Newtons metod.
4.3.3
Stopregeln
F¨or att avbryta (78) eller (81) vid ett l¨ampligt xn , n = 1, 2, . . . , betraktar man
differensen
dn,n−1 = |xn − xn−1 |
och v¨ardet
Fn = |f (xn )|.
(82)
Ligger dn,n−1 inom den fr˚
an b¨orjan uppst¨allda toleransgr¨ansen ²x , dvs
dn,n−1 < ²x ,
(83)
eller blir funktionsv¨ardet tillr¨akligt litet, dvs
Fn < ² f ,
(84)
har man l¨ost den numeriska uppgiften (75) att ber¨akna ett nollst¨alle (som ligger i
en omgivning till x0 ) till en given funktion f . I praktiken ²f < ²x och ²f = 10−m ²x ,
m = 2, 3, . . . , t ex ²x = 10−4 och ²f = 10−6 .
Ibland kallas (83) och (84) stopregeln.
4.3.4
Fixpunktsiteration
Fixpunktsiteration ¨ar ett annat namn f¨or substitutionsmetoden. Betrakta ekvationen
f (x) = 0
(85)
och antag att vi kan skriva den p˚
a en ekvivalent form
x = g(x).
54
(86)
Figur 9: Fixpunktsiteration.
H¨ar antar vi att ekvationerna (85) och (86) ¨ar ekvivalenta, dvs deras r¨otter [nollst¨allen
till f (x) och x − g(x)] sammanfaller.
Vi skall best¨amma l¨osningar (r¨otter) till (86) genom fixpunktsiteration som
definieras
xn+1 = g(xn ).
(87)
Fixpunktsiteration konvergerar om
|g(x)0 | < 1,
x ∈ (x0 − δ, x0 + δ).
(88)
Exempel 4.3
Skriv om ekvationen sin x − 2x + 2 = 0
x = 0.5 sin x + 1,
(89)
och iterera enligt fixpunktsiteration
xn+1 = 0.5 sin xn + 1,
n = 0, 1, 2, . . . , x0 = 2
(90)
Newtons metod. Skriv om ekvationen f (x) = 0
x = G(x),
55
(91)
d¨ar
G(x) = x −
f (x)
,
f 0 (x)
f (x) = sin x − 2x + 2,
(92)
¨ar en deriverbar funktion, f 0 (x) = cos x − 2 6= 0. och iterera enligt
xn+1 = G(xn ),
G(xn ) =
xn cos xn − sin xn − 2
,
cos xn − 2
n = 0, 1, 2, . . . .
(93)
Stopregeln: ligger dn = |xn+1 − xn | inom den fr˚
an b¨orjan uppst¨allda toleransgr¨ansen ², dvs
dn < ²,
(94)
har man l¨ost den numeriska uppgiften att ber¨akna ett nollst¨alle (som ligger i en
omgivning till x0 = 2) till den givna funktionen f (x) = sin x − 2x + 2.
Exempel 4.4
Betrakta ekvationen
f (x) = x2 − 5
√
och ber¨akna dess positiva rot a = 5 = 2.2361 (med 4 KD).
Lo
¨sning. Observera att ekvationen (95) a¨r ekvivalent med
5 = x2 ,
1 2
x = 1,
5
(95)
1
1 − x2 = 0,
5
(96)
och skriv om (95) och (96) p˚
a fyra olika ekvivalenta former
2
x=x+5−x ,
5
x = (x 6= 0),
x
1
x = 1 + x − x2 ,
5
1
x=
2
µ
5
x+
x
¶
(x 6= 0).
Betrakta fyra motsvarande versioner av fixpunktsiteration:
i xn+1 = g1 (xn ) = 5 + xn − x2n , g10 (x) = 1 − 2x, |g10 (2.5)| = 4.
5
5
ii xn+1 = g2 (xn ) =
, g20 (x) = − 2 , |g20 (2.5)| = 0.8, |g20 (2)| = 1.
xn
x
2
1 2
iii xn+1 = g3 (xn ) = 1 + xn − xn , g30 (x) = 1 − x, |g30 (2.5)| = 0.
5
5
¶
¶
µ
µ
1
1
5
5
0
iv xn+1 = g4 (xn ) =
, g4 (x) =
xn +
1 − 2 , |g40 (2.5)| = 0.3.
2
xn
2
x
Ber¨akna fixpunktsiterationer
56
(h¨ar den = dn,n−1 = |xn − xn−1 | och Fn = |f (xn )| = |x2n − 5|):
—————————————————————————————————
n xn ,i xn ,ii xn ,iii xn ,iv
iii, den
iii, Fn
iv, den
iv, Fn
—————————————————————————————————
0 2.5
2.5
2.5
2.5
1.25
1.25
1 1.25
2.0
2.25
2.25
0.25
0.0625 0.25
0.0625
2 4.6875 2.5 2.2375 2.2361 0.0125 0.0064 0.0139 0.0001
3 −12.2852 2.0
2.2362 2.2361 0.0013 0.0006 0.0000 0.0001
—————————————————————————————————
Man ser att versioner
√ (i) och (ii) divergerar och (iii) och (iv) konvergerar (mot
den positiva roten a = 5 = 2.2361 av ekvationen (95))
Exempel 4.5
Skriv ekvationen
f (x) ≡ x2 − 3x + 1 = 0
p˚
a en ekvivalent form (x 6= 0)
1
x = g2 (x) = 3 − .
x
L¨os ekvationen x = g2 (x) med fixpunktsiteration. Vi ska konstruera talf¨oljden
xn som konvergerar mot roten s till ekvationen f (x) = 0,
lim xn = s,
n→∞
f (s) = 0.
Grovlokalisera en rot f¨or att best¨amma begynnelseapproximation x0 . Vi har
f (x) = x2 − 3x + 1,
f (2) = −1 < 0,
f (3) = 2 > 0.
Ur de tv˚
a sista olikheterna, ser vi att en rot ligger i intervallet (2, 3): 2 < s < 3.
S¨att x0 = 1 och anv¨and (87):
1
1
= 2, x2 = g2 (x1 ) = 3 − = 2.5,
1
2
1
2
13
1
x3 = g2 (x2 ) = 3 −
=3− =
= 2.6, x4 = g2 (x3 ) = 3 −
= 2.615, . . . .
2.5
5
5
2.6
Vi har konstruerat talf¨oljden xn s˚
adan att
1
1
1
1 = x0 < x2 < x3 < . . . d˚
a 1=
>
>
...
x0
x1
x2
s˚
a att
1
1
≤ K = , n = 1, 2, . . . .
xn
2
x1 = g2 (x0 ) = 3 −
57
4.4
Konvergens av fixpunktsiteration
Betrakta ekvationen f (x) ≡ x2 − 3x + 1 = 0 och skriv differensen |xn+1 − xn |, d¨ar
xn+1 = g(xn ), n = 0, 1, 2, . . . , och x0 = 2. Vi f˚
ar
¯
¯ ¯
¯
¯
1
1 ¯¯ ¯¯ 1
1 ¯¯ |x0 − x1 |
1
¯
|x2 −x1 | = |g2 (x1 )−g2 (x0 )| = ¯3 −
= |x1 −x0 |;
−3+ ¯=¯ − ¯=
x1
x0
x0 x1
|x0 ||x1 |
5
¯
¯
¯1
¯ |x2 − x1 |
1
1
|x3 − x2 | = |g2 (x2 ) − g2 (x1 )| = ¯¯ − ¯¯ =
=
|x2 − x1 | =
x1 x2
|x2 ||x1 |
2.6 · 2.5
1
1 1
1
|x2 − x1 | =
|x1 − x0 | =
|x1 − x0 |;
6.5
6.5 5
32.5
...;
|xn+1 − xn | = p1 · p2 · · · · · pn |x1 − x0 |,
0 < pi ≤ K < 1,
n = 0, 1, 2, . . . ,
s˚
a g¨aller
1
|xn+1 − xn | ≤ K |x1 − x0 | = n |x1 − x0 |
2
n
µ
¶
1
= n , x0 = 1 ,
2
n = 0, 1, 2, . . . .
Nu p˚
aminn att f (s) = 0 och betrakta differensen
¯
¯
¯1
¯ |s − xn−1 |
1
¯=
|xn − s| = |g2 (xn−1 ) − g2 (s)| = ¯¯ −
≤ K|xn−1 − s|
s xn−1 ¯
|s||xn−1 |
d¨ar K ≤
1
eftersom s > 2 [s ∈ (2, 3), se ovan] och xn > 2. Vidare
2
|xn − s| ≤ K|xn−1 − s| = K|g2 (xn−2 ) − g2 (s)| ≤ K 2 |xn−2 − s| ≤ · · · ≤ K n |x0 − s|.
H¨ar K n → 0 och |xn − s| → 0 om n → ∞ eftersom K < 1.
Man kan visa det h¨ar p˚
ast˚
aendet ( lim xn = s,
n→∞
med hj¨alp av medelv¨ardessatsen:
g2 (x) − g2 (s) = g20 (t)(x − s) =
1
(x − s),
t2
d¨ar t ≥ k > 1 och
s = g2 (s),
1
g2 (x) = 3 − )
x
t mellan x och s,
1
˜ < 1.
≤K
t2
Formulera satsen som inneh˚
aler tillr¨ackliga villkor f¨or konvergens. (se THEOREM 17.2.1, AEM).
g20 (t) =
58
L˚
at x = s vara en rot till ekvationen x = g(x) d¨ar g(x) har en kontinuerlig derivata
i ett intervall J s˚
adant att s ∈ J. Om |g 0 (x)| ≤ K < 1 i J, s˚
a g¨aller
xn ∈ J, n = 1, 2, . . . ;
lim xn = s, s = g(s)
n→∞
dvs, talf¨oljden xn s˚
adan att xn+1 = g(xn ) konvergerar f¨or ett godtyckligt x0 i J.
I problemet ovan
1
g(x) = g2 (x) = 3 − ,
x
och man kan betrakta J = (k1 , k2 ), d¨ar k1 och k2 ¨ar godtyckliga tal s˚
adana att
k1 > 1 och k2 > k1 , som ett konvergensintervall, eftersom
g 0 (x) =
1
1
≤ K = 2 < 1.
2
x
k1
Figur 10: f (x) = x3 − 5.00x2 + 1.01x + 1.88.
4.5
Kaotiskt och periodiskt beteende
Betrakta ekvationen
f (x) ≡ x2 − x − a = 0
59
f¨or olika v¨arden av parametern a. Dess r¨otter
√
√
α = 0.5 − 0.25 + a och β = 0.5 + 0.25 + a
¨ar reela f¨or a ≥ −0.25. Man finner att f¨or −0.25 < x0 < 0.25 och a = −0.25 g¨aller
xn → 0.5, d¨ar fixpunktsiterationer
xn+1 = g(xn ),
g(xn ) = x2n − a,
n = 0, 1, 2, . . . ,
medan xn → ∞ om |x0 | > 0.25. Gr¨ansev¨ardet x = 0.5 kallas en fixpunkt.
Figur 11: Periodiskt beteende, xn+1 = x2n − a, a = 0.8.
Vidare,
g 0 (x) = 2x
och
om
√
|g 0 (α)| < 1 dvs |1 − 2 0.25 + a| < 1
1
3
− <a<
4
4
60
(97)
och
|f 0 (α)| > 1
om
3
<a
4
Man kan visa att f¨or −β < x0 < β och a0 = − 41 < a < 34 = a1 , konvergerar
fixpunktsiterationerna (97) mot fixpunkten α, xn → α, och fixpunkten α kallas attraherande (och xn kallas en bana med perioden 1). Om x0 ligger utanf¨or intervallet
(−β, β), d˚
a xn → ∞.
Figur 12: Kaotiskt beteende, xn+1 = x2n − a, a = 1.5.
Fixpunktsiterationerna (97) divergerar om a = a1 = 34 . Fixpunkten α ¨ar nu
inte l¨angre attraherande. I st¨allet erh˚
als en attraherande bana xn med perioden 2
(xn :s v¨arden upprepas 2 g˚
anger). Detta ¨ar fallet f¨or 34 < a < 54 = a2 (a1 < a < a2 ).
agot a3 , etc.
Banan xn har perioden 4 f¨or 45 < a < a3 med n˚
61
Figur 13: Konvergens, xn+1 = x2n − a, a = 0.73.
62
Figur 14: Konvergens, xn+1 = x2n − a, a = 0.65.
D˚
a a > 1.4012 . . . (ett Feigenbaum-tal), s˚
a b¨orjar banorna uppf¨ora sig kaotiskt.
D˚
a a > 2.001 . . . , s˚
a xn → ∞.
4.5.1
Ett exempel av kaotiskt beteende
L¨os ekvationen
f (x) ≡ x2 − x − a = 0
med fixpunktsiteration
xn+1 = x2n − a,
n = 0, 1, 2, . . . ,
f¨or olika a = −0.1, a = 0.2, a = 0.7, a = 0.76, a = 1.0, a = 1.27, a = 1.5, a = 2.0,
a = 2.001 och a√= 2.002 med tv˚
a olika startev¨arden som ligger i intervallet (−β, β),
d¨ar β = 0.5 + 0.25 + a
Tips: (1) Skapa en kommandofil som ber¨aknar fixpunktsiterationer. (2) Rita en graf
som visar xn vs. n. (3) Best¨am a s˚
adana att xn konvergerar mot β och divergerar.
(4) Best¨am antalet perioder i xn -kurva f¨or olika a > 0.75.
63
4.6
Problem
Problem 4.1 (se Problem 17.2.3, AEM)
Visa att funktionen (ett polynom)
f (x) = x3 − 5.00x2 + 1.01x + 1.88
har nollst¨allen i omgivningen av punkterna x = ±1 och x = 5 (rita en graf) och
best¨am nollst¨allena med fixpunktsiteration.
L¨
osning.
1. Grovlokalisera r¨otter:
f (−2) = 28.14 < 0,
f (0) = 1.88 > 0,
f (2) = −8.10 < 0,
f (5) = 6.93 > 0.
Vi ser att det finns tre intervall [−2, 0], [0, 2] och [2, 5] s˚
adana att f (a) och f (b)
har olika tecken dvs f (a) · f (b) < 0:
f (−2)·f (0) < 0, f (0)·f (2) < 0 och f (2)·f (5) < 0. I varje intervall [−2, 0], [0, 2]
och [2, 5] finns d˚
a minst en rot till ekvationen f (x) = 0. Sedan best¨ams rotten i
varje intervall med fixpunktsiteration.
Enligt fixpunktsiteration xn+1 = g(xn ), kan man skriva om ekvationen
f (x) = 0,
i formen
f (x) = x3 − 5.00x2 + 1.01x + 1.88,
5.00x2 − 1.01x − 1.88
.
x2
= g(xn ), n = 0, 1, 2, . . . ,:
x = g(x) =
Ber¨akna iterationer xn+1
x0 = 1, x1 = 2.110, x2 = 4.099, x3 = 4.612, x4 = 4.6952, x5 = 4.700;
x0 = 5, x1 = 4.723, x2 = 4.702, x3 = 4.700.
2. Skriv om den givna ekvationen i formen
x3 + 1.01x + 1.88
.
x = g(x) =
5.00x
d¨ar
2
0.37
g 0 (x) = x − 2
5
x
och
g 0 (1) = 0.03
64
s˚
a att gs f¨orsta derivatan ¨ar mindre ¨an 1i ett interval J som inneh˚
aller punkten
x = 1, D˚
a konvergerar fixpunktsiteration med startv¨ardet x = x0 ≈ 1 enligt
THEOREM 17.2.1 (AEM).
Problem 4.2 (se Problem 17.2.5, AEM)
Visa att funktionen (ett polynom)
1
1
1 6
f (x) = 1 − x2 + x4 −
x
4
64
2304
har ett nollst¨alle i omgivningen av punkten x = 2 (rita en graf) och best¨am
nollst¨allet med fixpunktsiteration.
L¨
osning. Enligt fixpunktsiteration xn+1 = g(xn ), n = 0, 1, 2, . . . , kan man
skriva om den givna ekvationen
1
1
1 6
f (x) = 1 − x2 + x4 −
x
4
64
2304
multiplicerat med
4
(x 6= 0) i formen
x
x = g(x) =
1
1 5
4
+ x3 −
x.
x 16
576
Man kan v¨alja ett startv¨arde med hj¨alp av THEOREM 17.2.1 (AEM). Best¨am
derivatan
4
3
5 4
g 0 (x) = − 2 + x2 −
x
x
16
576
och dess v¨arde i punkten x = 2
¯
¯
¯
3
80 ¯¯
0
¯
|g (2)| = ¯−1 + −
= 0.25 + 0.14 = 0.39 < 1
4 576 ¯
Vi ser att g 0 (x) ¨ar mindre ¨an 1i ett interval som inneh˚
aller punkten x = 2. D˚
a
konvergerar fixpunktsiteration med startv¨ardet x = x0 = 2 enligt THEOREM
17.2.1 (AEM). Iterationerna xn+1 = g(xn ) ger
x0 = 2, x1 = 2.44444, x2 = 2.39774, x3 = 2.39221, x4 = 2.39165.
Problem 4.3 (se Problem 17.2.11, AEM)
Best¨am talet 71/3 med hj¨alp av Newtons metod.
L¨
osning. V¨ardet 71/3 ¨ar en (positiv) rot till ekvationen x3 − 7 = 0.
65
Newtons iterationer
xn+1 = G(xn ),
G(xn ) = xn −
f (xn )
,
f 0 (xn )
n = 0, 1, 2, . . . ,
d¨ar f (x) = x3 − 7, skrivs som
f 0 (x) = 3x2 ;
xn+1 =
2x3n + 7
,
3x2n
n = 0, 1, 2, . . . .
R¨akningar med 6D ger
x4 = 1.912931.
Problem 4.4 (se Problem 17.2.15, AEM)
Best¨am den minsta positiva roten till ekvationen
P42 (x) = 0,
P42 (x) = (1 − x2 )P400 (x) =
15
(−7x4 + 8x2 − 1) = 0
2
med hj¨alp av Newtons metod och j¨amf¨or resultatet med exakta v¨ardet genom att
l¨osa en bikvadratisk ekvation.
Lo
¨sning. Best¨am r¨otter till den bikvadratiska ekvationen
f (x) = P˜42 (x) = −7x4 + 8x2 − 1 = 0.
Skriv om den i formen
P˜ (t) = −7t2 + 8t − 1 = 0, t = x2 ≥ 0;
√
8 ± 36
8±6
1
t=
=
= {1, .}
14
14
7
Den minsta positiva rotten ¨ar
1
s= √ .
7
Newtons iterationer ¨ar
xn+1 = G(xn ),
G(xn ) = xn −
f (xn )
,
f 0 (xn )
n = 0, 1, 2, . . . .
Vi ska l¨osa ekvationen −f (x) = 0:
f 0 (x) = 28x3 − 16x;
xn+1 =
21x4n − 8x2n − 1
,
28x3n − 16xn
R¨akningar med 6D ger
x4 = 0.377964.
66
n = 0, 1, 2, . . . .
5
Numerisk integration
Numerisk integration inneb¨ar ber¨akning av approximationer till integraler
Z b
J=
f (x)dx,
a
d¨ar a och b ¨ar givna tal och f (x) ¨ar en funktion. Ofta konstruerar man metoder
f¨or numerisk integration genom att approximera f (x) med en funktion, som ¨ar l¨att
att integrera (ett polynom, en styckvis linj¨ar funktion).
5.1
Rektangelsregeln
Dela integrationsintervallet a ≤ x ≤ b i n delintervall
[xi , xi+1 ] (i = 0, 1, . . . , n − 1),
a = x0 < x1 < · · · < xn−1 < xn = b.
(98)
I m˚
anga till¨ampningar ¨ar n¨atpunkterna xi (noder) ekvidistanta, och vi skall betrakta lika delintervall av l¨angden h = (b−a)/n och n+1 olika ekvidistanta punkter
xi = a + ih, i = 0, 1, . . . , n. I varje delintervall ers¨attar vi (approximerar) f (x) med
konstanten f (x∗j ) = f (xj + 0.5h) [f (x)’s v¨arde i midpunkten x∗j av delintervallet j],
dvs ers¨attar f (x) med en steg funktion (en styckvis konstant funktion). Vi f˚
ar n
rektangler av areor hf (x∗1 ), hf (x∗2 ), . . . , hf (x∗n ), och kan definiera rektangelsregeln
Z b
f (x)dx ≈ JR = h[f (x∗1 ) + f (x∗2 ) + · · · + f (x∗n )], h = (b − a)/n. (99)
J=
a
5.2
Trapetsregeln
Anv¨and samma delintervall (98) i a ≤ x ≤ b och ers¨atta (approximera) f (x) med
en linje best˚
aende av segment (korder) som g˚
ar genom delintervallens randpunkter
[a, f (a)], [x1 , f (x1 )], [x2 , f (x2 )], . . . , [xn , f (xn )] p˚
a f ’s kurva. Arean under f ’s kurva
approximeras med n trapetser av areor
1
1
[f (a) + f (x1 )],
[f (x1 ) + f (x2 )],
2
2
Deras summa ger trapetsregeln
...,
Z
1
[f (xn−1 ) + f (b)].
2
b
J = J[a, b] =
f (x)dx ≈ JT = JT [a, b], ,
a
1
1
JT [a, b] = Jn [a, b] = h[ f (a) + f (x1 ) + f (x2 ) + · · · + f (xn−1 ) + f (b)],
2
2
h = (b − a)/n.
67
(100)
5.2.1
Feluppskattning
Figur 15: Trapetsregeln, f (x) = 1/(1 + x), n = 1, 2, 4, 8.
F¨or att best¨amma trapetsregelns fel RT = J − JT med hj¨alp av (47) n¨ar n = 1
[ett integrationsintervall [a, b] = [x0 , x1 ] i (100)], integrerar vi den som en funktion
av x mellan a = x0 och x1 = x0 + h:
Z x0 +h
Z x0 +h
h
f 00 (t(x))
J[x0 , x1 ] − JT [x0 , x1 ] =
f (x)dx − [f (x0 ) + f (x1 )] =
(x − x0 )(x − x0 − h)
dx.
2
2
x0
x0
S¨att x − x0 = v och anv¨and medelv¨ardessatsen (observera att Q(x) = (x − x0 )(x −
x0 − h) ≤ 0, x0 ≤ x ≤ x0 + h, dvs Q(x) ej a¨ndrar tecken i det slutna intervallet
[x0 , x0 + h]):
Z
x0 +h
x0
f 00 (t(x))
dx =
(x − x0 )(x − x0 − h)
2
Z
som ger det lokala trapetsregelns fel.
68
h
(v)(v − h)dv ·
0
f 00 (t˜)
h3
= − f 00 (t˜),
2
12
t˜ ∈ [x0 , x1 ].
F¨or att best¨amma totala trapetsregelns fel ² = J[a, b] − JT [a, b] f¨or ett godtyckligt antal n integrationsintervall i (100) (n > 1), s¨att
h = (b − a)/n,
nh3 = n(b − a)3 /n3 ,
(b − a)2 = n2 h2 .
D˚
a f˚
ar vi
Z b
1
1
²=
f (x)dx − h[ f (a) + f (x1 ) + f (x2 ) + · · · + f (xn−1 ) + f (b)] =
2
2
a
−
(b − a)3 00
(b − a) 00
f (τ ) = −h2
f (τ ),
2
12n
12
τ ∈ [a, b].
Det maximala felet uppskattas
|J[a, b] − JT [a, b]| ≤ M
(b − a)3
,
12n2
M = max |f 00 (x)|.
x∈[a,b]
(101)
FigurR 16: Trapetsregeln: v¨ardena av trapetsapproximationerna Jn [0, 1] (100) till
1
J = 0 1/(1 + x)dx = ln 2 ≈ 0.693147 . . . (3:e kol), maximala felen ²∗n (4:e kol) och
aktuella felen J − Jn [0, 1] (5:e kol) f¨or n = 1, 2, . . . 8 (med 4D).
5.2.2
Felgr¨
anser f¨
or trapetsregeln
KM2 ≤ ² ≤ KM2∗ ,
69
(102)
d¨ar
K=−
(b − a)3
2 (b − a)
=
−h
12n2
12
(103)
och
M2 = max f 00 (x),
M2∗ = min f 00 (x).
x∈[a,b]
(104)
x∈[a,b]
Exempel 5.1
Utf¨or feluppskattningen vid trapetsregelnsapproximation [best¨am felgr¨anser KM2
och KM2∗ enligt (102)–(104)] f¨or
Z 1
1
J=
dx = ln 2 ≈ 0.693147 . . . , n = 1, 2, . . . 8.
0 1+x
L¨
osning. Vi har
f (x) =
1
,
1+x
f 0 (x) = −
1
,
(1 + x)2
f 00 (x) =
2
(1 + x)3
D˚
a
max f 00 (x) = f 00 (0) = M2 = 2,
x∈[0,1]
Vidare
K = Kn = −
min f 00 (x) = f 00 (1) = M2∗ = 0.25.
x∈[0,1]
(b − a)3
1
=−
.
2
12n
12n2
och
Kn M2 = 2Kn = −
1
,
6n2
1
1
Kn M2∗ = Kn = −
,
4
48n2
Beteckna med JT [a, b] = Jn [0, 1] trapetsapproximationerna (100) till integralen
Z 1
1
dx.
J=
0 1+x
Det maximala felet uppskattas enligt (101)
²n = |J − Jn [0, 1]| ≤ ²∗n = M2
70
1
1
= 2.
2
12n
6n
(105)
Felgr¨anserna ¨ar
Kn M2 = −
²∗n
1
1
≤ ² ≤ Kn M2∗ = −
2
6n
48n2
(n = 1, 2, . . . ).
(106)
Ber¨akna felgr¨anserna (106), aktuella felen J −Jn [0, 1] och maximala felen (105)
f¨or n = 1, 2, . . . 5:
1
= −0.083333,
12
1
n = 2 : K2 = −
= −0.0208333,
12 · 4
1
n = 3 : K3 = −
= −0.009259,
12 · 9
1
n = 4 : K4 = −
= −0.005208,
12 · 16
1
= −0.003333,
n = 5 : K5 = −
12 · 25
n = 1 : K1 = −
²∗1 = 0.166667,
−0.166667 ≤ J − J1 [0, 1] ≤ −0.0208333;
²∗2 = 0.041666,
−0.041666 ≤ J − J2 [0, 1] ≤ −0.005208;
²∗3 = 0.018518,
−0.018518 ≤ J − J3 [0, 1] ≤ −0.002315;
²∗4 = 0.010417,
−0.010417 ≤ J − J4 [0, 1] ≤ −0.001302;
²∗5 = 0.006667,
−0.006667 ≤ J − J5 [0, 1] ≤ −0.000833.
Tabellen i figur 11 visar v¨ardena av trapetsapproximationerna Jn [0, 1] (100)
(3:e kol), maximala felen (105) ²∗n (4:e kol) och aktuella felen J − Jn [0, 1] (5:e kol)
f¨or n = 6, . . . 8 (med 4D).
Exempel 5.2
Utf¨or feluppskattningen vid trapetsregelnsapproximation [best¨am felgr¨anser KM2
och KM2∗ enligt (102)–(104)] f¨or
Z 1
2
e−x dx ≈ 0.746211 (n = 10)
J=
0
L¨
osning. Vi har
2
2
(e−x )00 = 2(2x2 − 1))e−x ,
2
2
(e−x )000 = 8xe−x (3/2 − x2 ) > 0, 0 < x < 1,
D˚
a
max f 00 (x) = f 00 (1) = M2 = 0.735759,
x∈[0,1]
Vidare
K=−
min f 00 (x) = f 00 (0) = M2∗ = −2.
x∈[0,1]
(b − a)3
1
1
=−
=−
2
2
12n
12 · 10
1200
och
KM2 = −0.000614,
KM2∗ = 0.001667,
71
Felgr¨anserna ¨ar
−0.000614 ≤ ² ≤ 0.001667,
(107)
och feluppskattningen ¨ar
0.746211 − 0.000614 = 0.745597 ≤ J ≤ 0.746211 + 0.001667 = 0.747878. (108)
Det 6D-exakta v¨ardet ¨ar J = 0.746824 : 0.745597 < 0.746824 < 0.747878.
Figur 17: Trapetsregeln, f (x) = exp(−x2 ), n = 10.
FigurR 18: Trapetsregeln: v¨ardena av trapetsapproximationerna Jn [0, 1] (100) till
1
J = 0 exp(−x2 )dx ≈ 0.746211 . . . (3:e kol), maximala felen (105) ²∗n (4:e kol) och
aktuella felen J − Jn [0, 1] (5:e kol) f¨or n = 5, 6, . . . 10 (med 4D).
5.3
Problem
Problem 5.1
72
Figur 19: MATLABkoder som implementerar trapetsregeln.
Betrakta integralerna
Z
3
a) J =
Z1 1
b) J =
Z
dx
x+2
xe−x dx
0
π/2
x sin xdx
c) J =
0
Best¨am hur m˚
anga delintervall m˚
aste man ta med f¨or att ber¨akna J med tre och
fyra KD (med trapets formeln). Best¨am felgr¨anser f¨or trapets formeln som r¨aknar
J.
Ber¨akna J med trapets formeln: a) h = 0.2 (med 3D); b) fem delintervall (med
3D); c) tio delintervall (med 4D). J¨amf¨or resultaten med exakta integralernas
v¨arden
Z 3
dx
a) J =
= 0.5108256 . . . ,
1 x+2
Z 1
2
b) J =
xe−x dx = 1 − ,
e
0
Z π/2
c) J =
x sin xdx = 1.
0
73
Problem 5.2. Ber¨akna integralen
Z 3
y(x)dx
0
med trapets formeln d¨ar funktionen y(x) ges som talpar
(x0 , y0 ) (x1 , y1 ) (x2 , y2 ) (x3 , y3 )
(0, 0) (1, 1) (2, 2) (3, 3).
Problem 5.3. Ber¨akna integralen
Z 5
y(x)dx
1
med trapets formeln, d¨ar funktionen y(x) ges som talpar
(x0 , y0 ) (x1 , y1 ) (x2 , y2 ) (x3 , y3 ) (x4 , y4 )
(1, 1) (2, 4) (3, 9) (4, 16) (5, 25)
6
6.1
Differensapproximationer av derivator och differentialekvationer
Approximation av derivator
Antag att en tv˚
a g˚
anger kontinuerligt deriverbar funktion f (x) ¨ar k¨and i punkterna
x − h, x, x + h d¨ar h ¨ar ett litet tal (i omgivningen av punkten x). Vi s¨oker en
approximation av derivatan f 0 (x). Enligt definitionen av derivatan (i punkten x)
f 0 (x) =
f (x + h) − f (x)
df (x)
= lim
,
h→0
dx
h
(109)
s˚
a kan man skriva approximativt
f 0 (x) ≈
f (x + h) − f (x)
= D+ f (h, x)
h
(110)
f 0 (x) ≈
f (x) − f (x − h)
= D− f (h, x).
h
(111)
eller
D+ f (h, x) kallas fram˚
atdifferensen och D− f (h, x) kallas bak˚
atdifferensen.
Centraldifferensenapproximationen
f 0 (x) ≈
f (x + h) − f (x − h)
= D0 f (h, x)
2h
74
(112)
¨ar ofta en b¨attre approximation av derivatan.
P˚
a samma s¨att f˚
as approximationer av h¨ogre ordningens derivator. F¨or den
andra derivatan, har vi
µ
¶
d df (x)
d2 f (x)
f 0 (x + h) − f 0 (x)
00
0
0
f (x) = (f (x)) =
=
=
lim
,
(113)
h→0
dx
dx
dx2
h
s˚
a kan man skriva, t ex, en s˚
adan approximation
f 0 (x + h) − f 0 (x)
D− f (h, x + h) − D− f (h, x)
≈
=
h
h
2
= D+ (D− f (h, x)) = D±
f (h, x) =
(114)
f 00 (x) ≈ D+ f 0 (h, x) =
=
f (x+h)−f (x)
h
−
h
f (x)−f (x−h)
h
=
f (x + h) − 2f (x) + f (x − h)
h2
f (x + h) − 2f (x) + f (x − h)
h2
2
f 00 (x) ≈ D±
f (h, x) =
(115)
Ofta ges argumentet x och motsvarande v¨ardena av funktionen y = f (x) som
¨andliga talf¨oljder (vektorer),
x = x1 , x 2 , . . . , x n ,
y = y1 , y 2 , . . . , y n ,
(116)
och man kan skriva derivatans approximation som
y 0 (xi ) ≈ D+ y(h, xi ) =
∆yi
yi+1 − yi
=
,
h
h
y 0 (xi ) ≈ D− y(h, xi ) =
y 0 (xi ) ≈ D0 y(h, xi ) =
i = 1, 2, . . . n − 1,
yi − yi−1
∆yi−1
=
,
h
h
i = 2, 3, . . . n,
yi+1 − yi−1
= 0.5(D+ y(h, xi ) + D− y(h, xi )),
2h
2
y(h, xi ) =
y 00 (x) ≈ D±
yi+1 − 2yi + yi−1
∆2 yi−1
=
h2
h
(117)
(118)
i = 2, 3, . . . n(119)
− 1,
i = 2, 3, . . . n − 1.
(120)
d¨ar differensoperatorn (58) ∆yn = yn+1 − yn .
Man kan anv¨anda fram˚
atdifferenser (64) och (65) och differensoperatorn (58)
i ekvidistanta fallet (63),
xj = x0 + (j − 1)h, j = 1, 2, 3, . . . , n
75
(121)
och best¨am v¨arden av derivatarnas approximationer med hj¨alp av fram˚
atdifferenstabellen
y1
∆y1 /h = D+ y(h, x1 ) = (y2 − y1 )/h ≈ y 0 (x1 )
y2
∆y2 /h = D+ y(h, x2 ) = (y3 − y2 )/h ≈
y3
∆2 y2 /h2 = (y3 − 2y2 + y1 )/h2 ≈ y 00 (x2 )
y 0 (x2 )
∆2 y3 /h2 = (y4 − 2y3 + y2 )/h2 ≈ y 00 (x3 )
∆y3 /h = D+ y(h, x3 ) = (y4 − y3 )/h ≈ y 0 (x3 )
..
.
..
.
∆yn−1 /h = D+ y(h, xn−1 ) = (yn − yn−1 )/h ≈ y 0 (xn−1 )
yn
Andra och tredje kolonner inneh˚
aller resp. approximationer av f¨orsta och andra
derivatorna. Observera att
D+ y(h, xi−1 ) = (yi − yi−1 )/h = D− y(h, xi ),
i = 2, 3, . . . , n.
(122)
Betrakta, t ex, en funktion
y = f (x) =
1
,
1 + x2
och noderna xk = (k−1)h, k = 1, 2, 3, 4, h = 0.1: Motsvarande fram˚
atdifferenstabellen
(med 3D) ¨ar
0.0 1.000
−0.100
0.1 0.990
−1.800
−0.280
0.2 0.962
−1.700
−0.447
0.3 0.917
Vi har
y0 = −
2x
,
(1 + x2 )2
y 00 = 2
76
3x2 − 1
,
(1 + x2 )3
Figur
20:
Approximationer
av
f¨orsta
derivatan
y 0 (x) = −
1
med D− f (h, x), D+ f (h, x) och D0 f (h, x), xi
1 + x2
i = 1, . . . , n, h = (0.4)/n, n = 10.
y(x) =
2x
(1 + x2 )2
f¨or
= (i − 1)h,
Figur 21: Approximationer av f¨orsta derivatan y 0 (x) = cos x f¨or y(x) = sin x med
D− f (h, x), D+ f (h, x) och D0 f (h, x), xi = (i − 1)h, i = 1, . . . , n, h = π/n, n = 10.
77
och de exakta v¨ardena (avrundade till 3KD) ¨ar
0.0 1.000
−0.000
0.1 0.990
−2.000
−0.196
0.2 0.962
−1.775
−0.370
0.3 0.917
Fig. (20), (22) och (21)–(27) visar b¨attre approximationer med 10 punkter xi
1
f¨or y(x) =
och 10 och 100 punkter f¨or y(x) = sin x.
1 + x2
78
Figur 22: Differenstabeller och approximationsfel av approximationer av
2x
1
y 0 (x) = −
f¨or y(x) =
med D− f (h, x), D+ f (h, x) och D0 f (h, x),
2
2
(1 + x )
1 + x2
xi = (i − 1)h, i = 1, . . . , n, h = (0.3)/n, n = 10.
Figur 23: Approximationer av f¨orsta derivatan y 0 (x) = cos x f¨or y(x) = sin x med
D− f (h, x), D+ f (h, x) och D0 f (h, x), xi = (i − 1)h, i = 1, . . . , n, h = π/n, n = 10,
st¨orre skala.
79
Figur 24: Approximationer av f¨orsta derivatan y 0 (x) = cos x f¨or y(x) = sin x med
D− f (h, x), D+ f (h, x) och D0 f (h, x), xi = (i − 1)h, i = 1, . . . , n, h = π/n, n = 100.
Figur 25: Approximationer av f¨orsta derivatan y 0 (x) = cos x f¨or y(x) = sin x med
D− f (h, x), D+ f (h, x) och D0 f (h, x), xi = (i − 1)h, i = 1, . . . , n, h = π/n, n = 100,
st¨orre skala.
80
Figur 26: Differenstabeller av approximationer av f¨orsta derivatan y 0 (x) = cos x f¨or
y(x) = sin x med D− f (h, x), D+ f (h, x) och D0 f (h, x), xi = (i − 1)h, i = 1, . . . , n,
h = π/n, n = 10.
6.2
Approximationen av differentialekvationer. Differensekvationer
En differentialekvation ¨ar en ekvation d¨ar en ok¨and funktion och dess derivator
ing˚
ar, t ex en ordin¨ar differentialekvation av f¨orsta ordningen
y 0 = f (x, y),
d¨ar f (x, y) a¨r en given funktion och y(x) a¨r den ok¨anda s¨okta funktionen. Den h¨ar
differentialekvationen kan ha o¨andligt m˚
anga l¨osningar. Betrakta flera exempel:
y 0 = y,
y 0 = −y 2 ,
y 0 = x3 − sin y.
N¨ar man kommer att l¨osa en differentialekvation numeriskt, betraktar man
den ok¨anda funktionen y(x) i ¨andligt m˚
anga punkter x = xi (116) eller (121) och
best¨ammer y(x) som an ¨andlig talf¨oljd (vektor)
yi = y(xi ),
i = 1, 2, . . . , n,
(123)
Sedan approximerar man derivator med differenserna (110), (111) och (114) och f˚
ar
en differensekvation. I differensekvationen, a¨r {yi }ni=1 den ok¨anda s¨okta talf¨oljden
(vektor)
81
Figur 27: Approximationsfel av f¨orsta derivatan y 0 (x) = cos x f¨or y(x) = sin x med
D− f (h, x), D+ f (h, x) och D0 f (h, x), xi = (i − 1)h, i = 1, . . . , n, h = π/n, n = 10.
Exempel 6.1
Approximera en ordin¨ar differentialekvation av f¨orsta ordningen
y 0 = −y,
y = y(x),
0 ≤ x ≤ 1.
(124)
Anv¨and fram˚
atdifferensen (110) men n˚
agot h, 0 < h < 1, och antag t ex att
xi = x0 + (i − 1)h = (i − 1)h, i = 1, 2, 3, . . . , n (x0 = 0),
s˚
a att h =
1
. D˚
a ¨overg˚
ar differentialekvationen i en differensekvation
n
yi+1 = (1 − h)yi ,
i = 0, 1, 2, . . . , n − 1.
(125)
Det ¨ar l¨ampligt att anta att y0 ¨ar ett givet tal och betrakta {yi }ni=1 som en ok¨and
talf¨oljd (vektor). H¨ar a¨r det l¨att att best¨amma l¨osningen {yi }ni=1 till differensekvationen (125). Vi har
y1 = (1 − h)y0 ,
y2 = (1 − h)y1 = (1 − h)2 y0 ,
. . . , yi = (1 − h)i y0 , i = 1, 2, . . . , n,
eller
yi+1 = (1 − h)yi = (1 − h)(1 − h)yi−1 = · · · = (1 − h)i+1 y0 ,
i = 0, 1, 2, . . . , n − (1126)
Man kan skriva l¨osningen till (125) som en vektor
].
{yi }ni=0 = {(1 − h)i y0 }ni=0 = y0 {(1 − h)i }ni=0 = y0 [1, (1 − h), (1 − h)2 , . . . (1 − h)n(127)
82
Om t ex y0 = 9 och h =
1
i (124) (dvs n = 3), formeln (127) ger
3
{yi }ni=0 = {yi }3i=0 = y0 {(1 − 1/3)i }3i=0 = 9{(2/3)i }3i=0 = 9[1, 2/3, (2/3)2 , (2/3)3 ] = [9, 6, 4, 8/3].
Kolla resultatet:
2
yi+1 = yi :
3
2
i = 0 : 6 = 9;
3
Om y0 = 1 och h = 0.1 =
2
i = 1 : 4 = 6;
3
i=2:
8
2
= 4.
3
3
(128)
1
(dvs n = 10), formeln (127) ger
10
i 10
i n
2
10
{yi }ni=0 = {yi }10
i=0 = {(1 − 0.1) }i=0 = {0.9 }i=0 = [1, 0.9, 0.9 , . . . 0.9 ].
Flera olika exempel av differensapproximationer finns i n¨asta avsnitt.
6.3
Differensekvationer p˚
a matrisformen
Antag att y0 ¨ar ett givet tal och skriv differensekvationen (125),
(h − 1)yi + yi+1 = 0,
i = 0, 1, 2, . . . , n − 1,
(129)
som ett linj¨art ekvationssystem med n obekanta yi , i = 1, 2, . . . , n (och n ekvationer)
i = 0 : y1 + 0 · y2 + 0 · y3 + · · · + 0 · yn
i = 1 : (h − 1)y1 + y2 + 0 · y3 + · · · + 0 · yn
i = 2 : 0 · y1 + (h − 1)y2 + y3 + 0 · y4 + · · · + 0 · yn
......
i = n − 1 : 0 · y1 + 0 · y2 + · · · + (h − 1) · yn−1 + yn
=
=
=
.
=
(1 − h)y0 ,
0
0
(130)
0.
P˚
a matrisformen skrivas systemet (130) som
Ay = b
med tv˚
adiagonala matrisen A av storlek n × n

1
0
0 ··· 0
0
 h−1
1
0 ··· 0
0

 0
h − 1 1 ··· 0
0
A=
 ..
..
.. .. . .
..
 .
.
.
. .
.
0
0
0 ··· 0 h − 1
83
0
0
0
..
.
1







(131)
och n-dimensionella kolonnvektorerna
y = {y1 , y2 , . . . , yN −1 }T ,
b = {(1 − h)y0 , 0, . . . , 0, 0}T .
Den tv˚
adiagonala matrisen A kan framst¨allas p˚
a formen
A = I + (h − 1)I−1 ,
d¨ar

1
 0
I=
 .
0
¨ar enhetsmatrisen av typ n × n och

0
 1

 0
I−1 = 
 0

 .
0
0
1
.
0
0 0
0 0
1 0
0 1
. .
0 ...
...
...
...
...
0
0
0
0
.
0
(132)

0
0 

. 
1
... 0
... 0
... 0
... 0
... .
1 0




.



I fallet n = 3 har vi ett linj¨art ekvationssystem med 3 obekanta y1 , y2 , y3 och
3 ekvationer
i = 0 : y1 + 0 · y2 + 0 · y3 = (1 − h)y0 ,
i = 1 : (h − 1)y1 + y2 + 0 · y3 = 0
i = 2 : 0 · y1 + (h − 1)y2 + y3 = 0
P˚
a matrisformen skrivas systemet (133) som
Ay = b
med tv˚
adiagonala matrisen A av storlek 3 × 3


1
0
0
1
0 
A= h−1
0
h−1 1
och 3-dimensionella kolonnvektorerna




(1 − h)y0
y1

0
y =  y2  , b = 
y3
0
84
(133)
Den tv˚
adiagonala matrisen A kan framst¨allas p˚
a formen
A = I + (h − 1)I−1 ,
d¨ar


1 0 0
I =  0 1 0 ,
0 0 1
(134)


0 0 0
=  1 0 0 .
0 1 0
I−1
Betrakta en differensekvation av andra ordningen
yi−1 − byi + yi+1 = fi ,
i = 1, 2, . . . , n.
(135)
H¨ar b och fi , i = 1, 2, . . . , n, ¨ar bekanta. Om man antar att y0 och yn+1 ¨ar ocks˚
a
bekanta, d˚
a kan man skriva (135) som ett linj¨art ekvationssystem med n obekanta
yi , j = 1, 2 . . . , n
i = 1 : −by1 + y2 + 0 · y3 + · · · + 0 · yn
i = 2 : y1 − by2 + y3 + · · · + 0 · yn
i = 3 : 0 · y1 + y2 − by3 + y4 + · · · + 0 · yn
......
i = n : 0 · y1 + 0 · y2 + · · · + yn−1 − byn
=
=
=
.
=
f1 − y0 ,
f2
0
fn − yn+1 .
eller p˚
a matrisformen
Ay = b
med symmetriska tridiagonala

−b
 1


A =  ...

 0
0
matrisen A av typ n × n
1
−b
..
.
0
0
0 ···
1 ···
.. ..
. .
0 ···
0 ···
0
0
..
.
1
0
och n-dimensionella kolonnvektorerna



y1

 y2 



y =  ..  , b = 

 . 
yn
0
0
..
.
0
0
..
.






−b 1 
1 −b
f1
f2
..
.
(136)





fn
Den tridiagonala matrisen A kan framst¨allas p˚
a formen
A = −bI + I−1 + I+1 ,
85
(137)
d¨ar

1
 0
I=
 .
0

I−1
6.4



=



0
1
0
0
.
0
0 0
0 0
1 0
0 1
. .
0 ...
0
0
0
0
.
0
...
...
...
...
...
1
0
0
0
0
.
0
0
1
.
0
...
...
...
...




,



I+1

0
0 
,
. 
1

0
 0

 0

=
 0
 .

 0
0
1 0
0 1
0 0
0 0
. .
0 0
0 ...
0 ... 0
0 ... 0
1 ... 0
0 ... 0
. ... .
... 0 1
0
0 0





.




Problem
Problem 6.1
Skriv differensekvationen (135) som ett linj¨art ekvationssystem med en symmetrisk
tridiagonal matris n¨ar
a) n = 3,
b) n = 4.
Framst¨alla matriserna p˚
a formen (137).
Problem 6.2
Approximera differentialekvationer
a) y 0 + 2y = 0,
b) y 00 − 10y = 1,
c) y 00 − 3x2 y = 3x
med differenserna (110), (111) och (114) genom att betrakta funktionen y = y(x)
och differentialekvationernas koefficienter i ¨andligt m˚
anga (olika) punkter
x = x1 , x 2 , . . . , x n .
Betrakta ekvidistanta fallet och f¨ors¨ok l¨osa motsvarande differensekvationer. Tips:
g¨or ansatsen yi = ri .
86
7
Numerisk l¨
osning av ordin¨
ara differentialekvationer
7.1
Grundbegrepp
Den enklaste formen f¨or en differentialekvation av f¨orsta ordningen ¨ar
y 0 = h(x).
(138)
En s˚
adan ekvation kan l¨osas direkt. Om
Z
H(x) = h(x)dx [H 0 (x) = h(x)]
a ¨ar ju
¨ar en primitiv till h(x) s˚
y(x) = H(x) + C
den alm¨anna (fullst¨andiga) l¨osningen till (138). Konstanten C best¨ams av n˚
agot
begynnelsevillkor.
Exempel 7.1
En differentialekvation av f¨orsta ordningen
y 0 = 2x
(139)
kan l¨osas direkt:
dy
= 2x,
dx
Z
dy = 2xdx,
Z
dy =
2xdx,
y = x2 + C.
(140)
Exempel 7.2
Differentialekvationen av f¨orsta ordningen
y0 = y
satisfieras av y = cex eftersom
y 0 = (cex )0 = c(ex )0 = cex = y.
87
(141)
En linj¨
ar differentialekvation av f¨
orsta ordningen ¨ar
L(y) ≡ y 0 + g(x)y = h(x).
(142)
H¨ar ¨ar g och h givna kontinuerliga funktioner i ett ¨oppet intervall p˚
a reela axeln
x. L kallas en linj¨ar differentialoperator (av f¨orsta ordningen) eftersom
L(y1 + y2 ) = (y1 + y2 )0 + g(x)(y1 + y2 ) = y10 + y20 + g(x)y1 + g(x)y2 = L(y1 ) + L(y2 ).
L(αy) = (αy)0 + g(x)(αy) = αy 0 + αg(x)y = αL(y)
och
L(αy1 + βy2 ) = αL(y1 ) + βL(y2 ).
(143)
Om y1 och y2 l¨oser de tv˚
a ekvationerna
L(y) = h1 (x)
respektive
L(y) = h2 (x)
s˚
a l¨oser y1 + y2 ekvationen
L(y) = h1 (x) + h2 (x)
och αy1 l¨oser ekvationen
L(y) = αh1 (x).
Detta kallas superpositionprincipen.
Exempel 7.3
L¨os differentialekvationen
y 0 (x) = x + y.
(144)
L¨
osning. Funktionen y0 (x) = cex satisfierar den homogena ekvationen
y0 − y = 0
(145)
som motsvarar ekvationen y 0 = x + y. Man kan kolla detta genom att visa att
(145) har karakteristiska polynomet
r−1
88
med nollst¨allet r = 1. Den fullst¨andiga l¨osningen y0 (x) till homogena ekvationen
(145) ¨ar d˚
a
y0 = cex .
Best¨am en partikul¨ar l¨osning yp (x) till ekvationen (144):
yp = ax + b : yp0 − yp = (ax + b)0 − (ax + b) = −ax + (a − b) = x
→ a = −1, b = a = −1,
och yp (x) = −x − 1.
Den (fullst¨andiga) l¨osningen till ekvationen (144) blir
y = y0 + yp = cex − x − 1.
(146)
Separabla ekvationer. En differentialekvation av f¨orsta ordningen s¨ages vara
separabel eller ha separabla variabler om den kan skrivas p˚
a formen
g(y)y 0 = h(x).
(147)
En s˚
adan ekvation kan l¨osas direkt.
Exempel 7.4
Differentialekvationen av f¨orsta ordningen
y0 = y
har separabla variabler och kan l¨osas direkt:
Z
Z
dy
dy
dy
= y,
= dx,
= dx,
dx
y
y
ln |y| = x + C, y = ex+C = ex eC = cex .
(148)
Begynnelsev¨
ardesproblem. F¨or att fixera vilken av o¨andligt m˚
anga l¨osningar
man s¨oker m˚
aste man ge till¨aggsvillkor av typen y(a) = α (eller y(x0 ) = y0 ). Detta
kallas ett begynnelsevillkor och problemet att l¨osa
y 0 = f (x, y) y(x0 ) = y0 ,
kallas begynnelsev¨ardesproblemet.
89
(149)
Exempel 7.5
L¨os begynnelsev¨ardesproblemet
y 0 = 2x y(0) = 1.
(150)
Lo
¨sning. Den fullst¨andiga l¨osningen y(x) till ekvationen y 0 = 2x a¨r
y = x2 + C.
(151)
Satisfiera begynnelseillkoret
y(0) = 1 → 0 − C = 1 → C = 1,
och l¨osningen till begynnelsev¨ardesproblemet ¨ar
y = x2 + 1.
(152)
Exempel 7.6
L¨os begynnelsev¨ardesproblemet
y 0 (x) = x + y,
y(0) = 0.
(153)
Den (fullst¨andiga) l¨osningen till ekvationen (144) y 0 = x + y blir, enligt (146),
y = cex − x − 1.
Satisfiera begynnelseillkoret
y(0) = 0 → c − 0 − 1 = 0 → c = 1.
Den (exakta) l¨osningen till begynnelsev¨ardesproblemet (153) ¨ar
y(x) = ex − x − 1.
Kolla detta:
y 0 (x) = (ex − x − 1)0 = ex − 1 = (ex − 1 − x) + x = y + x,
y 0 (0) = 1 − 1 − 0 = 0.
Exempel 7.7
90
L¨os begynnelsev¨ardesproblemet
y 0 = −y − 3(x + 1),
y(0) = 2,
y = y(x),
(154)
L¨
osning. L¨os den homogena ekvationen
y0 + y = 0
(155)
som motsvarar ekvationen y 0 = −y − 3(x + 1). (155) har karakteristiska polynomet
r+1
med nollst¨allet r = −1. Den fullst¨andiga l¨osningen y0 (x) till homogena ekvationen
(155) ¨ar d˚
a
y0 = Ce−x .
Best¨am en partikul¨ar l¨osning yp (x) till ekvationen (154):
yp = ax + b :
yp0 + yp = (ax + b)0 + (ax + b) = ax + (a + b) = −3x − 3
→ a = −3, b = 0
och yp (x) = (−3) · x + 0 = −3x.
Den fullst¨andiga l¨osningen till ekvationen (154) blir
y = y0 + yp = Ce−x − 3x.
Satisfiera begynnelseillkoret
y(0) = 2 → C − 0 = 2 → C = 2.
Den (exakta) l¨osningen till begynnelsev¨ardesproblemet (154) ¨ar d˚
a
y(x) = 2e−x − 3x.
Kolla att y(0) = 2e0 − 0 = 2 och
y 0 = (2e−x − 3x)0 = −2e−x − 3 = −y − 3x − 3,
dvs upfyller ekvationen (154).
En linj¨
ar differentialekvation av andra ordningen ¨ar
M (y) ≡ y 00 + a(x)y 0 + b(x)y = h(x).
(156)
H¨ar a¨r a, b och h givna kontinuerliga funktioner. M kallas en linj¨ar differentialoperator (av andra ordningen) eftersom M satisfierar (143).
91
Ekvationen
y 00 + a(x)y 0 + b(x)y = 0
(157)
kallas den till (156) h¨orande homogena ekvationen. (156) kallas inhomogena ekvationen
L˚
at yp vara en given l¨osning till (156). D˚
a ¨ar funktionen y l¨osning till (156) om
och endast om y ¨ar av formen
y = yh + yp ,
d¨ar funktionen yh ¨ar en l¨osning till motsvarande homogena ekvationen (157).
L¨osningen yp kallas partikul¨arl¨osning.
Betrakta ekvationen
y 00 + ay 0 + by = 0
(158)
med konstanta (komplexa) koefficienterna a och b. L¨osningen till homogena ekvationen (158) ¨ar av formen
y = C1 er1 x + C2 er2 x ,
r1 6= r2 ,
(159)
r1 = r2 = r,
(160)
eller
y = (C1 + C2 x)erx ,
d¨ar r1 och r2 ¨ar nollst¨allena till motsvarande karakteristiska polynomet
r2 + ar + b.
(161)
y 00 − 4y 0 + 3y = 0
(162)
r2 − 4r + 3
(163)
Exempel 7.8
Ekvationen
har karakteristiska polynomet
med nollst¨allena r1 = 1 och r2 = 3. Den fullst¨andiga l¨osningen till homogena
ekvationen (162) a¨r
y = C1 ex + C2 e3x .
92
Exempel 7.9
Ekvationen
y 00 + y = 0
(164)
r2 + 1
(165)
har karakteristiska polynomet
med komplexa nollst¨allena r1 = i och r2 = −i (h¨ar i2 = −1). Den fullst¨andiga
l¨osningen till (164) ¨ar
y = C1 eix + C2 e−ix = C1 cos x + iC1 sin x + C2 cos x − iC2 sin x = C˜1 cos x + C˜2 sin x,
(166)
eftersom
eix = cos x + i sin x,
e−ix = cos x − i sin x.
Randv¨
ardesproblemet f¨
or linj¨
ara differentialekvationen av andra ord00
ningen y + q(x)y = 0 skrivas som
½ 00
y + q(x)y = 0, y = y(x), a < x < b,
(167)
y(a) = y0 , y(b) = y1 ,
d¨ar q(x) ¨ar en given kontinuerlig funktion.
F¨or randv¨ardesproblem med icke-konstant koefficienten q, m˚
aste man i allm¨anhet
ber¨akna en approximativ l¨osning.
Exempel 7.10
Skriv den exakta l¨osningen till randv¨ardesproblemet f¨or en linj¨ar differentialekvation av andra ordningen
½ 00
y − y = −x, y = y(x), 0 < x < 3,
(168)
y(0) = 0, y(3) = 3.
L¨
osning. Ekvationen
y 00 − y = 0
(169)
r2 − 1
(170)
har karakteristiska polynomet
93
med nollst¨allena r1 = 1 och r2 = −1. Den fullst¨andiga l¨osningen y0 (x) till homogena ekvationen (169) ¨ar
y0 = C1 ex + C2 e−x .
Best¨am en partikul¨ar l¨osning yp (x) till ekvationen (168):
yp = ax + b :
yp00 − yp = (ax + b)00 − (ax + b) = 0 − ax − b = −x
→ a = 1, b = 0
och yp (x) = 1 · x + 0 = x
Den fullst¨andiga l¨osningen till ekvationen (168) blir
y = y0 + yp = C1 ex + C2 e−x + x.
Satisfiera randvillkor
y(0) = 0 → C1 + C2 + 0 = 0 → C2 = −C1 ;
y(3) = 3 → C1 e3 − C1 e−3 + 3 = 3, C1 (e3 − e−3 ) = 0 → C1 = 0.
Den (exakta) l¨osningen till randv¨ardesproblemet (168) ¨ar
y(x) = x.
(171)
Exempel 7.11
L¨os randv¨ardesproblemet f¨or den linj¨ara differentialekvationen av andra ordningen
½ 00
y + 4y = 2(2x2 + 1), y = y(x), 1 < x < 5,
(172)
y(1) = 1, y(5) = 25.
L¨
osning. Ekvationen
y 00 + 4y = 0
(173)
r2 + 4
(174)
har karakteristiska polynomet
med nollst¨allena r1 = 2i och r2 = −2i. Den fullst¨andiga l¨osningen till homogena
ekvationen (173) ¨ar
y0 = C1 cos 2x + C2 sin 2x.
94
Best¨am en partikul¨ar l¨osning yp (x) till ekvationen (172) som ett andragradspolynom (eftersom h¨ogerledet 4x2 + 2 ¨ar ett andragradspolynom):
yp = ax2 + bx + c :
yp00 + 4yp = (ax2 + bx + c)00 + 4(ax2 + bx + c) =
2a + 4ax2 + 4bx + 4c = 4x2 + 2
→ a = 1, b = 0, c = 0,
och yp (x) = x2 .
Den fullst¨andiga l¨osningen till ekvationen (172) blir
y = y0 + yp = C1 cos 2x + C2 sin 2x + x2 .
Satisfiera randvillkor
y(1) = 1 → C1 cos 2 + C2 sin 2 + 1 = 1 → C2 = −C1 (cos 2/ sin 2);
y(5) = 25 → C1 cos 10 + C2 sin 10 + 25 = 25, →
C1 (cos 10 − sin 10(cos 2/ sin 2)) = 0 → C1 = 0, C2 = 0.
Den (exakta) l¨osningen till randv¨ardesproblemet (172) a¨r
y(x) = x2 .
(175)
Exempel 7.12
Skriv den exakta l¨osningen till randv¨ardesproblemet f¨or en linj¨ar differentialekvation av andra ordningen
½ 00
y − 9y = 0, y = y(x), 0 < x < 1,
(176)
y(0) = 0, y(1) = sinh(3).
L¨
osning. Ekvationen
y 00 − 9y = 0
(177)
r2 − 9
(178)
har karakteristiska polynomet
med nollst¨allena r1 = 3 och r2 = −3. Den fullst¨andiga l¨osningen till homogena
ekvationen (177) a¨r
y = C1 e3x + C2 e−3x .
Satisfiera randvillkor [p˚
aminn att sinh z = 0.5(ez − e−z )]:
y(0) = 0 → C1 + C2 = 0 → C2 = −C1 ;
y(1) = sinh(3) → C1 e3 − C1 e−3 = sinh(3) = 0.5(e3 − e−3 ) → C1 = 0.5.
Den (exakta) l¨osningen till randv¨ardesproblemet (176) a¨r
y = 0.5(e3x − e−3x ) = sinh 3x.
95
(179)
7.2
Numerisk l¨
osning av begynnelsev¨
ardesproblem
Betrakta numerisk l¨osning av begynnelsev¨ardesproblemet
y 0 (x) = f (x, y),
y(x0 ) = y0 .
(180)
Vi best¨ammer l¨osningen y(x) i n¨atpunkterna
x1 = x0 + h,
x2 = x0 + 2h,
x3 = x0 + 3h,
dots,
d¨ar h ¨ar stegl¨angden.
7.2.1
Eulers metod
Enligt Eulers metod ers¨atter vi Taylors serie
y(x + h) = y(x) + hy 0 (x) +
h2 00
y (x) + . . . ,
2
(181)
i (180) med
y(x + h) ≈ y(x) + hy 0 (x) = y(x) + hf (x, y).
och ber¨aknar
y1 = y0 + hf (x0 , y0 ),
sedan
y2 = y1 + hf (x1 , y1 ),
etc.
Rekursionsformeln av Eulers metod ¨ar
yn+1 = yn + hf (xn , yn ),
n = 0, 1, 2, . . . .
Exempel 7.13
L¨os begynnelsev¨ardesproblemet
y 0 (x) = x + y,
96
y(0) = 0.
(182)
Figur 28: Approximativ l¨osning av begynnelsev¨ardesproblemet y 0 (x) = x + y,
y(0) = 0 med Eulers metod yn+1 = yn + h(xn + yn ), n = 0, 1, 2, . . . , h = 0.2.
Figur 29: Approximativ l¨osning av begynnelsev¨ardesproblemet y 0 (x) = x + y,
y(0) = 0 med Eulers metod yn+1 = yn + h(xn + yn ), n = 0, 1, 2, . . . , h = 0.1.
97
med h = 0.2.
L¨
osning. Rekursionsformeln av Eulers metod ¨ar
yn+1 = yn + 0.2(xn + yn ),
n = 0, 1, 2, . . . .
(183)
Den exakta l¨osningen ¨ar
y(x) = ex − x − 1.
Figur 30: MATLABr¨aknade tabellen av den approximativa l¨osningen till begynnelsev¨ardesproblemet y 0 (x) = x + y, y(0) = 0 med Eulers metod yn+1 =
yn + h(xn + yn ), n = 0, 1, 2, . . . , h = 0.2.
S¨att
zn = 0.2(xn + yn ),
y = Exakta v¨arden,
² = fel
och skriv ut ber¨akningar enligt (183):
n
0
1
2
3
4
xn
0.0
0.2
0.4
0.6
0.8
yn
0.000
0.000
0.040
0.128
0.274
zn
0.000
0.040
0.088
0.146
0.215
98
y
0.000
0.021
0.092
0.222
0.426
²
0.000
0.021
0.052
0.094
0.152
Figur 31: MATLABr¨aknade tabellen av den approximativa l¨osningen till begynnelsev¨ardesproblemet y 0 (x) = x + y, y(0) = 0 med Eulers metod yn+1 =
yn + h(xn + yn ), n = 0, 1, 2, . . . , h = 0.1.
Figur 32: MATLABkoder (kommandofil) som utf¨or approximativ l¨osning av begynnelsev¨ardesproblemet y 0 (x) = x + y, y(0) = 0 med Eulers metod yn+1 =
yn + h(xn + yn ), n = 0, 1, 2, . . . , h = 0.2. Funktionsfilen som r¨aknar h¨ogerledet
function [f] = eulerf(x, y) f = x + y;
¨ar
99
Figur 33: MATLABkoder (huvudfunktionsfil) som utf¨or approximativ l¨osning av
begynnelsev¨ardesproblemet y 0 (x) = x + y, y(0) = 0 med Eulers metod yn+1 =
yn + h(xn + yn ), n = 0, 1, 2, . . . .
7.2.2
Heuns metod
Enligt Heuns metod ers¨atter vi Taylors serie (181) i
y 0 (x) = f (x, y(x))
(184)
med
y(x + h) = y(x) + hf +
h2 0 h3 00
f + f
2
6
d¨ar
f 0 = fx + fy y 0 = fx + fy f, . . . .
Rekursionsformlerna av Heuns metod ¨ar
Steg 1:
∗
yn+1
= yn + f (xn , yn ),
n = 0, 1, 2, . . . ;
(185)
Steg 2:
h
∗
)],
yn+1 = yn + [f (xn , yn ) + f (xn+1 , yn+1
2
n = 0, 1, 2, . . . ,
eller
xn+1
k1
k2
yn+1
=
=
=
=
xn + h
hf (xn , yn )
hf (xn+1 , yn + k1 )
yn + 1/2(k1 + k2 )
100
(186)
Exempel 7.14
L¨os begynnelsev¨ardesproblemet
y 0 (x) = x + y,
y(0) = 0.
med h = 0.2.
L¨
osning. Rekursionsformlerna av Heuns metod ¨ar
k1 = 0.2(xn + yn ),
k1 = hf (xn , yn );
∗
,
k2 = hf (xn+1 , yn+1
k2 = 0.2(xn + 0.2 + yn + 0.2(xn + yn )),
∗
= yn + k1 ;
yn+1
S¨att
zn = 0.22(xn + yn ) + 0.02,
y = Exakta v¨arden,
² = fel
och skriv ut ber¨akningar enligt (185) och (186):
n
0
1
2
3
4
7.2.3
xn
0.0
0.2
0.4
0.6
0.8
yn
0.0000
0.0200
0.0884
0.2158
0.4153
zn
0.0200
0.0684
0.1274
0.1995
0.2874
y
0.0000
0.0214
0.0918
0.2221
0.4255
²
0.0000
0.014
0.0034
0.0063
0.0102
Runge–Kutta-metoder
Rekursionsformlerna av Runge–Kutta-metod, som har globalt trunkeringsfel O(h4 ),
a¨r
k1
k2
k3
k4
xn+1
yn+1
=
=
=
=
=
=
hf (xn , yn )
hf (xn + 1/2h, yn + 1/2k1 )
hf (xn + 1/2h, yn + 1/2k2 )
hf (xn + h, yn + k3 )
xn + h
yn + 1/6(k1 + 2k2 + 2k3 + k4 )
Exempel 7.15 Klassisk Runge–Kutta-metod
L¨os begynnelsev¨ardesproblemet
y 0 (x) = x + y,
101
y(0) = 0,
(187)
(188)
med h = 0.2.
Lo
¨sning. Rekursionsformlerna av Runge–Kutta-metod ¨ar
k1 = 0.2(xn + yn ), k2 = 0.2(xn + 0.1 + yn + 0.5k1 ),
k3 = 0.2(xn + 0.1 + yn + 0.5k2 ), k4 = 0.2(xn + 0.2 + yn + k3 ).
Vi f˚
ar
k2 = 0.22(xn + yn ) + 0.22,
k3 = 0.222(xn + yn ) + 0.022,
k4 = 0.2444(xn + yn ) + 0.0444,
Vidare
yn+1 = yn + 1/6(k1 + 2k2 + 2k3 + k4 ) = yn + zn ,
d¨ar
zn = 0.2214(xn + yn ) + 0.0214.
S¨att
y = ex − x − 1 = Exakta v¨arden,
² = 106 × fel i yn
och skriv ut ber¨akningar enligt (187):
n
0
1
2
3
4
7.3
xn
0.0
0.2
0.4
0.6
0.8
yn
0.000000
0.021400
0.091818
0.222106
0.425521
zn
0.021400
0.070418
0.130289
0.203414
0.292730
Problem
Problem 7.1
L¨os begynnelsev¨ardesproblemet
y 0 + 0.1y = 0,
y(0) = 2
med h = 0.1.
L¨
osning. Vi har ODE
y 0 = −0.1y,
102
y
0.000000
0.021403
0.091825
0.222119
0.425541
²
0
3
7
11
20
Dess (exakta) l¨osning som satisfierar y(0) = 2 ¨ar
y(x) = 2e−0.1x .
Eulers metod ger
yn+1 = yn − 0.1 · 0.1yn = 0.99yn ,
n = 0, 1, 2, . . . ,
y0 = 2.
(189)
S¨att
xn = nh = 0.1n,
y = y(xn ) Exakta v¨arden,
² = fel = y(xn ) − yn .
och skriv ut f¨orsta steg enligt (189) (6D-r¨akning):
y1 = y0 − 0.01y0 = 2 − 0.02 = 1.98;
² = y(x1 ) − y1 = 2e−0.1·0.1 − 1.98 = 1.980100 − 1.980000 = 0.000100.
y2 = y1 − 0.01y1 = 1.980 − 0.0198 = 1.782;
² = y(x2 ) − y2 = 2e−0.1·0.2 − 1.782 = 1.960397 − 1.960200 = 0.000197.
Rekursionsformlerna av Eulers metod ¨ar
yn+1 = 0.99yn = 0.992 yn−1 = · · · = 0.99n+1 y0 = 2 · 0.99n+1 .
Vi f˚
ar
y5 = 2 · 0.995 ; ² = y(x5 ) − y5 = 2e−0.1·0.5 − 1.901980 = 1.902458 − 1.901980 = 0.000478;
y10 = 2 · 0.9910 ; ² = y(x10 ) − y10 = 2e−0.1 − 1.901980 = 1.809674 − 1.808764 = 0.000910.
Problem 7.2
L¨os begynnelsev¨ardesproblemet
y 0 = y,
y(0) = 1
med h = 0.1.
L¨
osning. Den exakta l¨osningen ¨ar
y(x) = ex .
103
Rekursionsformlerna av Heuns metod ¨ar
xn+1
k1
k2
yn+1
=
=
=
=
xn + 0.1, n = 0, 1, 2, . . . ,
hf (xn , yn ) = 0.1yn
hf (xn+1 , yn + k1 ) = 0.1(yn + 0.1yn ) = 0.11yn ,
yn + 1/2(k1 + k2 ) = yn + 0.5(0.1yn + 0.11yn ) = 1.105yn
Vi har
yn+1 = 1.105yn = 1.1052 yn−1 = · · · = 1.105n+1 y0 = 1.105n+1 .
y5 = 1.1055 = 1.647446;
² = y(x5 ) − y5 = e0.5 − 1.647446 = 1.648721 − 1.647446 = 0.001274.
y10 = 1.10510 = 2.714081;
8
8.1
² = y(x10 ) − y5 = e − 2.714081 = 2.718281 − 2.714081 = 0.004201.
Numeriska metoder f¨
or linj¨
ar algebra
Grundl¨
aggande begrepp
Ett linj¨art ekvationssystem med n obekanta har formen
E1 :
E2 :
En :
Introducera matriserna
a11 x1 + a12 x2 + · · · + a1n xn
= b1
a21 x1 + a22 x2 + · · · + a2n xn
= b2
...
.....
an1 x1 + an2 x2 + · · · + ann xn
= bn

a11 a12
 a21 a22
A=
 .
.
an1 an2

. . . a1n
. . . a2n 
,
...
. 
. . . ann
s˚
a A = [ajk ] ¨ar en kvadratisk matris av typ n × n, och

a11 . . . a1n b1
 a21 . . . a2n b2
˜ = [A b] = 
A
 .
. ... .
an1 . . . ann bn
104


,

(190)
och vektorerna (kolonnvektorer)




x1
b1
x =  ... , b =  ... 
xn
bn
kan (kvadratiska) ekvationssystemet skrivas p˚
a matrisform
Ax = b.
(191)
Ekvationssystemet

Ax = 0,

0
0 =  ... 
0
(192)
kallas ett homogent system.
En l¨osning till systemet (190) ¨ar en m¨angd av n talen x1 , x2 , . . . , xn som
satisfierar alla n ekvationerna. De bildar kolonnvektorn x.
Ekvationssystemet (190) har en entydig l¨osning om och endast om det A 6= 0
(matrisen A ¨ar inverterbar, eller icke-singul¨ar). Man kan d˚
a multipliciera systemet
fr˚
an v¨anster med inversen A−1 och f˚
ar
x = A−1 b.
Det a¨r l¨ampligt ofta att uppfatta matrisen A som best˚
aende av n kolonnvektorer:




a11 a12 . . . a1n
a1j
 a21 a22 . . . a2n 
 = [a1 a2 . . . an ] , d¨ar aj =  . . .  , j = 1, 2, . . . n.
A=
 .
. ...
. 
anj
an1 an2 . . . ann
D˚
a kan vi skriva ekvationssystemet Ax = b p˚
a formen
x1 a1 + x2 a2 + · · · + xn an = b
Systemet ¨ar l¨osbart f¨or varje h¨ogerledet b d˚
a och endast d˚
a kolonnvektorerna
a1 a2 . . . an utg¨or en bas i Rn , eller ekvivalent, d˚
a kolonnvektorerna ¨ar linj¨art
oberoende:
d1 a1 + d2 a2 + · · · + dn an = 0 d˚
a och endast d˚
a
talen dj = 0, j = 1, 2, . . . n.
En matris A, vars kolonnvektorer a¨r linj¨art oberoende, a¨r inverterbar (ickesingul¨ar), och systemet Ax = b har entydig l¨osning f¨or varje h¨ogerledet b
105
Exempel 8.1
Betrakta en matris
·
A=
2 4
6 3
¸
·
= [a1 a2 ] ,
2
6
a1 =
¸
·
,
a2 =
4
3
¸
.
D˚
a ekvationssystemet Ax = b med h¨ogerledet
· ¸
1
b=
2
blir
2x1 + 4x2 = 1
6x1 + 3x2 = 2
(193)
(194)
Man kan ocks˚
a anv¨anda en ekvivalent metod att l¨osa linj¨ara ekvationssystem
som kallas Cramers regel.
Exempel 8.2
Betrakta tex ekvationssystemet
2x1 + 4x2 = 1
6x1 + 3x2 = 2
med 2 × 2 koefficientmatrisn
·
2 4
6 3
A=
och kolonnvektorerna
·
x=
x1
x2
¸
(195)
¸
,
·
, b=
1
2
¸
.
Skriv systemet i formen
·
2 4
6 3
¸·
¸
x1
x2
˜ ¨ar en 2 × 3 matris
A
=
·
˜ = [A b] =
A
Vi har
·
det
2 4
6 3
·
1
2
2 4 1
6 3 2
¸
106
= −18,
¸
.
¸
.
dvs., det A 6= 0. D˚
a har ekvationssystemet (195) en entydig l¨osning, matrisn A ¨ar
inverterbar (icke-singul¨ar), och vi kan skriva l¨osningen enligt Cramers regel:
·
¸
·
¸
1
1
1 4
2 1
x1 = − det
= 5/18, x2 = − det
= 2/18.
2 3
6 2
18
18
Men att best¨amma inversen till en n × n matris (och att anv¨anda Cramers
regel) ¨ar en m¨odosam procedur och det ¨ar oftast enklare att l¨osa systemet med
elimination som betraktas vidare.
8.2
Matrisalgebra
Om A och B a¨r tv˚
a (rektangul¨ara) matriser av samma storlek (m × n, m rader
och n kolonner), definieras deras summa och differens
 


a11 a12 . . . a1m
b11 b12 . . . b1m
 a21 a22 . . . a2m   b21 b22 . . . b2m 
±
=
(196)
A±B=
 .
. ...
.   .
. ...
. 
an1 an2 . . . anm
bn1 bn2 . . . bnm

a11 ± b11 a12 ± b12
 a21 ± b21 a22 ± b22
=

.
.
an1 ± bn1 an21 ± bn2
och produkten av ett tal c och en matris

ca11 ca12
 ca21 ca22
cA = 
 .
.
can1 can2
...
...
...
...

a1m ± b1m
a2m ± b2m 
,

.
anm ± bnm

. . . ca1m
. . . ca2m 

...
. 
. . . canm
(197)
Matrismultiplikation, dvs matrisprodukten
C = AB
av matriser A och B, C = [cjk ], ¨ar definierad om antalet kolonner i A ¨ar lika med
antalet rader i B, dvs A = [ajk ] ¨ar en matris av typ n × m (n rader, m kolonner)
och B = [bjk ] ¨ar en matris av typ m × n (m rader, n kolonner). Elementet cjk ¨ar
skal¨arprodukten mellan j-te raden i A och k-te kolonnen i B. Observera att
AB 6= BA.
107
S¨arskild, matrismultiplikation ¨ar definierad om A och B ¨ar kvadratiska matriser
som har samma storlek och om A = [ajk ] ¨ar en matris av typ n × m och B = x ¨ar
en kolonnvektor med m rader (och 1 kolonn). D˚
a matrisprodukten b = Ax blir en
kolonnvektor med n rader (och 1 kolonn) som skrivas i formen av ekvationssystemet
(190)
a11 x1 + a12 x2 + · · · + a1m xm
= b1
a21 x1 + a22 x2 + · · · + a2n xm
= b2
...
.....
an1 x1 + an2 x2 + · · · + anm xm
= bn ,
Exempel 8.3
L˚
at
1
1
Q= T=
4
4
·
2 1
1 2
¸
·
,
b=
1
1
¸
.
D˚
a, enligt definitionen av matrisprodukten,
·
¸· ¸
·
¸
1
1 2 1
1 2+1
3
1
Qb = Tb =
=
= b.
1
4
4 1 2
4 1+2
4
Skriv potenser
µ ¶p
1
Q = Q · Q · ··· · Q =
Tp
4
p
genom att utf¨ora successiv matrismultiplikation p g˚
anger (p = 1, 2, 3, 4):
·
¸ ·
¸ ·
¸ ·
¸
2 1
2 1
4+1 2+2
5 4
2
T =T·T=
·
=
=
,
1 2
1 2
2+2 1+4
4 5
µ ¶2
·
¸
1
1 5 4
2
2
Q =
T =
;
4
16 4 5
·
¸· ¸
· ¸
· ¸
1 5 4
1 9
9 1
1
2
Q b=
=
=
= q 2 b;
1
16 4 5
16 9
16 1
·
¸ ·
¸ ·
¸ ·
¸
2 1
5 4
10 + 4 8 + 5
14 13
3
2
T =T·T =
·
=
=
,
1 2
4 5
5 + 8 4 + 10
13 14
µ ¶3
·
¸
1 14 13
1
2
3
T =
Q =
;
4
64 13 14
·
¸· ¸
·
¸ µ ¶3
1 14 13
1 27
3
1
3
b;
Q b=
=
=
13
14
1
27
64
64
4
108
·
¸ ·
¸ ·
¸ ·
¸
14 13
28 + 13 26 + 14
41 40
T =T·T =
·
=
=
,
13 14
14 + 26 13 + 28
40 41
·
µ ¶4
¸
1
1
41 40
4
4
Q =
T =
;
4
256 40 41
·
¸· ¸
·
¸ µ ¶4
1
1
3
41 40
81
1
4
Q b=
=
=
b.
1
256 40 41
256 81
4
4
3
2 1
1 2
Skriv flera exempel av matrismultiplikation f¨or rektangul¨ara matriser.
Exempel 8.4
L˚
at


1 1
A= 1 2 
1 3
vara en rektangul¨ar matris av storlek 3 × 2. Man kan framst¨alla matrisen som
 
 
1
1



A = [a1 a2 ] , a1 = 1 , a2 = 2  .
3
1
Ta en kolonnvektor


0
b =  0 .
1
Vi har
¸
1 1 1
.
A =
1 2 3
 
·
¸ · ¸
¸ 0
1
0+0+1
1  
0 =
=
.
3
0+0+3
3
1

·
¸ ·
¸
1+2+3
3 6
= 1+1+1
=
.
1+2+3 1+2·2+3·3
6 14
·
T
·
T
A b=
·
T
A A=
1 1 1
1 2 3
¸

1 1
1 2
1 1
 1 2
1 3
Observera att
A · B 6= B · A
men
A · O = O,
109
d¨ar den (rektangul¨ara) matrisen

0
 0
O=
 .
0
0
0
.
0
...
...
...
...

0
0 

. 
0
kallas nullmatrisen.
Vanliga algebraiska egenskaper g¨aller (alla matriser har samma storlek):
A+B
A + (B + C)
A + (−A)
A+O
=
=
=
=
Introducera en (rektangul¨ar) matris

1 1
 1 1
1=
 . .
1 1
En kvadratisk matris

1
 0
I=
 .
0
B + A,
(A + B) + C,
O,
A.
...
...
...
...

1
1 
.
. 
1
...
...
...
...

0
0 

. 
1
0
1
.
0
kallas enhetsmatrisen (av typ n × n).
Produkten av en kolonnvektor x och en radvektor xT eller yT ,


x1
x =  . . .  , xT = [x1 , . . . xn ]
xn


x1
x =  . . .  , yT = [y1 , . . . yn ]
xn
definieras
x · xT = x21 + · · · + x2n ,
x · yT = x1 y1 + · · · + xn yn .
T ex


2
x =  1 ,
3
yT = [3, 0, 2],
110
x · yT = 12.
(198)
8.3
8.3.1
Bandmatriser och blockmatriser
Bandmatriser
L˚
at x = (x1 , x2 , . . . , xn ) vara en n-dimensionell rad- (eller kolonn) vektor. Definiera
en kvadratisk matris av typ n × n


x1 0 . . . 0
 0 x2 . . . 0 

diag(x) = 
 .
. ... . 
0 0 . . . xn
och kvadratiska matriser (av typ n × n)

0 x1 0 0 . . .
0
 0 0 x2 0 . . .
0

 0 0 0 x3 . . .
0

0
0
0
0
.
.
.
0
diag(x, 1) = 

 . .
.
. ...
.

 0 0 0 0 . . . xn−1
0 0 ... 0 0
0






,








diag(x, −1) = 




0 0 0
x1 0 0
0 x2 0
0 0 x3
.
.
.
0 0 0
0 0 ...
0
0
0
0
.
...
0
d¨ar

I−1



=



0
1
0
0
.
0
0 0
0 0
1 0
0 1
. .
0 ...
0
0
0
0
.
0
x = (x1 , x2 , . . . , xn−1 ).


0 1 0
... 0
 0 0 1

... 0 

 0 0 0

... 0 
 , I+1 =  0 0 0


... 0 
 . . .

... . 
 0 0 0
1 0
0 0 ...
0 ... 0
0 ... 0
1 ... 0
0 ... 0
. ... .
... 0 1
0
0 0





.




Matriserna I (enhetsmatris) och I± kallas ibland basbandmatriser. Matriserna
I± och diag(x, ±1) kallas element¨ara bandmatriser. Man kan skriva
I±1 = diag(I, ±1).
(199)
Exempel 8.5
Skriv vissa matrisuttryck n¨ar det ¨ar l¨ampligt att anv¨anda element¨ara bandmatriser:




a 0 ... 0
a+b
0
...
0
 0 a ... 0 
 0
a + b ...
0 


,
aI = 
(200)
 . . . . . .  , aI + bI =  .
.
...
. 
0 0 ... a
0
0
... a + b
111
...
...
...
...
...
0
xn−1
0
0
0
0
.
0
0





,





0
 1
1−I=
 .
1

aI−1



=



0
a
0
0
.
0
1
0
.
1

1
1 
,
. 
0
...
...
...
...
0 0 0 ... 0
0 0 0 ... 0
a 0 0 ... 0
0 a 0 ... 0
. . . ... .
0 ... 0 a 0

2
 1
1+I=
 .
1





,



bI+1




=




0
0
0
0
.
0
0
1
2
.
1

1
1 

. 
2
...
...
...
...
b 0
0 b
0 0
0 0
. .
0 0
0 ...
0 ... 0
0 ... 0
b ... 0
0 ... 0
. ... .
... 0 b
0
0 0
(201)





 . (202)




Uttrycket

aI−1 + cI + bI+1




=




c
a
0
0
.
0
0
b 0
c b
a c
0 a
. .
0 0
0 ...
0 ...
0 ...
b ...
c ...
. ...
... c
0
a
0
0
0
0
.
b
c
0
0
0
..
.
0
0
0
..
.





.




(203)
get ett exempel av en tridiagonal bandmatris.
Exempel 8.6
En tridiagonal bandmatris

x1 z 1 0 0
 y1 x2 z2 0

 0 y2 x3 z3

T =  ..
..
.. ..
 .
.
. .

 0 0 0 0
0 0 0 0
···
···
···
..
.
···
···
0
0
0
..
.
yn−2 xn−1 zn−1
0
yn−1 xn
d¨ar vektorer
x = (x1 , x2 , . . . , xn−1 , xn ),
y = (y1 , y2 , . . . , yn−1 ),
x = (z1 , z2 , . . . , zn−1 ),
112









(204)
skrivs
T = diag(x) + diag(z, 1) + diag(y, −1)
(205)
Exempel 8.7
Betrakta linj¨ara ekvationsystemet
0.5x1 − 0.25x2 = 1
−0.25x1 + 0.5x2 = 1.
(206)
Det har en symmetrisk matris av typ 2 × 2
·
¸
· ¸
0.5 −0.25
1
A=
. H¨ogerledet b =
.
−0.25 0.5
1
Best¨am matrisen
I−A=
·
1 0
0 1
¸
·
−
d¨ar
0.5 −0.25
−0.25 0.5
·
2 1
1 2
T=
¸
¸
·
=
0.5 0.25
0.25 0.5
¸
= aT,
1
och a = .
4
Exempel 8.8
Antag att alla diagonalelementen
D˚
a kan man skriva

 
1 a12 . . . a1n
1 0
 a21 1 . . . a2n   0 1

=
 .
. ...
.   . .
an1 an2 . . . 1
0 0
av en matris A = [ajk ] a¨r lika med 1: ajj = 1.
...
...
...
...
 
0
0
0


0   a21 0
+
.   .
.
1
an1 an2
 
... 0
0 a12


... 0   0 0
+
... .   . .
... 0
0 0
...
...
...
...
eller
A = I + L + U,
d¨ar L och U a¨r h¨oger- och v¨anstertriangul¨ara matriser med nollelementen p˚
a
huvuddiagonalerna. Ins¨attning i systemet Ax = b ger
Ax = (I + L + U)x = b,
eller
x = b − Lx − Ux.
113
(207)

a1n
a2n 
,
. 
0
Exempel 8.9
Betrakta ett linj¨art ekvationssystem med n = 3 obekanta
2x + y + z = 4
x + 2y + z = 4
x + y + 2z = 4
˜ = b, d¨ar alla diagonalelementen av en matris A
˜ a¨r
Skriv systemet i formen Ax
lika med 1 (ajj = 1, j = 1, 2, 3):
x + 1/2y + 1/2z = 2
1/2x + y + 1/2z = 2
1/2x + 1/2y + z = 2,
eller
x = 2 − 1/2y − 1/2z
y = 2 − 1/2x − 1/2z
z = 2 − 1/2x − 1/2y
Matrisen
˜ = I + L + U,
A
eller

 
 
 

1 1/2 1/2
1 0 0
0
0 0
0 1/2 1/2
 1/2 1 1/2  =  0 1 0  +  1/2 0 0  +  0 0 1/2  .
1/2 1/2 1
0 0 1
1/2 1/2 0
0 0
0
skrivs
A = I + 0.5I+1 + 0.5I−1 + 0.5I+2 + 0.5I−2
(208)
d¨ar

I+2

0 0 1
=  0 0 0 ,
0 0 0

I−2
114

0 0 0
=  0 0 0 .
1 0 0
(209)
8.3.2
Blockmatriser
H¨ar ¨ar n˚
agra exempel av blockmatriser




1 0 0
0 2 2
A1 =  0 1 0  , A2 =  0 1 1  ,
0 0 0
0 0 0

1
 2
A4 = 
 0
0
2
1
0
0
0
0
3
4


0
0 
,
4 
3
0
 1
A7 = 
 1
0
1
0
0
1

1
 2
A5 = 
 3
4
1
0
0
1
1
0
0
1

0
1 
,
1 
0
2
5
5
3


0 0 0
A3 =  1 2 0  ,
3 4 0

4
3 
,
2 
1
3
5
5
2

1
 2
A8 = 
 0
0

0
 0
A6 = 
 0
0
2
1
0
0
0
0
1
0
0
0
0
1
5
7
9
0
(210)
0
3
3
0

0
0 
 (211)
0 
0

6
8 
.
0 
9
(212)
0
3
3
0
Man kan framst¨alla blockmatriser som matriser best˚
aende av submatriser (delmatriser); de submatriserna har mindre storlek (de kan vara ¨aven rad- och kolonnvektorer), t ex
¸
¸
·
·
1 0
I 0
,
(213)
, I=
A1 =
0 1
0 0
·
0 R
0 0
A2 =
·
0 0
R 0
A3 =

¸
·
,
R=
¸
·
,
R=


1
x

2
A5 =  RT  = [x R y] = 

3
yT
4
d¨ar
T

2
 5
R=
 5
3

3
5 
,
5 
2
·
T
R =
115
2 2
1 1
1 2
3 4
2
5
5
3
¸
,
(214)
.
(215)
¸
3
5
5
2

4
3 
,
2 
1
2 5 5 3
3 5 5 2
¸
,
(216)


1
 2 

x=
 3 ,
4
xT = [1, 2, 3, 4],
etc.
Betrakta ett viktigt exempel av en

R I
 I R

 0 I

 . .
A=
 . .

 . .

 0 0
0 0


4
 3 

y=
 2 ,
1
yT = [4, 3, 2, 1],
blockbandmatris av storlek N × N , N > 8,

0 ... 0
I ... 0 

R ... 0 

. ... . 
;
(217)
. ... . 

. ... . 

0 ... I 
0 ... R
h¨ar ¨ar R en tridiagonal bandmatris av storlek n × n,


−4 1
0 ... 0
 1 −4 1 . . . 0 


 0
1 −4 . . . 0 


 .

.
.
.
.
.
.
,
R=
 .
.
. ... . 


 .

.
.
.
.
.
.


 0
0
0 ... 1 
0
0
0 . . . −4
I enhetsmatrisen av storlek n × n. Ta n = 3, d˚
a




−4 1
0
1 0 0
R =  1 −4 1  . I =  0 1 0  ,
0
1 −4
0 0 1
116
(218)
(219)
och skriv motsvarande

−4
 1

 0

 1

 0
A=
 0

 .

 0

 0
0
8.4
A:
1
0
1
0
0
0
−4
1
0
1
0
0
1
−4
0
0
1
0
0
0
−4 1
0
0
1
0
1 −4 1
0
0
1
0
1 −4 0
... ...0 ... ... ... ...
...
0
1
0
0 −4
...
0
0
1
0
1
...
0
0
0
1
0
... 0
... 0
... 0
... 0
... 0
... 0
... .
1
0
−4 1
1 −4








.







(220)
Gausselimination
Det finns tv˚
a huvudklasser av metoder f¨or numerisk l¨osning av linj¨ara ekvationssystem, direkt och iterativa metoder. Med en direkt metod, ber¨aknar man
l¨osningen genom att utf¨ora ett ¨andligt antal aritmetiska operationer. Om man
skulle r¨akna utan avrundningsfel, skulle den ber¨aknade l¨osningen vara den exakta l¨osningen till ekvationssystemet. Den mest grundl¨aggande direkta metoden f¨or
l¨osning av linj¨ara ekvationssystem ¨ar Gausselimination (GE).
M˚
alet med GE ¨ar att ¨overf¨ora koefficientmatrisen p˚
a h¨ogertriangul¨ar form.
Metoden inneb¨ar att man adderar multipler av ekvationerna till varandra. L¨osningen
f˚
as sedan genom bak˚
at substitution.
Man kan anv¨anda tre element¨ara operationer utan att bryta mot systemsl¨osning:
(1) byta varje tv˚
a rader (dvs., ekvationer);
(2) multipliciera en rad (dvs., en ekvation) med ett tal (6= 0);
(3) ers¨atta en rad med summan av den h¨ar raden och en annan rad multiplicierad med ett tal.
T ex f˚
as l¨osningen till systemetet (195),
E1 :
E2 :
2x1 + 4x2 = 1
6x1 + 3x2 = 2
med hj¨alp av GE.
1 Begynnelsematris
·
A=
2 4 1
6 3 2
117
¸
,
˜ med maximalelementet
Byta raderna 2 och 1 f¨or att f˚
a augmenterad matrisen A
a11
·
¸
rad
1
6
3
2
˜ = [A b] =
A
,
rad 2 2 4 1
eller systemet
6x1 + 3x2 = 2
2x1 + 4x2 = 1
(221)
(222)
Maximalelementet a11 = 6 (‘pivot´) ¨ar i den f¨orsta kolonnen och f¨orsta raden.
2 Reducera kol 1 av rad 2 till noll
Dividera ekvationen (221) med 6, multipliciera med 2 (dvs., multipliciera (221)
med 1/3) och subtrahera fr˚
an ekvationen (222). Man f˚
ar
6x1 + 3x2 = 2
3x2 = 1/3,
˜ med en h¨ogertriangul¨ar (upp˚
eller systemet Rx = b
at triangul¨ar) matris
·
¸
6 3
R=
.
0 3
Skriv resultatet i matrisformen:
·
gammalrad 1
gammalrad 2 - 2(gammalrad 1 )/6
6 3 2
0 3 1/3
¸
.
3 Best¨amm l¨osningen x1 , x2 med substitution i omv¨and ordning (bak˚
at substitution).
Genom att i den f¨orsta ekvationen s¨atta in x2 = (1/3)/3 = 1/9 erh˚
alls x1 =
(2 − 3 · (1/9))/6 = 5/18:
x1 = (2 − 3 · (1/9))/6 = 5/18
x2 = 2/18.
Betrakta som exempel systemet
E1 : 3x1 + 6x2 + 9x3 = 3
E2 : 2x1 + (4 + p)x2 + 2x3 = 4
E3 : −3x1 − 4x2 − 11x3 = −5
118
(223)
(224)
(225)
med 3 × 3 koefficientmatrisn

3
6
9
A =  2 4 + p 2 ,
−3 −4 −11
och kolonnvektorna





x1
3
x =  x2  , b =  4  .
x3
−5
˜ till systemet (223)–(225) ¨ar en 3 × 4 matris
Augmenterade matrisen A


3
6
9
3
˜ = [A b] =  2 4 + p 2
4 ,
A
−3 −4 −11 −5
Skriv (223)–(225) i formen


 

3
6
9
x1
3
 2 4 + p 2   x2  =  4  .
−3 −4 −11
x3
−5
Till¨amp GE.
1 Begynnelsematris


rad 1 3
6
9
3
 rad 2 2 4 + p 2
4 .
rad 3 −3 −4 −11 −5
Maximalelementet a11 = 3 (‘pivot´) ¨ar i den f¨orsta kolonnen och f¨orsta raden.
2 Reducera kol 1 av rader 2 och 3 till noll
2.1 Dividera ekvationen (223) med 3, multipliciera med 2 (dvs., multipliciera
(223) med 2/3) och subtrahera fr˚
an ekvationen (224). Man f˚
ar
3x1 + 6x2 + 9x3 = 3
p · x2 − 4x3 = 2
−3x1 − 4x2 − 11x3 = −5
(226)
(227)
(228)
2.2 Dividera ekvationen (226) med 3, multipliciera med (-3) [dvs., multipliciera (226) med (-1)] och subtrahera fr˚
an (228). Man f˚
ar
3x1 + 6x2 + 9x3 = 3
p · x2 − 4x3 = 2
2x2 − 2x3 = −2
119
(229)
(230)
(231)
Man kan skriva resultatet i matrisformen:

gammalrad 1
 gammalrad 2 - 2( gammalrad 1 )/3
gammalrad 3 + 3( gammalrad 1 )/3
Byta rader 2 och 3

gammalrad 1
 gammalrad 3
gammalrad 2

3 6 9
3
0 p −4 2  .
0 2 −2 −2

3 6 9
3
0 2 −2 −2  .
0 p −4 2
Maximalelementet a22 = 2 (‘pivot´) a¨r i den andra kolonnen och andra raden.
Motsvarande systemet
3x1 + 6x2 + 9x3 = 3
2x2 − 2x3 = −2
p · x2 − 4x3 = 2
(232)
(233)
(234)
3 Reducera kol 2 av rad 3 till noll
Dividera ekvationen (233) med 2, multipliciera med p (dvs., multipliciera (233)
med p/2) och subtrahera fr˚
an (234):
3x1 + 6x2 + 9x3 = 3
2x2 − 2x3 = −2
(−4 + p)x3 = 2 + p
eller

gammalrad 1

gammalrad 2
gammalrad 3 - p( gammalrad 2 )/2
(235)
(236)
(237)

3 6
9
3
0 2
−2
−2  ,
0 0 −4 + p 2 + p
4 Best¨amm l¨osningen x1 , x2 , x3 med substitution i omv¨and ordning.
N¨ar p = 0, systemet (235)–(237) med den upp˚
ata triangul¨ara matrisn


3 6 9
R =  0 2 −2  ,
0 0 −4
har formen
3x1 + 6x2 + 9x3 = 3
2x2 − 2x3 = −2
−4x3 = 2
120
(238)
Genom att i den andra ekvationen s¨atta in x3 = 2/(−4) = −0.5 erh˚
alls x2 =
0.5(−2 + 2 · (−0.5)) = −1.5 och i den f¨orsta ekvationen x3 = −0.5 och x2 = −1.5
erh˚
alls x1 = (3 − 6 · (−1.5) − 9 · (−0.5))/3 = 5.5:
x1 = (3 − 6 · (−1.5) − 9 · (−0.5))/3 = 5.5
x2 = 0.5(−2 + 2 · (−0.5)) = −1.5
x3 = −0.5
8.4.1
(239)
Pivotering
I f¨oreg˚
aende avsnitt antog vi att alla pivot-element i GE var skilda fr˚
an noll. Detta
¨ar orealistiskt. Antag t ex att vi skall l¨osa systemet
x2 = 1
x1 + x2 = 2
eller
·
0 1 ∗ 1
1 1 ∗ 2
(240)
(241)
¸
.
Den algoritm av GE, som vi beskrev m˚
aste h¨ar modifieras s˚
a att man f¨orst byter
rad 1 och 2 i matrisen:
·
¸
1 1 ∗ 2
.
0 1 ∗ 1
Man b¨or g¨ora radbyte ocks˚
a d˚
a man l¨oser, t ex, systemet
² · x1 + x2 = 1
x1 + x2 = 2
eller
·
² 1 ∗ 1
1 1 ∗ 2
(242)
(243)
¸
.
d¨ar ² ¨ar litet, eftersom noggrannhetsf¨orlust kan upptr¨ada p˚
a grund av avrundningsfel.
L˚
at ² = 10−5 . Anv¨and GE.
1 Begynnelsematris
·
10−5 1 ∗ 1
1
1 ∗ 2
2 Reducera kol 1 av rad 2 till noll
121
¸
.
Multipliciera den f¨orsta ekvationen med 105 och subtrahera fr˚
an den andra
ekvationen. Man f˚
ar
¸
· −5
10
1
∗
1
.
0
1 − 105 ∗ 2 − 105
Om vi nu lagrar talen i flyttalsystemet med basen 10,
1 = 10−5 · 105 = 0.00001 · 105
[taldelen (mantissan) 0.00001, exponentdelen 5],
2 = 2·10−5 ·105 = 2·0.00001·105 = 0.00002·105
105 = 1.00000 · 105
[taldelen (mantissan) 0.00002, exponentdelen 5],
[taldelen (mantissan) 1.00000, exponentdelen 5]
(b˚
ada tal har samma exponentdelen 5), och r¨aknar i flyttalsystemet med 3 siffror
i br˚
akdelen, blir
1 − 105 = 0.00001 · 105 − 1 · 105 = (0.00001 − 1)105 =
−0.99999 · 105 = −9.99999 · 104 ≈ −10.000 · 104 = −1.000 · 105
2 − 105 = 0.00002 · 105 − 1 · 105 = (0.00002 − 1)105 =
−0.99998 · 105 = −9.99998 · 104 ≈ −10.000 · 104 = −1.000 · 105
(≈ skall utl¨asas “avrundas till 3 siffror i br˚
akdelen´´). I flyttalsystemet f˚
ar vi allts˚
a
matrisen
· −5
¸
10
1
∗
1
.
0
−105 ∗ −105
eller systemet
10−5 x1 + x2 = 1
−105 x2 = −105
(244)
(245)
3 Best¨amm l¨osningen x1 , x2 med substitution i omv¨and ordning (bak˚
at substitution).
Genom att i (244) s¨atta in x2 = 10−5 · 105 = 1 erh˚
alls x1 = (1 − 1) · 105 = 0:
x1 = 0
x2 = 1.
Om vi ist¨allet g¨or radbyte (byta raderna 2 och 1 i begynnelsematrisen f¨or att
f˚
a augmenterad matrisen med maximalelementet a11
·
¸
1
1 ∗ 2
,
10−5 1 ∗ 1
122
och eliminera (multipliciera den f¨orsta ekvationen med 10−5 och subtrahera fr˚
an
den andra ekvationen) d˚
a f˚
ar vi
¸
·
1
1
∗
2
,
0 1 − 105 ∗ 1 − 2 · 10−5
som avrundas till
·
1 1 ∗ 2
0 1 ∗ 1
¸
,
och l¨osningen blir h¨ar
x1 = 1
x2 = 1.
Kolla resultatet genom att r¨akna l¨osningen (f¨or godtyckligt ² 6= 1) med Cramers
regel:
¸
·
² 1
= ² − 1,
det
1 1
¸
¸
·
·
1
1
1 − 2²
1
1 1
² 1
x1 =
=
=
det
, x2 =
det
.
2 1
1 2
²−1
1−²
²−1
1−²
Om ² ¨ar litet, man kan skriva
1
≈ 1 + ²,
1−²
1 − 2²
≈ (1 − 2²)(1 + ²) ≈ 1 − ²
1−²
och l¨osningen blir
x1 ≈ 1
x2 ≈ 1.
8.5
Problem
Problem 8.1
Konstruera genom GE l¨osningen till linj¨ara ekvationssystemet
3x1 + 5x2 = 5.9
x1 − 4x2 = 20.1
Problem 8.2
123
Konstruera genom GE l¨osningen till linj¨ara ekvationssystemet
6x2 + 13x3 = 61
6x1 − 8x3 = −38
13x1 − 8x2 = 79
Problem 8.3
Konstruera kvadratiska matriser
A = aI + bI+1 + cI−1
(246)
B = diag(x) + diag(y, −1) + diag(z, −1)
(247)
och
av storlek n med
a) a = 2, c = b = 1, n = 3;
b) a = 0, c = 10, b = −2, n = 4;
c) a = 0.5, c = b = −1, n = 5;
d) x = [1, 1], y = z = 0;
e) x = [1, 2, 3], y = [0, 1],
f) x = 2[1/2, 1/3, 1/4, 1/5],
z = [1, 0];
y = [0, 2, 0],
(248)
(249)
z = [4, 3, 2].
Problem 8.4
Skriv alla submatriser och uttryck blockmatriser i (210)–(212) som best˚
aende av
submatriser (se (213)–(215)).
Problem 8.5
Visa att
A · B 6= B · A och A · O = O
genom att betrakta ett par exempel av tv˚
a kvadratiska matriser och tv˚
a rektangul¨ara matriser A och B av typ 2 × 2 och 3 × 2.
Problem 8.6
124
Best¨am matrisprodukten

 

3 2 1
3 2 0
 1 2 3  ·  0 2 −1 
2 1 3
0 3 1
L¨
osning (Problem 8.1).
E1 : 3x1 + 5x2 = 5.9
E2 : x1 − 4x2 = 20.1
·
¸
3 5
A=
,
1 −4
·
¸
5.9
b=
.
20.1
Skriv systemet som
·
3 5
1 −4
¸·
Begynnelsematris
x1
x2
·
˜ = [A b] =
A
¸
·
=
5.9
20.1
3 5 5.9
1 −4 20.1
¸
.
¸
.
Anv¨and GE.
1 Pivotering
·
˜ = [A b] =
A
rad 1 5 3 5.9
rad 2 −4 1 20.1
¸
,
Systemet blir
5x2 + 3x1 = 5.9
−4x2 + x1 = 20.1
2 Reducera kol 1 av rad 2 till noll
·
rad 1
rad 2 + 4( rad 1 )/5
5 3
5.9
0 3.4 24.82
3 H¨ogertriangul¨ar matris. Bak˚
at substitution
125
¸
.
5x2 + 3x1 = 5.9
3.4x1 = 24.82
x2 = (5.9 − 3 · (7.3))/5 = −3.2
x1 = 7.3
L¨
osning (Problem 8.2).
1 Begynnelsematris


0 6 13 61
 6 0 −8 −38  .
13 −8 0
79
1 Pivotering Byta rader 3 och

rad 1
 rad 2
rad 3
1

13 −8 0
79
6
0 −8 −38  .
0
6 13 61
2 Reducera kol 1 av rader 2 och 3 till noll (endast rad 2 eftersom kol 1 av rad
3 a¨r noll)


13
−8
0
79
 0 48/13 = 3.692308 −8 −74.461538  ,
0
6
13
61
Pivotering Byta rader 3 och 2


13
−8
0
79
 0
.
6
13
61
0 3.692308 −8 −74.461538
3 Reducera kol 2 av rad 3 till

13
 0
0
noll

−8 0
79
6
13
61  ,
0 −16 −112
4 H¨ogertriangul¨ar matris. Bak˚
at substitution
126
13x1 − 8x2 = 79
6x2 + 13x3 = 61
−16x3 = −112
x1 = (79 − (−8) · (−5))/13 = 3
x2 = (61 − 13 · 7)/6 = −5
x3 = 7
8.6
Iterativa metoder
Betrakta ett linj¨art ekvationssystem med n obekanta
a11 x1 + a12 x2 + · · · + a1n xn
= b1
a21 x1 + a22 x2 + · · · + a2n xn
= b2
...
.....
an1 x1 + an2 x2 + · · · + ann xn
= bn ,
d¨ar

a11 a12
 a21 a22
A = [ajk ] = 
 .
.
an1 an2
...
...
...
...
(250)

a1n
a2n 
,
. 
ann
¨ar en kvadratisk matris av typ n × n, och kolonnvektorerna




x1
b1
x =  ... , b =  ... ;
xn
bn
Skriv den h¨ar kvadratiska ekvationssystemet p˚
a matrisform
Ax = b,
x, b ∈ Rn .
(251)
Med en iterativ metod, bildar man en f¨oljd av vektorer x(0) , x(1) , . . . , x(n) , . . . ,
som konvergerar mot l¨osningen till ekvationssystemet (251).
F¨or att kunna definiera konvergens och g¨ora feluppskattningar beh¨over vi inf¨ora
m˚
att p˚
a storleken av en vektor och en matris.
127
8.6.1
Vektor- och matrisnormer
L˚
at x, y ∈ Rn och α ∈ R ¨ar ett tal. En vektornorm || · || ¨ar en avbildning Rn → R,
med egenskaperna
||x|| ≥ 0 f¨or alla vektorer x,
||x|| = 0 om och endast om x = 0,
||αx|| = |α|||x||,
||x + y|| ≤ ||x|| + ||y|| (triangelolikheten).
De vanligaste vektornormer ¨ar
v
uX
u n 2
||x||2 = t
xj
(Euklidisk norm),
j=1
samt
||x||1 =
n
X
|xj | och ||x||∞ = max |xj |.
j
j=1
Exempel 8.10
L˚
at
·
x=
x1
x2
¸
·
=
1
0.1
¸
·
, y=
y1
y2
¸
·
=
p
0.05
¸
;
vara tv˚
a kolonnvektorer. D˚
a blir
v
u 2
uX
√
√
||x||2 = t
x2j = 1 + 0.12 = 1.01,
j=1
||x||1 =
2
X
|xj | = 1 + 0.1 = 1.1,
j=1
||x||∞ = max |xj | = 1.
j=1,2
||y||∞ = max |yj | = max{|p|, 0.05}.
j=1,2
||x + y||1 = |1 + p| + 0.15 ≤ 1 + |p| + 0.15 = 1.1 + (|p| + 0.05) = ||x||1 + ||y||1 .
||x+y||∞ = max{|1+p|, 0.15} ≤ max{1+|p|, 0.15} ≤ max{|p|, 0.05}+max{1, 0.1} = ||x||∞ +||y||∞
L˚
at || · || vara en vektornorm. Motsvarande matrisnorm definieras
||A|| = sup
||Ax||
, x 6= 0
||x||
128
Man kan visa, att en s˚
adan matrisnorm satisfierar ||A|| ≥ 0 f¨or alla matriser A,
||A|| = 0 om och endast om A = 0,
||αA|| = |α|||A||, α ∈ R,
||A + B|| ≤ ||A|| + ||B||.
P˚
aminn att f¨or en kvadratisk matris A (av typ n × n) definieras potenser Ap
(p ¨ar ett positivt heltal) som successiv matrismultiplikation:
Ap = A · A · · · · · A p g˚
anger (p = 1, 2, . . . );
d¨ar

1
 0
I=
 .
0
0
1
.
0
...
...
...
...
A0 = I,
(252)

0
0 
.
. 
1
¨ar enhetsmatrisen (av typ n × n).
L˚
at || · || beteckna en vektornorm och motsvarande matrisnorm. Ur definitionen,
ser vi att
||Ax||
≤ ||A||.
||x||
D˚
a g¨aller
||Ax|| ≤ ||A|| · ||x||,
||AB|| ≤ ||A|| · ||B||.
(253)
Den andra olikheten f˚
as genom att anv¨anda den f¨orsta tv˚
a g˚
anger p˚
a ||ABx||.
p
F¨or potenser A av en kvadratisk matris A f˚
ar man
||Ap || ≤ ||A|| · ||A|| · · · · · ||A|| {p g˚
anger} ≤ ||A||p
(p = 1, 2, . . . ),
(254)
och
||Ap x|| ≤ ||Ap ||||x|| ≤ ||A||p ||x|| (p = 1, 2, . . . ).
(255)
Man kan visa ocks˚
a, att de vanligaste motsvarande matrisnormer f¨or en kvadratisk
matris A = [ajk ] av typ n × n ¨ar
v
uX
n
u n X
t
||A|| =
a2jk (Frobenius norm)
j=1 k=1
||A|| = max
k
n
X
|ajk | (Kolonnsumnorm)
j=1
129
||A||∞ = max
j
n
X
|ajk | (Radsumnorm).
k=1
Exempel 8.11
L˚
at
·
A = [ajk ] =
0.5 −0.25
−0.25 0.5
¸
vara en (symmetrisk) kvadratisk matris av typ 2 × 2. D˚
a blir
||A||∞ = max
2
X
j=1,2
|ajk | =
k=1
max{|a11 | + |a12 |, |a21 | + |a22 |} = max{0.5 + 0.25, 0.25 + 0.5} = 0.75.
8.6.2
Konvergens av iterativa metoder
En iterativ metod kallas konvergent f¨or en begynnelsevektor x(0) , om motsvarande
f¨oljd av vektorer x(0) , x(1) , . . . , x(n) , . . . , konvergerar mot l¨osningen till ekvationssystemet (251) i en vektornorm. Det betyder att f¨oljden {x(n) } har gr¨ansv¨ardet:
existerar en vektor u s˚
adan att ||x(n) − u|| g˚
ar mot 0 d˚
a n g˚
ar mot o¨andligheten.
8.6.3
Geometriska serien
P˚
aminn att varje polynom av formen
xn − 1
har uppenbart nollst¨allet 1 och ¨ar d¨armed enligt faktorsatsen j¨amnt delbart med
x − 1:
xn − 1 = (x − 1)(xn−1 + xn−2 + · · · + x + 1).
(256)
D˚
a kan man ber¨akna en geometrisk summa med kvoten x
a + ax + ax2 + · · · + axn−1 =
n−1
X
k=0
och visa att geometriska serien
∞
X
axk
k=0
130
axk = a
1 − xn
1−x
(257)
¨ar konvergent om |x| < 1 (divergent om |x| ≥ 1) och
∞
X
axk = a
k=0
1
= a(1 − x)−1 ,
1−x
|x| < 1.
T ex, om x = 3/4 och a = 1, den geometriska serien
∞ µ ¶k
X
3
1
=
= 4.
4
1 − (3/4)
k=0
(258)
(259)
Man kan generalisera (258) och f˚
a geometriska matrisserien genom att anv¨anda
matrispotenser (252), matrisaddition, olikheten (254) och definition av konvergens
i matrisnormer. D˚
a f˚
ar man
∞
X
m
X
m
A = lim
k=1
m→∞
Am = (I − A)−1 ,
||A|| < 1,
(260)
k=1
d¨ar A ¨ar en kvadratisk matris av typ n × n.
8.6.4
Jacobi iteration
Ekvationsystemetet
Ax = b
(261)
kan skrivas som
x = b + (I − A)x,
eller
x = b + Qx,
(262)
d¨ar Q = I − A ¨ar iterationsmatrisen. (262) kan skrivas ocks˚
a som
(I − Q)x = b.
(263)
D˚
a kan man f˚
a l¨osningen till ekvationssystemet (261) p˚
a formen
x = (I − Q)−1 b,
(264)
om matrisen I−Q ¨ar inverterbar; det g¨aller om ||Q|| < 1, och d˚
a har I−Q inversen
∞
X
Qm :
k=1
−1
(I − Q)
=
∞
X
Qm ,
k=1
131
||Q|| < 1.
(265)
Definiera Jacobi iteration (JI) som
x(m+1) = b + (I − A)x(m) ,
m = 0, 1, 2, . . . .
(266)
Man avbrytar iterationer om granna iterationsvektorer ¨ar tillr¨ackligt n¨ara,
||x(m+1) − x(m) || ≤ ²,
(267)
dvs vektornormen av residualvektorn
rm = b − Ax(m) = x(m+1) − x(m)
(268)
||rm || ≤ ².
(269)
¨ar tillr¨ackligt liten,
Talet ² definierar till˚
aten iterationsfel (iterationsnoggrannhet).
JI konvergerar f¨or varje begynnelsevektor (startv¨arde) x(0) om matrisnormen
av iterationsmatrisen Q = I − A ¨ar mindre ¨an 1:
||I − A|| < 1.
Exempel 8.12
Konstruera genom iteration (JI) l¨osningen till linj¨ara ekvationsystemet
0.5x1 − 0.25x2 = 1
−0.25x1 + 0.5x2 = 1.
(270)
L¨
osning. Systemet har en symmetrisk matris av typ 2 × 2
·
¸
· ¸
0.5 −0.25
1
A=
. H¨ogerledet b =
.
−0.25 0.5
1
D˚
a iterationsmatrisen
·
¸ ·
¸ ·
¸
1 0
0.5 −0.25
0.5 0.25
I−A=
−
=
= aT,
0 1
−0.25 0.5
0.25 0.5
d¨ar
·
T=
2 1
1 2
¸
,
1
a= .
4
Enligt definition (266), JI ¨ar av formen
x(m+1) = b + aTx(m) ,
132
m = 0, 1, 2, . . . ..
(271)
Man kan visa, att JI (271) konvergerar f¨or varje begynnelsevektor x(0) eftersom
matrisnormen q = ||Q||∞ av iterationsmatrisen Q = I − A = aT ¨ar mindre ¨an 1:
q = ||Q||∞ = ||aT||∞ = a||T||∞ = a · max{2 + 1, 1 + 2} =
3
< 1.
4
Vi ger inte alla detaljer i beviset. Skriv JI (271) f¨or m = 1, 2 . . . och anv¨and
substitutionen:
x(1) = b + aTx(0) ,
(272)
x(2) = b + aTx(1) = b + aT(b + aTx(0) ) = b + aTb + a2 T2 x(0) ,
(273)
x(3) = b + aTx(2) = b + aT(b + aTb + a2 T2 x(0) ) =
(274)
b + aTb + a2 T2 b + a3 T3 x(0) ,
.......
x(m+1) = b + aTb + a2 T2 b + · · · + am Tm b + am+1 Tm+1 x(0) .
(275)
D˚
a f˚
ar man att
x(m+1) = Gm b + am+1 Tm+1 x(0) ,
(276)
d¨ar
2
2
m
m
Gm b = b + aTb + a T b + · · · + a T b =
m
X
j=0
¨ar en delsumma av geometriska matrisserien
∞
X
j
j
a T b=
m
X
Qj b
(277)
j=0
Qj b. Den h¨ar serien ¨ar konvergent
j=0
eftersom q = ||Q||∞ < 1 och, enligt (265), ger l¨osningen till ekvationssystemet (270)
∞
X
Qj b = (I − Q)−1 b.
(278)
j=0
F¨or andra termen i (276)
||a
m+1
T
m+1 (0)
x || = ||Q
µ ¶m+1
3
||x(0) || → 0, m → ∞.
x || ≤
4
m+1 (0)
133
(279)
D˚
a f˚
ar vi
lim x(m) = lim Gm b + lim Qm+1 x(0) = (I − Q)−1 b.
m→∞
m→∞
m→∞
(280)
Det betyder att f¨oljden {x(m) } konvergerar mot l¨osningen till ekvationssystemet
(270) d˚
a m g˚
ar mot o¨andligheten.
Vi kan anv¨anda (276) och (277) f¨or att skriva differensen av granna iterationsvektorer
x(m+1) − x(m) = Qm b + am (aTm+1 x(0) − Tm x(0) ).
(281)
D˚
a ger (279)
dm = ||x(m+1) − x(m) || ≤
m
m+1
||Q|| ||b|| + ||Q||
µ ¶m
3
||x || + ||Q|| ||x || < C0 ||Q|| ≤ C0 q = C0
→ 0, m → ∞,
(282)
4
(0)
m
(0)
m
m
d¨ar
C0 = 3 max{||x(0) ||, ||b||} = 3 max{||x(0) ||, 1}.
(283)
Genom (282), kan man hitta iterationsnumret m s˚
adant att
dm = ||x(m+1) − x(m) || ≤ ²
(284)
till varje givet tal 1 > ² > 0:
C0 q m ≤ ² :
m>
log C0 /²
log C0 /²
=
.
log 1/q
log 4/3
Ber¨akna fem f¨orsta iterationsvektorer (270). Vi har
¸· ¸
·
· ¸
1 3
1 2 1
1
=
= qb,
Qb =
1
4 1 2
4 3
(285)
3
q= .
4
Skriv potenser Qp = ap Tp (p = 1 − 4) genom att utf¨ora successiv matrismultiplikation:
·
¸ ·
¸ ·
¸ ·
¸
2 1
2 1
4+1 2+2
5 4
2
T =T·T=
·
=
=
,
1 2
1 2
2+2 1+4
4 5
1
Q =a T =
16
2
2
2
134
·
5 4
4 5
¸
;
¸· ¸
· ¸
· ¸
1 9
9 1
5 4
1
=
=
= q 2 b;
4 5
1
16 9
16 1
¸ ·
¸ ·
¸ ·
¸
1
5 4
10 + 4 8 + 5
14 13
·
=
=
,
2
4 5
5 + 8 4 + 10
13 14
·
¸
1 14 13
3
3 2
Q =a T =
;
64 13 14
·
¸· ¸
·
¸
1 27
1 14 13
1
3
=
= q 3 b;
Q b=
1
64 13 14
64 27
·
¸ ·
¸ ·
¸ ·
¸
2 1
14 13
28 + 13 26 + 14
41 40
4
3
T =T·T =
·
=
=
,
1 2
13 14
14 + 26 13 + 28
40 41
·
¸
1
41 40
4
4 4
Q =a T =
;
256 40 41
¸· ¸
¸
·
·
1
1
41 40
1
81
4
=
= q 4 b.
Q b=
40
41
1
81
256
256
.....
·
1
Q b=
16
·
2
T3 = T · T 2 =
1
2
Qm b = q m b (m = 1, 2, . . . ).
D˚
a , genom (281), blir differensen av granna iterationsvektorer
x(m+1) − x(m) = q m b + am (aTm+1 x(0) − Tm x(0) ).
(286)
Valj begynnelsevektorn (startv¨ardet)
·
(0)
x
0
1
=
¸
och skriv fem iterationsvektorna x(m) , m = 1, . . . 5, genom att utveckla Gm i
formen av motsvarande delsumman (277) av en geometrisk matrisserie [se (259)]:
· ¸
·
¸· ¸
1 2 1
1
0
(1)
(0)
+
x = G1 + aTx =
=
1
1
4 1 2
· ¸
· ¸ ·
¸ ·
¸
1 1
1
5/4
1.250
+
=
=
.
1
6/4
1.500
4 2
x
(2)
2
2 (0)
= G2 + a T x
2
2 (0)
= b + Qb + a T x
=
1
X
j=0
135
Qj b + a2 T2 x(0) =
1
X
1 − q2
+ a2 T2 x(0) = b(1 + q) + a2 T2 x(0) =
1
−
q
j=0
·
¸· ¸
· ¸
· ¸ ·
¸ ·
¸
7 1
1 4
1 5 4
0
32/16
2.000
=
+
=
=
.
b[1 + 3/4] +
1
33/16
2.062
16 4 5
4 1
16 5
b
q j + a2 T5 x(0) = b
x(3) = G3 + a3 T3 x(0) = b(1 + q + q 2 ) + a3 T3 x(0) =
·
¸· ¸
· ¸
·
¸ ·
¸ ·
¸
1 13
1 14 13
0
1
161/64
2.515
= (37/16)
+
=
=
.
b[1+3/4+9/16]+
1
1
162/64
2.531
64 13 14
64 14
x(4) = G4 + a4 T4 x(0) = b(1 + q + q 2 + q 3 ) + a4 T4 x(0) =
·
¸· ¸
· ¸
·
¸
1
1
41 40
0
1
40
b[1 + 3/4 + 9/16 + 27/64] +
= (175/64)
+
=
1
1
256 40 41
256 41
·
¸ ·
¸
740/256
2.890
=
.
741/256
2.894
x(5) = G5 + a5 T5 x(0) =
2
3
4
5
5 (0)
b + Qb + Q b + Q b + Q b + a T x
=
4
X
Qj b + a5 T5 x(0) =
j=0
b
4
X
q j + a5 T5 x(0) = b
j=0
1 − q5
+ a5 T5 x(0) = 4b[1 − (3/4)5 ] + a5 T5 x(0) .
1−q
Ber¨akna
·
5
4
T =T·T =
2 1
1 2
D˚
a
5
5 (0)
aTx
¸ ·
¸ ·
¸ ·
¸
41 40
82 + 40 80 + 41
122 121
·
=
=
.
40 41
41 + 80 40 + 82
121 122
1
=
1024
och
x
(5)
·
122 121
121 122
1
= G5 +
1024
·
d¨ar
¸·
121
122
·
4b =
4
4
0
1
¸
1
=
1024
·
121
122
¸
,
¸
= 4b + R5 ,
¸
a¨r l¨osningen till ekvationssystemet (270) och
· ¸
·
¸
·
¸ ·
¸
243 4
1
1
121
851
−0.831
5
5 5 (0)
R5 = −q ·4b+a T x = −
+
=−
=
−0.832
1024 4
1024 122
1024 852
136
a
¨ar differensen av l¨osningen och femte iterationsvektorn. D˚
· ¸
·
¸ ·
¸
1
4
851
3.169
(5)
x = 4b + R5 =
−
=
.
4
3.168
1024 852
Vi har
x
(1)
·
1.250
1.500
=
¸
·
x
(2)
=
2.000
2.062
¸
·
x
(3)
=
¸
2.515
2.531
·
x
(4)
=
2.890
2.894
¸
·
x
(5)
3.169
3.168
=
¸
...,
s˚
a att differensnormen
dm = ||x(m+1) − x(m) ||,
m = 1, 2, 3, 4,
(287)
minskar:
d1 = ||x(2) − x(1) ||∞ = 0.750,
d2 = ||x(3) − x(2) ||∞ = 0.515,
d3 = ||x(4) − x(3) ||∞ = 0.375,
d4 = ||x(5) − x(4) ||∞ = 0.279.
(288)
Residualvektorna
r4 = b − Ax
(4)
·
4
4
4 (0)
= b − 4(1 − q )Ab + a AT x
4
=q b+a
·
r5 = b − Ax
(5)
5
6
=q b+a
5
120
123
39
42
¸
·
4
6
=q b+a
¸
156
(289)
,
164
¸
,
(290)
och man kan visa att
||r5 || < ||r4 ||.
(283) skrivas som
C0 = 3 max{||x(0) ||, ||b||} = 3 max{1, 1} = 3.
8.6.5
(291)
Gauss–Seidel iteration
Beskriv Gauss–Seidel (GS) iterationsalgoritm.
Antag att alla diagonalelementen av en matris A = [ajk ] ¨ar lika med 1: ajj = 1.
D˚
a kan man skriva
 
 
 

1 0 ... 0
0
0 ... 0
0 a12 . . .
1 a12 . . . a1n
 a21 1 . . . a2n   0 1 . . . 0   a21 0 . . . 0   0 0 . . .
=
+
+

 .
. ...
.   . . ... .   .
. ... .   . . ...
0 0 ...
an1 an2 . . . 1
0 0 ... 1
an1 an2 . . . 0
137

a1n
a2n 
,
. 
0
eller
A = I + L + U,
d¨ar L och U a¨r h¨oger- och v¨anstertriangul¨ara matriser med nollelementen p˚
a
huvuddiagonalerna. Ins¨attning i systemet Ax = b ger
Ax = (I + L + U)x = b,
eller
x = b − Lx − Ux.
(292)
(292) ledar till definitionen av GS iterationsmetod:
x(m+1) = b − Lx(m+1) − Ux(m)
(ajj = 1)
(293)
GS skrivas p˚
a matrisformen som
(I + L)x(m+1) = b − Ux(m) .
(294)
Om vi multipliciera (294) med (I + L)−1 fr˚
an v¨anster, s˚
a f˚
ar vi
x(m+1) = Cx(m) + (I + L)−1 b.
(295)
d¨ar iterationsmatrisen
C = −(I + L)−1 U.
GS konvergerar f¨or varje begynnelsevektor (startv¨arde) x(0) om
||C|| < 1.
Exempel 8.13
Betrakta ett linj¨art ekvationssystem med n = 3 obekanta
2x + y + z = 4
x + 2y + z = 4
x + y + 2z = 4
˜ = b, d¨ar alla diagonalelementen av en matris A
˜ a¨r
Skriv systemet i formen Ax
lika med 1 (ajj = 1, j = 1, 2, 3):
x + 1/2y + 1/2z = 2
1/2x + y + 1/2z = 2
1/2x + 1/2y + z = 2,
138
eller
x = 2 − 1/2y − 1/2z
y = 2 − 1/2x − 1/2z
z = 2 − 1/2x − 1/2y
Matrisen
˜ = I + L + U,
A
eller


 
 
 
0
0 0
0 1/2 1/2
1 1/2 1/2
1 0 0
 1/2 1 1/2  =  0 1 0  +  1/2 0 0  +  0 0 1/2  .
0 0
0
1/2 1/2 0
0 0 1
1/2 1/2 1
Iterationsmatrisen


 

1
0
0
0 1/2 1/2
0 −1/2 −1/2
1
0   0 0 1/2  =  0 1/4 −1/4  .
C = −(I+L)−1 U =  −1/2
−1/4 −1/2 1
0 0
0
0 1/8
3/8
Den Frobenius normen
v
u 3 3
uX X
||C|| = t
c2jk =
j=1 k=1
µ
1 1
1
1
1
9
+ +
+
+
+
4 4 16 16 64 64
¶1/2
µ
=
50
64
¶1/2
= 0.084 < 1
Exempel 8.14 Betrakta ett linj¨art ekvationssystem med n = 4 obekanta
x1 − 0.25x2 − 0.25x3
−0.25x1 + x2 − 0.25x4
−0.25x1 + x3 − 0.25x4
−0.25x2 − 0.25x3 + x4
=
=
=
=
50
50
25
25
(296)
Skriv systemet i formen
x1
x2
x3
x4
=
=
=
=
0.25x2 + 0.25x3 + 50
0.25x1 + 0.25x4 + 50
0.25x1 + 0.25x4 + 25
0.25x2 + 0.25x3 + 25
139
(297)
V¨alj startv¨ardet



x=

(0)
x1
(0)
x2
(0)
x3
(0)
x4




100
 

  100 
 = 100 
=

100 

100

1
1 

1 
1
och anv¨and (297) att r¨akna den f¨orsta iterationsvektorn
(1)
= 0.25x2 + 0.25x3 + 50 = 100
(1)
= 0.25x1 + 0.25x4 + 50 = 100
(1)
= 0.25x1 + 0.25x4 + 25 = 75
x1
x2
x3
(1)
x4
=
(0)
(0)
(1)
(0)
(1)
(0)
(1)
0.25x2
(1)
0.25x3
+
(298)
+ 25 = 68.75.
Den andra iterationsvektorn
(2)
= 0.25x2 + 0.25x3 + 50 = 93.75
(2)
= 0.25x1 + 0.25x4 + 50 = 90.62
(2)
= 0.25x1 + 0.25x4 + 25 = 65.62
(2)
= 0.25x2 + 0.25x3 + 25 = 64.06.
x1
x2
x3
x4
(1)
(1)
(2)
(1)
(2)
(1)
(2)
(2)
Den exakta l¨osningen till linj¨ara ekvationsystemet (296) a¨r

 

x1
87.5
 x2   87.5 
 

x=
 x3  =  62.5 
x4
62.5
Problem 8.7
Ber¨akna matrisnormer av symmetriska trediagonala matriserna



a b 0
5 1 0 0 0
 b a b
 1 5 1 0 0 



 , B = [bj k ] =  0 b a
0
1
5
1
0
A = [aj k ] = 



 0 0 b
 0 0 1 5 1 
0 0 0
0 0 0 1 5
Problem 8.8
140
0
0
b
a
b
0
0
0
b
a






Konstruera genom JI l¨osningen till linj¨ara ekvationsystemet
x1 + x2 /3 = 5/3
x1 /3 + x2 = 7/3.
(299)
Visa att iterationsf¨oljden {x(m) } konvergerar mot l¨osningen till ekvationssystemet
d˚
a m g˚
ar mot o¨andligheten. Skriv fem f¨orsta iterationsvektorer. Ber¨akna residualvektorer och differenser d(m) = x(m+1) − x(m) av granna iterationsvektorer. Hitta
iterationsnumret m s˚
adant att dm = ||d(m) || ≤ ² till varje givet tal 1 > ² > 0.
Problem 8.9
Anv¨and GS f¨or att f˚
a l¨osningen till ekvationssystemet
5x1 + x2 + 2x3 = 19
x1 + 4x2 − 2x3 = −2
2x1 + 3x2 + 8x3 = 39
9
9.1
Tridiagonala matriser och randv¨
ardesproblem
Tridiagonala linj¨
ara ekvationssystem
Betrakta ett symmetriskt tridiagonalt linj¨art ekvationssystem med N +1 obekanta
yj , j = 1, 2 . . . , N + 1,

c 0 y 0 = f0

ayi−1 − byi + ayi+1 = h2 fi , 1 ≤ i ≤ N − 1,
(300)

c N y N = fN ,
H¨ar c0 6= 0, cN 6= 0, och a, b, h och fj , j = 0, 1, 2 . . . , N − 1, N , ¨ar bekanta. Man
kan skriva (300) som ett linj¨art ekvationssystem (se (135)–(136))
AY = F,
med symmetriska tridiagonala

c0 0
 a −b

 0 a


..
A =  ...
.

 0 0

 0 0
0 0
matrisen av typ (N + 1) × (N + 1)

0 0 ··· 0 0
0 0
a 0 ··· 0 0
0 0 

−b a · · · 0 0
0 0 

.. .. . . .. ..
..
.. 
. . .
. .
.
. 

0 0 · · · a −b a 0 

0 0 · · · 0 a −b a 
0 0 ··· 0 0
0 cN
141
(301)
(302)
och kolonnvektorerna
Y = {y0 , y1 , . . . , yN }T ,
F = {f0 , h2 f1 , . . . , h2 fN −1 , fN }T .
Eftersom f0 och fN ¨ar bekanta, reduceras (301) till ekvationssystemet
BY = G,
med symmetriska tridiagonala

−b
 a


B =  ...

 0
0
matrisen B av typ (N − 1) × (N − 1)

a 0 ··· 0
0
0
−b a · · · 0
0
0 

.. .. .. . .
..
.. 
. .
. . .
. 

0 0 · · · a −b a 
0 0 ··· 0
a −b
(303)
(304)
och (N − 1)-dimensionella kolonnvektorerna
Y = {y1 , y2 , . . . , yN −1 }T ,
G = {h2 f1 −af0 /c0 , f2 , . . . , fN −2 , h2 fN −1 −afN /cN }T .
I fallet N = 4 f˚
ar vi ekvationssystem med tre obekanta y1 , y2 , y3
−by1 + ay2 = h2 f1 − af0 /c0 ,
ay1 − by2 + ay3 = h2 f2 ,
ay2 − by3 = h2 f3 − af4 /c4 ,
P˚
a matrisformen
Ay = b,
d¨ar tridiagonala systemsmatrisen


−b a
0
A =  a −b a  ,
0
a −b
och h¨ogerledet

h2 f1 − af0 /c0
.
h2 f2
b=
2
h f3 − af4 /c4

142
(305)
9.2
Randv¨
ardesproblem f¨
or station¨
ara
en-dimensionella v¨
armeledningsekvationen
Antag, att vi har en tunn stav av l¨angden a med variabel v¨armeledningsf¨orm˚
aga.
Staven ¨ar isolerad i l¨angdriktingen och dess ¨andar h˚
alls vid konstant temperatur.
L˚
at y(x) beteckna stavens temperatur i punkten x. y(x) saisfierar station¨ara endimensionella v¨armeledningsekvationen
µ
¶
dy
d
k(x)
= 0, 0 < x < a,
(306)
dx
dx
d¨ar k(x) beskriver v¨armeledningsf¨orm˚
agan som funktion av x. Villkoret att temperaturen ¨ar given i stavens ¨andar blir
y(0) = f0 ,
y(a) = fN .
(307)
Om staven inneh˚
aller en v¨armek¨alla (ett elektriskt motst˚
and eller en radioaktiv
isotop), f˚
ar man en inhomogen ekvation
µ
¶
d
dy
k(x)
= f (x), 0 < x < a,
(308)
dx
dx
d¨ar f (x) beskriver v¨armeproduktionen som funktion av x.
N¨ar f (x) = f och k(x) = k 6= 0 ¨ar konstanta, kan man skriva om randv¨ardesproblemet
f¨or den station¨ara en-dimensionella v¨armeledningsekvationen
µ
¶
d
dy
k(x)
= f (x), 0 < x < a,
(309)
dx
dx
y(0) = f0 , y(a) = fN .
p˚
a formen
d2 y
f
=
,
dx2
k
y(0) = f0 ,
0 < x < a,
(310)
y(a) = fN .
och l¨osa det analytiskt. T ex, om f = 0, blir dess l¨osning en r¨at linje som g˚
ar
genom punkterna (0, f0 ) och (a, fN ), eller en parabol om f 6= 0.
Antag nu, att k(x) ¨ar en tv˚
a g˚
anger kontinuerligt deriverbar positiv funktion
och k(x) 6= 0, 0 ≤ x ≤ a (dvs k(x) > 0, 0 ≤ x ≤ a). I det fallet kan man reducera
ekvationen (306) till
z 00 − q(x)z = g(x)
143
(311)
med vissa q(x) och g(x). Anv¨and substitutionen
z(x)
y=p
,
k(x)
(312)
d¨ar z(x) betecknar en ny obekant funktion (observera att k(x) > 0), ers¨atta y(x)
i (306) med (312) och derivera. D˚
a o¨verg˚
ar (306) i (311) med
"
µ
¶2 #
1 k 00 (x) 1 k 0 (x)
q(x) =
,
(313)
−
2 k(x)
2 k(x)
f (x)
g(x) = p
.
k(x)
(314)
Randvillkoren (307) ¨overg˚
ar i
p
k(0),
p
z(a) = gN = fN k(a),
z(0) = g0 = f0
(315)
och man f˚
ar ett nytt randv¨ardesproblem
z 00 − q(x)z = g(x),
z(0) = g0 ,
0 < x < a,
z(a) = gN .
(316)
Om man best¨ammer z(x), d˚
a f˚
as y(x) genom (312).
Exempel 9.1
Betrakta ett randv¨ardesproblem (309) f¨or station¨ara en-dimensionella v¨armeledningsekvationen
med f (x) = 0 och variabel v¨armeledningsf¨orm˚
aga
k(x) = D2 e2bx .
(317)
Randv¨ardesproblemet har analytisk l¨osning eftersom det reduceras till ett problem
med konstanta koefficienter. H¨ar
k 0 (x) = 2bk(x),
k 00 (x) = 4b2 k(x),
(318)
och
"
µ
¶2 #
1 k 00 (x) 1 k 0 (x)
q(x) =
−
= b2 ,
2 k(x)
2 k(x)
144
(319)
s˚
a att (316) skrivas som
z 00 − b2 z = 0, 0 < x < a,
z(0) = Df0 , z(a) = Deba fN .
(320)
(321)
Randv¨ardesproblemet (321) har l¨osningen
z(x) = −
£ b(x−a)
¤
D
f0 e
− fN eb(x+a) + (fN − f0 )e−b(x−a) ,
2 sinh ab
(322)
och motsvarande l¨osningen till randv¨ardesproblemet (309) med f (x) = 0
y(x) =
£
¤
1
fN eab − f0 e−ab + (f0 − fN )eb(a−2x) .
2 sinh ab
(323)
Det ¨ar l¨att att kolla att funktionen (323) uppfyller ekvationen (309) och randvillkoren y(0) = f0 , y(a) = fN .
Modelleringsuppgifter.
Formulera typiska modelleringsuppgifter.
(a) Antag att f0 = 0 och b = 1. Best¨am stavens temperatur Tmitt = Tmitt (fN ) i
mittpunkten x = a/2 som funktion av temperaturen fN av den h¨ogra ¨andpunkten.
Enligt (323), f˚
ar vi
Tmitt (fN ) = y(a/2) =
£
¤
ea − 1
1
fN ea − fN eb(a−2·(a/2)) = fN
,
2 sinh a
2 sinh a
(324)
Vi ser att stavens mittpunktstemperatur ¨ar en v¨axande linj¨ar funktion av fN .
Dessutom
Tmitt < Th¨ogr = fN
och
Tmitt
ea − 1
= const =
Th¨ogr
2 sinh a
(325)
(b) L˚
at stavens l¨angd vara a = 1, f0 = 0 och b = 1. Best¨am punkten x = p = x0.5 ,
d¨ar stavens temperatur ¨ar lika med 0.5fN .
Enligt (323), f˚
ar vi
y(x) =
£
¤
1
1 − e−2x
fN e − f0 e−1 + (f0 − fN )e1−2x = fN e
.
2 sinh 1
2 sinh 1
(326)
Best¨am punkten x = p = x0.5 ur ekvationen
y(p) = 0.5fN
eller e
1
1 − e−2p
= ,
2 sinh 1
2
(327)
som ger
p=
1
2
ln −2
≈ 0.2831.
2 e +1
145
(328)
Exempel 9.2
Betrakta ett randv¨ardesproblem (309) f¨or den station¨ara en-dimensionella v¨armeledningsekvationen
med en funktion f (x) = Aex (d¨ar A 6= 0 ¨ar en given konstant), stavens l¨angd a = 1,
variabel (v¨axande) v¨armeledningsf¨orm˚
aga
k(x) = e2x
och kalla stavens ¨andar, dvs, randv¨ardesproblemet
µ
¶
d
2x dy
e
= Aex , 0 < x < 1,
dx
dx
y(0) = 0, y(1) = 0.
(329)
(330)
Randv¨ardesproblemet har analytisk l¨osning eftersom h¨ar, som i (317)–(319) med
b = 1,
q(x) = 1,
f (x)
g(x) = p
=A
k(x)
(331)
(se (314)), s˚
a att (330) skrivas som
z 00 − z = A, 0 < x < 1,
z(0) = 0, z(1) = 0.
(332)
Randv¨ardesproblemet (332) har l¨osningen
z(x) =
¢
A ¡ x
e + e1−x − A,
e+1
(333)
och motsvarande l¨osningen till randv¨ardesproblemet (330)
¢
z(x)
A ¡
y(x) = p
= z(x)e−x =
1 + e1−2x − Ae−x .
e+1
k(x)
(334)
Det a¨r l¨att att kolla att funktionen (334) uppfyller ekvationen (330) och randvillkoren y(0) = 0 och y(1) = 0 (g¨or det!).
Vi ser att stavens temperatur i varje punkt x ¨ar en linj¨ar funktion av A
¶
µ
1 + e1−2x
−x
−e
.
(335)
y(x) = A
e+1
146
9.3
Numerisk l¨
osning till randv¨
ardesproblem
F¨or att approximera en funktion f (x), x ∈ [a, b], och l¨osa en ordin¨ar (ODE)
eller partiell (PDE) differentialekvation numeriskt genom att ers¨atta den med en
differensapproximation delar man in intervallet [a, b] i mindre intervall genom att
ber¨akna funktionen eller l¨osningen f¨or (N − 1) stycken x-v¨arden xj likformigt
b−a
f¨ordelade med ett avst˚
and h =
:
N
xj = a + jh,
h=
b−a
,
n
j = 0, 1, 2 . . . , N − 1, N,
(336)
x0 = a < x1 < x2 < · · · < xN −1 < xN = b.
Man kan skriva xj , j = 0, 1 . . . , N , som en (N +1)-dimensionell radvektor (n¨atvektor)
x = [xj ] = [x0 , x1 , . . . , xN −1 , xn ].
Man f˚
ar system (304) n¨ar man approximerar ett randv¨ardesproblem f¨or ODE,
t ex
y 00 − q(x)y = f (x), d1 < x < d2 ,
y(d1 ) = f0 , y(d2 ) = fN ,
(337)
med fram˚
at- och bak˚
atdifferenserna (110), (111) och (114)
∆yi = yx,i =
yi+1 − yi
yi − yi−1
, ∇yi = yx¯,i =
h
h
(338)
d¨ar y = {yi } (i = 1, 2, . . . ) ¨ar obekanta [approximationen till y(xi ), ]. D˚
a
y 00 ≈ yx¯x = yx¯x,i =
yi+1 − 2yi + yi−1
,
h2
(339)
och randv¨ardesproblemet (337) approximeras med
yx¯x,i − qi yi = fi , i = 1, 2, . . . , N − 1
(340)
y0 = f0 , yN = fN .
eller


y 0 = f0
yi−1 − (2 + h qi )yi + yi+1 = h2 fi ,

y N = fN ,
2
147
1 ≤ i ≤ N − 1,
(341)
Systemet (341) skrivas som ekvationssystemet (303) med symmetriska tridiagonala matrisen B (304), d¨ar b = bi = 2 + h2 qi , a = 1 och (N − 1)-dimensionella
kolonnvektorerna Y = {y1 , . . . , yN −1 }T och G = {f0 , h2 f1 , . . . , h2 fN −1 , fN }T .
Exempel 9.3
Approximera randv¨ardesproblemet f¨or en linj¨ar differentialekvation av andra ordningen
½ 00
y − 9y = 0, y = y(x), 0 < x < 1,
(342)
y(0) = 0, y(1) = sinh(3).
genom att reducera det till ett linj¨art ekvationssystem med tre obekanta.
H¨ar ¨ar ntalet delpunkter xi som tillh¨or (0,1) lika med 3 och antalet delintervall
3 + 1 = 4. Eftersom ekvationen y 00 − 9y = 0 i (342) betraktas i intervallet (0,1), de
h¨ar delpunkterna xi = ih, i = 1, 2, 3, d¨ar h = (1 − 0)/4 = 0.25.
F¨orst approximera derivatan med
y 00 ≈
yi+1 − 2yi + yi−1
.
h2
(343)
Sedan approximera differentialoperatorn:
y 00 − 9y ≈
yi+1 − 2yi + yi−1
− 9yi .
h2
(344)
Randv¨ardesproblemet (342) approximeras med
yi+1 − 2yi + yi−1
− 9yi = 0,
h2
i = 1, 2, 3;
y0 = 0, y4 = sinh 3.
eller
yi+1 − (2 + 9h2 )yi + yi−1 = 0,
i = 1, 2, 3;
y0 = 0, y4 = sinh 3.
D˚
a f˚
ar vi tre ekvationer
y2 − (2 + 9h2 )y1 + y0 = 0 (i = 1),
y3 − (2 + 9h2 )y2 + y1 = 0 (i = 2),
y4 − (2 + 9h2 )y3 + y2 = 0 (i = 3),
Villkoren y0 = 0, y4 = sinh 3 ger ett linj¨art ekvationssystem med tre obekanta
y1 , y 2 , y3
−by1 + y2 = 0,
y1 − by2 + y3 = 0,
y2 − by3 = − sinh 3,
148
d¨ar
b = 2 + 9h2 =
41
= 2.5625.
16
P˚
a matrisformen f˚
ar vi
Ay = b,
d¨ar tridiagonala systemsmatrisen

−b 1
0
A =  1 −b 1  ,
0
1 −b

och h¨ogerledet

0
.
0
b=
− sinh 3

L¨os det linj¨ara ekvationssystemet med tre obekanta som approximerar randv¨ardesproblemet
(342) med hj¨alp av Gusselimination (dvs, ber¨akna approximativa l¨osningen). Skriv
systemet som
−41y1 + 16y2 = 0,
16y1 − 41y2 + 16y3 = 0,
16y2 − 41y3 = −16 sinh 3,
Utf¨or Gusselimination.
1.
16
y2 + 0 · y3 = 0,
41
16y1 − 41y2 + 16y3 = 0,
16y2 − 41y3 = −16 sinh 3,
−16y1 + 16
−16y1 + 16
16
y2 = 0,
41
16
) + 16y3 = 0,
41
16y2 − 41y3 = −16 sinh 3,
y2 (−41 + 16
2.
y2 (
16 · 16 − 41 · 41
) + 16y3 = 0,
41
16y2 − 41y3 = −16 sinh 3,
149
−
1425
y2 + 16y3 = 0,
41
16y2 − 41y3 = −16 sinh 3,
41 · 16
y3 = 0,
1425
16y2 − 41y3 = −16 sinh 3,
−16y2 + 16
41 · 16
−16y2 + 16
y3 = 0,
1425 ¶
µ
41 · 16 · 16
y3 −41 +
= −16 sinh 3,
1425
41 · 16
y3 = 0,
1425
(−33.6344)y3 = −16 sinh 3,
−16y2 + 16
3.
−16y2 + 16
y2 =
41 · 16
y3 = 0,
1425
y3 = 0.4757 sinh 3,
41 · 16
y3 = 0.4603y3 = 0.2190 sinh 3,
1425
y3 = 0.4757 sinh 3,
L¨osningen
16
y2 = 0.3924y2 = 0.0854 sinh 3 = 0.8555,
41
41 · 16
y2 =
y3 = 0.4603y3 = 0.2190 sinh 3 = 2.1939,
1425
y3 = 0.4757 sinh 3 = 4.7655
y1 =
Best¨am den exakta l¨osningen till randv¨ardesproblemet (342). Ekvationen
y 00 − 9y = 0
har karakteristiska polynomet
r2 − 9
150
(345)
med nollst¨allena r1 = 3 och r2 = −3. Den fullst¨andiga l¨osningen till homogena
ekvationen (345) a¨r
y = C1 e3x + C2 e−3x .
Satisfiera randvillkor [p˚
aminn att sinh z = 0.5(ez − e−z )]:
y(0) = 0 → C1 + C2 = 0 → C2 = −C1 ;
(346)
3
−3
3
−3
y(1) = sinh(3) → C1 e − C1 e = sinh(3) = 0.5(e − e ) → C1 = 0.5.
Den (exakta) l¨osningen till randv¨ardesproblemet (342) ¨ar
y = 0.5(e3x − e−3x ) = sinh 3x.
J¨amf¨or den approximativa l¨osningen med den exakta l¨osningen:
y1 − y(x1 ) = y1 − y(0.25) = y1 − sinh 0.75 = 0.8555 − 0.8223 = 0.0332,
y2 − y(x2 ) = y1 − y(0.5) = y1 − sinh 1.5 = 2.1939 − 2.1293 = 0.0646,
y3 − y(x3 ) = y1 − y(0.75) = y1 − sinh 2.25 = 4.7655 − 4.6912 = 0.0743.
Figur 34: MATLABkoder som l¨oser randv¨ardesproblemet (351) (kommandofil).
Exempel 9.4
151
Figur 35: MATLABkoder som l¨oser randv¨ardesproblemet (351) (funktionsfil).
Betrakta randv¨ardesproblemet
y 00 + 4y = 0, 0 < x < 1,
y(0) = 3, y(1) = −3,
(347)
H¨ar q(x) = −4, d1 = 0, d2 = 1, f (x) = 0, f0 = 3 och fN = −3. L¨osningen ¨ar
y(x) = c1 sin 2x + c2 cos 2x,
c1 = −3
1 + cos 2
,
sin 2
c2 = 3.
(347) approximeras med
yx¯x,i + 4yi = 0, i = 1, 2, . . . , N − 1
y0 = 3, yN = −3.
(348)
eller


y0 = 3
yi−1 − (2 + 4h )yi + yi+1 = 0, 1 ≤ i ≤ N − 1,

yN = −3.
2
(349)
(349) skrivas som ekvationssystemet (303) med symmetriska tridiagonala matrisen
B (304), d¨ar b = 2 + 4h2 , a = 1 och (N − 1)-dimensionella kolonnvektorerna
Y = {y1 , . . . , yN −1 }T och G = {3, 0, . . . , 0, −3}T .
152
Figur 36: Den approximativa l¨osningen till randv¨ardesproblemet (351) med n =
100.
Exempel 9.5
Betrakta randv¨ardesproblemet
y 00 − y = x2 − 2, 0 < x < 1,
y(0) = 1, y(1) = cosh(1) − 1,
(350)
H¨ar q(x) = 1, d1 = 0, d2 = 1, f (x) = x2 − 2, f0 = 1 och fN = cosh(1) − 1.
L¨osningen ¨ar
y(x) = c1 cosh x + c2 sinh x − x2 = cosh x − x2
(c1 = 1, c2 = 0).
(350) approximeras med
yx¯x,i − yi = x2i − 2, i = 1, 2, . . . , N − 1
y0 = 1, yN = cosh(1) − 1.
(351)
eller


y0 = 1
yi−1 − (2 + h2 )yi + yi+1 = h2 (x2i − 2), 1 ≤ i ≤ N − 1,

yN = cosh(1) − 1.
(352)
(352) skrivas som ekvationssystemet (303) med symmetriska tridiagonala matrisen
B (304), d¨ar b = 2 + h2 , a = 1 och (N − 1)-dimensionella kolonnvektorerna Y =
{y1 , . . . , yN −1 }T och
G = {h2 (x21 − 2) − 1, . . . , h2 (x2N −1 − 2) − (cosh(1) − 1)}T .
153
L¨osningen (med n = 100) redovisas i figur 36.
H¨ar kommer MATLABskapande konstanter, vektorer och matriser (numerisk
l¨osning av randv¨ardesproblemet (351) med fyra delintervall).
L=1
h = 0.2500
n=3
x = 0.2500 0.5000 0.7500
qv = 1.0000 1.0000 1.0000
fv = -1.9375 -1.7500 -1.4375
ones(n-1, 1)
1
1
diag(ones(n-1, 1), 1)
0 1 0
0 0 1
0 0 0
-2∗eye(n)
-2 0 0
0 -2 0
0 0 -2
diag(ones(n-1, 1), -1)
0 0 0
1 0 0
0 1 0
2
-h ∗diag(qv)
-0.0625 0 0
0 -0.0625 0
0 0 -0.0625
A=
-2.0625 1.0000 0
1.0000 -2.0625 1.0000
0 1.0000 -2.0625
b=
-1.1211
-0.1094
-0.6329
y = A\b;
y=
0.9694
154
0.8783
0.7327
xres = 0 0.2500 0.5000 0.7500 1.0000
yres = 1 0.9694 0.8783 0.7327 1.0000
Figur 37: Den approximativa l¨osningen till randv¨ardesproblemet (351) med n = 10;
∗ visar v¨ardena av den exakta l¨osningen.
Figur 38: Felet vid approximativ l¨osning av randv¨ardesproblemet (351) med n =
10; ∗ visar v¨ardet av den exakta l¨osningen.
155
Figur 39: Felet vid approximativ l¨osning av randv¨ardesproblemet (351) med n = 3;
∗ visar v¨ardet av den exakta l¨osningen.
9.4
Problem
Problem 9.1
Best¨am den exakta l¨osningen till randv¨ardesproblemet
½ 00
y + 4y = 0, y = y(x), 0 < x < 1,
y(0) = 0, y(1) = sin(2).
(353)
Approximera randv¨ardesproblemet (353) genom att reducera det till ett linj¨art
ekvationssystem med tre obekanta. Ber¨akna den approximativa l¨osningen genom
att l¨osa det linj¨ara ekvationssystemet med hj¨alp av Gusselimination. J¨amf¨or den
h¨ar approximativa l¨osningen med den exakta l¨osningen.
Problem 9.2
Betrakta randv¨ardesproblemet f¨or den station¨ara en-dimensionella v¨armeledningsekvationen
med variabel v¨armeledningsf¨orm˚
aga k(x) = e2x i en stav som ¨ar isolerad i l¨angdriktingen
och dess ¨andar h˚
alls vid konstant temperatur 0 (kalla ¨andarna)
µ
¶
d
2x dy
e
= f (x), 0 < x < 1,
(354)
dx
dx
y(0) = 0, y(1) = 0,
d¨ar f (x) beskriver v¨armeproduktionen som funktion av x. Reducera (354) till
randv¨ardesproblemet
z 00 − q(x)z = g(x), 0 < x < 1,
z(0) = g0 , z(a) = gN
156
(355)
med vissa q(x), g(x), g0 och gN . Valj funktionen f (x) s˚
adan att
2
a) f (x) = Ae−Q(x−xP ) , Q > 0, 0 < xP < 1;
A
b) f (x) =
, Q > 0, 0 < xP < 1;
1 + Q(x − xP )2
2
2
c) f (x) = A1 e−Q1 (x−xP 1 ) + A2 e−Q2 (x−xP 2 ) ,
(356)
Qi > 0 (i = 1, 2), . 0 < xP 1 < xP 2 < 1;
med vissa A 6= 0, Q och xP . Det blir olika k¨allasmodeller d¨ar |A| ¨ar k¨allasamplitud,
Q a¨r k¨allaskvalitet och xP ¨ar k¨allasposition. I fallet c) har vi tv˚
a k¨allor med olika
A, Q och xP .
L¨os randv¨ardesproblemet (355) numeriskt: approximera differentialoperatorn
och skriv ett system med en tridiagonal matris. Sedan skriv en MATLABfunktionsfil som ber¨aknar stavens temperatur f¨or givna A, Q och P med differensmetoden. Rita en graf som visar hur temperaturen Tmitt = Tmitt (ξ) i mittpunkten
x = 0.5 ber˚
ar p˚
a ξ = A, ξ = Q eller ξ = P (observera att i det fallet m˚
aste man
ta xP 6= 0.5).
10
Numerisk l¨
osning till en-dimensionella
v¨
armeledningsekvationen och diffusionekvationen
Vi ska l¨osa randv¨ardesproblemet till den en-dimensionella v¨armeledningsekvationen
K
∂2u
∂u
=
,
∂x2
∂t
u = u(x, t),
K = c2 = const, t > 0, 0 < x < L,
u(x, 0) = f (x), 0 ≤ x ≤ L (begynnelsevillkoret),
u(0, t) = T0 ,
u(L, t) = TL , t ≥ 0 (randvillkoren).
(357)
(358)
(359)
Ekvationen
D
∂ 2u
∂u
=− ,
2
∂x
∂t
u = u(x, t),
D = const, t > 0, 0 < x < L,
(360)
kallas diffusionekvationen.
F¨or att approximera funktionen u(x, t), x ∈ [0, L], t ∈ [0, T ], och v¨armeledningsekvationen
och l¨osa (357) numeriskt genom att ers¨atta den med en differensapproximation delar man in intervallet [0, L] i n (mindre) intervall och intervallet [0, T ] i m intervall
157
genom att ber¨akna funktionen f¨or (n − 1) och (m − 1) stycken x- och t-v¨arden
L
T
xi = ih och t = jk likformigt f¨ordelade med avst˚
anden h = och k = :
n
m
xi = ih,
h=
L
,
n
(361)
x0 = 0 < x1 < x2 < · · · < xn−1 < xn = L.
tj = jk,
10.1
i = 0, 1, 2 . . . , n − 1, n,
j = 0, 1, 2 . . . , m − 1, m,
k=
T
.
m
(362)
V¨
armeledningsekvationen
Vi approximerar v¨armeledningsekvationen med fram˚
at- och bak˚
atdifferenserna
(110), (111) och (114)
µ
¶ µ
¶
ui−1,j+1 − 2ui,j+1 + ui+1,j+1
−ui,j + ui,j+1
K
=
.
(363)
h2
k
eller
2
KD±
u(h, xi , tj+1 ) = D+ u(k, xi , tj ).
(364)
H¨ar
u0,j = T0 (j = 0, 1, 2, . . . , m),
un,j = TL (j = 0, 1, 2, . . . , m),
(365)
enligt randvillkoren (359), och ui,j (i = 1, 2, . . . , n−1, j = 0, 1, 2, . . . , m) ¨ar obekanta [approximationen till u(xi , tj )].
D˚
a skrivas om (363)
(1 + 2α)ui,j+1 − α(ui+1,j+1 + ui−1,j+1 ) = ui,j ,
d¨ar α = K
i = 0, 1, . . . , n,
j = 0, 1, . . . ,(366)
k
. Man kan skriva (366) som ett ekvationssystem
h2
A(α)Uj+1 = Uj + G,
j = 0, 1, . . . , m − 1,
158
(367)
Figur 40: Numerisk l¨osning av v¨armeledningsekvationen, ber¨akningsomr˚
adet.
d¨ar Uj = {u1,j , . . . , uN −1,j }T och G = {T0 , 0, . . . , 0, TL }T , med symmetriska tridiagonala matrisen A(α),


 

b −α 0 . . . 0
u1,j+1
u1,j + αu0
 −α b −α . . . 0   u2,j+1  

u2,j


 

 0 −α b . . . 0   u3,j+1  

u
3,j


 

 .

 

.
. ...
. 
.
.


=

(368)
 .





.
.
.
.
.
.
.
.


 

 .

 

.
. ...
. 
.
.


 

 0





0
0 . . . −α
un−2,j+1
un−2,j
0
0
0 ... b
un−1,j+1
un−1,j + αun .
L¨osningen till systemet (368),
Uj+1 = A(α)−1 (Uj + G),
j = 0, 1, . . . , m − 1,
(369)
uttrycker u1 , u2 , . . . , un−1 i tidpunkten tj+1 genom u1 , u2 , . . . , un−1 i tidpunkten
tj (t0 = 0, j = 0, 1, 2, . . . m − 1). Begynnelsevektorn U0 skapas genom v¨ardena av
begynnelsetemperaturen f (x) (som en (n + 1)-dimensionell radvektor)
U0 = f = [f (xi )] = [f (x0 ) = lowb = T0 , f (x1 ), . . . , f (xn−1 ), f (xn ) = hib = TL ].
10.2
Crank–Nicolsons metod
Vi kan approximera v¨armeledningsekvationen (357) med centraldifferensenapproximationen (112)
f 0 (t) ≈
f (t + 0.5h) − f (t − 0.5h)
h
159
av tidsderivatan i mittidspunkten t = tj+0.5 = tj + 0.5k = 0.5(tj+1 + tj ) och skriva
1 2
2
K [D±
u(h, xi , tj+1 ) + D±
u(h, xi , tj )] = D+ u(k, xi , tj ),
2
(370)
eller
µ
¶ µ
¶
1 ui−1,j+1 − 2ui,j+1 + ui+1,j+1 ui−1,j − 2ui,j + ui+1,j
ui,j+1 − ui,j
K
+
=
(371)
.
2
h2
h2
k
D˚
a skrivas (371) som (366)
−0.5αui+1,j+1 + (1 + α)ui,j+1 − 0.5αui−1,j+1 = 0.5αui+1,j + (1 − α)ui,j + 0.5αui−1,j(372)
.
Man kan skriva (372) p˚
a formen
A(0.5α)Uj+1 = A(−0.5α)Uj + G,
d¨ar G = {0.5T0 , 0, . . . , 0.5TL }T , med symmetriska

1 + α −α/2
0
 −α/2 1 + α −α/2

 0
−α/2 1 + α

 .
.
.
A(0.5α) = 
 .
.
.

 .
.
.

 0
0
0
0
0
0
tridiagonala matrisen

...
0
...
0 

...
0 

...
. 

...
. 

...
. 

. . . −α/2 
... 1 + α
Figur 41: Centraldifferensenapproximationen, Crank–Nicolsons metod.
Exempel 10.1
160
(373)
(374)
Ber¨akna temperatur i en tegelsten v¨agg med K = 5 · 10−7 m2 /s, L = 0.3 m
och begynnelsetemperatur 100 deg C. Antag att v¨aggs¨andarna h˚
alls vid konstant
temperatur 20 deg C. Vi vill rita v¨aggstemperatur under 22000 sekunder (366.67
min), tidintervallet k ¨ar lika med 440 sec (7.33 min); d˚
a blir det 50 t-tidintervall.
L¨
osning. L¨os f¨orst randv¨ardesproblemet till den en-dimensionella v¨armeledningsekvationen
som beskriver temperatur i en tegelsten v¨agg med kalla v¨aggs¨andarna
K
∂2u
∂u
=
,
2
∂x
∂t
u = u(x, t),
K = 5 · 10−7 , t > 0, 0 < x < L = 0.3,
u(x, 0) = f (x) = const = 100, 0 ≤ x ≤ L = 0.3 (begynnelsevillkoret),
u(0, t) = 0,
u(L = 0.3, t) = 0,
t ≥ 0 (randvillkoren).
Man kan l¨osa randv¨ardesproblemet (10.2) genom att skriva
u(x, t) =
∞
X
un (x, t) =
n=1
∞
X
2
Bn e−λn t sin
n=1
nπ
x.
L
d¨ar
√
cnπ
, c = K,
L
kallas egenv¨arden. F¨or att f˚
a obekanta koefficienterna Bn , satisfierar man begynnelsevillkoren
∞
X
nπ
Bn sin
u(x, 0) =
x = f (x) = 100.
L
n=1
λn =
D˚
a
2
Bn =
L
Z
L
f (x) sin
0
nπ
xdx,
L
n = 1, 2, . . . ,
blir fourierskoefficienterna till funktionen f (x). H¨ar
Z
Z
nπ
nπ
2 L
2 L
100 sin
sin
Bn =
xdx = 100
xdx =
L 0
L
L 0
L
Z nπ
n
nπ o
2 L
200
200
400
u=
x = 100
sin udu =
(cos 0−cos nπ) =
(1−(−1)n ) =
,
L
L nπ 0
nπ
nπ
nπ
n = 1, 3, 5 . . . (n = 2l − 1, l = 1, 2, 3, . . . )
och
∞
400 X −λ22l−1 t 1
(2l − 1)π
u(x, t) =
sin
x=
e
π l=1
2l − 1
L
¶
µ
400 −λ21 t
1 −λ23 t
3π
π
sin x + . . . ,
e
sin x + e
π
L
3
L
161
n2 π 2
.
L2
L¨os randv¨ardesproblemet till den en-dimensionella v¨armeledningsekvationen
som beskriver temperatur i en tegelsten v¨agg, d¨ar v¨aggs¨andarna h˚
alls vid konstant
temperatur 20 deg C,
λ2n = K
∂2u
∂u
=
, u = u(x, t), K = 5 · 10−7 , t > 0, 0 < x < L = 0.3,
2
∂x
∂t
u(x, 0) = f (x) = const = 100, 0 ≤ x ≤ L = 0.3 (begynnelsevillkoret),
K
u(0, t) = 20,
u(L = 0.3, t) = 20 t ≥ 0 (randvillkoren).
Funktionen
∞
(2l − 1)π
320 X −λ22l−1 t 1
sin
x = const = 80.
f0 (x) =
e
π l=1
2l − 1
L
D˚
a satisfierar funktionen
∞
320 X −λ22l−1 t 1
(2l − 1)π
u1 (x, t) =
sin
x
e
π l=1
2l − 1
L
162
Figur 42: MATLABkoder som ber¨aknar den exakta l¨osningen till problemet i Exempel 10.1 enligt (375).
begynnelsevillkoret
u1 (x, 0) = f0 (x) = 80
och randvillkoren
u1 (0, t) = 0,
u1 (L = 0.3, t) = 0, t ≥ 0,
och funktionen
∞
U (x, t) = u1 (x, t) + 20 = 20 +
320 X −λ22l−1 t 1
(2l − 1)π
e
sin
x
π l=1
2l − 1
L
(375)
l¨oser randv¨ardesproblemet (10.2), eftersom den satisfierar begynnelsevillkoret
U (x, 0) = u1 (x, 0) + 20 = 20 + 80 = 100
och randvillkoren
U (0, t) = u1 (0, t)+20 = 0+20 = 20,
U (L, t) = u1 (L, t)+20 = 0+20 = 20, t ≥ 0,
V¨aggstemperatur under t0 = 22000 sekunder blir
∞
(2l − 1)π
320 X −λ22l−1 t0 1
sin
x,
U (x, t = t0 = 22000) = 20 +
e
π l=1
2l − 1
L
163
n2 π 2
5 · 10−5 2 2
−7 100 2 2
=
5
·
10
n
π
=
n π , n = 2l − 1.
L2
9
9
H¨ar i varje punkt x har vi en serie p˚
a formen som i (35),
∞
X
2 sin cn
e−bn
,
n
n=1
λ2n = K
d¨ar
5 · 10−5
· 22000 ≈ 1.2063.
9
D˚
a enligt (41), blir det tillr¨ackligt att ta med tv˚
a termer f¨or att ber¨akna den
exakta l¨osningen U (x, 22000) med noggranheten ² = 10−4 . Motsvarande kurvan av
U (x, 22000) sammanfaller med den numeriska l¨osningen som redovisas i figur 43.
b = π2
Exempel 10.2
Ber¨akna temperatur i en metal stav med K = 11.7 · 10−6 m2 /s, L = 2 m och
begynnelsetemperaturen 0. Antag att stavens ¨andarna h˚
alls vid konstant temperatur 100 deg C och 0. Vi vill rita temperaturen under 300 · 60 = 18000 sekunder
(300 min = 5 tim), tidsintervallet k a¨r lika med 20 sek.
Skriv f¨orst motsvarande randv¨ardesproblemet till den en-dimensionella v¨armeledningsekvationen
K
∂ 2u
∂u
=
, u = u(x, t), K = 11.7 · 10−6 , t > 0, 0 < x < L = 2,
2
∂x
∂t
u(x, 0) = f (x) = const = 0, 0 ≤ x ≤ L = 2 (begynnelsevillkoret),
u(0, t) = 100,
u(L = 2, t) = 0,
t ≥ 0 (randvillkoren).
Vid numerisk l¨osning med Crank–Nicolsons metod, ska vi anv¨anda 100 xdelintervall. D˚
a, h = 0.02, k = 20
Figur 43: Numerisk l¨osning till randv¨ardesproblemet i Exempel 10.1 med Crank–
Nicolsons metod, n = 20.
164
Figur 44: Numerisk l¨osning till randv¨ardesproblemet i Exempel 10.2 med Crank–
Nicolsons metod, n = 100.
10.3
Problem
Problem 10.1. Kalla v¨
aggs¨
andarna
Ber¨akna temperatur i en tegelsten v¨agg med K = 5·10−7 m2 /s, L = 0.3 m och begynnelsetemperaturen 100 deg C genom att l¨osa motsvarande randv¨ardesproblemet
(357). Antag att v¨aggs¨andarna h˚
alls vid konstant temperatur 0 deg C.
Problem 10.2. K¨
allasmodell
L¨os randv¨ardesproblemet (357) och ber¨akna temperatur i en tegelsten v¨agg med
K = 5 · 10−7 m2 /s, L = 0.3 m och begynnelsetemperatur 0 deg C; valj Tns =
Tk¨alla > 0, d¨ar 1 < ns < nx.
Figur 45: Numerisk l¨osning till en version av randv¨ardesproblemet i Problem 10.2
med Crank–Nicolsons metod, n = 20.
165
Figur 46: Numerisk l¨osning till en version av randv¨ardesproblemet i Problem 10.2
med Crank–Nicolsons metod, n = 20.
11
Randv¨
ardesproblemet f¨
or station¨
ara
tv˚
a-dimensionella v¨
armeledningsekvationen
och Laplaces och Poissons ekvationer
Antag att vi har en rektangul¨ar platta av l¨angden a och bredden b med konstant
v¨armelednings
f¨orm˚
aga. Antag vidare att platten a¨r isolerad och att sidorna h˚
alls vid konstant
eller icke-konstant temperatur som beskrivas med fyra givna funktioner f1 (y),
f2 (y), 0 < y < b, och f3 (x), f4 (x), 0 < x < a. L˚
at u = u(x, y, t) beteckna
plattens temperatur i punkten (x, y), 0 < x < a, 0 < y < b, och tidpunkten
t ≥ 0. Om f¨ors¨oket p˚
ag˚
at l¨ange kommer plattens temperatur att vara stationar,
dvs oberoende av tiden. D˚
a satisfierar u = u(x, y) randv¨ardesproblemet f¨or tv˚
adimensionella Laplaces ekvation i rektangeln med h¨ornen i punkterna (0, 0), (a, 0),
(a, b) och (0, b):

 ∆u = 0, u = u(x, y), 0 < x < a, 0 < y < b,
u(0, y) = f1 (y),
u(a, y) = f2 (y),
(376)

u(x, 0) = f3 (x),
u(x, b) = f4 (x).
och tv˚
a-dimensionella Poissons ekvation
∆u = ρ(x, y),
u = u(x, y), 0 < x < a, 0 < y < b.
(377)
Observera att temperaturen definieras med en kontinuerlig funktion i den slutna rektangeln. D˚
a m˚
aste randfunktionerna fi sammanfalla i h¨ornpunkterna (0, 0),
(a, 0), (a, b) och (0, b):
u(0, 0) = f1 (0) = f3 (0),
u(0, b) = f1 (b) = f4 (0),
u(a, 0) = f3 (a) = f2 (0),
u(a, b) = f4 (a) = f2 (b).
(378)
Betrakta ett exempel: funktionerna
f1 (y) = y(1 − y),
f2 (y) = 2y(1 − y),
f3 (x) = x(1 − x),
166
f4 (x) = 3x(1 − x)
(379)
satisfierar (378) p˚
a randen av en enhetsrektangel 0 < x < 1, 0 < y < 1:
f1 (0) = f3 (0) = 0,
f1 (1) = f4 (0) = 0,
f3 (1) = f2 (0) = 0,
f4 (1) = f2 (1) = 0.
Den numeriska l¨osningen till motsvarande randv¨ardesproblemet (376) f¨or Laplaces
ekvation i enhetsrektangel ¨ar i figur 48.
Figur 49 visar den numeriska l¨osningen till randv¨ardesproblemet f¨or Poissonss
ekvation i enhetsrektangeln

 ∆u = ρ(x, y), u = u(x, y), 0 < x < 1, 0 < y < 1,
u(0, y) = 0,
u(a, y) = 0,
(380)

u(x, 0) = 0,
u(x, b) = 0.
H¨ogerledet ρ(x, y) redovisas i figur 50.
11.1
Numerisk l¨
osning till Laplaces och Poissons ekvationer i en rektangel
F¨or att approximera funktionen u(x, y), x ∈ [0, a], y ∈ [0, b], och Laplaces och Poissons ekvationer och l¨osa randv¨ardesproblemet (376) numeriskt genom att ers¨atta
den med en differensapproximation delar man in intervallet [0, a] i Nx (mindre) intervall och intervallet [0, b] i Ny intervall genom att ber¨akna funktionen f¨or (Nx −1)
och (Ny − 1) stycken x- och y-v¨arden xi = ihx och yj = jhy likformigt f¨ordelade
a
b
med avst˚
anden hx = och hy =
:
n
Ny
xi = ihx ,
yj = jhy ,
i = 0, 1 . . . , Nx , x0 = 0 < x1 < x2 < · · · < xNx −1 < xNx = a,
j = 0, 1 . . . , Ny , y0 = 0 < y1 < y2 < · · · < yNy −1 < yNy = b,(381)
.
Vi approximerar Laplaces och Poissons ekvationer (376) och (377) med differenserna (110), (111) och (114) i punkten (xi , yj ), d¨ar
xi = x0 + ihx = ihx ,
i = 1, 2, . . . , Nx − 1,
yj = y0 + jhy = jhy ,
j = 1, 2, . . . , Ny − 1,
(382)
och f˚
ar approximationen
ui−1,j − 2ui,j + ui−1,j ui,j+1 − 2ui,j + ui,j−1
+
= ρi,j ,
h2x
h2y
i = 1, 2, . . . , Nx − 1,
j = 1, 2, . . . , Ny − 1,
167
(383)
d¨ar ρi,j = ρ(xi , yj ) (Poissons ekvation) eller ρi,j = 0 (Laplaces ekvation).
Antag nu att hx = hy = h. D˚
a skrivas om (383)
1
ui,j = [ui+1,j + ui−1,j + ui,j+1 + ui,j−1 ] − h2 ρi,j ,
4
(384)
och vi f˚
ar (Nx − 1)(Ny − 1) linj¨ara ekvationer med obekanta ui,j . F¨or att f˚
a
motsvarande linj¨art ekvationssystem, skriv ui,j som en vektor
ui,j = uk ,
k = 1, 2, . . . , N = (Nx − 1)(Ny − 1).
(385)
Vi r¨aknar obekanta enligt regeln
k = i + Ny (j − 1),
k = 1, 2, . . . , N = (Nx − 1)(Ny − 1),
(386)
dvs
k
(i, j)
k
(i, j)
(i, j)
=
=
=
=
=
1 2 . . . Ny − 1
(1, 1)(1, 2) . . . (1, Ny − 1)
Ny Ny + 1 . . . 2Ny − 2
(2, 1)(2, 2) . . . (2, Ny − 1)
...
(384) skrivas om
uk+1 − 4uk + uk−1 + uk+Ny + uk−Ny = h2 ρk ,
k = 1, 2, . . . , N = (Nx − 1)(Ny − 1).
(387)
Sedan skrivas (387) i varje n¨atpunkten (xi , yj ) l¨angs raden i, i = 1, 2, . . . , Ny −1,
168
Figur 47: Differensapproximationen av Laplaces operator.
t ex f¨or i = 1,
j
j
j
.
j
=
=
=
.
=
1 − 4u1 + u2 + uNy = −[f1 (y1 ) + f3 (x1 )]
2 u1 − 4u2 + u3 + uNy +1 = −f3 (x2 )
3 u2 − 4u3 + u4 + uNy +2 = −f3 (x3 )
...
Nx uNy −1 − 4uNy + u2Ny = −[f2 (y1 ) + f3 (xNx )]
och ekvationssystemet (387) f˚
as som ett linj¨art ekvationssystem
Au = f
(388)
med symmetriska treidiagonala blockmatrisen

R I 0 ... 0
 I R I ... 0

 0 I R ... 0

 . . . ... .
A=
 . . . ... .

 . . . ... .

 0 0 0 ... I
0 0 0 ... R
R ¨ar en tridiagonal matris av storlek N × N ,

−4 1
0 ...
 1 −4 1 . . .

 0
1 −4 . . .

 .
.
. ...
R=
 .
.
. ...

 .
.
. ...

 0
0
0 ...
0
0
0 ...
169






.





0
0
0
.
.
.
1
−4
(389)






,





(390)
I ¨ar en enhetsmatris av storlek N × N ,

1 0 0
 0 1 0

 0 0 1
I=
 . . .

 0 0 0
0 0 0
...
...
...
...
...
...
0
0
0
.
0
1




,



u ¨ar en kolonnvektor av storlek N ,
u = {uk }T ,
k = 1, 2, . . . , N,
(391)
och f ¨ar en summa av tv˚
a kolonnvektorer av storlek N ,
f = f1 + f2 ,
(392)
d¨ar
f1 = [f3 (x) 0 0 . . . 0 0 f4 (x)]T ,
f2 = [f1 (y1 ) 0 . . . 0 f2 (y1 ) f1 (y2 ) 0 . . . 0 f2 (y2 ) f1 (y3 ) 0 . . . 0 f2 (yNy )]T(393)
,
x = {xi = ih},
i = 1, 2, . . . , Nx .
Figur 48: Ett exempel av numerisk l¨osning till randv¨ardesproblemet (376) f¨or
Laplaces ekvation i enhetsrektangeln 0 < x < 1, 0 < y < 1. Randfunktionerna
definieras med (378).
170
Figur 49: Numerisk l¨osning till randv¨ardesproblemet (380) f¨or Poissons ekvation i
enhetsrektangeln. H¨ogerledet ρ(x, y) ¨ar i figur 50.
Figur 50: H¨ogerledet ρ(x, y) av Poissons ekvation ∆u = ρ(x, y) i enhetsrektangeln.
12
12.1
Minstakvadratmetoden
¨
Overbest
amda ekvationssystem
¨
Det ¨ar l¨ampligt att uppfatta matrisen A som best˚
aende av n kolonnvektorer:


a11 a12 . . . a1n
 a21 a22 . . . a2n 
 = [a1 a2 . . . an ] ,
A=
 .
. ...
. 
an1 an2 . . . ann
d¨ar


a1j
aj =  . . .  , j = 1, 2, . . . n.
anj
D˚
a kan vi skriva ekvationssystemet Ax = b p˚
a formen
x1 a1 + x2 a2 + · · · + xn an = b
(394)
Systemet ¨ar l¨osbart f¨or varje h¨ogerledet b d˚
a och endast d˚
a kolonnvektorerna
n
a1 a2 . . . an utg¨or en bas i R , eller ekvivalent, d˚
a kolonnvektorerna ¨ar linj¨art
171
oberoende:
d1 a1 + d2 a2 + · · · + dn an = 0 d˚
a och endast d˚
a
talen dj = 0, j = 1, 2, . . . n.
En matris A, vars kolonnvektorer ¨ar linj¨art oberoende, ¨ar inverterbar (ickesingul¨ar), och systemet Ax = b har entydig l¨osning f¨or varje h¨ogerledet b.
P˚
aminn att rangen f¨or en matris A, rang(A), ¨ar antalet linj¨art oberoende
kolonnvektorer i A. Om A ¨ar en m × n matris s˚
a ¨ar rangen h¨ogst lika med
min{m, n}. Betrakta t ex tv˚
a 3 × 2 matriser




1 1
1 1
A =  1 2 , B =  1 1 .
1 1
1 3
Vi har rang(A) = 2 (A har full rang) och rang(B) = 1 (B inte har full rang).
Antag att vi har ett ¨overbest¨amt ekvationssystem Ax = b d¨ar A ¨ar en matris
av typ m × n med m > n.
Problemet att l¨osa ett ¨overbest¨amt system ¨ar ekvivalent med att best¨amma en
linj¨ar
-kombinationen 394 av kolonnvektorerna s˚
a att denna a¨r lika med b. Detta a¨r
i allm¨anhet om¨ojligt: vi har n kolonnvektorer:
a1 a2 . . . an ,
och d˚
a m > n kan de inte utg¨ora en bas i Rm , som ¨ar ett rum av dimension m.
Antag t ex, att m = 3 och n = 2 och betrakta ett ¨overbest¨amt system
a11 x1 + a12 x2 = b1
a21 x1 + a22 x2 = b2
a31 x1 + a32 x2 = b3 ,
(395)
som skrivas p˚
a formen (394)
x1 a1 + x2 a2 = b
a vektorer i R3 ,
d¨ar a1 och a2 a¨r tv˚


a11
a1 =  a21  ,
a31

a12
a2 =  a22 
a32

Om vektorerna a1 och a2 a¨r linj¨art oberoende sp¨anner de upp ett plan i R3 och
man kan inte f¨oruts¨atta att vektorn b ligger i detta plan.
172
Exempel 12.1
Betrakta ¨overbest¨amda systemet
x1 + x2 = b 1
x1 + 2x2 = b2
x1 + 3x2 = b3 ,
(396)
som skrivas p˚
a formen (394)
x1 a1 + x2 a2 = b
d¨ar vektorerna

1
a1 =  1  ,
1



1
a2 =  2 
3
¨ar linj¨art oberoende och sp¨anner upp planet i R3 .
12.2
Minsta kvadratproblemet
Eftersom vi inte kan l¨osa det ¨overbest¨amda systemet f˚
ar vi n¨oja oss med att
best¨amma en vektor s s˚
adan att residualvektorn
r = b − Ax
(397)
v
uX
u n 2
||r||2 = t
xj → min,
(398)
blir liten,
j=1
s˚
a s¨oker vi minsta kvadratl¨osnigen till det o¨verbest¨amda systemet: x best¨ams s˚
a
att summan av kvadraterna av komponenterna i residualvektorn blir minimal.
Givet ett ¨overbest¨amt ekvationssystem Ax = b, d¨ar A ¨ar en rektangul¨ar matris
av typ m × n, m > n. Minstakvadratmetoden inneb¨ar att den euklidiska normen av
residualvektorn minimeras, dvs x best¨ams som l¨osnig till minimeringsproblemet
min ||b − Ax||2 .
x
Enligt definitionen och formulering av minsta kvadratproblemet ska vi best¨amma
en
linj¨ar
173
kombination av vektorerna a1 och a2 s˚
a att residualvektorn blir s˚
a kort som
m¨ojligt. Eftersom alla linj¨arkombinationer av vektorerna ligger i planet i figuren,
blir l¨angen av residualvektorn r minimal om r ¨ar normal till planet.
Villkoret att r ska vara normal till planet ¨ar detsamma att r ¨ar ortogonal till
vektorerna som sp¨anner upp planet, dvs skalarprodukterna
aT1 · r = aT2 · r = 0.
I det allm¨anna fallet ges l¨osningen analogt.
Om kolonnvektorerna i A ¨ar linj¨art oberoende, ¨ar matrisen AT A positivt
definit, och minsta kvadratproblemet
min ||b − Ax||2 .
x
(399)
har en entydig l¨osning, som f˚
as ur normalekvationerna
AT Ax = AT b.
Exempel 12.2
Vi ska l¨osa minsta kvadratproblemet (399) f¨or systemet (396), d¨ar


 
 
1 1
1
1





1
2
1
A=
= [a1 a2 ] , a1 =
, a2 = 2  .
1 3
1
3
och

0
b =  0 .
1

Vi har
·
¸
1 1 1
A =
.
1 2 3
 
¸ 0
·
¸ · ¸
1  
0+0+1
1
0 =
=
.
3
0+0+3
3
1

·
¸ ·
¸
1+2+3
3 6
= 1+1+1
=
.
1+2+3 1+2·2+3·3
6 14
T
·
T
A b=
·
T
A A=
1 1 1
1 2 3
¸

1 1
1 2
1 1
 1 2
1 3
174
Normalekvationerna
·
T
T
A Ax = A b blir
som har l¨osningen
·
x=
3 6
6 14
−2/3
1/2
¸
·
x=
1
3
¸
,
¸
,
Den h¨ar vektorn b¨ast approximerar l¨osningen i minsta kvadratmetodem mening.
Antag ocks˚
a att vi vill anpassa en r¨at linje till f¨oljande data:
t f (t)
−− −−
1
0
2
0
3
1
Om vi ans¨atter den r¨ata linjen f˜(t) p˚
a formen f˜ = c0 + c1 t, f˚
ar vi minsta kvadratproblemet (399) med systemet
c0 + c1 = 0
c0 + 2c1 = 0
c0 + 3c1 = 1,
som skrivas p˚
a formen (394). L¨osningen ¨ar
¸
·
¸ ·
c0
−2/3
,
=
c1
1/2
och den r¨ata linjen f˜(t) = −2/3 + t/2.
Exempel 12.3
Vi ska l¨osa minsta kvadratproblemet (399) f¨or ¨overbest¨amda systemet
x1 + x2
x1 + 2x2
x1 + 3x2
x1 + 4x2
x1 + 5x2
175
=
=
=
=
=
b1
b2
b3 ,
b1
b2
som skrivas p˚
a formen

1
 1

A=
 1
 1
1
(394), d¨ar matrisen


1

2 



3 
=
[a
a
]
,
a
=
1
2
1




4
5
och h¨ogerledet



b=


Vi har
·
T
A =

·
T
A b=
1 1 1 1 1
1 2 3 4 5
¸




8.0
10.2
14.2
16.0
21.2
·
T
A A=
·

8.0
10.2
14.2
16.0
21.2
1
1
1
1
1




,




a2 = 




.




.


1 1 1 1 1
1 2 3 4 5
¸
.
 ·
¸
¸ ·

69.6
8.0 + 10.2 + 14.2 + 16.0 + 21.2
=
.
=

241.0
8.0 + 2 · 10.2 + 3 · 14.2 + 4 · 16.0 + 5 · 21.2


1 1 1 1 1
1 2 3 4 5
¸




1
1
1
1
1
1
2
3
4
5
Normalekvationerna
AT Ax = AT b
·





=


1+1+1+1+1
1+2+3+4+5
1+2+3+4+5 1+2·2+3·3+4·4+5·5
blir
1
2
3
4
5
5 15
15 55
¸
som har l¨osningen
x=
·
x=
69.6
241.0
·
¸
4.26
3.22
176
.
¸
,
¸
·
=
5 15
15 55
¸
.
Den r¨ata linje F (t) = x1 + x2 t = 4.26 + 3.22t, som b¨ast approximerar m¨atv¨ardena
i minsta kvadratmetodem mening, illustreras i figur. Vi har


.
t
F (t)
 . 
−− −−


 8.0 
1
7.48


.
10.2
2 10.70 , exakt data 




3 13.92
 14.2 
 16.0 
4 17.14
21.2
5 20.36
Exempel 12.4
Antag att vi ska anpassa en r¨at linje till f¨oljande data:
t
−−
998
999
1000
1001
1002
f (t)
−−
3.765
4.198
5.123
5.888
6.184
Om vi ans¨atter den r¨ata linjen p˚
a formen f˜ = c0 + c1 t f˚
ar vi minsta kvadratproblemet (399) med
x1 + 998x2
x1 + 999x2
x1 + 1000x2
x1 + 1001x2
x1 + 1002x2
=
=
=
=
=
b1
b2
b3 ,
b1
b2
som skrivas p˚
a formen (394) d¨ar matrisen



1
1 998
 1
 1 999 



 = [a1 a2 ] , a1 =  1
1
1000
A=



 1
 1 1001 
1
1 1002
177



,





a2 = 


998
999
1000
1001
1002



.


och h¨ogerledet



b=


Vi har
3.765
4.198
5.123
5.888
6.184






·
¸
1
1
1
1
1
A =
998 999 1000 1001 1002


3.765
¸
·
¸  4.198  ·


25.158
1
1
1
1
1
T
 5.123  =
A b=
.

25165
998 999 1000 1001 1002 
 5.888 
6.184


1 998
·
¸  1 999  ·
¸


1
1
1
1
1
5
5000
T
 1 1000  =
A A=
.

998 999 1000 1001 1002 
5000 5000010
 1 1001 
1 1002
T
Normalekvationerna
AT Ax = AT b.
blir
·
5
5000
5000 5000010
som har l¨osningen
·
x=
¸
·
x=
−647.769
0.653
25.158
25165
¸
,
¸
,
Om man ist¨allet v¨aljer framst¨allningen f˜ = b0 + b1 (t − 1000) f˚
ar vi minsta kvadratproblemet (399) med matrisen


1 −2
 1 −1 



A=
 1 0 
 1 1 
1 2
178
och samma h¨ogerledet b

3.765
·
¸  4.198
1
1 1 1 1 
 5.123
AT b =
−2 −1 0 1 2 
 5.888
6.184
·
¸
5 0
T
A A=
.
0 10

 ·
¸

25.158
=
.

6.528

Normalekvationerna
AT Ax = AT b.
blir
·
5 0
0 10
¸
som har l¨osningen
x=
·
x=
13
·
25.158
6.528
5.032
0.653
¸
,
¸
.
Spline-interpolation
Vissa funktioner inte l˚
ater sig approximera med ett enda polynom i hela det aktuella intervallet. Ett botemedel ¨ar att man anv¨ander sig av styckvisa polynom, t
ex r¨ata linjer genom n¨arliggande m¨atv¨arden fk = f (xk ) och utf¨or styckvis-linj¨ar
interpolation genom att konstruera en s˚
adan styckvis-linj¨ar interpolationsfunktion
(51):
F (M ; x) = fk + (x − xk )
13.1
∆fk
,
h
x ∈ [xk , xk+1 ],
∆fk = fk+1 − fk ,
k = 0, 1, . . .(400)
.
Kubisk spline-interpolation
Vanligtvis anv¨ander man en kubisk spline-funktion, varmed menas att man i de
olika delintervall [xk , xk+1 ] approximerar f (x) med olika tredjegradspolynom Pk (x).
Polynomen best¨ams, f¨orutom av de vanliga interpolationsvillkoren Pk (xk ) = f (xk ),
av att f¨orsta- och andraderivatorna skall vara kontinuerliga i alla n¨atpunkter.
Formulera motsvarande definitioner. Antag att funktionsv¨arden fk = f (xk ) ¨ar
k¨anda i n + 1 olika punkter xk , i = 0, 1, . . . , n,
a = x0 < x1 < · · · < xn = b.
179
(401)
Vi s¨oker en funktion g(x) (en kubisk spline-funktion) s˚
adan att
g(x0 ) = f (x0 ) = f0 , g(x1 ) = f (x1 ) = f1 , . . . g(xn ) = f (xn ) = fn ,
(402)
och g(x) satisfierar villkoren
g 0 (x0 ) = k0 ,
g 0 (xn ) = kn .
(403)
g 0 (xn ) = f 0 (xn ).
(404)
och randvillkoren
g 0 (x0 ) = f 0 (x0 ),
g(x) skall spline-interpolera f (x) i punkterna xk .
Den kubiska spline-funktionen g(x) ¨ar en tv˚
a g˚
anger deriverbar funktion i hela
intervallet [a, b]. g(x) best¨ams av de givna delintervallen [xk , xk+1 ] och interpolerar
f (x) med olika polynom Pk (x) av grad ≤ 3. g(x) best˚
ar d˚
a av n s˚
adana polynom
Pk (x), en i varje delintervall.
SATS 1 (se THEOREM 17.4.1, AEM)
L˚
at f (x) vara en funktion i intervallet a ≤ x ≤ b som inneh˚
aller (givna olika)
n¨atpunkterna (401). L˚
at k0 och kn vara tv˚
a givna tal. D˚
a finns det en och endast
en kubisk spline-funktion g(x) som definieras med (401) och satisfierar (402), (403)
och (404).
Ekvidistanta fallet
x0 ,
x1 = x0 + h, . . . xn = x0 + nh
(405)
I varje delintervall xj ≤ x ≤ xj+1 = xj + h ¨ar den kubiska spline-funktionen
g(x) ett tredjegradspolynom
pj (x) = aj0 + aj1 (x − xj ) + aj2 (x − xj )2 + aj3 (x − xj )3
j = 0, 1, . . . n − 1. (406)
d¨ar
aj0 = pj (xj ) = fj
aj1 = p0j (xj ) = kj
1 00
3
1
aj2 =
pj (xj ) = 2 (fj+1 − fj ) − 2 (kj+1 + 2kj )
2
h
h
1 000
2
1
aj3 =
pj (xj ) = 3 (fj − fj+1 ) + 2 (kj+1 + kj )
6
h
h
180
och talen kj ¨ar en l¨osning till ett linj¨art ekvationssystem med en trediagonal matris
kj−1 + 4kj + kj+1 =
3
(fj+1 − fj−1 ),
h
j = 1, 2, . . . n − 1.
(407)
Exempel 13.1
Interpolera f (x) = x4 i intervallet −1 ≤ x ≤ 1 med en kubisk spline-funktion g(x);
n¨atpunkterna ¨ar
a = x0 = −1 < x1 = 0 < x2 = b = 1 (n = 2)
och randvillkoren
g 0 (−1) = f 0 (−1),
g 0 (1) = f 0 (1).
L¨
osning. Skriv interpolationsdata
f0 = f (−1) = 1, f1 = f (0) = 0, f2 = f (1) = 1.
Den kubiska spline-funktionen best˚
ar av n = 2 kubiska polynom (406)
p0 (x) = a00 + a01 (x + 1) + a02 (x + 1)2 + a03 (x + 1)3 j = 0, −1 ≤ x ≤ 0,
p1 (x) = a10 + a11 x + a12 x2 + a13 x3 j = 1, 0 ≤ x ≤ 1.
Steg 1. Best¨am talen kj som en l¨osning till det linj¨ara ekvationssystemet (407).
Vi har n = 2 ekvationer i systemet
3
k0 + 4k1 + k2 = (f2 − f0 ) = 3(1 − 1) = 0 (j = 1),
1
(408)
d¨ar
p00 (x0 ) = k0
och p01 (x2 ) = k2 .
Eftersom g = p0 i punkten x0 = −1 och g = p1 i punkten x2 = 1 och f 0 (x) = 4x3 ,
f˚
ar vi (g 0 = f 0 i punkten x = ±1)
f 0 (−1) = −4 = g 0 (−1) = p00 (−1) = k0 ,
f 0 (1) = 4 = g 0 (1) = p01 (1) = k2 .
D˚
a , har ekvationen (408) en obekant k1 och skrivs som
−4 + 4k1 + 4 = 0
→
k1 = 0.
Steg 2. Skriv systemen f¨or att best¨amma koefficienterna av tv˚
a polynomen p0
och p1 . F¨orst best¨am p0 i intervallet −1 ≤ x ≤ 0 (j = 0):
a00 = p0 (−1) = f0 = 1, a01 = p00 (−1) = k0 = −4,
1 00
3
1
a02 =
p0 (x0 ) = 2 (f1 − f0 ) − (k1 + 2k0 ) = 3(0 − 1) − (0 − 8) = 5,
2
1
1
2
1
1 000
p0 (x0 ) = 3 (f0 − f1 ) + 2 (k1 + k0 ) = 2(1 − 0) + (0 − 4) = −2.
a03 =
6
1
1
181
Nu, best¨am polynomet p1 i intervallet 0 ≤ x ≤ 1 (j = 1):
a10 = p1 (0) = f1 = 0, a11 = p01 (0) = k1 = 0,
1 00
3
1
a12 =
p1 (0) = 2 (f2 − f1 ) − 2 (k2 + 2k1 ) = 3(1 − 0) − (4 + 0) = −1,
2
1
1
1 000
2
1
a13 =
p1 (0) = 3 (f1 − f2 ) + 2 (k2 + k1 ) = 2(0 − 1) + (4 + 0) = 2.
6
1
1
Systemens l¨osning ger polynomen
p0 (x) = 1 − 4(x + 1) + 5(x + 1)2 − 2(x + 1)3 = −x2 − 2x3 , −1 ≤ x ≤ 0 (j = 0),
p1 (x) = 0 + 0 · x − x2 + 2x3 = −x2 + 2x3 , 0 ≤ x ≤ 1 (j = 1).
(409)
Den kubiska spline-funktionen g(x) best˚
ar av tv˚
a kubiska polynom (409):
½
−x2 − 2x3 , −1 ≤ x ≤ 0,
g(x) =
−x2 + 2x3 , 0 ≤ x ≤ 1.
Exempel 13.2
Interpolera f¨oljande m¨atv¨arden (interpolationsdata)
f0 = f (0) = 1,
f1 = f (2) = 9,
f2 = f (4) = 41,
f3 = f (6) = 41
(410)
med en kubisk spline-funktion g(x) som satisfierar villkoren (403) med k0 = 0 och
k3 = −12 .
L¨
osning. Vi skall interpolera funktionen f (x) som satisfierar interpolationsvillkoren (410) i intervallet 0 ≤ x ≤ 6 med en kubisk spline-funktion g(x); ekvidistanta
n¨atpunkterna a¨r
a = x0 = 0 < x 1 = 2 < x 2 = 4 < x 3 = b = 6
(n = 3, h = 2).
Steg 1. Best¨am talen kj som en l¨osning till det linj¨ara ekvationssystemet (407),
kj−1 + 4kj + kj+1 =
3
(fj+1 − fj−1 ),
h
j = 1, 2.
Vi har n = 2 ekvationer i det h¨ar systemet
3
k0 + 4k1 + k2 = (f2 − f0 ) = 60, j = 1,
2
3
k1 + 4k2 + k3 = (f3 − f1 ) = 48, j = 2,
2
182
Enligt problemets villkor k0 = 0 och k3 = −12, s˚
a f˚
ar vi systemet
4k1 + k2 = 60,
k1 + 4k2 = 60,
och dess l¨osning ¨ar k1 = 12 och k2 = 12.
Steg 2. Skriv systemen f¨or att best¨amma koefficienterna av tre polynomen p0 ,
p1 och p2 . Interpolationsdata a¨r
x0 = 0, x1 = 2, x2 = 4, x3 = 6
f0 = 1, f1 = 9, f2 = 41, f3 = 41
k0 = 0, k1 = 12, k2 = 12, k3 = −12.
F¨orst best¨am p0 i intervallet 0 ≤ x ≤ 2 (j = 0):
a00 = f0 = 1, a01 = k0 = 0,
3
1
3
1
a02 = 2 (f1 − f0 ) − (k1 + 2k0 ) = (9 − 1) − (12 + 0) = 0,
2
2
4
2
2
1
1
1
a03 = 3 (f0 − f1 ) + 2 (k1 + k0 ) = − (9 − 1) + (12 + 0) = 1.
2
2
4
4
Nu, best¨am polynomet p1 i intervallet 2 ≤ x ≤ 4 (j = 1):
a10 = f1 = 9, a11 = k1 = 12,
3
1
3
1
a12 = 2 (f2 − f1 ) − (k2 + 2k1 ) = (41 − 9) − (12 + 24) = 6,
2
2
4
2
2
1
1
1
a13 = 3 (f1 − f2 ) + 2 (k2 + k1 ) = − (41 − 9) + 24 = −2.
2
2
4
4
F¨or polynomet p1 i intervallet 4 ≤ x ≤ 6 (j = 2) f˚
ar vi systemet
a20 = f2 = 41, a21 = k2 = 12,
3
1
3
1
a22 = 2 (f3 − f2 ) − (k3 + 2k2 ) = 0 − (−12 + 24) = −6,
2
2
4
2
2
1
1
1
a23 = 3 (f2 − f3 ) + 2 (k3 + k2 ) = − 0 + = 0.
2
2
4
0
Nu, skriv alla tre kubiska polynomen p0 , p1 och p2 .
p0 (x) = 1 + 0 · x + 0 · x2 + 1 · x3 = 1 + x3 , 0 ≤ x ≤ 2 (j = 0),
p1 (x) = 9 + 12 · (x − 2) + 6(x − 2)2 − 2(x − 2)3 = 25 − 36x + 18x2 − 2x3 , 2 ≤ x ≤ 4 (j = 1),
p2 (x) = 41 + 12(x − 4) − 6(x − 4)2 + 0 · (x − 4)3 = −103 + 60x − 6x2 , 4 ≤ x ≤ 6 (j = 2).
och den kubiska spline-funktionen g(x),

 1 + x3 ,
25 − 36x + 18x2 − 2x3 ,
g(x) =

−103 + 60x − 6x2 ,
183
0 ≤ x ≤ 2,
2 ≤ x ≤ 4,
4 ≤ x ≤ 6.
13.2
Problem
Problem 13.1 (se Problem 17.4.11, AEM)
Best¨am den kubiska spline-funktionen som upfyller
f0 = f (−1) = 0, f1 = f (0) = 4, f2 = f (1) = 0
med k0 = 0 och k2 = 0 .
L¨
osning. Vi skall best¨amma en kubisk spline-funktion g(x) i intervallet −1 ≤ x ≤
1; ekvidistanta n¨atpunkterna ¨ar
a = x0 = −1 < x1 = 0 < x2 = b = 1 (n = 2, h = 1).
Steg 1. Best¨am talen kj . Motsvarande linj¨ara ekvationssystemet (407) best˚
ar
av en ekvation
kj−1 + 4kj + kj+1 =
eller
3
(fj+1 − fj−1 ),
h
j = 1,
3
k0 + 4k1 + k2 = (f2 − f0 ) = 0,
1
som ger k1 = 0.
Steg 2. Skriv systemen f¨or att best¨amma koefficienterna av tv˚
a polynomen p0
och p1 . Interpolationsdata ¨ar
x0 = −1, x1 = 0, x2 = 1
f0 = 0, f1 = 4, f2 = 0
k0 = 0, k1 = 0, k2 = 0.
F¨or polynomet p0 , −1 ≤ x ≤ 0 (j = 0):
a00 = f0 = 0, a01 = k0 = 0,
3
1
a02 = 2 (f1 − f0 ) − (k1 + 2k0 ) = 3(4 − 0) − 0 = 12,
1
1
2
1
a03 = 3 (f0 − f1 ) + 2 (k1 + k0 ) = 2(0 − 4) + 0 = −8.
1
1
F¨or polynomet p1 , 0 ≤ x ≤ 1 (j = 1):
a10 = f1 = 4, a11 = k1 = 0,
1
3
a12 = 2 (f2 − f1 ) − (k2 + 2k1 ) = 3(0 − 4) − 0 = −12,
1
1
2
1
a13 = 3 (f1 − f2 ) + 2 (k2 + k1 ) = 2(4 − 0) + 0 = 8.
1
1
184
Nu, kan vi skriva b˚
ada kubiska polynomen
p0 (x) = 0 + 0 · (x + 1) + 12 · (x + 1)2 − 8 · (x + 1)3 = 4 − 12x2 − 8x3 , −1 ≤ x ≤ 0 (j = 0),
p1 (x) = 4 + 0 · x − 12x2 + 8x3 = 4 − 12x2 + 8x3 , 0 ≤ x ≤ 1 (j = 1),
och den kubiska spline-funktionen g(x),
½
4 − 12x2 − 8x3 , −1 ≤ x ≤ 0,
g(x) =
4 − 12x2 + 8x3 , 0 ≤ x ≤ 1.
Den kubiska spline-funktionen g(x) ¨ar en j¨amn funktion eftersom p0 (−x) =
p1 (x). Observera att interpolationsdata {xj }, {fj }, {kj } ¨ar en j¨amn m¨angd.
14
Approximation
Vi vill approximera en kontinuerlig funktion f (x), x ∈ [a, b] (vi skriver f (x) ∈
C[a, b]) med ett polynom Pn (x) av grad n eller mindre, som inte n¨odv¨andigtvis sammanfaller med f (x) i n˚
agra punkter. Approximationspolynomet ska vara s˚
adant
att felfunktionen f (x) − Pn (x) ¨ar liten i hela intervallet x ∈ [a, b].
Det finns olika typer av m˚
att som definierar approximationens n¨arhet Vi ska
best¨amma ett polynom Pn (x) s˚
a att maximumnormen (eller Chebyshevnormen)
||Pn − f ||C = max |Pn (x) − f (x)|,
a≤x≤b
minimeras eller ett polynom Pn (x) s˚
a att L2 -normen
Z
© b
ª1
||Pn − f ||2 =
(Pn (x) − f (x))2 dx 2 .
a
minimeras.
Sats 1 (Weierstrass sats) L˚
at f (x) ∈ C[a, b]. Till varje godtyckligt ² > 0 finns
det ett polynom Pn (x) s˚
adant att
|Pn (x) − f (x)| ≤ ²,
x ∈ [a, b].
Sats 2. L˚
at f (x) ∈ C[a, b]. Till varje godtyckligt heltal n finns ett entydigt
best¨amt polynom πn (x) av grad n eller mindre s˚
adant att
δn = max |πn (x) − f (x)| ≤ max |Pn (x) − f (x)|
a≤x≤b
a≤x≤b
185
f¨or varje polynom Pn (x) av grad n eller mindre. Det finns n+2 punkter x0 , x1 , . . . , xn , xn+1
som tillh¨or [a, b], x0 < x1 < · · · < xn < xn+1 , s˚
adana att
πn (xi ) − f (xi ) = (−1)i δn ,
i = 0, 1, . . . , n
eller
πn (xi ) − f (xi ) = (−1)i+1 δn ,
i = 0, 1, . . . , n.
Observera att enligt Sats 1, δn → 0 d˚
a n → ∞.
Man s¨ager att man best¨ammer den i maximumnormens mening b¨asta approximationen πn (x) till funktionen f (x).
Det finns ingen allm¨an algoritm att best¨amma polynomet πn (x). Man kan g¨ora
detta genom att ers¨atta intervallet [a, b] med en punktm¨angd
J = ωn+2 = {x0 , x1 , . . . , xn , xn+1 }.
Vidare, genomf¨or man flera steg och best¨amma ett polynom πn (x) av grad n eller
mindre s˚
adant att
max |πn (x) − f (x)| ≤ max |Pn (x) − f (x)|,
x∈J
x∈J
d¨ar Pn (x) ¨ar ett godtyckligt polynom av grad n eller mindre.
Sats 3. L˚
at
x0 , x1 , . . . , xn , xn+1 ,
x0 < x1 < · · · < xn < xn+1 ,
vara n + 2 godtyckliga, fr˚
an varandra skilda punkter. Till ett godtyckligt polynom
Pn (x) av grad n eller mindre finns konstanter λ0 , λ1 , . . . , λn , λn+1 av alternerande
tecken (dvs produkterna λ0 λ1 , λ1 λ2 , . . . , λn λn+1 ¨ar negativa) s˚
adana att
n+1
X
λi Pn (xi ) = 0
(411)
i=0
och
1
1
1
...
;
x0 − x1 x0 − x2
x0 − xn+1
1
1
1
1
λi =
...
...
, i = 1, 2, . . . n,
xi − x0
xi − xi−1 xi − xi+1
xi − xn+1
1
1
1
λn+1 =
...
.
xn+1 − x0 xn+1 − x1
xn+1 − xn
λ0 =
186
(412)
Bevis. Vi ska visa satsen i fallet n = 1, n¨ar man har n + 2 = 3 godtyckliga, fr˚
an
varandra skilda punkter x0 , x1 , x2 , tre konstanter skilda fr˚
an noll
1
1
,
x0 − x1 x0 − x2
1
1
λ1 =
,
x1 − x0 x1 − x2
1
1
,
λ2 =
x2 − x0 x2 − x1
λ0 =
(413)
samt polynomet Pn (x) = P1 (x) = ax + b av grad 1 (a 6= 0) eller mindre (a = 0) .
L˚
at oss uttrycka P1 (x) som
P1 (x) = ax + b =
1
X
©
u1j6=i
i=0
x − xj ª
P1 (xi ) =
xi − xj
x − x1
x − x0
(ax0 + b) +
(ax1 + b) ≡ ax + b.
x0 − x1
x1 − x0
Genom att s¨atta in x = x2 i den sista likheten och dividera med (x2 − x0 )(x2 − x1 ),
f˚
ar man identiteten
1
1
1
1
P1 (x0 ) +
P1 (x1 ) +
x0 − x1 x0 − x 2
x1 − x0 x1 − x2
1
1
P1 (x2 ) = 0,
x2 − x0 x2 − x1
som sammanfaller med formeln (411) i fallet n = 1:
2
X
λi P1 (xi ) = λ0 P1 (x0 ) + λ1 Pn (x1 ) + λ2 Pn (x2 ) = 0.
(414)
i=0
Definiera f¨oljande terminologi.
aende av n + 2 fr˚
an
1. En referensm¨angd ¨ar en punktm¨angd (n¨at) J = ωn+2 best˚
varandra skilda tal x0 , x1 , . . . , xn , xn+1 , x0 < x1 < · · · < xn < xn+1 .
2. Ett referenspolynom med avseende p˚
a funktionen f (x) och referensm¨angden J
adant att v¨ardena
¨ar ett polynom Pn (x) av grad n eller mindre s˚
hi = Pn (xi ) − f (xi ) i = 0, 1, . . . , n, n + 1,
har alternerande tecken.
187
3. Ett niv˚
a-referenspolynom ¨ar ett referenspolynom s˚
adant att alla hi har samma
absolutbelopp.
4. Referensavvikelsen till referensm¨angden och niv˚
a-referenspolynomet ¨ar talet
H = |h0 | = |h1 | = . . . = |hn+1 |.
Vi ska visa att till den givna referensm¨angden och funktionen f (x), finns det
ett entydigt best¨amt niv˚
a-referenspolynom.
Sats 4. Till en (given) funktion f (x) och referensm¨angd R : x0 , x1 , . . . , xn+1 , x0 <
x1 < · · · < xn+1 finns det ett entydigt best¨amt niv˚
a-referenspolynom Pn (x) av grad
n eller mindre s˚
adant att
Pn (xi ) = f (xi ) + (−1)i δ,
i = 0, 1, . . . , n + 1,
d¨ar
Pn+1
i=0 λi f (xi )
δ = −sgn λ0 P
n+1
i=0 |λi |
(415)
och λi f˚
as ur (412). Referensavvikelsen ¨ar
P
| n+1
i=0 λi f (xi )|
.
H = |δ| =
P
n+1
i=0 |λi |
Om Qn (x) ¨ar ett godtyckligt polynom av grad n eller mindre s˚
adant att
max |Qn (x) − f (x)| = H,
x∈R
d˚
a
Qn (x) ≡ Pn (x).
Antag nu att x0 , x1 , . . . , xn+1 ; x0 < x1 < · · · < xn+1 a¨r en referensm¨angd och
Pn (x) ¨ar ett referenspolynom (inte n¨odv¨andigtvis ett niv˚
a-referenspolynom) med
avseende p˚
af (x). Beteckna
hi = Pn (xi ) − f (xi ), i = 0, 1, 2, . . . , n + 1.
Man kan visa att referensavvikelsen H kan skrivas som
H =
n+1
X
wi |hi |,
i=0
188
d¨ar viktfunktionerna
|λi |
wi = Pn+1
i=0 |λi |
¨ar positiva funktioner och λi ¨ar definierade i (411).
H¨ar f¨oljer en algoritm att best¨amma polynomet πn (x) som ger den i maximumnormens mening b¨asta approximationen till f (x).
1. V¨alj n + 2 punkter x0 , x1 , . . . , xn+1 (punktm¨angd J) s˚
adana att x0 < x1 <
· · · < xn+1 , dvs en referensm¨angd, R
2. Best¨am niv˚
a-referenspolynomet Pn (x) och referensavvikelsen H som motsvarar
R.
3.
Best¨am x = z ∈ J s˚
adan att
|Pn (z) − f (z)| = max |Pn (x) − f (x)| = ∆.
x∈J
Avbryt om ∆ = H.
4. Best¨am en ny referensm¨angd J 0 som uppfyller tv˚
a villkor: (1) J 0 inneh˚
aller z
och (2) Pn (x) ¨ar ett referenspolynom med avseende p˚
a den nya referensm¨angden
0
J . Anv¨and f¨oljande algoritm:
om z ∈ [xi , xi+1 ], i = 0, 1, . . . , n, ers¨att xi med z om sgn( Pn (z) − f (z)) =
sgn (Pn (xi ) − f (xi )); annars ers¨att
xi+1 med z. Om z < x0 , ers¨att x0 med z om sgn( Pn (x0 )−f (x0 )) = sgn (Pn (z)−
f (z)); annars ers¨att
xn+1 med z. Anv¨and samma algoritm om z > xn+1 .
5.
Ta den nya referensm¨angden J 0 och g˚
a till steg 2.
N¨ar processen avslutas, f˚
ar man en referensm¨angd R∗ , referensavvikelsen H ∗
som motsvarar R∗ och ett polynom πn (x) som ¨ar niv˚
a-referenspolynomet till R∗ .
Om τn (x) ¨ar ett polynom av grad n eller mindre, d˚
a , enligt Sats 3, antingen
τn (x) ≡ πn (x) eller τn (x) har maximumabsolutavvikelsen, som ¨ar st¨orre ¨an H ∗
(som motsvarar R∗ ).
14.1
B¨
asta polynomapproximationen i maximumnorm
L˚
at oss betrakta tv˚
a exempel d¨ar vi best¨ammer polynom P1 (x) av grad 1 eller
mindre som med avseende p˚
a maximumnormen ger den b¨asta polynomapproximationen till tv˚
a givna kontinuerliga funktioner f (x) i intervallet [0, 1].
189
Figur 51: Approximation av funktionen f (x) = x2 , x ∈ [0, 1], med ett polynom
av grad 1.
Exempel 14.1 Approximera funktionen
f (x) = x2 ,
x ∈ [0, 1],
med ett polynom av grad 1. Vi ska l¨osa problemet analytiskt genom att betrakta
ett polynom P1 (x) av grad 1 eller mindre
P1 (x) = ax + b.
Approximationspolynomet ska vara s˚
adant att felfunktionens maximumnorm
max |f (x) − P1 (x)|
0≤x≤1
¨ar minimal.
Enligt Sats 2, best¨ammer vi den i maximumnormens mening b¨asta polynomapproximationen π1 (x) genom att minimera maximumnormen
r1 (a, b) = max |R1 (x)|,
0≤x≤1
R1 (x) = x2 − ax − b
med avseende p˚
a , allm¨ant, alla reela talpar a, b.
Vi ska inte betrakta det h¨ar minimeringsproblemet med avseende p˚
a alla reela
tal utan vi ska l¨agga p˚
a vissa naturliga begr¨ansningar, som f¨oljer ur egenskaper
av felfunktionen R1 (x). N¨amligen, antar vi att a = 1 och −0.25 < b < 0. Villkoret
inneb¨ar att alla r¨ata linjer y = P1 (x) = x + b ligger (f¨or olika b) inom parallellogrammen, som inneh˚
aller parabolen y = x2 , d¨ar tv˚
a st¨orre sidor sammanfaller
2
med tangenten x − 0.25 till parabolen y = x i punkten x = ξ = 0.5 och r¨ata linjen y = x (se Figur 51). Vidare, kan man betrakta felfunktionens maximumnorm
r1 = r1 (b) som en funktion av en variabel b, d¨ar −0.25 < b < 0.
190
Figur 52: Felfunktionen |R1 (x)| = |x2 − x + 0.125|.
Man kan skriva felfunktionens maximumnorm (i fallet a = 1, se Figur 53)
r1 (b) = max |x2 − x − b| = max{|R1 (0)|; |R1 (0.5)|; |R1 (1)|} = max{−b; |b + 0.25|},
0≤x≤1
eftersom funktionen R1 (x) har bara tre extrempunkterna x = 0, 0.5, 1 i intervallet
[0, 1] och R1 (0) = R1 (1) = −b > 0 (se Figur 52).
Figur 53: Approximation av funktionen f (x) = x2 , x ∈ [0, 1], med ett polynom
av grad 1: felfunktionens maximumnorm.
r1 (b) ¨ar en styckvis-linj¨ar funktion, dess avtagande del r1 (b) = −b, −0.25 <
b < b0 , dess v¨axande del r1 (b) = b + 0.25, b0 < b < 0, och b0 ¨ar en sk¨arningspunkt
mellan y = −b och y = b + 0.25. D˚
a
min
−0.25<b<0
r1 (b) = r1 (b0 ) = 0.125; b0 = −0.125,
och den i maximumnormens mening b¨asta polynomapproximationen
π1 (x) = x − 0.125.
Ber¨akna maximumnormen
||π1 (x) − f (x)|| = max |x2 − x + 0.125| = 0.125.
0≤x≤1
191
Villkoren
π1 (xi ) − f (xi ) = (−1)i+1 δ2 , i = 0, 1, 2; δ2 = 0.125
satisfieras i referenspunkterna (referensm¨angden)
x0 = 0, x1 = 0.5, x2 = 1.
Man kan f˚
a samma resultat genom att utnyttja att felfunktionen R1 (x) =
x2 − ax − b antar extremv¨ardet med alternerande tecken (se Sats 2) i punkterna
x = 0, x = 1 och x = ξ = 0.5a (eftersom derivatan (ax + b − x2 )0 = a − 2x = 0,
x = ξ). Best¨am konstanter a och b s˚
adana att
max |ax + b − x2 |
0≤x≤1
minimeras. Antag att a > 0 (eftersom punkten x = 0.5a tillh¨or intervallet [0, 1]
om 0 < a < 2). Enligt Sats 2, kommer vi att best¨amma a och b s˚
adana att
ax + b − x2 = b = −δ2 (x = 0);
ax + b − x2 = 0.25a2 + b = δ2 (x = 0.5a);
ax + b − x2 = a + b − 1 = −δ2 (x = 1);
L¨osningen till motsvarande ekvationssytem ¨ar
a = 1, b = −0.125, δ2 = 0.125,
och den i maximumnormens mening b¨asta polynomapproximationen π1 (x) = x −
0.125.
Exempel 14.2 Approximera funktionen
f (x) = ex
i intervallet [0, 1]. L¨osningen ¨ar
π1 (x) = 1.718282x + 0.894607
och maximumnormen
max |π1 (x) − f (x)| = 0.105933.
0≤x≤1
L˚
at J = ω101 vara en punktm¨angd (n¨at)
ti =
i
, i = 0, 1, 2, . . . , 100,
100
192
och l˚
at oss b¨orja med referensm¨angden
x0 = 0, x1 = 0.5, x2 = 1.0.
Vi har
f (x0 ) = 1.0000, f (x1 ) = 1.6487, f (x2 ) = 2.7183,
f (x) = ex .
Best¨am niv˚
a-referenspolynomet P (x) och referensavvikelsen H. Ur (413), f¨oljer
1
1
= 2,
x0 − x1 x0 − x2
1
1
λ1 =
= −4,
x1 − x0 x1 − x 2
1
1
= 2.
λ2 =
x2 − x0 x2 − x1
λ0 =
Formeln (415) ger oss δ,
δ=−
2(1.0000) − 4(1.6487) + 2(2.7183)
= −0.1052,
2+4+2
och sedan referensavvikelsen
H = 0.1052.
Antag att ist¨allet f¨or referensm¨angden J b¨orjar vi med n˚
agon annan referensm¨angd som har niv˚
a-referenspolynomet
Q(x) = 0.9 + 1.6x.
I detta fall
h0 = Q(x0 ) − f (x0 ) = 0.9 − 1.0000 = −0.1000,
h1 = Q(x1 ) − f (x1 ) = 1.7 − 1.6487 = 0.0513,
h2 = Q(x2 ) − f (x2 ) = 2.5 − 2.7183 = −0.2183
och det betyder att Q(x) ¨ar ett niv˚
a-referenspolynom till J. Kolla villkoret (413).
Vi har
1
1
1
w 1 = , w2 = , w 3 =
4
2
4
och avvikelsen
1
1
1
H = 0.1052 = |h0 | + |h1 | + |h2 | =
4
2
4
1
1
1
(0.1000) + (0.0513) + (0.2183).
4
2
4
193
Best¨am vidare P (x) med hj¨alp av linj¨ar interpolation i punkterna x0 och x1 ;
motsvarande interpolationsv¨arden ¨ar
P (x0 ) = f (x0 ) + δ = 0.8948, P (x1 ) = f (x1 ) − δ = 1.7539.
Skriv interpolationspolynomet
x − x0
P (x) = P (x0 ) +
(P (x1 ) − P (x0 )) = 0.8948 + 1.7182x.
x1 − x0
Vi har
P (x2 ) = 2.6130 = f (x2 ) − 0.1053 = f (x2 ) + δ.
s˚
a att
λ0 P (x0 ) + λ1 P (x1 ) + λ2 P (x2 ) = 2(0.8948) − 4(1.7539) + 2(2.6130) = 0.
Polynomet P (x) ¨ar ett niv˚
a-referenspolynom som motsvarar referensm¨angden eftersom differenserna P (xi ) − f (xi ), i = 0, 1, 2, har alternerande tecken.
Maximumnormen
max |P (x) − f (x)| = |P (z) − f (z)| = 0.106656, z = 0.54.
x∈J
Man f˚
ar ers¨atta referensm¨angden {0, 0.5 , 1} med referensm¨angden {0, 0.54, 1}
eftersom P (z) − f (z) = 0.106656. Vidare, best¨ammer vi niv˚
a-referenspolynomet
π1 (x) = 1.718282x + 0.894607
som motsvarar den h¨ar referensm¨angden. Referensavvikelsen H = 0.105933 sammanfaller med
max |π1 (x) − f (x)| = |π1 (1) − f (1)| = 0.105933;
x∈J
d˚
a f˚
ar man avsluta och π1 (x) blir den i maximumnormens mening b¨asta polynomapproximationen.
Hur ska man v¨alja startreferensm¨angden? Ett alternativ ¨ar att s¨atta x0 = a
och xn+1 = b och att v¨alja sedan n ekvidistanta punkter som ligger mellan x0 och
xn+1 (ett likformigt n¨at ωn+2 i intervallet [a, b]).
Man kan ocks˚
a v¨alja startreferensm¨angden som Chebyshevabskissorna
b+a b−a
πi
xi =
+
cos
, i = 0, 1, . . . , n + 1
2
2
n+1
(se (425)). N¨ar a = −1 och b = 1, sammanfaller Chebyshevm¨angden med extremv¨ardena av Chebyshevpolynom Tn+1 (x) av grad n + 1
Tn+1 (x) = cos ((n + 1) arccos x),
(416)
Om n = −1, 0, 1, 2, f˚
ar man
T0 (x) = 1; T1 (x) = x; T2 (x) = 2x2 − 1; T3 (x) = 4x3 − 3x2 , . . . .
194
(417)
14.2
Chebyshevpolynom
Chebyshevpolynomen av f¨orsta typ, Tn , och andra typ, Un , definieras f¨or heltal
n ≥ 0 av differensekvationen
Tn (x) = 2xTn−1 (x) − Tn−2 (x),
Un (x) = 2xUn−1 (x) − Un−2 (x),
n = 2, 3, ...,
och
T0 (x) = 1,
T1 (x) = x (n = 0, 1),
U0 (x) = 1,
U1 (x) = 2x (n = 0, 1).
eller
Om |x| ≤ 1, d˚
a g¨aller
Tn (x) = cos(n arccos x),
Un (x) = √
n = 0, 1, . . . ;
1
sin ((n + 1) arccos x),
1 − x2
n = 0, 1, . . . .
(418)
(419)
I punkterna x = ±1, ers¨atts (419) med ett gr¨ansv¨arde.
Formeln (418) (och (418)) visar att Chebyshevpolynomen Tn och Un verkligen
a¨r polynom (av grad n) och f¨oljande g¨aller
Un (x) =
1
T 0 (x),
n + 1 n+1
n = 0, 1, . . . ,
T0 (x) =
T1 (x) =
T2 (x) =
T3 (x) =
T4 (x) =
T5 (x) =
T6 (x) =
1,
x,
2x2 − 1,
4x3 − 3x,
8x4 − 8x2 + 1,
16x5 − 20x3 + 5x,
32x6 − 48x4 + 18x2 − 1;
(420)
U0 (x) =
U1 (x) =
U2 (x) =
U3 (x) =
U4 (x) =
U5 (x) =
U6 (x) =
1,
2x,
4x2 − 1,
8x3 − 4x,
16x4 − 12x2 + 1,
32x5 − 32x3 + 6x,
64x6 − 80x4 + 24x2 − 1.
(421)
195
√Chebyshevpolynomen Tn (x) ¨ar ortogonala
1/ 1 − x2 i intervallet [−1, 1]:

Z1

1
Tn (x)Tm (x) √
dx =

1 − x2
−1
med avseende p˚
a viktfunktionen
0,
n 6= m
π/2, n = m 6= 0
π,
n = m = 0.
Chebyshevpolynomen Un (x) ¨ar ortogonala med avseende p˚
a viktfunktionen
i intervallet [−1, 1]
Z1
√
Un (x)Um (x) 1 − x2 dx =
½
0,
n 6= m
.
π/2, n = m
(422)
√
1 − x2
(423)
−1
Chebyshevpolynomens nollst¨allen xk , k = 0, 1, . . . , f˚
as ur
Tn (xk ) = cos(n arccos xk ) = 0 (n = 0, 1, . . . ),
dvs
π
n arccos xk = (2k + 1) ,
2
eller
xk = cos
(2k + 1)π
,
2n
k = 0, ±1, ±2, . . . ,
k = 0, ±1, ±2, . . . ,
(424)
(n = 0, 1, . . . ),
n = 0, 1, . . . .
(425)
Problem 14.1
Ber¨akna maximumnormerna och L2 -normerna ||Pn − f || i intervallet [a, b] f¨or
(a) f (x) = x2 − 3x + 2; a = 0, b = 1, n = 1, P1 (x) = −3x + 2;
(b) f (x) = √
x3 − 2; a = −1, b = 1, n = 2, P2 (x) = x2 − 2;
(c) f (x) = x + 4; a = −4, b = 0, n = 1, P1 (x) = 0.5x + 2.
Problem 14.2
Best¨am niv˚
a-referenspolynomet P0 (x) ≡ P0 = const av grad n = 0 som
motsvarar en referensm¨angd best˚
aende av 2 punkter, rita grafer och ber¨akna referensavvikelsen (med tre signifikanta siffror) f¨or funktionerna f (x) nedan.
(a) f (x) = x3 + 2; x0 = 0, x1 = 1.
(b) f (x) = √
sin πx; x0 = 0.25, x1 = 0.5.
(c) f (x) = x; x0 = 0, x1 = 2.
Problem 14.3
Best¨am konstanter λi och referensavvikelsen H till referensm¨angden som ¨ar
ett likformigt n¨at ωn+2 i intervallet [a, b] med stegl¨angden h (best˚
aende av n + 2
ekvidistanta punkter) f¨or funktionerna f (x) nedan.
196
(a) f (x) = x2 + 1; x0 = 0, h = 0.1, n = 2.
(b) f (x) = sin πx; x0 = 0, h = 0.25, n = 1.
(c) f (x) = 2x ; x0 = 0, h = 1, n = 1.
Problem 14.4
Anv¨and metoden beskriven i Exemplet 14.1 och best¨am den i maximumnormens mening b¨asta polynomapproximationen av grad 1 till funktionen
f (x) = ex ,
x ∈ [0, 1]
(se Exemplet 14.2).
Problem 14.5
H¨arled formeln (422) ur
Zπ
cos nx cos mxdx = 0,
n 6= m,
n m = 0, ±1, ±2,
.
−π
15
15.1
Facit
Problem 3.2
Best¨am differensscheman (med 2D) i noderna xk = kh, k = 0, 1, 2, . . . , N f¨or
√
a) f (x) =
2x + 1, h = 0.2, N = 5.
MATLABkoden
h =.2; b=1; x = 0:h:b;
x, kolonn1=diff(sqrt(2.*x+1)),
kolonn2=diff(kolonn1),
kolonn3=diff(kolonn2),
kolonn4=diff(kolonn3),
kolonn5=diff(kolonn4)
konstruerar
√
Differensschemat f¨or f (x) = 2x + 1, xk = kh, k = 0, 1, 2, 3, 4, 5, h = 0.2
x=
0 0.2000 0.4000 0.6000 0.8000 1.0000
197
kolonn1 =
0.1832 0.1584 0.1416 0.1292 0.1196
kolonn2 =
-0.0248 -0.0168 -0.0124 -0.0096
kolonn3 =
0.0080 0.0044 0.0028
kolonn4 =
-0.0035 -0.0017
kolonn5 =
0.0019
15.2
Problem 5.2.
Ber¨akna integralen
Z
3
y(x)dx
0
med trapets formeln d¨ar funktionen y(x) ges som talpar
(x0 , y0 ) (x1 , y1 ) (x2 , y2 ) (x3 , y3 )
(0, 0) (1, 1) (2, 2) (3, 3).
L¨
osning. Enligt trapets formeln
Z 3
y(x)dx ≈ h(0.5y0 + y1 + y2 + 0.5y3 ) = 1 · (0 + 1 + 2 + 1.5) = 4.5
0
Genomf¨or numerisk integration genom styckvis linj¨ar interpolation som utf¨oras
genom att vi konstruerar en styckvis linj¨ar interpolationsfunktion F (M ; x) som
sammanfaller med M +1 givna interpolationsv¨arden. H¨ar antalet delintervall M =
3. I varje intervall [xk , xk+1 ], k = 0, 1, 2, d¨ar (xk , yk ) ¨ar interpolationsdata
(x0 , y0 ) (x1 , y1 ) (x2 , y2 ) (x3 , y3 )
(0, 0) (1, 1) (2, 2) (3, 3)
f˚
as F (M ; x) genom
F (M ; x) = yk +
x − xk
(yk+1 − yk ),
xk+1 − xk
x ∈ [xk , xk+1 ],
k = 0, 1, 2.
k = 0:
F (M ; x) = y0 +
x − x0
x−0
(y1 − y0 ) = 0 +
(1 − 0) = x,
x1 − x0
1−0
x ∈ [0, 1].
x−1
x − x1
(y2 − y1 ) = 1 +
(2 − 1) = x,
x2 − x1
2−1
x ∈ [1, 2].
k = 1:
F (M ; x) = y1 +
198
k = 2:
F (M ; x) = y2 +
x − x2
x−2
(y3 − y2 ) = 2 +
(3 − 2) = x,
x3 − x2
3−2
x ∈ [2, 3].
s˚
a att F (M ; x) = x i varje interpolationsintervall [0, 1], [1, 2], [2, 3] och i hela
intervallet [0, 3].
Observera att det exakta integralens v¨arde
¯3
Z 3
Z 3
x2 ¯¯
= 4.5.
y(x)dx =
xdx =
2 ¯0
0
0
sammanfaller med det som r¨aknas ovan med trapetsformeln.
15.3
Problem 5.3.
Ber¨akna integralen
Z
5
y(x)dx
1
med trapets formeln, d¨ar funktionen y(x) ges som talpar
(x0 , y0 ) (x1 , y1 ) (x2 , y2 ) (x3 , y3 ) (x4 , y4 )
(1, 1) (2, 4) (3, 9) (4, 16) (5, 25)
Lo
¨sning. Enligt trapets formeln
Z
5
y(x)dx ≈ h(0.5y0 + y1 + y2 + y3 + 0.5y4 ) = 1 · (0.5 + 4 + 9 + 16 + 12.5) = 42.
1
Anv¨and talparen (xi , yi ) ovan som interpolationsdata och konstruera motsvarande
styckvis linj¨ar interpolationsfunktionen F (M ; x).
Styckvis linj¨ar interpolation utf¨oras genom att vi konstruerar en styckvis linj¨ar
interpolationsfunktion F (M ; x) som sammanfaller med M + 1 givna interpolationsv¨arden. H¨ar antalet delintervall M = 4. I varje delintervall [xk , xk+1 ], k =
0, 1, 2, 3, d¨ar (xk , yk ) ¨ar interpolationsdata
(x0 , y0 ) (x1 , y1 ) (x2 , y2 ) (x3 , y3 ) (x4 , y4 )
(1, 1) (2, 4) (3, 9) (4, 16) (5, 25)
f˚
as F (M ; x) genom
F (M ; x) = F (4; x) = yk +
x − xk
(yk+1 − yk ),
xk+1 − xk
x ∈ [xk , xk+1 ],
k = 0, 1, 2, 3.
k = 0:
F (4; x) = y0 +
x − x0
x−1
(y1 − y0 ) = 1 +
(4 − 1) = 3x − 2,
x1 − x0
2−1
199
x ∈ [1, 2].
k = 1:
F (4; x) = y1 +
x − x1
x−2
(y2 − y1 ) = 4 +
(9 − 4) = 5x − 6,
x2 − x1
3−2
x ∈ [2, 3].
k = 2:
F (4; x) = y2 +
x − x2
x−3
(y3 − y2 ) = 9 +
(16 − 9) = 7x − 12,
x3 − x2
4−3
x ∈ [3, 4].
k = 3:
F (4; x) = y3 +
x−4
x − x3
(y4 − y3 ) = 16 +
(25 − 16) = 9x − 20,
x4 − x3
5−4
x ∈ [4, 5],
s˚
a att
F (4; x) = 3x − 2, x ∈ [1, 2],
= 5x − 6, x ∈ [2, 3],
= 7x − 12, x ∈ [3, 4],
= 9x − 20, x ∈ [4, 5].
Observera att funktionen
y(x) = x2
satisfierar villkoren
y(1) = 1, y(2) = 4, y(3) = 9, y(4) = 16, y(5) = 25
(ys kurva g˚
ar genom punkterna (1, 1) (2, 4) (3, 9) (4, 16) (5, 25)).
D˚
a blir det exakta integralens v¨arde (r¨akna med 3D)
¯5
Z 5
Z 5
x3 ¯¯
53 − 1
2
y(x)dx =
x dx =
= 41.333.
=
3 ¯1
3
1
1
Felet ¨ar 41.333 − 42 = −0.667.
15.4
Problem 6.1
Skriv differensekvationen
yi−1 − byi + yi+1 = fi ,
i = 1, 2, . . . , n.
som ett linj¨art ekvationssystem med en symmetrisk tridiagonal matris n¨ar
a) n = 3,
b) n = 4.
200
(426)
Framst¨alla matriserna p˚
a formen (138) i Kompendiet Numeriska metoder.
1. n = 3.
Man kan skriva (426) som ett linj¨art ekvationssystem med n = 3 obekanta yi ,
i = 1, 2, 3
i = 1 : −by1 + y2 + 0 · y3 = f1 − y0 ,
i = 2 : y1 − by2 + y3 = f2
i = 3 : 0 · y1 + y2 − by3 = f3 − y4
eller p˚
a matrisformen
Ay = b
med symmetriska tridiagonala matrisen A av typ 3 × 3


−b 1
0
A =  1 −b 1 
0
1 −b
och 3-dimensionella kolonnvektorerna




y1
f1 − y 0

y =  y2  , b =  f2
y3
f3 − y 4
Den tridiagonala matrisen A kan framst¨allas p˚
a formen
A = −bI + I−1 + I+1 ,
d¨ar


−b 0
1 0 0



0 −b
I = 0 1 0 , −bI =
0
0
0 0 1



0 0 0
0 1
I−1 =  1 0 0  , I+1 =  0 0
0 1 0
0 0


0
0 ,
−b

0
1 .
0
2. n = 4.
Man kan skriva (426) som ett linj¨art ekvationssystem med n = 4 obekanta yi ,
i = 1, 2, 3, 4,
i = 1 : −by1 + y2 + 0 · y3 + 0 · y4
i = 2 : y1 − by2 + y3 + 0 · y4
i = 3 : 0 · y1 + y2 − by3 + y4
i = 3 : 0 · y1 + 0 · y2 + y3 − by4
201
=
=
=
=
f1 − y 0 ,
f2
f3
f4 − y 5
eller p˚
a matrisformen
Ay = b
med symmetriska tridiagonala matrisen A av typ 4 × 4


−b 1
0
0
 1 −b 1
0 

A=
 0
1 −b 1 
0
0
1 −b
och 4-dimensionella kolonnvektorerna



y1
f1 − y 0
 y2 
 f2


y=
 y3  , b =  f3
y4
f4 − y 5




Den tridiagonala matrisen A kan framst¨allas p˚
a formen
A = −bI + I−1 + I+1 ,
d¨ar

1
 0
I=
 0
0
I−1
15.5
0
1
0
0

0
0
1
0
0 0
 1 0
=
 0 1
0 0

0
0 
,
0 
1
0
0
0
1
0
0
0
0


−b 0
0
0
 0 −b 0
0 
,
−bI = 
 0
0 −b 0 
0
0
0 −b



0 1 0 0



 , I+1 =  0 0 1 0  .

 0 0 0 1 
0 0 0 0
Problem 8.5
Visa att
A · B 6= B · A och A · O = O
genom att betrakta ett par exempel av tv˚
a kvadratiska matriser och tv˚
a rektangul¨ara matriser A och B av typ 2 × 2 och 3 × 2.
Betrakta tv˚
a kvadratiska matriser A och B av typ 2 × 2,
·
¸
·
¸
10 1
1 5
A=
och B =
.
12 2
−1 3
202
Vi har
·
9
A·B=
10
·
0
A·O=
0
¸
·
53
70
6= B · A =
66
26
¸
·
0
0
, d¨ar O =
0
0
11
5
0
0
¸
.
¸
.
och tv˚
a rektangul¨ara matriser C och D av typ 3 × 2,


·
¸
1 7
1 5 0


C= 2 2
och D =
.
−2 1 1
3 1
Vi har
15.6

·
¸
−13 12 7
11
17
.
C · D =  −2 12 2  6= D · C =
3 −11
1 16 1


¸
·
0 0
0 0
, d¨ar O =  0 0  .
D·O=
0 0
0 0

Problem 8.6
Best¨am matrisprodukten

 

3 2 1
3 2 0
 1 2 3  ·  0 2 −1 
2 1 3
0 3 1
Vi har
och


3 2 1
A =  1 2 3 ,
2 1 3

3 2 0
B =  0 2 −1 
0 3 1

9 13 −1
A · B =  3 15 1  ,
6 15 2




11 10 9
B · A =  0 3 3 .
5 7 12
203
15.7
Problem 9.1
Best¨am den exakta l¨osningen till randv¨ardesproblemet
½ 00
y + 4y = 0, y = y(x), 0 < x < 1,
y(0) = 0, y(1) = sin(2).
(427)
Approximera randv¨ardesproblemet (427) genom att reducera det till ett linj¨art
ekvationssystem med tre obekanta.
Ber¨akna den approximativa l¨osningen genom att l¨osa det linj¨ara ekvationssystemet med hj¨alp av Gusselimination. J¨amf¨or den h¨ar approximativa l¨osningen med
den exakta l¨osningen.
1. Best¨am den exakta l¨osningen till randv¨ardesproblemet: L¨osningen till diffekvationen y 00 + 4y = 0 ¨ar
y(x) = c1 sin 2x + c2 cos 2x.
Anv¨and randvillkoren och best¨am c1 och c2 :
y(0) = c2 = 0,
y(1) = c1 sin 2 = sin 2
→ c1 = 1.
Den exakta l¨osningen till randv¨ardesproblemet (427) ¨ar d˚
a
y(x) = sin 2x.
F¨or att l¨osa randv¨ardesproblemet numeriskt genom att ers¨atta den med en
differensapproximation delar man in intervallet [0, 1] i 4 mindre intervall. M˚
alet
¨ar att ber¨akna l¨osningen f¨or (4 − 1) = 3 stycken x-v¨arden xj likformigt f¨ordelade
1−0
med ett avst˚
and h =
= 0.25:
4
xj = jh, j = 0, 1, 2, 3, 4,
x0 = 0 < x1 < x2 < x3 < x4 = 1.
(428)
Man kan skriva xj , j = 0, 1 . . . , 4, som en 5-dimensionell radvektor (n¨atvektor)
x = [xj ] = [x0 , x1 , x2 , x3 , x4 ].
Sedan approximeras andra derivatan i diffekvationen med
y 00 ≈
yi+1 − 2yi + yi−1
.
h2
Differentialoperatorn approximeras
y 00 + 4y ≈
yi+1 − 2yi + yi−1
+ 4yi .
h2
204
(429)
Randv¨ardesproblemet approximeras med
yi+1 − 2yi + yi−1
+ 4yi = 0,
h2
i = 1, 2, 3;
y0 = 0, y4 = sin 2.
eller
yi+1 − 2(1 − 2h2 )yi + yi−1 = 0,
i = 1, 2, 3;
y0 = 0, y4 = sin 2,
eller
yi+1 − 1.75yi + yi−1 = 0,
i = 1, 2, 3;
y0 = 0, y4 = sin 2.
D˚
a f˚
ar vi tre ekvationer
y2 − 1.75y1 + y0 = 0 (i = 1),
y3 − 1.75y2 + y1 = 0 (i = 2),
y4 − 1.75y3 + y2 = 0 (i = 3),
Villkoren y0 = 0, y4 = sin 2 ger ett linj¨art ekvationssystem med tre obekanta
y1 , y 2 , y3
−1.75y1 + y2 = 0,
y1 − 1.75y2 + y3 = 0,
y2 − 1.75y3 = − sin 2,
P˚
a matrisformen f˚
ar vi
Ay = b,
d¨ar tridiagonala systemsmatrisen


−1.75
1
0
−1.75
1 ,
A= 1
0
1
−1.75
och h¨ogerledet


0
.
0
b=
− sin 2
L¨os det linj¨ara ekvationssystemet med tre obekanta med hj¨alp av Gusselimination
(dvs, ber¨akna approximativa l¨osningen). Skriv systemet som
−1.75y1 + y2 = 0,
y1 − 1.75y2 + y3 = 0,
y2 − 1.75y3 = −0.9093,
205
(430)
Utf¨or Gusselimination.
−y1 + y2 /(1.75) = 0,
y1 − 1.75y2 + y3 = 0,
y2 − 1.75y3 = −0.9093,
−y1 + y2 /(1.75) = 0,
(1/1.75 − 1.75)y2 + y3 = 0,
y2 − 1.75y3 = −0.9093,
−y1 + y2 /(1.75) = 0,
−1.1786y2 + y3 = 0,
y2 − 1.75y3 = −0.9093,
−y1 + y2 /(1.75) = 0,
−y2 + y3 /1.1786 = 0,
y2 − 1.75y3 = −0.9093,
−y1 + y2 /(1.75) = 0,
−y2 + y3 /1.1786 = 0,
(1/1.1786 − 1.75)y3 = −0.9093,
−y1 + y2 /(1.75) = 0,
−y2 + y3 /1.1786 = 0,
−0.9015y3 = −0.9093,
−1.75y1 + y2 = 0,
−y2 + y3 /1.1786 = 0,
y3 = 1.0087,
−1.75y1 + y2 = 0,
y2 = y3 /1.1786 = 0.8558,
y3 = 1.0087,
206
y1 = y2 /1.75 = 0.4890,
y2 = y3 /1.1786 = 0.8558,
y3 = 1.0087,
Den approximativa l¨osningen ¨ar
y1 = 0.4890,
y2 = 0.8558,
y3 = 1.0087.
Den exakta l¨osningen y = sin 2x i punkterna
xj = jh = 0.25j, j = 0, 1, 2, 3, 4,
x0 = 0 < x1 = 0.25 < x2 = 0.50 < x3 = 0.75 < x4 = 1,
¨ar
y(x1 ) = sin 0.5 = 0.4794,
y(x2 ) = sin 1.0 = 0.8415,
y(x3 ) = sin 1.5 = 0.9975.
J¨amf¨or den h¨ar approximativa l¨osningen med den exakta l¨osningen och best¨am
felet:
y(x1 ) − y1 = 0.4794 − 0.4890 = −0.0096,
y(x2 ) − y2 = 0.8415 − 0.8558 = −0.0143,
y(x3 ) − y3 = 0.9975 − 1.0087 = −0.0112.
15.8
Problem 10.1
Ber¨akna temperatur i en tegelsten v¨agg med K = 5·10−7 m2 /s, L = 0.3 m och begynnelsetemperaturen 100 deg C genom att l¨osa motsvarande randv¨ardesproblemet
(275) i Kompendiet Numeriska metoder. Antag att v¨aggs¨andarna h˚
alls vid konstant temperatur 0 deg C.
L¨
osning. Vi anv¨ander metoden som beskrivs i Exempel 10.1 och l¨oser randv¨ardesproblemet
till den v¨armeledningsekvationen som beskriver temperatur i en tegelsten v¨agg med
kalla v¨aggs¨andarna
∂u
∂2u
,
K 2 =
∂x
∂t
u = u(x, t),
K = 5 · 10−7 , t > 0, 0 < x < L = 0.3,
207
u(x, 0) = 100, 0 ≤ x ≤ 0.3 (begynnelsevillkoret (begynnelsetemperatur 100 deg C)),
u(0, t) = 0,
u(0.3, t) = 0,
t ≥ 0 (randvillkoren (kalla v¨aggs¨andarna)).
Man kan l¨osa randv¨ardesproblemet genom att skriva
u(x, t) =
∞
X
un (x, t) =
n=1
∞
X
2
Bn e−λn t sin
n=1
d¨ar
nπ
π
2π
2
2
x = B1 e−λ1 t sin x+B2 e−λ2 t sin x+. . . .
L
L
L
√
Kπ
= 0.02341 · · · · n
L
kallas egenv¨arden. F¨or att f˚
a obekanta koefficienterna Bn , satisfierar man begynnelsevillkoren
∞
X
nπ
u(x, 0) =
Bn sin
x = f (x) = 100.
L
n=1
λn = n
D˚
a
2
Bn =
L
Z
L
f (x) sin
0
nπ
xdx,
L
n = 1, 2, . . . ,
blir fourierskoefficienterna till funktionen f (x). H¨ar
Z
Z
2 L
nπ
2 L
nπ
Bn =
100 sin
xdx = 100
sin
xdx =
L 0
L
L 0
L
Z nπ
n
2 L
200
200
400
nπ o
x = 100
sin udu =
(cos 0−cos nπ) =
(1−(−1)n ) =
,
u=
L
L nπ 0
nπ
nπ
nπ
n = 1, 3, 5 . . . (n = 2l − 1, l = 1, 2, 3, . . . )
och
∞
400 X −λ22l−1 t 1
(2l − 1)π
u(x, t) =
e
sin
x=
π l=1
2l − 1
L
µ
¶
400 −λ21 t
π
3π
1 −λ23 t
e
sin x + e
sin x + . . . ,
π
L
3
L
λ2n = n2 K
π2
= (0.02341)2 n2 , n = 1, 2, 3, . . . .
L2
Best¨am l¨osningen. Vi har
λ21 = 0.000548,
och
400
u(x, t) =
π
µ
−0.000548t
e
λ23 = 0.00493,
λ25 = 0.0137,
1
3π
1
5π
π
x + e−0.00493t sin
x + e−0.0137t sin
x + ...
sin
0.3
3
0.3
5
0.3
208
¶
=
µ
−0.000548t
= 127.324 e
1
1
sin 10.471x + e−0.00493t sin 31.416x + e−0.0137t sin 52.360x + . . .
3
5
¶
=
Ber¨akna l¨osningen med 3 KD i punkten x = 0.15 och tidspunkten t = 4·440 = 1760
sek. Vi tar med tre termer:
u(x, t) ≈ 127.324·
µ
¶
1 −0.00493·1760
1 −0.0137·1760
−0.000548·1760
e
sin(10.471 · 0.15) + e
sin(31.416 · 0.15) + e
sin(52.360 · 0.15)
3
5
= 127.324 (0.381 − 0.00704 + 0.0000340) = 127.324 · 0.374 = 47.620
Observera att om man tar med fyra termer och r¨aknar med 3 KD, d˚
a f˚
ar man
¡
¢
u(x, t) ≈ 127.324 0.381 − 0.00704 + 0.0000340 − 2.835 · 10−8 = 127.324·0.374 = 47.620.
16
Tentor
16.1
Tenta 1
Problem 1. L¨os (skriv den exakta l¨osningen) randv¨ardesproblemet f¨or den linj¨ara
differentialekvationen av andra ordningen
½ 00
y + 4y = 2(2x2 + 1), y = y(x), 1 < x < 5,
(431)
y(1) = 1, y(5) = 25.
L¨
osning. Ekvationen
y 00 + 4y = 0
(432)
har karakteristiska polynomet
r2 + 4
med nollst¨allena r1 = 2i och r2 = −2i. Den fullst¨andiga l¨osningen till homogena
ekvationen (432) ¨ar
y0 = C1 cos 2x + C2 sin 2x.
Best¨am en partikul¨ar l¨osning yp (x) till ekvationen (431) som ett andragradspolynom (eftersom h¨ogerledet 4x2 + 2 a¨r ett andragradspolynom):
yp = ax2 + bx + c :
yp00 + 4yp = (ax2 + bx + c)00 + 4(ax2 + bx + c) =
209
2a + 4ax2 + 4bx + 4c = 4x2 + 2
→ a = 1, b = 0, c = 0,
och yp (x) = x2 .
Den fullst¨andiga l¨osningen till ekvationen (431) blir
y = y0 + yp = C1 cos 2x + C2 sin 2x + x2 .
Satisfiera randvillkor
y(1) = 1 → C1 cos 2 + C2 sin 2 + 1 = 1 → C2 = −C1 (cos 2/ sin 2);
y(5) = 25 → C1 cos 10 + C2 sin 10 + 25 = 25, →
C1 (cos 10 − sin 10(cos 2/ sin 2)) = 0 → C1 = 0, C2 = 0.
Den (exakta) l¨osningen till randv¨ardesproblemet (431) ¨ar
y(x) = x2 .
Problem 2. Approximera randv¨ardesproblemet (431) genom att reducera det
till ett linj¨art ekvationssystem med tre obekanta. Approximera derivatan (i punkten x = xi ) med
y 00 ≈
yi+1 − 2yi + yi−1
,
h2
h = xi+1 − xi .
L¨
osning. Eftersom vi m˚
aste f˚
a ett ekvationssystem med tre obekanta och ek00
2
vationen y +4y = 4x +2 i (431) betraktas i intervallet (1,5), ¨ar antalet delpunkter
xi som tillh¨or (1,5) lika med 3 (antalet delintervall a¨r 3 + 1 = 4), s˚
a att de h¨ar
delpunkterna xi = 1 + ih, i = 1, 2, 3, d¨ar h = (5 − 1)/4 = 1. Vi har x0 = 1, x1 = 2,
x2 = 3, x3 = 4 och x4 = 5. Approximera differentialoperatorn:
y 00 + 4y ≈
yi+1 − 2yi + yi−1
+ 4yi .
h2
Randv¨ardesproblemet (431) approximeras med
yi+1 − 2yi + yi−1
+ 4yi = 4x2i + 2,
h2
i = 1, 2, 3;
y0 = 1, y4 = 25.
eller (observera att h = 1)
yi+1 + 2yi + yi−1 = 4x2i + 2,
i = 1, 2, 3;
210
y0 = 1, y4 = 25.
(433)
D˚
a f˚
ar vi tre ekvationer
y2 + 2y1 + y0 = 4 · 22 + 2 (i = 1),
y3 + 2y2 + y1 = 4 · 32 + 2 (i = 2),
y4 + 2y3 + y2 = 4 · 42 + 2 (i = 3),
Villkoren y0 = 1, y4 = 25 ger ett linj¨art ekvationssystem med tre obekanta
y1 , y 2 , y3
2y1 + y2 = 17,
y1 + 2y2 + y3 = 38,
y2 + 2y3 = 41,
P˚
a matrisformen f˚
ar vi
Ay = b,
d¨ar tridiagonala systemsmatrisen


2 1 0
A =  1 2 1 ,
0 1 2
och h¨ogerledet


17
b =  38  .
41
Problem 3. L¨os det linj¨ara ekvationssystemet med tre obekanta som approximerar (431) med hj¨alp av Gusselimination (dvs, ber¨akna approximativa l¨osningen).
J¨amf¨or den h¨ar approximativa l¨osningen {yi } med den exakta l¨osningen.
L¨
osning. Skriv linj¨ara ekvationssystemet med tre obekanta som approximerar
(431)
2y1 + y2 = 17,
y1 + 2y2 + y3 = 38,
y2 + 2y3 = 41,
Utf¨or Gusselimination.
1.
211
1
y1 + y2 + 0 · y3 = 17/2,
2
y1 + 2y2 + y3 = 38,
y2 + 2y3 = 41,
µ
2y + y2 = 17,
¶ 1
1
2−
y2 + y3 = 38 − 17/2,
2
y2 + 2y3 = 41,
2y1 + y2 = 17,
3
y2 + y3 = 59/2,
2
y2 + 2y3 = 41,
2.
2y1 + y2 = 17,
2
2 59
y2 + y3 =
,
3
3 2
y2 + 2y3 = 41,
2y1 + y2 = 17,
3
y2 + y3 = 59/2,
µ 2 ¶
59
2
y3 = 41 − ,
2−
3
3
2y1 + y2 = 17,
3
y2 + y3 = 59/2,
2
64
4
y3 =
,
3
3
212
3.
2y1 + y2 = 17,
3
y2 + y3 = 59/2,
2
3 64
y3 =
= 16,
4 3
2y1 + y2 = 17,
3
y2 = 59/2 − 16,
2
y3 = 16,
2y1 + y2 = 17,
3
y2 = 27/2,
2
y3 = 16,
y1 = (17 − 9)/2 = 4,
y2 = 9,
y3 = 16,
Vektorn
y1 = 4,
y2 = 9,
y3 = 16.
ger den approximativa l¨osningen till randv¨ardesproblemet (431).
Den exakta l¨osningen till randv¨ardesproblemet (431)
y(x1 ) = x21 = 22 = 4,
y(x2 ) = x22 = 32 = 9
y(x3 ) = x23 = 42 = 16
sammanfaller med den approximativa l¨osningen (i punkterna x1 , x2 , x3 ).
213
Problem 4. Anv¨and (xi , yi ) som interpolationsdata och konstruera en styckvis
linj¨ar interpolationsfunktionen F (M ; x) till den approximativa l¨osningen {yi } till
problemet (431); rita funktionskurvan och ber¨akna interpolationsfelet (med 3D) i
punkten
xi+0.5 = xi + 0.5h, i = 2.
L¨
osning. Styckvis linj¨ar interpolation utf¨oras genom att vi konstruerar en
styckvis linj¨ar interpolationsfunktion F (M ; x) som sammanfaller med M + 1 givna
interpolationsv¨arden. H¨ar M = 4. I varje intervall [xk , xk+1 ], k = 0, 1, 2, 3, d¨ar
(xk , yk ) ¨ar interpolationsdata
(x0 , y0 ) (x1 , y1 ) (x2 , y2 ) (x3 , y3 ) (x4 , y4 )
(1, 1) (2, 4) (3, 9) (4, 16) (5, 25)
(observera, att y1 = 4 y2 = 9 och y3 = 16 a¨r den approximativa l¨osningen till
randv¨ardesproblemet (431), som man har best¨amt i Problem 3) f˚
as F (M ; x) genom
F (M ; x) = F (4; x) = yk +
x − xk
(yk+1 − yk ),
xk+1 − xk
x ∈ [xk , xk+1 ],
k = 0, 1, 2, 3.
k = 0:
F (4; x) = y0 +
x−1
x − x0
(y1 − y0 ) = 1 +
(4 − 1) = 3x − 2,
x1 − x0
2−1
x ∈ [1, 2].
x − x1
x−2
(y2 − y1 ) = 4 +
(9 − 4) = 5x − 6,
x2 − x1
3−2
x ∈ [2, 3].
k = 1:
F (4; x) = y1 +
k = 2:
F (4; x) = y2 +
x − x2
x−3
(y3 − y2 ) = 9 +
(16 − 9) = 7x − 12,
x3 − x2
4−3
x ∈ [3, 4].
k = 3:
F (4; x) = y3 +
x − x3
x−4
(y4 − y3 ) = 16 +
(25 − 16) = 9x − 20,
x4 − x3
5−4
x ∈ [4, 5],
s˚
a att (se figur)
F (4; x) = 3x − 2, x ∈ [1, 2],
= 5x − 6, x ∈ [2, 3],
= 7x − 12, x ∈ [3, 4],
= 9x − 20, x ∈ [4, 5].
Interpolationsfelet i punkten xi+0.5 (i = 2), xi+0.5 = x2.5 = 3 + 0.5 = 3.5,
y(xi+0.5 ) − F (4; xi+0.5 ) = (x2 + 0.5)2 − F (4; x2 + 0.5) = (3.5)2 − (7 · 3.5 − 12) =
12.25 − 12.5 = −0.25.
214
Problem 5. Anv¨and den approximativa l¨osningen {yi } till problemet (431)
och ber¨akna integralen
Z 5
y(x)dx
1
med trapets formeln, J¨amf¨or resultatet med det exakta integralens v¨arde.
L¨
osning. Anv¨and den approximativa l¨osningen {yi } till (431)
y1 = 4, y2 = 9, y3 = 16,
som man har best¨amt i Problem 3. Enligt trapets formeln
Z 5
y(x)dx ≈ h(0.5y0 + y1 + y2 + y3 + 0.5y4 ) = 1 · (0.5 + 4 + 9 + 16 + 12.5) = 42.
1
Oen exakta v¨ardet (r¨akna med 3D)
Z
Z
5
5
y(x)dx =
1
1
¯5
x3 ¯¯
53 − 1
=
x dx =
= 41.333.
3 ¯1
3
2
Felet ¨ar 41.333 − 42 = −0.667.
Problem 7. Anv¨and Heuns metod (tre steg) och l¨os begynnelsev¨ardesproblemet
z 0 = 0.5z + 1,
z(0) = 0,
z = z(x),
(434)
med h = 0.05 (r¨akna med 3D). Best¨am den exakta l¨osningen och j¨amf¨or den
approximativa l¨osningen med den exakta l¨osningen.
L¨
osning. Best¨am den exakta l¨osningen. Ekvationen
z 0 − 0.5z = 0
har karakteristiska polynomet
r − 0.5
med nollst¨allet r1 = 0.5. Den fullst¨andiga l¨osningen z0 (x) till den h¨ar homogena
ekvationen ¨ar
z0 = Ce0.5x .
Best¨am en partikul¨ar l¨osning zp (x):
zp = ax + b : zp0 − 0.5zp = (ax + b)0 − 0.5(ax + b) = −0.5ax + (a − 0.5b) = 1 → a = 0, b = −2,
och zp (x) = −2.
215
Den fullst¨andiga l¨osningen till ekvationen i (434) blir
z = z0 + zp = Ce0.5x − 2.
z 0 = 0.5z + 1 ¨ar en ekvation med separabla variabler. D˚
a kan man f˚
a dess
fullst¨andiga l¨osning z(x) genom att integrera ekvationen direkt:
Z
dz
dz
dz
= 0.5z + 1 →
= dx →
=x+C →
dx
0.5z + 1
0.5z + 1
Z
dz
= 0.5x+C → ln |z + 2| = 0.5x+C → z+2 = e0.5x+C → z = Ce0.5x −2.
z+2
Satisfiera begynnelsevillkoret
z(0) = 0
→C −2=0
→ C = 2.
Den (exakta) l¨osningen till begynnelsev¨ardesproblemet (434) ¨ar
z(x) = 2e0.5x − 2.
(435)
Man kan ber¨akna (435) med hj¨alp av Taylors formel et ≈ 1 + t + t2 /2 (om t ¨ar
tillr¨akligt litet):
z(x) = 2(e0.5x − 1) ≈ 2(1 + 0.5x + 0.125x2 − 1) = x + 0.25x2 = x(1 + 0.25x).
Best¨am den (exakta) l¨osningen till begynnelsev¨ardesproblemet (434) i punkterna x = xi = i · 0.05, i = 1, 2, 3:
z(x1 ) = z(0.05) = 2(e0.5·0.05 − 1) ≈ 0.05(1 + 0.25 · 0.05) = 0.05 · 1.012 = 0.051.
z(x2 ) = z(0.1) = 2(e0.5·0.1 − 1) ≈ 0.1(1 + 0.25 · 0.1) = 0.102.
z(x3 ) = z(0.15) = 2(e0.5·0.15 − 1) ≈ 0.15(1 + 0.25 · 0.15) = 0.156.
Rekursionsformlerna av Heuns metod ¨ar
xn+1
k1
k2
zn+1
=
=
=
=
xn + h
hf (xn , zn )
hf (xn+1 , zn + k1 )
zn + 1/2(k1 + k2 )
H¨ar f (x, z) = 0.5z + 1,
k1 = 0.05(0.5zn + 1),
216
k2 = 0.05(0.5(zn + k1 ) + 1) = 0.05(0.5(zn + 0.05(0.5zn + 1)) + 1) =
0.05 · (0.5 · 1.012zn + 1.025) = 0.05 · (0.506zn + 1.025),
zn+1 = zn + 0.50.05(0.5zn + 1 + 0.506zn + 1.025) = zn + 0.025zn + 0.051 = 1.025zn + 0.051,
n = 0, 1, 2. x0 = 0,
z0 = 0.
Vi har
n=0:
z1 = 1.025z0 + 0.051 = 0.051.
n=1:
z2 = 1.025z1 + 0.051 = 1.025 · 0.051 + 0.051 = 0.051 · 2.025 = 0.103,
n=2:
z3 = 1.025z2 + 0.051 = 1.025 · 0.103 + 0.051 = 0.106 + 0.051 = 0.157.
S¨att
z = Exakta v¨arden,
² = fel
och skriv ut ber¨akningar (med 3D)
xn
0.00
0.05
0.10
0.15
zn
0.000
0.051
0.103
0.157
z
0.000
0.051
0.102
0.156
8. Anpass en r¨at linje till f¨oljande data
t f (t)
−− −−
2
1
3
2
5
4
217
²
0.000
0.000
0.001
0.001
genom att skriva och l¨osa motsvarande minsta kvadratproblemet.
Lo
a formen f˜(t) = c0 + c1 t, f˚
ar vi
¨sning. Om vi ans¨atter den r¨ata linjen f˜(t) p˚
minsta kvadratproblemet med systemet
c0 + 2c1 = 1
c0 + 3c1 = 2
c0 + 5c1 = 4,
Vi skall l¨osa minsta kvadratproblemet f¨or det h¨ar systemet; systemsmatrisen ¨ar


 
 
1 2
1
2





A = 1 3 = [a1 a2 ] , a1 = 1 , a2 = 3  .
1 5
1
5
och


1
b =  2 .
4
Vi har
·
T
A =
·
AT b =
·
AT A =
1 1 1
2 3 5
¸
1 1 1
2 3 5

¸
1 1 1
2 3 5
¸
.

·
¸ ·
¸
1
 2 = 1+2+4 = 7 .
2 + 6 + 20
28
4


¸ ·
¸
·
1 2
3
10
1
+
1
+
1
2
+
3
+
5
 1 3 =
=
.
10 38
2+3+5 2·2+3·3+5·5
1 5
Normalekvationen
AT Ax = AT b
blir
·
Best¨am determinanter
¯
¯
¯ 3 10 ¯
¯
¯
¯ 10 38 ¯ = 14,
3 10
10 38
¸
·
x=
7
28
¯
¯
¯ 7 10 ¯
¯
¯
¯ 28 38 ¯ = −14,
¸
,
¯
¯ 3 7
¯
¯ 10 28
och l¨osningen till ormalekvationen enligt Cramers regel:
¸ ·
¸
·
−14/14 = −1
c0
=
.
x=
c1
14/14 = 1
Den r¨ata linjen f˜(t) = −1 + t.
218
¯
¯
¯ = 14
¯
16.2
Tenta 2
Problem 1. L¨os (skriv den exakta l¨osningen) randv¨ardesproblemet f¨or en linj¨ar
differentialekvation av andra ordningen
½ 00
y − y = −x, y = y(x), 0 < x < 3,
(436)
y(0) = 0, y(3) = 3.
L¨
osning. Ekvationen
y 00 − y = 0
(437)
har karakteristiska polynomet
r2 − 1
med nollst¨allena r1 = 1 och r2 = −1. Den fullst¨andiga l¨osningen y0 (x) till homogena ekvationen (437) ¨ar
y0 = C1 ex + C2 e−x .
Best¨am en partikul¨ar l¨osning yp (x) till ekvationen (436):
yp = ax + b :
yp00 − yp = (ax + b)00 − (ax + b) = 0 − ax − b = −x
→ a = 1, b = 0
och yp (x) = 1 · x + 0 = x
Den fullst¨andiga l¨osningen till ekvationen (436) blir
y = y0 + yp = C1 ex + C2 e−x + x.
Satisfiera randvillkor
y(0) = 0 → C1 + C2 + 0 = 0 → C2 = −C1 ;
(438)
3
−3
3
−3
y(3) = 3 → C1 e − C1 e + 3 = 3, C1 (e − e ) = 0 → C1 = 0.
Den (exakta) l¨osningen till randv¨ardesproblemet (436) ¨ar
y(x) = x.
Problem 2. Approximera randv¨ardesproblemet (436) genom att reducera det
till ett linj¨art ekvationssystem med tv˚
a obekanta. Approximera derivatan med
y 00 ≈
yi+1 − 2yi + yi−1
.
h2
219
L¨
osning. Eftersom vi m˚
aste f˚
a ett ekvationssystem med tv˚
a obekanta och
ekvationen y 00 − y = −x i (436) betraktas i intervallet (0,3), ¨ar antalet delpunkter
xi som tillh¨or (0,3) lika med tv˚
a (antalet delintervall ¨ar 2 + 1 = 3), s˚
a att de
h¨ar delpunkterna xi = ih, i = 1, 2, d¨ar h = (3 − 0)/3 = 1, s˚
a att x1 = h = 1,
x2 = 2h = 2. Approximera differentialoperatorn:
y 00 − y ≈
yi+1 − 2yi + yi−1
− yi .
h2
(439)
Randv¨ardesproblemet (436) approximeras med
yi+1 − 2yi + yi−1
− yi = −xi ,
h2
i = 1, 2;
y0 = 0, y3 = 3.
eller
yi+1 − (2 + h2 )yi + yi−1 = −h2 xi ,
i = 1, 2;
y0 = 0, y3 = 3;
x1 = 1, x2 = 2.
D˚
a f˚
ar vi tv˚
a ekvationer
y2 − (2 + h2 )y1 + y0 = −h2 x1
y3 − (2 + h2 )y2 + y1 = −h2 x2
(i = 1),
(i = 2),
eller
y2 − 3y1 + y0 = −1 (i = 1),
y3 − 3y2 + y1 = −2 (i = 2).
Villkoren y0 = 0, y3 = 3 ger ett linj¨art ekvationssystem med tv˚
a obekanta y1 , y2
−3y1 + y2 = −1,
y1 − 3y2 = −5,
P˚
a matrisform, f˚
ar vi
Ay = b,
d¨ar systemetsmatrisen
·
A=
och h¨ogerledet
−3 1
1 −3
·
b=
−1
−5
¸
,
¸
.
Problem 3. L¨os det linj¨ara ekvationssystemet med tv˚
a obekanta som approximerar (436) med hj¨alp av Gusselimination (dvs, ber¨akna approximativa l¨osningen).
J¨amf¨or den h¨ar approximativa l¨osningen med den exakta l¨osningen.
220
L¨
osning. Skriv linj¨ara ekvationssystemet med tv˚
a obekanta som approximerar
(436),
−3y1 + y2 = −1,
y1 − 3y2 = −5.
Utf¨or Gusselimination.
Steg 1.
−y1 + y2 /3 = −1/3,
y1 − 3y2 = −5.
Steg 2.
−3y1 + y2 = −1,
0 + (1/3 − 3)y2 = −5 − 1/3.
−3y1 + y2 = −1,
−8/3y2 = −16/3.
Steg 3.
−3y1 + 2 = −1,
y2 = 2.
y1 = (−1 − 2)/(−3),
y2 = 2.
L¨osningen till systemet
y1 = 1,
y2 = 2
ger den approximativa l¨osningen till randv¨ardesproblemet (436).
Den exakta l¨osningen till randv¨ardesproblemet (436) ¨ar
y(x1 ) = x1 = 1,
y(x2 ) = x2 = 2
och sammanfaller med den approximativa l¨osningen (i punkter x1 , x2 ).
221
Problem 4. Anv¨and (xi , yi ) som interpolationsdata och konstruera en styckvis
linj¨ar interpolationsfunktionen F (M ; x) till den approximativa l¨osningen {yi } till
problemet (436); rita funktionskurvan och ber¨akna interpolationsfelet (med 3D) i
punkten
xi+0.5 = xi + 0.5h, i = 1.
L¨
osning. Styckvis linj¨ar interpolation utf¨oras genom att vi konstruerar en
styckvis linj¨ar interpolationsfunktion F (M ; x) som sammanfaller med M + 1 givna
interpolationsv¨arden. H¨ar M = 3. I varje intervall [xk , xk+1 ], k = 0, 1, 2, d¨ar
(xk , yk ) ¨ar interpolationsdata
(x0 , y0 ) (x1 , y1 ) (x2 , y2 ) (x3 , y3 )
(0, 0) (1, 1) (2, 2) (3, 3)
(observera, att y1 = 1 och y2 = 2 a¨r den approximativa l¨osningen till randv¨ardesproblemet
(436), som man har best¨amt i Problem 3) f˚
as F (M ; x) genom
F (M ; x) = yk +
x − xk
(yk+1 − yk ),
xk+1 − xk
x ∈ [xk , xk+1 ],
k = 0, 1, 2.
k = 0:
F (M ; x) = y0 +
x − x0
x−0
(y1 − y0 ) = 0 +
(1 − 0) = x,
x1 − x0
1−0
x ∈ [0, 1].
x − x1
x−1
(y2 − y1 ) = 1 +
(2 − 1) = x,
x2 − x1
2−1
x ∈ [1, 2].
x − x2
x−2
(y3 − y2 ) = 2 +
(3 − 2) = x,
x3 − x2
3−2
x ∈ [2, 3].
k = 1:
F (M ; x) = y1 +
k = 2:
F (M ; x) = y2 +
s˚
a att F (M ; x) = x i varje interpolationsintervall [0, 1], [1, 2], [2, 3] och i hela
intervallet [0, 3].
Interpolationsfelet
xi+0.5 − F (M ; xi+0.5 ) = 1.5 − F (M ; 1.5) = 1.5 − 1.5 = 0.
Problem 5. Ber¨akna integralen
Z
3
y(x)dx
0
med trapets formeln, d¨ar {yi } ¨ar den approximativa l¨osningen till problemet (436).
Lo
¨sning. Anv¨and interpolationsdata
(x0 , y0 ) (x1 , y1 ) (x2 , y2 ) (x3 , y3 )
222
(0, 0) (1, 1) (2, 2) (3, 3)
d¨ar y1 = 1 och y2 = 2 ¨ar den approximativa l¨osningen till randv¨ardesproblemet
(436), som man har best¨amt i Problem 3. Enligt trapets formeln
Z 3
y(x)dx ≈ h(0.5y0 + y1 + y2 + 0.5y3 ) = 1 · (0 + 1 + 2 + 1.5) = 4.5
0
Observera att den exakta v¨ardet
Z 3
Z
y(x)dx =
0
3
0
¯3
x2 ¯¯
= 4.5.
xdx =
2 ¯0
Problem 6. Anv¨and Newtons metod eller fixpunktiteration och ber¨akna ett
positivt nollst¨alle till ekvationen
y 3 − 3 = 0,
d¨ar y = y(x) ¨ar den exakta l¨osningen till randv¨ardesproblemet (436).
L¨
osning. Den exakta l¨osningen till randv¨ardesproblemet (436 ¨ar y(x) = x. Vi
har
y 3 − 3 = x3 − 3.
L¨os ekvationen
f (x) = 0,
f (x) = x3 − 3,
f 0 (x) = 3x2 .
med Newtons metod (med 3D och avr.):
xn+1 = xn −
n
0
1
2
3
4
xn
2
1.583
1.454
1.442
1.442
f (xn )
x3n − 3
=
x
−
,
n
f 0 (xn )
3x2n
xn+1 − xn
0.417
0.129
0.012
0.000
223
n = 0, 1, 2, . . . .
(440)
stop
Det positiva nollst¨allet till ekvationen x3 − 3 = 0 ¨ar x ≈ 1.442 med 3D.
Problem 7. Anv¨and Heuns metod (tre steg) och l¨os begynnelsev¨ardesproblemet
z 0 = −4x − 4z,
z(0) = 1,
z = z(x),
med h = 0.1 (r¨akna med 3D). Best¨am den exakta l¨osningen och j¨amf¨or den approximativa l¨osningen med den exakta l¨osningen.
L¨
osning. Best¨am den exakta l¨osningen. Ekvationen
z 0 + 4z = 0
har karakteristiska polynomet
r+4
med nollst¨allet r1 = −4. Den fullst¨andiga l¨osningen z0 (x) till den h¨ar homogena
ekvationen ¨ar
z0 = Ce−4x .
Best¨am en partikul¨ar l¨osning zp (x):
zp = ax + b : zp0 + 4z = (ax + b)0 + 4(ax + b) = 4ax + (a + 4b) = −4x → a = −1, b = 0.25
och zp (x) = −x + 0.25.
Den fullst¨andiga l¨osningen till ekvationen z 0 = −4x − 4z blir
z = z0 + zp = Ce−4x − x + 0.25.
Satisfiera begynnelsevillkoret
z(0) = 1 → C + 0.25 = 1 → C = 0.75.
Den (exakta) l¨osningen ¨ar
z(x) = 0.75e−4x − x + 0.25.
z(x1 ) = z(0.1) = 0.75e−0.4 − 0.1 + 0.25 = 0.653.
z(x2 ) = z(0.2) = 0.75e−0.8 − 0.2 + 0.25 = 0.387.
224
z(x3 ) = z(0.3) = 0.75e−1.2 − 0.3 + 0.25 = 0.176.
Rekursionsformlerna av Heuns metod ¨ar
xn+1
k1
k2
zn+1
=
=
=
=
xn + h
hf (xn , zn )
hf (xn+1 , zn + k1 )
zn + 1/2(k1 + k2 )
H¨ar f (x, z) = −4x − 4z = −4(x + z),
k1 = 0.1 · (−4(xn + zn )) = −0.4(xn + zn ),
k2 = 0.1 · (−4)((xn + 0.1) + zn − 0.4(xn + zn )),
zn+1 = zn + 1/2(k1 + k2 ),
n = 0, 1, 2. x0 = 0,
z0 = 1.
Vi har n = 0 :
k1 = −0.4(x0 + z0 ) = −0.4,
k2 = −0.4((x0 + 0.1) + z0 − 0.4(x0 + z0 )) =
−0.4(0.1 + 1 − 0.4) = −0.28,
(441)
z1 = z0 + 1/2(−0.4 − 0.28) = 1 − 0.34 = 0.66.
n=1:
k1 = −0.4(x1 + z1 ) = −0.4(0.1 + 0.66) = −0.304,
k2 = −0.4((x1 + 0.1) + z1 − 0.4(x1 + z1 )) =
−0.4(0.2 + 0.66 − 0.4(0.1 + 0.66)) = −0.4(0.86 − 0.304) = −0.222,
z2 = z1 + 1/2(−0.304 − 0.222) = 0.66 − 0.263 = 0.397,
225
(442)
n=2:
k1 = −0.4(x2 + z2 ) = −0.4(0.2 + 0.397) = −0.239,
k2 = −0.4((x2 + 0.1) + z2 − 0.4(x2 + z2 )) =
−0.4(0.3 + 0.397 − 0.4(0.2 + 0.397)) = −0.4(0.697 − 0.239) = −0.183,
(443)
z3 = z2 + 1/2(−0.239 − 0.183) = 0.397 − 0.211 = 0.186.
S¨att
z = Exakta v¨arden,
² = fel
och skriv ut ber¨akningar (med 3D)
xn
0.0
0.1
0.2
0.3
zn
1.000
0.660
0.397
0.186
z
1.000
0.653
0.387
0.176
²
0.000
0.007
0.01
0.01
Problem 8. Anpass en r¨at linje till f¨oljande data
t f (t)
−− −−
1
2
2
6
4
3
genom att skriva och l¨osa motsvarande minsta kvadratproblemet.
L¨
osning. Om vi ans¨atter den r¨ata linjen f˜(t) p˚
a formen f˜ = c0 + c1 t, f˚
ar vi
minsta kvadratproblemet med systemet
c0 + c1 = 2
c0 + 2c1 = 6
c0 + 4c1 = 3,
Vi skall l¨osa minsta kvadratproblemet f¨or det h¨ar systemet; systemsmatrisen ¨ar


 
 
1 1
1
1





A = 1 2 = [a1 a2 ] , a1 = 1 , a2 = 2  .
1 4
1
4
226
och

2
b =  6 .
3

Vi har
·
1 1 1
1 2 4
T
A =
·
AT b =
·
AT A =
1 1 1
1 2 4
¸
1 1 1
1 2 4

¸
¸
.

·
¸ ·
¸
2
2+6+3
11
 6 =
=
.
2 + 12 + 12
26
3


·
¸ ·
¸
1 1
1
+
1
+
1
1
+
2
+
4
3
7
 1 2 =
=
.
1+2+4 1+2·2+4·4
7 21
1 4
Normalekvationen
AT Ax = AT b
blir
·
Best¨am determinanter
¯
¯ 3 7
¯
¯ 7 21
¯
¯
¯ = 14,
¯
3 7
7 21
¸
·
x=
¯
¯ 11 7
¯
¯ 26 21
11
26
¯
¯
¯ = 49,
¯
¸
,
¯
¯ 3 11
¯
¯ 7 26
¯
¯
¯=1
¯
och l¨osningen till normalekvationen enligt Cramers regel:
·
¸ ·
¸
c0
49/14 = 7/2
x=
=
.
c1
1/14
Den r¨ata linjen f˜(t) = 7/2 + 1/14t.
16.3
Tenta 3
Man m˚
aste l¨
osa tre problem. Problemen 1 och 2 ¨
ar obligatoriska, och man kan v¨
alja
Problemet 3 eller 4 som den tredje.
Problem 1. Anv¨and Heuns metod (tre steg) och l¨os begynnelsev¨ardesproblemet
y 0 = −y − 3(x + 1),
y(0) = 2,
y = y(x),
(444)
med h = 0.2 (r¨akna med 3D). Best¨am den exakta l¨osningen och j¨amf¨or den approximativa l¨osningen med den exakta l¨osningen.
227
Anv¨and beteckningar
yn = approx. v¨arden (n = 0, 1, 2, 3),
y = exakta v¨arden,
² = fel = yn − y
och skriv l¨osningen p˚
a formen av en tabell
n
0
.
xn
0.0
.
yn
2.000
.
y
2.000
.
²
0.000
.
L¨
osning. L¨os den homogena ekvationen
y0 + y = 0
(445)
som motsvarar ekvationen y 0 = −y − 3(x + 1). (155) har karakteristiska polynomet
r+1
med nollst¨allet r = −1. Den fullst¨andiga l¨osningen y0 (x) till homogena ekvationen
(445) ¨ar d˚
a
y0 = Ce−x .
Best¨am en partikul¨ar l¨osning yp (x) till ekvationen (444):
yp = ax + b :
yp0 + yp = (ax + b)0 + (ax + b) = ax + (a + b) = −3x − 3
och yp (x) = (−3) · x + 0 = −3x.
Den fullst¨andiga l¨osningen till ekvationen (444) blir
y = y0 + yp = Ce−x − 3x.
Satisfiera randvillkor
y(0) = 2 → C − 0 = 2 → C = 2.
Den (exakta) l¨osningen till begynnelsev¨ardesproblemet (444) ¨ar d˚
a
y(x) = 2e−x − 3x.
Kolla att y(0) = 2e0 − 0 = 2 och
y 0 = (2e−x − 3x)0 = −2e−x − 3 = −y − 3x − 3,
dvs upfyller ekvationen (444).
228
→ a = −3, b = 0
Anv¨and beteckningar h = 0.2, xn = x0 + nh = 0 + n · 0.2 (n = 0, 1, 2, 3): x0 = 0
x1 = 0.2, x2 = 0.4, x3 = 0.6,
yn = approx. v¨arden (n = 0, 1, 2, 3),
y = exakta v¨arden,
² = fel = yn − y,
d¨ar de exakta v¨ardena
y = y(xn ) = 2e−xn − 3xn ,
n = 0, 1, 2, 3.
R¨akna den approximativa l¨osningen med Heuns metod (tre steg) enligt
xn+1
k1
k2
yn+1
=
=
=
=
xn + h, n = 0, 1, 2,
hf (xn , yn )
hf (xn+1 , yn + k1 )
yn + 1/2(k1 + k2 )
H¨ar f (x, y) = −y −3(x+1) = −(y +3x+3), h = 0.2 och xn = n·0.2 (n = 0, 1, 2, 3).
D˚
a f˚
ar vi
xn+1
k1
k2
yn+1
=
=
=
=
xn + h, n = 0, 1, 2,
−h(yn + 3xn + 3)
−h[(yn + k1 ) + 3xn+1 + 3]
yn + 1/2(k1 + k2 )
R¨akna
k2 = −h[(yn + k1 ) + 3xn+1 + 3] = −h[(yn − h(yn + 3xn + 3)) + 3(xn + h) + 3] =
−h[yn − hyn − 3hxn − 3h + 3xn + 3h + 3] =
−h[yn (1 − h) + 3xn (1 − h) + 3] = −h[(1 − h)(yn + 3xn ) + 3].
Nu r¨akna
yn+1 = yn + 1/2(k1 + k2 ) =
yn − h
6 + (2 − h)yn + (2 − h)3xn
yn + 3xn + 3 + (1 − h)(yn + 3xn ) + 3
= yn − h
=
2
2
yn − h[3 + (1 − 0.5h)(yn + 3xn )] = yn − 3h − h(1 − 0.5h)(yn + 3xn ) =
229
yn − 0.6 − 0.9 · 0.2(yn + n · 0.6) =
yn − 0.6 − 0.18yn − 0.18n · 0.6) = 0.82yn − n · 0.108 − 0.6.
Vi f˚
ar
yn+1 = 0.82yn − n · 0.108 − 0.6,
n = 0, 1, 2,
y0 = 2.
y1 = 0.82y0 − 0 · 0.108 − 0.6 = 2 · 0.82 − 0.6 = 1.04;
y2 = 0.82y1 − 1 · 0.108 − 0.6 = 1.04 · 0.82 − 0.708 = 0.144;
y3 = 0.82y2 − 2 · 0.108 − 0.6 = 0.144 · 0.82 − 0.816 = −0.697.
Skriv v¨arden av de approximativa och exakta l¨osningarna p˚
a formen av en
tabell
n
xn
yn
y
²
0
0.0
2.000
2.000
0.000
1
0.2
1.040
1.037
0.003
2
0.4
0.144
0.140
0.004
3
0.6
−0.697
−0.702
0.005
Problem 2. Anv¨and punkterna (x1 , y1 ) (x2 , y2 ) och (x3 , y3 ) ovan som interpolationsdata och konstruera Lagranges interpolationspolynom L(x) (r¨akna med
3D).
L¨
osning. Andragradsinterpolation utf¨oras med hj¨alp av ett polynom av grad
n = 2 i tre (olika) noder x0 , x1 , x2 , eftersom man kan entydigt best¨amma ett
andragradspolynom P2 (x), som g˚
ar genom de tre (olika) punkterna (x0 , y0 ), (x1 , y1 )
och (x2 , y2 ):
P2 (xi ) = yi
(i = 0, 1, 2).
Skriv polynomen av grad 2
(x − x2 )(x − x3 )
;
(x1 − x2 )(x1 − x3 )
(x − x1 )(x − x3 )
;
l2 (x) =
(x2 − x1 )(x2 − x3 )
(x − x1 )(x − x2 )
l3 (x) =
.
(x3 − x1 )(x3 − x2 )
l1 (x) =
230
(446)
och best¨am Lagranges polynom av grad 2
P2 (x) = y1 l1 (x) + y2 l2 (x) + y3 l3 (x).
(447)
Vi har interpolationsdata
(x1 , y1 ) (x2 , y2 ) (x3 , y3 ) =
(0.2, 1.040) (0.4, 0.144) (0.6, −0.697)
D˚
a
l1 (x) =
(x − 0.4)(x − 0.6)
=
(0.2 − 0.4)(0.2 − 0.6)
(x − 0.4)(x − 0.6)
= 12.5(x − 0.4)(x − 0.6) = 12.5(x2 − x + 0.24);
0.08
(x − 0.2)(x − 0.6)
l2 (x) =
=
(0.4 − 0.2)(0.4 − 0.6)
(x − 0.2)(x − 0.6)
= −25(x − 0.2)(x − 0.6) = 12.5(−2x2 + 1.6x − 0.24); (448)
(−0.04)
(x − 0.2)(x − 0.4)
l3 (x) =
=
(0.6 − 0.2)(0.6 − 0.4)
(x − 0.2)(x − 0.4)
= 12.5(x − 0.2)(x − 0.4) = 12.5(x2 − 0.6x + 0.08).
0.08
och Lagranges andragradsinterpolationspolynom
P2 (x) = 1.040l1 (x) + 0.144l2 (x) − 0.697l3 (x) =
(449)
12.5[1.040(x − 0.4)(x − 0.6) − 0.288(x − 0.2)(x − 0.6) − 0.697(x − 0.2)(x − 0.4)] =
12.5(0.055x2 − 0.392x + 0.159) = 0.687x2 − 4.900x + 1.987.
(450)
Observera att h¨ar, r¨aknades polynomets koefficienter med 3D-avrundning.
F¨or att kolla uttrycket (450), best¨am (med 3D-avrundning) polynomets v¨arde
i interpolationspunkten x = 0.2:
P2 (0.2) = 0.687 · 0.22 − 4.900 · 0.2 + 1.987 = 1.040 = y1 .
(451)
Problem 3. Anv¨and den approximativa l¨osningen {yi } till problemet (444)
och ber¨akna integralen
Z 0.6
y(x)dx
0
231
med trapets formeln. J¨amf¨or resultatet med exakta integralens v¨arde. Tips: best¨am
det exakta integralens v¨arde genom att integrera den exakta l¨osningen till problemet (444)
L¨
osning. Enligt trapetsregeln
Z b
1
1
J = J[a, b] =
f (x)dx ≈ JT = JT [a, b] = h[ f (a) + f (x1 ) + f (x2 ) + · · · + f (xn−1 ) + f (b)],
2
2
a
d¨ar
h = (b − a)/n.
Vi har
b = 0.6,
f (a) = y0 = 2,
a = 0,
h = 0.2,
f (x1 ) ≈ y1 = 1.040,
n = (b − a)/h = 3.
f (x2 ) ≈ y2 = 0.144,
f (b) ≈ y3 = −0.697,
(452)
R¨akna det approximativa integralens v¨arde med 3D utan avrundning
Z 0.6
1
1
y(x)dx ≈ 0.2[ y0 + y1 + y2 + y3 ] = 0.2[1.0 + 1.040 + 0.144 − 0.348] = 0.367.
(453)
2
2
0
R¨akna det exakta integralens v¨arde med 3D utan avrundning
Z 0.6
Z 0.6
Z 0.6
Z 0.6
−x
−x
xdx =
e dx − 3
(2e − 3x)dx = 2
y(x)dx =
0
0
0
2(e0 − e−0.6 ) − 3
0
0.62
= 2(1 − 0.548) − 0.54 = 0.364.
2
Nu r¨akna det exakta v¨ardet med 3D-avrundning
Z 0.6
0.62
y(x)dx = 2(e0 − e−0.6 ) − 3
= 2(1 − 0.549) − 0.54 = 0.362.
2
0
J¨amf¨or de approximativa och exakta (med 3D utan avrundning) integralens
v¨arden:
Z 0.6
y(x)dx − JT = 0.364 − 0.367 = 0.003.
(454)
0
Observera att man kan best¨amma felgr¨anser f¨or trapetsregeln
KM2 ≤ ² ≤ KM2∗ ,
232
(455)
d¨ar
K=−
(b − a)3
2 (b − a)
=
−h
,
12n2
12
b = 0.6, a = 0, n = 3, h = 0.2,
(456)
och
M2 = max f 00 (x),
M2∗ = min f 00 (x),
x∈[a,b]
x∈[a,b]
f (x) = 2e−x − 3x,
f 00 (x) = 2e−x ,(457)
om man anv¨ander i (453) exakta y(x)s v¨arden i st¨allet f¨or de approximativa
v¨ardena y1 , y2 , y3 .
Problem 4. Anv¨and Newtons metod eller fixpunktiteration och ber¨akna en
positiv rot till ekvationen
y(x) = 0,
d¨ar y = y(x) ¨ar den exakta l¨osningen till problemet (444).
Lo
ar vi ekvationen
¨sning 1. Enligt l¨osningen till Problemet 1, f˚
y(x) = 0,
f (x) = y(x) = 2e−x − 3x = 0.
Grovlokalisera dess positiv rot s f¨or att best¨amma begynnelseapproximation (startv¨arde)
x0 . Vi har
f (0.4) ≈ 0.140 > 0, f (0.6) ≈ −0.697 < 0.
Ur de tv˚
a sista olikheterna, ser vi att en rot ligger i intervallet (0.4, 0.6): 0.4 <
s < 0.6.
N¨ar man anv¨ander Newtons metod, itererar man enligt
xn+1 = G(xn ),
G(xn ) = xn −
f (xn )
,
f 0 (xn )
n = 0, 1, 2, . . . .
(458)
H¨ar
f (x) = y(x) = 2e−x − 3x,
f 0 (x) = −2e−x − 3,
och Newtons metod
xn+1 = G(xn ),
G(xn ) = xn +
2e−xn − 3xn
,
2e−xn + 3
n = 0, 1, 2, . . . .
(459)
Stopregeln: F¨or att avbryta iterationer (459) vid ett l¨ampligt xn , n = 1, 2, . . . ,
betraktar vi differensen
dn+1,n = |xn+1 − xn |
233
Ligger dn+1,n inom den fr˚
an b¨orjan uppst¨allda toleransgr¨ansen ²x , dvs
dn+1,n < ²x ,
(460)
har man ber¨aknat ett nollst¨alle till den givna funktionen f (x) = 2e−x − 3x som
ligger i intervallet (0.4, 0.6).
V¨alj toleransgr¨ansen ²x = 0.001 och ett startv¨arde x0 = 0 och ber¨akna Newtons
iterationer (med 3D utan avrundning) n=0:
x1 = G(x0 ) = 0 +
2e0 − 0
= 0.4,
2e0 + 3
d1,0 = |x1 − x0 | = 0.4.
n=1:
x2 = G(x1 ) = 0.4 +
2e−0.4 − 1.2
= 0.432, d2,1 = |x2 − x1 | = |0.432 − 0.400| = 0.032 > 0.001.
2e−0.4 + 3
n=2:
x3 = G(x2 ) = 0.432 +
2e−0.432 − 1.296
= 0.432, d3,2 = |x3 − x2 | = |0.432 − 0.432| = 0.0 < 0.001,
2e−0.432 + 3
och enligt stopregeln (460) ¨ar det 3D-approximativa v¨ardet x∗ ≈ s av den positiva
rotten s till ekvationen 2e−x − 3x = 0 x∗ = x3 = 0.432.
L¨
osning 2. Fixpunktiteration kan skrivas som
xn+1 = g(xn ),
2
g(xn ) = e−xn ,
3
n = 0, 1, 2, . . . .
V¨alj ett startv¨arde x0 = 0 och ber¨akna fixpunktiterationer
n=0:
n=1:
2
x1 = g(x0 ) = e0 = 0.666, d1,0 = |x1 − x0 | = 0.666.
3
2
x2 = g(x1 ) = e−0.666 = 0.342, d2,1 = |x2 − x1 | = 0.324.
3
n=2:
2
x3 = g(x2 ) = e−0.342 = 0.473,
3
d3,2 = |x3 − x2 | = 0.131.
n=3:
2
x4 = g(x3 ) = e−0.473 = 0.415,
3
d4,3 = |x4 − x3 | = 0.085.
n=4:
2
x5 = g(x4 ) = e−0.415 = 0.440,
3
d5,4 = |x5 − x4 | = 0.035.
234
(461)
...
n=8:
n=9:
2
x9 = g(x8 ) = e−0.434 = 0.432,
3
2
x10 = g(x9 ) = e−0.432 = 0.432,
3
d9,8 = |x9 − x8 | = 0.002 > 0.001.
d10,9 = |x1 0 − x9 | = 0.000 < 0.001.
D˚
a, enligt stopregeln (460), ¨ar det 3D-approximativa v¨ardet x∗ ≈ s av den positiva
rotten s till ekvationen 2e−x − 3x = 0 x∗ = x10 = 0.432.
16.4
Tenta 4
Problem 1. L¨os (skriv den exakta l¨osningen) randv¨ardesproblemet f¨or en linj¨ar
differentialekvation av andra ordningen
½ 00
y − 9y = 0, y = y(x), 0 < x < 1,
(462)
y(0) = 0, y(1) = sinh(3).
L¨
osning. Ekvationen
y 00 − 9y = 0
(463)
har karakteristiska polynomet
r2 − 9
med nollst¨allena r1 = 3 och r2 = −3. Den fullst¨andiga l¨osningen till homogena
ekvationen (463) a¨r
y = C1 e3x + C2 e−3x .
Satisfiera randvillkor [p˚
aminn att sinh z = 0.5(ez − e−z )]:
y(0) = 0 → C1 + C2 = 0 → C2 = −C1 ;
(464)
3
−3
3
−3
y(1) = sinh(3) → C1 e − C1 e = sinh(3) = 0.5(e − e ) → C1 = 0.5.
Den (exakta) l¨osningen till randv¨ardesproblemet (462) ¨ar
y = 0.5(e3x − e−3x ) = sinh 3x.
Problem 2. Approximera randv¨ardesproblemet (462) genom att reducera det
till ett linj¨art ekvationssystem med tre obekanta. Approximera derivatan med
y 00 ≈
yi+1 − 2yi + yi−1
.
h2
235
L¨
osning. Eftersom vi m˚
aste f˚
a ett ekvationssystem med tre obekanta och
ekvationen y 00 − 9y = 0 i (462) betraktas i intervallet (0,1), ¨ar antalet delpunkter
xi som tillh¨or (0,1) lika med 3 (antalet delintervall ¨ar 3 + 1 = 4), s˚
a att de
h¨ar delpunkterna xi = ih, i = 1, 2, 3, d¨ar h = (1 − 0)/4 = 0.25. Approximera
differentialoperatorn:
y 00 − 9y ≈
yi+1 − 2yi + yi−1
− 9yi .
h2
Randv¨ardesproblemet (462) approximeras med
yi+1 − 2yi + yi−1
− 9yi = 0,
h2
i = 1, 2, 3;
y0 = 0, y4 = sinh 3.
eller
yi+1 − (2 + 9h2 )yi + yi−1 = 0,
i = 1, 2, 3;
y0 = 0, y4 = sinh 3.
D˚
a f˚
ar vi tre ekvationer
y2 − (2 + 9h2 )y1 + y0 = 0 (i = 1),
y3 − (2 + 9h2 )y2 + y1 = 0 (i = 2),
y4 − (2 + 9h2 )y3 + y2 = 0 (i = 3),
Villkoren y0 = 0, y4 = sinh 3 ger ett linj¨art ekvationssystem med tre obekanta
y1 , y 2 , y3
by1 + y2 = 0,
y1 + by2 + y3 = 0,
y2 + by3 + = − sinh 3,
d¨ar
b = −(2 + 9h2 ) = −
41
= −2.5625.
16
P˚
a matrisformen f˚
ar vi
Ay = b,
d¨ar tridiagonala systemsmatrisen


b 1 0
A =  1 b 1 ,
0 1 b
och h¨ogerledet


0
.
0
b=
− sinh 3
236
Problem 3. L¨os det linj¨ara ekvationssystemet med tre obekanta som approximerar randv¨ardesproblemet (462) med hj¨alp av Gusselimination (dvs, ber¨akna
approximativa l¨osningen). J¨amf¨or den h¨ar approximativa l¨osningen med den exakta l¨osningen.
L¨
osning.
Skriv linj¨ara ekvationssystemet med tre obekanta som approximerar randv¨ardesproblemet
(462) som
−41y1 + 16y2 = 0,
16y1 − 41y2 + 16y3 = 0,
16y2 − 41y3 = −16 sinh 3,
Utf¨or Gusselimination.
1.
16
y2 + 0 · y3 = 0,
41
16y1 − 41y2 + 16y3 = 0,
16y2 − 41y3 = −16 sinh 3,
−16y1 + 16
−16y1 + 16
16
y2 = 0,
41
16
) + 16y3 = 0,
41
16y2 − 41y3 = −16 sinh 3,
y2 (−41 + 16
2.
y2 (
16 · 16 − 41 · 41
) + 16y3 = 0,
41
16y2 − 41y3 = −16 sinh 3,
−
1425
y2 + 16y3 = 0,
41
16y2 − 41y3 = −16 sinh 3,
41 · 16
y3 = 0,
1425
16y2 − 41y3 = −16 sinh 3,
−16y2 + 16
237
41 · 16
−16y2 + 16
y3 = 0,
1425 ¶
µ
41 · 16 · 16
= −16 sinh 3,
y3 −41 +
1425
41 · 16
y3 = 0,
1425
(−33.6344)y3 = −16 sinh 3,
−16y2 + 16
3.
−16y2 + 16
y2 =
41 · 16
y3 = 0,
1425
y3 = 0.4757 sinh 3,
41 · 16
y3 = 0.4603y3 = 0.2190 sinh 3,
1425
y3 = 0.4757 sinh 3,
L¨osningen
16
y2 = 0.3924y2 = 0.0854 sinh 3 = 0.8555,
41
41 · 16
y3 = 0.4603y3 = 0.2190 sinh 3 = 2.1939,
y2 =
1425
y3 = 0.4757 sinh 3 = 4.7655
y1 =
Problem 4. Anpass en r¨at linje till f¨oljande data
t f (t)
−− −−
1
1
2
2
4
1
genom att skriva och l¨osa motsvarande minsta kvadratproblemet.
238
L¨
osning. Om vi ans¨atter den r¨ata linjen f˜(t) p˚
a formen f˜ = c0 + c1 t, f˚
ar vi
minsta kvadratproblemet med systemet
c0 + c1 = 1
c0 + 2c1 = 2
c0 + 4c1 = 1,
Vi skall l¨osa minsta kvadratproblemet f¨or det h¨ar systemet; systemsmatrisen ¨ar
 
 


1
1
1 1
A =  1 2  = [a1 a2 ] , a1 =  1  , a2 =  2  .
1
4
1 4
och


1
b =  2 .
1
Vi har
¸
1 1 1
.
A =
1 2 4
 
·
¸ · ¸
¸ 1
1+2+1
4
1  
2 =
=
.
1+4+4
9
4
1

¸ ·
¸
·
3
7
1
+
1
+
1
1
+
2
+
4
=
=
.
7 21
1+2+4 1+2·2+4·4
·
T
·
T
A b=
·
AT A =
1 1 1
1 2 4
¸
1 1
1 2

1 1
 1 2
1 4
Normalekvationerna
AT Ax = AT b
blir
·
¸
· ¸
3 7
4
x=
,
7 21
9
¯
¯
¯
¯
¯
¯ 4 7 ¯
¯
¯ 3 7 ¯
¯ = 21, ¯ 3 4
¯
¯ = 14, ¯
¯ 7 9
¯ 9 21 ¯
¯ 7 21 ¯
som har l¨osningen
·
x=
c0
c1
¸ ·
¸
21/14 = 3/2
,
,
−1/14
och den r¨ata linjen f˜(t) = 3/2 − 1/14t.
239
¯
¯
¯ = −1
¯
16.5
Tenta 5
Problem 1 (6 p.) L¨os randv¨ardesproblemet
 00
 y + x2 y = f (x), 1 < x < 2,
f (x) = x43 + 2x, y = y(x),

y(1) = 2, y(2) = 1.
(465)
med differensmetoden (4 delintervall).
L¨
osning.
1. Approximera derivatan (i punkten x = xi ) med
y 00 ≈
yi+1 − 2yi + yi−1
,
h2
h = xi+1 − xi .
Eftersom vi m˚
aste anv¨anda 4 delintervall och ekvationen y 00 + x2 y = f (x) i
(465) betraktas i intervallet (1,2), ¨ar antalet delpunkter xi som tillh¨or (1,2) lika
med 3 (antalet delintervall ¨ar 3 + 1 = 4), s˚
a att de h¨ar delpunkterna xi = 1 + ih,
i = 1, 2, 3, d¨ar h = (2 − 1)/4 = 0.25. Vi har x0 = 1, x1 = 1.25, x2 = 1.5, x3 = 1.75
och x4 = 2. Approximera differentialoperatorn (i punkten x = xi ):
y 00 + x2 y ≈
yi+1 − 2yi + yi−1
+ x2i yi .
h2
Randv¨ardesproblemet (465) approximeras med
yi+1 − 2yi + yi−1
4
+ x2i yi = 3 + 2xi , i = 1, 2, 3,
2
h
xi
y0 = 2, y4 = 1.
eller
yi+1 − bi yi + yi−1 = fi , i = 1, 2, 3,
y0 = 2, y4 = 1,
µ
¶
2
2
2
bi = 2 − (hxi ) , fi = 2h
+ xi .
x3i
D˚
a f˚
ar vi tre ekvationer
y 2 − b 1 y 1 + y 0 = f1
y 3 − b 2 y 2 + y 1 = f2
y 4 − b 3 y 3 + y 2 = f3
240
(i = 1),
(i = 2),
(i = 3),
Villkoren y0 = 2, y4 = 1 ger ett linj¨art ekvationssystem med tre obekanta y1 , y2 , y3
−b1 y1 + y2 = f1 − 2,
y1 − b2 y2 + y3 = f2 ,
y2 − b3 y3 = f3 − 1,
Nu kan man ber¨akna bi och fi (med 3D) och f˚
a
−1.902y1 + y2 = −1.715,
y1 − 1.859y2 + y3 = 0.261,
y2 − 1.808y3 = −0.734.
P˚
a matrisformen f˚
ar vi
Ay = f ,
d¨ar tridiagonala systemsmatrisen


−1.902
1
0
,
1
−1.859
1
A=
0
1
−1.808
och h¨ogerledet


−1.715
b =  0.261  .
−0.734
2. L¨osningen av det linj¨ara ekvationssystemet med tre obekanta som approximerar (465) med hj¨alp av t ex Gusselimination ger approximativa l¨osningen till
randv¨ardesproblemet (465))


1.606
y =  1.340  .
1.147
J¨amf¨or den h¨ar approximativa l¨osningen {yi } med den exakta l¨osningen till
randv¨ardesproblemet (465)
y(x) =
2
x
(kolla att den satisfierar randvillkoren
y(1) = 2,
y(2) = 1.)
241
Den exakta l¨osningen (i punkterna x = xi = 1 + 0.25i, i = 1, 2, 3) ¨ar
2
= 1.600,
x1
2
y(x2 ) =
= 1.333
x2
2
y(x3 ) =
= 1.142.
x3
y(x1 ) =
Felet ¨ar
y(x1 ) − y1 = = 1.600 − 1.606 = −0.006
y(x2 ) − y2 = = 1.333 − 1.340 = −0.007
y(x3 ) − y3 = = 1.142 − 1.147 = −0.005.
Normen av felet (med 3D) ¨ar
√
² = 0.0062 + 0.0072 + 0.0052 = 0.01.
Problem 2 (3 p). Interpolera funktionen
f (x) =
2
,
x
x ∈ [1, 2],
(466)
med ett interpolationspolynom Pn (x), n = 3 (r¨akna med 3D i ekvidistanta fallet).
Rita interpolationskurvan och uppskatta interpolationsfelet (med 3D) i punkten
x = 0.45.
Lo
¨sning. Vi skall konstruera ett interpolationspolynom Pn (x) av grad n = 3.
D˚
a beh¨over vi fyra ekvidistanta interpolationsnoder xi ∈ [1, 2]: xi = 1 + ih, i =
0, 1, 2, 3, d¨ar h = (2 − 1)/3 = 1/3 = 0.333. Vi har x0 = 1, x1 = 1 + 1/3 = 1.333,
x2 = 1 + 2/3 = 1.666 och x3 = 2. Funktionens v¨arden i punkterna x = xi =
1 + 0.333i, i = 0, 1, 2, 3, ¨ar
2
x0
2
f1 = f (x1 ) =
x1
2
f2 = f (x2 ) =
x2
2
f3 = f (x3 ) =
x3
f0 = f (x0 ) =
242
= 2.000,
= 3/2 = 1.500
= 6/5 = 1.200.
= 1.
Konstruera differensschemat i noderna
x0 = 1, x1 = 4/3 = 1.333, x2 = 5/3 = 1.666, x3 = 2:
f¨or f (x) = x2 (med 3D)
2
−0.5
1.5
0.2
−0.3
1.2
0.1
−0.1
.
−0.2
1
Anv¨and (xi , fi ) ovan som interpolationsdata och best¨am interpolationspolynomet (ett polynom av grad n = 3, Newtons formel)
Pn = P3 = y0 + r∆f0 +
r(r − 1) 2
r(r − 1)(r − 2) 3
∆ f0 +
∆ f0 .
2!
3!
H¨ar
r=
f0 = 2,
∆f0 = −0.5,
x − x0
x−1
=
= 3(x − 1),
h
1/3
∆2 f0 = 0.2, ∆3 f0 = −0.1,
(467)
och man kan skriva interpolationspolynomet som en funktion av x
3
3
1
Pn (x) = P3 (x) = 2 − (x − 1) + (x − 1)(3x − 4) − (x − 1)(3x − 4)(3x − 5),
2
10
20
eller
P3 (x) = 2 − 1.5(x − 1) + 0.3(x − 1)(3x − 4) − 0.05(x − 1)(3x − 4)(3x − 5).
Man kan ber¨akna polynomet rekursivt (med Horners schemat)
P3 (x) = 2 − 1.5(x − 1) + 0.3(x − 1)(3x − 4) − 0.05(x − 1)(3x − 4)(3x − 5) =
= 2 + (x − 1){−1.5 + (3x − 4)[0.3 − 0.05(3x − 5)]},
eller
3
3
1
P3 (x) = 2 − (x − 1) + (x − 1)(3x − 4) − (x − 1)(3x − 4)(3x − 5) =
2
10
20
3
3
1
= 2 + (x − 1){− + (3x − 4)[ − (3x − 5)]}.
2
10 20
243
Kolla att interpolationspolynomet satisfierar interpolationsvillkoren P3 (xj ) =
yj , j = 0, 1, 2, 3:
P3 (1) = 2,
4
3
P3 (4/3) = 2 + ( − 1){− + 0} = 1.5,
3
2
5
3
5
3
P3 (5/3) = 2 + ( − 1){− + (3 − 4)[ − 0]} = 1.2,
3
2
3
10
3
3
1
P3 (2) = 2 + (2 − 1){− + (6 − 4)[ − (6 − 5)]} = 1.
2
10 20
Ber¨akna felet (med 3D) i punkten x = 0.45
f (x∗ ) − P3 (x∗ ) =
2
− P3 (0.45) = 0.916.
0.45
Om x ∈ [1, 2], uppskattas interpolationsfelet ²3 (x) = f (x) − P3 (x) i punkten
x = x0 + rh = 1 + r/3 med
²3 (x) = f (x) − P3 (x) =
(1/3)4
r(r − 1)(r − 2)(r − 3)
24
h4
r(r − 1)(r − 2)(r − 3)f (4) (t) = (468)
(4)!
µ ¶(4)
2
(1/3)4
48
=
r(r − 1)(r − 2)(r − 3) 5 =
t
24
t
1
0.024 · r(r − 1)(r − 2)(r − 3) 5 , t ∈ (1, 2)
t
(f (x) = x2 har 4 kontinuerliga derivator om x ∈ [1, 2]).
Man kan inte uppskatta interpolationsfelet med (468) om x ∈
/ [1, 2] (dvs x < 1
eller x > 2).
Problem 3 (4 p.) Ber¨akna integralen
Z 1
dx
I=
0 x+3
˜ < ², d¨ar I˜ ¨ar inmed trapets formeln. V¨alj antalet delintervall s˚
a att felet |I − I|
tegralens approximativa v¨arde. Toleransgr¨ansen ² = 0.01. Anv¨and Newtons metod
eller fixpunktiteration och ber¨akna en positiv rot till ekvationen
x5 − I˜2 = 0
med noggranhet ² = 0.01.
244
L¨
osning. Den exakta integralens v¨arde ¨ar
Z 1
2
4
I=
dx = |ln(x + 3)|x=1
= 0.287.
x=0 = ln
3
0 x+3
Felgr¨anser f¨or trapetsregeln
Z b
1
1
I=
f (x)dx ≈ I˜ = h[ f (a) + f (x1 ) + f (x2 ) + · · · + f (xn−1 ) + f (b)],
2
2
a
1
f (x) =
, a = 0, b = 1, h = (b − a)/n,
x+3
uppskattas enligt
KM2 ≤ ² ≤ KM2∗ ,
(469)
d¨ar
K=−
(b − a)3
1
=−
,
2
12n
12n2
(470)
och
2
2
= ,
3
x∈[a,b]
x∈[0,1] (x + 3)
27
2
1
M2∗ = min f 00 (x) = min
=
.
x∈[a,b]
x∈[0,1] (x + 3)3
32
M2 = max f 00 (x) = max
(471)
D˚
a
|²| ≤ |KM2 | =
1 1
1 2
=
12n2 27
162 n2
och
1 1
< 0.01
162 n2
redan om
n = 1,
s˚
a att man kan ber¨akna integralen med noggranhet ² = 0.01 redan om n = 1.
Enligt trapetsregeln med n = 1
µ
¶
1
1
1 1 1
1
7
˜
+
≈ 0.291, (472)
I = h[ f (a) + f (b)] = [f (0) + f (1)] =
=
2
2
2
2 3 4
24
245
och felet
˜ = |0.287 − 0.291| = 0.004 < ² = 0.01.
|I − I|
L¨os ekvationen
f (x) = 0,
f (x) = x5 − I˜2 ,
I˜ = 0.291 (f 0 (x) = 5x4 , I˜2 = 0.084),
med Newtons metod (med 3D):
xn+1
f (xn )
x5n − I˜2
= xn − 0
= xn −
,
f (xn )
5x4n
n = 0, 1, 2, . . . ,
.
(473)
V¨alj t ex x0 = 0.7, eftersom
f (0.5) = −0.052 < 0,
f (0.8) = 0.243 > 0,
och ber¨akna rotten som ligger inom (0.5, 0.7) med Newtons metod:
n
xn |xn+1 − xn |
0 0.700
1 0.630 0.070
2 0.610 0.020
3 0.609 0.001
stop
(eftersom 0.001 mindre ¨an ² = 0.01)
Den positiva rotten till ekvationen x5 − I˜2 = 0 ¨ar x ≈ 0.609.
16.6
Tenta 6
1. (4 p.) Tabellen med korrekt avrundade funktionsv¨arden a¨r given
x
f (x)
0.1
2.3
0.2
2.0
0.3
1.8
0.4
1.9
Approximera f 0 (x) med fram˚
atdifferenser och best¨am sedan f 0 (0.25) med
hj¨alp av andragradsinterpolation.
Lo
atdifferenserna ∆f0 = f1 − f0 , ∆2 f0 = ∆f1 − ∆f0 ,
¨sning. Anv¨and fram˚
etc och best¨am fram˚
atdifferenstabellen
246
x
f (x)
∆f (x)
0.1
2.3
−0.3
0.2
2.0
−0.2
0.3
1.8
0.1
0.4
1.9
och sedan v¨ardena av f 0 (xi ) i punkterna xi = 0.1i, i = 1, 2, 3, med hj¨alp av
approximationen
f 0 (xi ) ≈
∆fi
,
h
i = 1, 2, 3,
h = 0.1,
∆f1
(−0.3)
=
= −3,
0.1
0.1
∆f2
(−0.2)
f 0 (0.2) ≈
=
= −2,
0.1
0.1
∆f3
0.1
f 0 (0.3) ≈
=
= 1,
0.1
0.1
f 0 (0.1) ≈
Vidare best¨am fram˚
atdifferenstabellen f¨or f 0 (x)
x
f 0 (x)
∆f 0 (x)
0.1
−3
1
0.2
−2
3
0.3
1
∆2 f 0 (x)
2
och skriv Newtons interpolationsformel i ekvidistanta fallet (med tre interpolationspunkterna 0.1, 0.2, 0.3)
f 0 (x) ≈ P2 (x) = f00 + r∆f00 +
r(r − 1) 2 0
∆ f0 ,
2!
d¨ar
r =
x − x0
x − 0.1
=
= 10x − 1.
h
0.1
Andragradsinterpolationspolynomet ¨ar d˚
a
P2 (x) = −3 + 1 × (10x − 1) + 2 ×
(10x − 1)(10x − 2)
= (10x − 1)2 − 3
2
och
f 0 (0.25) ≈ P2 (0.25) = (10 × 0.25 − 1)2 − 3 = −0.75.
247
2. (2 p.) Funktionen sin(x2 ) approximeras i intervallet 0 ≤ x ≤ 0.5 med ett
polynom
x6
x10
2
2
sin(x ) ≈ x −
+
.
(474)
6
120
Hur m˚
anga termer blir det tillr¨ackligt att ta med f¨or att f˚
a funktionens v¨arde
i punkten x = 0.2 med tv˚
a korrekta decimaler?
L¨
osning. Best¨am funktionens v¨arde i punkten x = 0.2
sin(0.22 ) = sin(0.04) ≈ 0.22 −
0.26 0.210
+
= 0.04 + r,
6
120
(475)
d¨ar
r ≈ −1.1 × 10−5 + 8.5 × 10−10
och |r| < 10−4 ,
(476)
och det blir tillr¨ackligt att ta med en term i (474) f¨or att f˚
a v¨ardet sin(0.04) ≈
0.04 i punkten x = 0.2 med tv˚
a korrekta decimaler.
3. (3 p.) Skriv ut ett randv¨ardesproblem f¨or en linj¨ar differentialekvation av
andra ordningen med konstanta koefficienter i intervallet 0 < x < 1 som
approximeras med ett linj¨art ekvationssystem Ax = b, d¨ar


 
d 1 0 0
1
 1 d 1 0 


 , b = 2  1  , d = − 49 .
A=
(477)
 0 1 d 1 
25  1 
25
0 0 1 d
1
L¨
osning. Ett randv¨ardesproblem
y 00 + γy = B, a < x < b,
y(a) = f0 , y(b) = fN ,
(478)
approximeras med
yi+1 − 2yi + yi−1
+ γyi = B,
h2
i = 1, 2, . . . , N − 1,
y 0 = f0 , y N = fN ,
eller
yi+1 + (h2 γ − 2)yi + yi−1 = h2 B,
248
i = 1, 2, . . . , N − 1,
y 0 = f0 , y N = fN .
(479)
H¨ar ¨ar a, b, γ, f0 , fN , B och N > 2 (och h = (b − a)/N ) givna tal.
I fallet N = 5, som motsvarar matrisens storlek 4 = 5 − 1 i (477), kan man
skriva (479) som ett linj¨art ekvationssystem med N − 1 = 4 obekanta yi ,
i = 1, 2, 3, 4,
i = 1 : (h2 γ − 2)y1 + y2 + 0 · y3 + 0 · y4
i = 2 : y1 + (h2 γ − 2)y2 + y3 + 0 · y4
i = 3 : 0 · y1 + y2 + (h2 γ − 2)y3 + y4
i = 4 : 0 · y1 + 0 · y2 + y3 + (h2 γ − 2)y4
=
=
=
=
h2 B − y 0 ,
h2 B
h2 B
h2 B − y 5
eller p˚
a matrisformen
Ay = b
med symmetriska tridiagonala matrisen A av typ 4 × 4
 2
h γ−2
1
0
0
2

1
h
γ
−
2
1
0
A=
2

0
1
h γ−2
1
2
0
0
1
h γ−2
och 4-dimensionella kolonnvektorerna

 2

y1
h B − y0
 y2 
 h2 B


y=
 y3  , b =  h2 B
y4
h2 B − y 5




(480)


.

Enligt (477), N = 5 och
h2 γ − 2 = γ
(b − a)2
(b − a)2
49
−
2
=
γ
−2=− ,
2
N
25
25
och vi f˚
ar
γ(b − a)2 = 1.
(481)
Vidare, enligt (477),
h2 B = B
2
(b − a)2
=
25
25
eller B(b − a)2 = 2
(482)
och
h2 B − y 0 =
2
25
och h2 B − y5 =
249
2
25
(483)
s˚
a att y0 = y5 = 0, dvs f0 = fN = 0 i (478).
Randv¨ardesproblemet approximeras i intervallet 0 < x < 1; d˚
a a = 0, b = 1,
b − a = 1, och (481) och (482) ger
γ = 1,
B = 2.
(484)
Nu skriv ut randv¨ardesproblemet som approximeras med det linj¨ara ekvationssystemet som har matrisen (477)
y 00 + y = 2, 0 < x < 1,
y(0) = 0, y(1) = 0,
(485)
4. (3 p.) Ber¨akna med hj¨alp av trapetsregeln
Z 2
x
J=
dx
1 1+x
med ett absolut fel mindre ¨an 0.05.
L¨
osning. Vi har
Z
2
f (x)dx,
J=
µ
00
f (x) =
och
x
1+x
1
¶00
µ
=
1
1−
1+x
f (x) =
¶00
µ
=
x
,
1+x
1
(1 + x)2
¶0
=−
2
,
(1 + x)3
1
2
2
2
2
− =−
≤−
≤−
=− ,
3
3
3
4
(1 + 1)
(1 + x)
(1 + 2)
27
s˚
a att −1/4 ≤ f 00 (x) ≤ −2/27 och |f 00 (x)| ≤ 1/4 om 1 ≤ x ≤ 2. Felgr¨anser
f¨or trapetsregeln ¨ar
KM2 ≤ ² ≤ KM2∗ ,
² = J − JT ,
(486)
d¨ar
1
1
JT = h[ f (1) + f (x1 ) + f (x2 ) + · · · + f (xn−1 ) + f (2)],
2
2
K=−
(b − a)3
1
=
−
,
12n2
12n2
250
h=
1
, (487)
n
(488)
M2 = max f 00 (x) = −
x∈[1,2]
KM2 =
2
,
27
1 2
1
=
,
12n2 27
162n2
1
M2∗ = min f 00 (x) = − .
x∈[a,b]
4
(489)
1 1
1
=
,
12n2 4
48n2
(490)
KM2∗ =
och h¨ar felgr¨anserna
1
1
≤
²
≤
,
162n2
48n2
(491)
Villkoret att felet ¨ar mindre ¨an 0.05 ger
1
1
≤ 0.05 = ,
2
48n
20
eller
1
1
≤ ,
2
12n
5
r
n≥
5
,
12
s˚
a att man kan ta med n = 1 f¨or att ber¨akna J ≈ JT med hj¨alp av trapetsregeln med felet mindre ¨an 0.05. Vidare
µ
¶
1
1 1 2
7
1
+
=
≈ 0.583
JT = h[ f (1) + f (2)] =
2
2
2 2 3
12
(med tre korrekta decimaler). Observera att det exakta v¨ardet
¶
Z 2
Z 2µ
Z 3
x
du
1
J=
dx =
dx = 1 −
= 1 − (ln 3 − ln 2) ≈ 0.599,
1−
1+x
u
1 1+x
1
2
och det aktuella felet
J − JT = 0.599 − 0.583 = 0.016 < 0.05.
5. (3 p.) Ber¨akna (med tv˚
a korrekta decimaler) koordinater f¨or en sk¨arningspunkt
mellan kurvorna
y(x) = x − x4
och f (x) = 0.5 − x3 ,
0 < x < 1,
med hj¨alp av fixpunktsiteration.
Lo
¨sning. F¨or att ber¨akna koordinater f¨or en sk¨arningspunkt, best¨am en
positiv rot till ekvationen
y(x) = f (x),
eller x − x4 = 0.5 − x3 ,
251
0 < x < 1.
Grovlokalisera en (positiv) rot x = s till ekvationen F (x) = 0, F (x) =
x − x4 − (0.5 − x3 ). Vi har 0 < s < 1 eftersom F (0) = −0.5 och F (1) = 0.5.
Skriv om ekvationen ovan som
x = g(x),
g(x) = x4 + 0.5 − x3 .
Vi har
g 0 (x) = g1 (x) = 4x3 − 3x2 = x2 (4x − 3),
g1 (0) = 0,
g1 (1) = 1,
g10 (x) = (4x3 − 3x2 )0 = 12x2 − 6x = 6x(2x − 1).
s˚
a att g10 (0.5) = 0 och
min g 0 (x) = g 0 (0.5) = 0.52 (4 · 0.5 − 3) = −0.25.
0≤x≤1
Vi har
g 0 (0) = 0,
g 0 (1) = 1,
min g 0 (x) = −0.25.
0≤x≤1
D˚
a
|g 0 (x)| < 1,
0 < x < 1,
och man kan v¨alja ett startv¨arde 0 < x0 < 1 till motsvarande version av
fixpunktsiterationsmetod
xn+1 = x4n − x3n + 0.5 (0 < x0 < 1).
Ange f¨orsta iterationer med x0 = 0.2:
x1 = 0.494 |x1 − x0 | = 0.394
x2 = 0.439 |x2 − x1 | = 0.055
x3 = 0.452 |x3 − x2 | = 0.013
x4 = 0.449 |x4 − x3 | = 0.003
och |x4 − x3 | = 0.003 < 0.005 = 0.5 · 10−2 . Avrundning till tv˚
a (korrekta)
decimaler ger s ≈ 0.45, d¨ar s ¨ar en positiv rot till ekvationen x−x4 = 0.5−x3
(0 < s < 1).
V¨ardet s ≈ 0.45 ¨ar den f¨orsta (x-) koordinaten f¨or en sk¨arningspunkt mellan
kurvorna x − x4 och 0.5 − x3 i intervallet 0 < x < 1. Den andra (y-) koordinaten ¨ar y = 0.5 − s3 = 0.5 − 0.453 = 0.41. Observera att man kan ocks˚
a
4
4
ber¨akna den andra (y-) koordinaten enligt y = s − s = 0.45 − 0.45 = 0.41
(vi r¨aknar med tv˚
a korrekta decimaler).
252
6. (4 p.) Betrakta begynnelsev¨ardesproblemet
y 0 = (x + 1)y 2 ,
y(0) = 0.5.
(a) Visa att l¨osningen ¨ar
y(x) =
2
.
4 − 2x − x2
(b) L¨os begynnelsev¨ardesproblemet med Eulers metod. G¨or tre steg med
n˚
agot h < 0.5 (r¨akna med 3D). h ska vara s˚
adant att felet i det 3:e steget
(absolutbeloppet av differensen mellan den exakta och den approximativa
l¨osningen) ¨ar mindre ¨an 0.04.
L¨
osning. (a) Vi har
µ
0
y (x) =
= −2
2
4 − 2x − x2
¶0
= −2
(4 − 2x − x2 )0
=
(4 − 2x − x2 )2
4
(−2 − 2x)
= (x + 1)
= (x + 1)y 2 ,
2
2
(4 − 2x − x )
(4 − 2x − x2 )2
och
y(0) =
2
1
= .
4−0−0
2
(b) Skriv Eulers metod
yn+1 = yn + h(xn + 1)yn2 ,
y0 = 0.5,
xn = nh,
n = 0, 1, 2.
och r¨akna med
h = 0.2
n
x
yn
|yn − y(xn )|
1 0.2
0.550 0.012
2 0.4
0.623 0.035
3 0.6
0.731 0.088
och h = 0.1
1 0.1
0.525 0.003
2 0.2
0.555 0.007
3 0.3
0.592 0.012
Vi ser att felet 0.012 i det 3:e steget ¨ar mindre ¨an 0.04 om h = 0.1.
253
7. (2 p.) Funktionen y = y(x) satisfierar diffekvationen y 00 + y = 0 och villkoren
y(1) = 1 och y 0 (1) = 1. Best¨am y(π/2) (r¨akna med 3D, dvs avrunda alla
mellanresultat till 3D).
L¨
osning. Vi har
y(x) = c1 cos x + c2 sin x,
y 0 (x) = −c1 sin x + c2 cos x,
vilket ger systemet
y(1) = 1 : c1 cos 1 + c2 sin 1 = 1
y (1) = 1 : −c1 sin 1 + c2 cos 1 = 1,
0
som har l¨osningen
c1 = cos 1 − sin 1 ≈ −0.301,
c2 = cos 1 + sin 1 ≈ 1.382,
och
y(π/2) = c1 cos π/2 + c2 sin π/2 = c2 ≈ 1.382.
8. (3 p.) Visa att ekvationen
x3 − 15x + 5 = 0
har en rot i intervallet 0.2 < x < 0.6 och ber¨akna roten approximativt med
hj¨alp av linj¨ar interpolation (r¨akna med 2D).
Lo
¨sning. Visa att ekvationen f (x) = 0, f (x) = x3 − 15x + 5, har en rot i
intervallet 0.2 < x < 0.6. Vi har 0.2 < s < 0.6 eftersom f (0.2) ≈ 2.008 och
f (0.6) ≈ −3.784.
Best¨am ett interpolationspolynom P1 (x) av grad 1 genom punkterna
(0.2, f (0.2)) = (0.2, 2.008) och (0.6, f (0.6)) = (0.6, −3.784).
I intervallet 0.2 ≤ x ≤ 0.6 f˚
ar man interpolationspolynomet P1 (x) genom
x − 0.2
(f (0.6) − f (0.2)) =
0.6 − 0.2
x − 0.2
= 2.008 +
(−3.784 − 2.008) = 2.008 − 14.480(x − 0.2).
0.4
Ber¨akna roten approximativt (r¨akna med 2D):
P1 (x) = f (0.2) +
P1 (x) = 0 →
2.01 − 14.48(x − 0.2) = 0 →
x = 0.2 +
Observera att det exakta rotens v¨arde ¨ar 0.35 (med 2D).
254
2.01
= 0.34.
14.48
16.7
Tenta 7
1. (3 p.) Polynomet P2 (x) = x3 − x + 1 interpolerar n˚
agon funktion f (x) i
00
punkterna xi = ih, i = 0, 1, 2, 3, h = 0.5. Best¨am f (x0 ) genom att ber¨akna
fram˚
atdifferensen av andra ordningen ∆2 f (x0 ) i punkten x0 och approximera
sedan den andra derivatan.
Lo
atdifferenserna ∆f0 = f1 − f0 , ∆2 f0 = ∆f1 − ∆f0 ,
¨sning. Anv¨and fram˚
etc och best¨am fram˚
atdifferenstabellen
xi
f (xi ) = P (xi )
0.0
1.0
0.5
∆2 f (x)
∆f (x)
−0.375
0.75
0.625
0.375
1.5
1.0
1.0
1.875
1.5
2.875
och sedan v¨ardet av f 00 (x0 ) i punkten x0 = 0 (i = 0) med hj¨alp av approximationen
∆2 f (x0 )
0.75
00
f (x0 ) ≈
=
= 3 (h = 0.5).
2
h
0.52
2. (2 p.) Ber¨akna med tre signifikanta siffror r¨otter till andragradsekvationen
x2 − 24x + 1 = 0.
L¨
osning. Ber¨akna r¨otter med tre signifikanta siffror:
√
x1 = 12 + 144 − 1 = 12 + 11.958260 · · · = 23.958260 · · · = 24.0.
√
x2 = 12 − 144 − 1 = 12 − 11.958260 · · · = 0.041739 · · · = 0.0417.
3. (3 p.) Best¨am den r¨ata linjen f (x) = ax+b, som b¨ast approximerar punkterna
(1, 4), (3, 0) och (5, 1) i minstakvadratmening.
L¨
osning. Vi anpassar en r¨at linje till f¨oljande data:
x f (x)
−− −−
1
4
3
0
5
1
255
Om vi ans¨atter den r¨ata linjen f (x) p˚
a formen f (x) = ax + b, f˚
ar vi ett
minsta kvadratproblem med systemet
b+a = 4
b + 3a = 0
b + 5a = 1.
(492)
Vi ska l¨osa minsta kvadratproblemet f¨or systemet (492) Ax = b, d¨ar


 
 
1 1
1
1





A = 1 3 = [a1 a2 ] , a1 = 1 , a2 = 3  .
1 5
1
5
och


4
b =  0 .
1
Vi har
·
¸
1 1 1
A =
.
1 3 5
 
¸ · ¸
·
·
¸ 4
5
4+0+1
1 1 1  
T
0 =
=
.
A b=
9
4+0+5
1 3 5
1


¸ ·
¸
·
·
¸ 1 1
3
9
1
+
1
+
1
1
+
3
+
5
1 1 1 
T
1 3 =
=
.
A A=
9 35
1+3+5 1+3·3+5·5
1 3 5
1 5
T
Normalekvationerna
T
·
T
A Ax = A b blir
3 9
9 35
¸
·
x=
5
9
¸
.
L¨osningen till normalekvationerna a¨r
·
¸
47/12
x=
.
−9/12
Den h¨ar vektorn b¨ast approximerar l¨osningen i minsta kvadratmetodmening
och den r¨ata linjen f (x) = 47/12 − 9/12x.
4. (3 p.) Ber¨akna approximativt v¨ardet y(1.2), d¨ar y(x) ¨ar l¨osningen till begynnelsev¨ardesproblemet
x
y 0 = 2 + 1, y(1) = 10.
y
256
Tips: Anv¨and Eulers metod med n˚
agon passande stegl¨angd h. R¨akna med
tre signifikanta siffror.
L¨
osning. Man f˚
ar approximationerna yn ≈ y(xn ) till l¨osningen y(x) till
begynnelsev¨ardesproblemet enligt Eulers metod
µ
¶
xn
yn+1 = yn + h
+ 1 , y0 = 10, xn = 1 + nh, n = 0, 1, 2, . . . .
yn2
Om h = 0.1, d˚
a kan man ber¨akna med tre signifikanta siffror
µ
¶
µ
¶
x0
1
y(1.1) ≈ y1 = y0 + h
+ 1 = 10 + 0.1
+ 1 = 10.1,
y02
100
µ
¶
µ
¶
x1
1.1
y(1.2) ≈ y2 = y1 + h
+ 1 = 10.1 + 0.1
+ 1 = 10.2,
y12
10.1
x0 = 1, x1 = 1 + h = 1.1, .
5. (4 p.) L¨osningen y(x) till randv¨ardesproblemet
y 00 = 6x,
y(1) = −1,
y(2) = 14,
har ett nollst¨alle i intervallet (1, 1.8). Best¨am nollst¨allet approximativt.
Tips: (a) L¨os randv¨ardesproblemet numeriskt med ett passande antal delintervall och interpolera sedan och ber¨akna nollst¨allet f¨or interpolationspolynomet (r¨akna med tv˚
a korrekta decimaler),
eller
(b) l¨os randv¨ardesproblemet analytiskt och sedan anv¨and Newtons metod
(eller fixpunktsiteration) f¨or att ber¨akna nollst¨allet f¨or l¨osningen y(x) (r¨akna
med tv˚
a korrekta decimaler).
L¨
osning. (a) Approximera randv¨ardesproblemet
½ 00
y − 6x = 0, y = y(x), 1 < x < 2,
y(1) = −1, y(2) = 14.
(493)
genom att reducera det till ett linj¨art ekvationssystem med tre obekanta.
V¨alj tre delpunkter xi som tillh¨or intervallet (1,2) (antalet delintervall ¨ar
3 + 1 = 4). Eftersom ekvationen y 00 − 6x = 0 i (493) betraktas i intervallet
(1,2), de h¨ar delpunkterna xi = 1 + ih, i = 1, 2, 3, d¨ar h = (2 − 1)/4 = 0.25,
s˚
a att
x1 = 1.25, x2 = 1.50, x3 = 1.75.
257
Approximera derivata
y 00 ≈
yi+1 − 2yi + yi−1
,
h2
och differentialoperatorn
y 00 − 6x ≈
yi+1 − 2yi + yi−1
− 6xi .
h2
Randv¨ardesproblemet (493) approximeras med
yi+1 − 2yi + yi−1
− 6xi = 0,
h2
i = 1, 2, 3;
y0 = −1, y4 = 14.
eller
yi−1 − 2yi + yi+1 = 6h2 xi ,
i = 1, 2, 3;
y0 = −1, y4 = 14.
D˚
a f˚
ar vi tre ekvationer
y0 − 2y1 + y2 = 6h2 x1
y1 − 2y2 + y3 = 6h2 x2
y2 − 2y3 + y4 = 6h2 x3
(i = 1),
(i = 2),
(i = 3),
eller
y0 − 2y1 + y2 = 0.47 (i = 1),
y1 − 2y2 + y3 = 0.56 (i = 2),
y2 − 2y3 + y4 = 0.66 (i = 3)
(med tre signifikanta siffror).
Villkoren y0 = −1, y4 = 14 ger ett linj¨art ekvationssystem med tre obekanta
y1 , y2 , y3
−2y1 + y2 = 1.47,
y1 − 2y2 + y3 = 0.56,
y2 − 2y3 = −13.34,
P˚
a matrisformen f˚
ar vi
Ay = b,
d¨ar tridiagonala systemsmatrisen


−2 1
0
A =  1 −2 1  ,
0
1 −2
258
och h¨ogerledet


1.47
b =  0.56  .
−13.34
L¨os det linj¨ara ekvationssystemet med tre obekanta Ay = b, som approximerar randv¨ardesproblemet (493) med hj¨alp t ex, av Gusselimination dvs,
ber¨akna approximativa l¨osningen. Svaret ¨ar (med tre signifikanta siffror)

 

y1
1.95
y =  y2  =  5.38  .
y3
9.36
Man kan skriva ocks˚
a
y(x1 ) = y(1.25) ≈ y1 = 1.95
y(x2 ) = y(1.50) ≈ y1 = 5.38
y(x3 ) = y(1.75) ≈ y1 = 9.36
F¨or att best¨amma approximativt y:s nollst¨alle s i intervallet (1, 1.8), konstruera ett interpolationspolynom P1 (x) av grad 1 som sammanfaller i punkterna x0 = 1 och x1 = 1.25 med v¨ardena y(x0 ) = y0 = −1, och y(x1 ) ≈ y1 =
1.95 (interpolationsdata ¨ar
(x0 , y0 ) (x1 , y1 )
(1, −1) (1.25, 1.95)
P1 (x) f˚
as ur
P1 (x) = y0 +
x − x0
(y1 − y0 ),
x1 − x0
x ∈ [x0 , x1 ],
(ett interpolationsintervall [x0 , x1 ] = [1, 1.25]):
P1 (x) = −1 + (1.95 − (−1))
x−1
= −1 + 11.8(x − 1) = 11.8x − 12.8,
1.25 − 1
x ∈ [1, 1.25].
Best¨am nollst¨allet s i intervallet (1, 1.8) genom att l¨osa ekvationen P1 (x) = 0,
dvs 11.8x − 12.8 = 0. Vi har
s=
12.8
= 1.08.
11.8
259
(494)
(b) L¨osningen till randv¨ardesproblemet ¨ar y(x) = x3 + 8x − 10 (eftersom
y 00 = (x3 + 8x − 10)00 = 6x, y(1) = −1 och y(2) = 14). Enligt Newtons metod
xn+1 = xn −
y(xn )
,
y 0 (xn )
n = 0, 1, 2, . . . ,
x0 = 1,
f˚
ar vi
xn+1 = xn −
x3n + 8xn − 10
x3n + 5
=
2
,
3x2n + 8
3x2n + 8
n = 0, 1, 2, . . . ,
x0 = 1,(495)
eller
x0 = 1,
x1 = 2
x30 + 5
,
3x20 + 8
x2 = 2
x31 + 5
,
3x21 + 8
....
(496)
Nu r¨akna nollst¨allet s∗ enligt (495) och (496) med tv˚
a korrekta decimaler:
n xn
|xn − xn+1 |
0 1.00
0.09
1 1.09
0.00
2 1.09
0.00
Observera att differensen mellan det exakta (med tv˚
a korrekta decimaler)
∗
nollst¨allet s = 1.09 och det approximativa v¨ardet (494) ¨ar s∗ − s = 1.09 −
1.08 = 0.01
6. (3 p.) Best¨am hur m˚
anga delintervall man har tagit med f¨or att ber¨akna
Z 1
ln(3x + 2)dx ≈ 1.2
0
med hj¨alp av trapetsregeln, om det exakta integralens v¨arde ¨ar 1.2202984
(med 7 korrekta decimaler).
L¨
osning. Enligt trapetsregeln
Z
b
J = J[a, b] =
f (x)dx ≈ JT = JT [a, b], ,
a
1
1
JT [a, b] = Jn [a, b] = h[ f (a) + f (x1 ) + f (x2 ) + · · · + f (xn−1 ) + f (b)],(497)
2
2
h = (b − a)/n,
260
har vi
Z
1
J = J[0, 1] =
ln(3x + 2)dx ≈ JT = JT [0, 1], ,
0
1
1
JT [0, 1] = Jn [0, 1] = h[ f (0) + f (x1 ) + f (x2 ) + · · · + f (xn−1 ) + f (1)],
2
2
f (x) = ln(3x + 2),
h = (b − a)/n = 1/n.
Det maximala absoluta felet uppskattas
|J[a, b] − JT [a, b]| ≤ M
(b − a)3
,
12n2
M = max |f 00 (x)|.
x∈[a,b]
H¨ar
1
|J[a, b] − JT [a, b]| ≤ M
,
12n2
¯
¯
¯
¯
9
¯ = 9 = 9,
M = max | ln(3x + 2)00 | = max ¯¯−
2
x∈[0,1]
x∈[0,1]
(3x + 2) ¯ 22
4
och
|J[0, 1] − JT [0, 1]| ≤
9 1
3
3h2
=
=
.
4 12n2
16n2
16
Felgr¨anser f¨or trapetsregeln
KM2 ≤ ² ≤ KM2∗ ,
d¨ar
K=−
och
(b − a)3
h2
2b − a
=
−h
=
−
12n2
12
12
¶
9
9
9
= max f (x) = max −
=−
=− ,
2
2
x∈[a,b]
x∈[0,1]
(3x + 2)
(3 + 2)
25
µ
¶
9
9
9
= min f 00 (x) = min −
=− 2 =− .
2
x∈[a,b]
x∈[0,1]
(3x + 2)
2
4
µ
M2
M2∗
00
Felgr¨anser f¨or trapetsregeln blir
9 h2
h2 9
≤²≤
,
25 12
12 4
261
(498)
eller
3h2
3h2
≤²≤
.
100
16
Det aktuella felet ¨ar 1.2202984 · · · − 1.2 = 0.0202984 · · · < 0.0203. F¨or att
best¨amma hur m˚
anga delintervall man har tagit med f¨or att ber¨akna integralen med felet 0.0203, l¨os olikheten
3h2
≤ 0.0203
16
h≤
√
0.1083 ≈ 0.3291
→
→
h2 ≤
16
0.0203 ≈ 0.1083,
3
1
≤ 0.3291
n
→
n≥
1
= 3.0386
0.3291
s˚
a att man har tagit med fyra delintervall.
7. (3 p.) F¨oljande tabellen inneh˚
aller approximationerna x0 , x1 , x2 , . . . till roten
s till ekvationen f (x) = 0 ber¨aknade med fixpunktsiteration
n
xn
0
1
1
0.03170580303842
2
0.19365990175593
3
0.16150966777849
4
0.16783831805658
5
0.16658971307028
6
0.16683595101319
7
0.16678738621438
8
0.16679696435016
9
0.16679507530731
Best¨am heltalen i, j och k s˚
adana att approximationen
xi har 2 korrekta decimaler (KD), xj har 3 KD xk har 4 KD.
L¨
osning. En approximation a
˜ s¨ags ha n KD om
|∆a| = |˜
a − a| ≤ 0.5 · 10−n
262
Vi har
|x1 − x2 | = |0.19365990175593 − 0.03170580303842| = 0.16 . . . .
|x2 −x3 | = |0.19365990175593−0.16150966777849| = 0.0322 · · · ≤ 0.05 = 0.5·10−1 .
|x3 −x4 | = |0.16783831805658−0.16150966777849| = 0.0063 · · · ≤ 0.05 = 0.5·10−1 ,
0.0063 · · · ≥ 0.005 = 0.5 · 10−2 .
|x4 −x5 | = |0.16783831805658−0.16658971307028| = 0.0012 · · · ≤ 0.005 = 0.5·10−2 ,
och x5 = 0.1665 · · · ≈ 0.17 har 2 KD.
|x5 −x6 | = |0.16683595101319−0.16658971307028| = 0.00024 · · · ≤ 0.0005 = 0.5·10−3 ,
och x6 = 0.1668 · · · ≈ 0.167 har 3 KD.
|x6 −x7 | = |0.16683595101319−0.16678738621438| = 0.000048 · · · ≤ 0.00005 = 0.5·10−4 ,
och x7 = 0.16678 · · · ≈ 0.1668 har 4 KD.
8. (3 p.) Best¨am matrisprodukten


2 −1 0
C = A · B, A =  −1 2 −1  ,
0 −1 2


−2 0
0
B =  1 −2 1  ,
0
0 −2
och l¨os sedan det linj¨ara ekvationssystemet


1
b = 5 0 
1
Cx = b,
med hj¨alp av Gausselimination.
Lo
¨sning. Matrisprodukten


−5 2 −1
C = A · B =  4 −4 4  .
−1 2 −5
L¨osningen till det linj¨ara ekvationssystemet ovan
 
5

Cx = b, b = 0 
5
¨ar


−2.5
x =  −5.0  .
−2.5
263
17
MATLAB¨
ovningar
17.1
MATLAB grunder
17.1.1
Komma ig˚
ang
Se till att du har g˚
att i ditt konto och har startat MATLAB och g˚
att till din
hemkatalog. Observera att l¨osenordet skall bytas vid f¨orsta inloggningen. Anv¨and
menyn uppe till h¨oger. Visa Current directory i n˚
agot av delf¨onstren till v¨anster
s˚
a att du ser vilka filer du har.
Samla ett antal kommandon tillsammans i filer som du sedan k¨or i MATLAB.
Anv¨and MATLAB Editor f¨or att skriva filerna och sedan spara de i din hemkatalog.
17.1.2
Filer i MATLAB
Man kan skriva MATLAB kommandon i en text fil med n˚
agon editor, t ex MATLAB editor som startas med
>> edit
Dessa kommandon exekveras i MATLAB d˚
a anv¨andaren skriver filens namn och
eventuella parametrar.
Man skriver filer med hj¨alp av MATLAB editor och sparar filer i kataloger och
underkataloger.
M-filer. En MATLAB fil (M-fil) ¨ar en fil med namnet p˚
a formen
filnamn.m
dvs det m˚
aste ha suffix .m.
Systemkommandot
>> dir
listar alla filer i en katalog eller underkataloger. Systemkommandot
>> cd
visar (¨andrar) den aktuella katalogen, t ex,
>> cd d:\minmatlabkurs
Skapa ett bibliotek (katalog) som heter t ex matlab (eller minmatlabkurs)
och spara alla sina M-filer i detta. MATLAB tittar efter denna katalog (matlab),
eller katalogen minmatlabkurs om man skriver
>> cd d:\minmatlabkurs
och hittar d˚
a filer.
T ex, MATLABraden
>> cd
C:\MATLAB\minmatlabkurs
visar aktuell katalog (dvs minmatlabkurs) som man anv¨andar, och MATLABraden
>> dir
.
264
..
a.dat
mintextfil.txt
frstkommfil.m
minmatlabfunk1.m
minmatlabfunk2.m
figdraw.mat
thematrix.m
...
exempel106.m
...
problem312.m ...
visar alla filer i denna katalog.
Kommandofiler. Kommandofiler i MATLAB ¨ar vanliga MATLAB .m-filer
(ASCII-filer) som inneh˚
aller rader (listor) med MATLAB-kommandon.
Funktionsfiler. Funktionsfiler fungerar ungef¨ar som matematiska funktioner,
t ex
function y = f(x)
y = x∗(sqrt(x+1) - sqrt(x));
Funktionsfilen har ordet function som f¨orsta i sin f¨orsta rad.
Funktionsfilen sparas med namnet som sammanfaller med det aktuella funktionens
namn, s˚
a att funktionsfilen ovan sparas med namnet f.m
Man skapar funktionsfiler och sedan, en kommandofil som k¨or funktionsfilerna.
17.2
MATLAB som minir¨
aknare
17.2.1
Exempel: r¨
akna genom att skriva direkt i MATLABfo
¨nstret
R¨akna genom att skriva direkt i MATLABf¨onstret, t ex,
>> 2341 + 201 + 342 + 4556 + 213
och trycka Enter f¨or att f˚
a svaret
>> ans =
7653
G¨or det genom att skapa en kommandofil (en vanlig ASCII-text-fil)
summan = 2341 + 201 + 342 + 4556 + 213
och spara den som en MATLAB M-fil (kommandofil), dvs som en fil med ett
visst namn, t ex lab11kom.m (med suffix .m) i din katalog. Sedan skriv MATLABraden (filens namn) i MATLABf¨onstret
>> lab11kom
och f˚
a svaret
>> summan =
265
7653
17.2.2
Exempel: ber¨
akna ett tal genom att skriva en kommandofil
√
Ber¨akna talet 2 + 2 − 0.2 · 1.8 genom att skriva en kommandofil
irrtal = sqrt(2) + 2 - 0.2∗1.8
Spara den som en MATLAB M-fil (kommandofil) lab12kom.m i din MATLABkatalog. Sedan skriv filens namn i MATLABf¨onstret
>> lab12kom
och f˚
a svaret
>> irrtal =
3.0542
Skriv direkt i MATLABf¨onstret
>> sqrt(2) + 2 - 0.2∗1.8
och tryck Enter f¨or att f˚
a svaret.
17.2.3
Exempel: funktionsber¨
akning
Ber¨akna
√
√
f (x) = x[ x + 1 − x]
f¨or v¨axande
x=
1.00000
10.0000
100.000
1000.00
10000.0
100000
Skriv direkt i MATLABf¨onstret
>> sqrt(1+1) - 1, 10∗(sqrt(10+1) - sqrt(10)), 100∗(sqrt(100+1) - sqrt(100)), 1000∗(sqrt(1000+1)
- sqrt(1000)), 10000∗(sqrt(10000+1) - sqrt(10000)),
100000∗(sqrt(100000+1) - sqrt(100000))
och f˚
a svaret (med fyra korrekta decimaler)
>> ans =
0.4142
>> ans =
1.5434
>> ans =
4.9876
...
266
>> ans =
158.1135
Skapa en funktionsfil
function y = lab1ex3(x)
y = x∗(sqrt(x+1) - sqrt(x));
(spara den som en M-fil lab1ex3.m) och sedan, en kommandofil som k¨or funktionsfilen,
ex103(1), ex103(10), ex103(100), ex103(1000), ex103(10000), ex103(100000)
Spara den som en kommandofil lab1ex3kom.m i din katalog och skriv i MATLABf¨onstret
>> ex103kom
D˚
a f˚
ar du svaret ovan.
17.2.4
Exempel: ber¨
akna ett algebraiskt uttryck
Ber¨akna uttrycket
a
,
b−c
a = 0.81534, b = 35.724, c = 35.596.
Skapa en funktionsfil som r¨aknar motsvarande funktion av tre variabler, och sedan,
en kommandofil som k¨or funktionsfilen. R¨akna med hj¨alp av kommandofilen.
17.2.5
Exempel: en kommandofil som ber¨
aknar tal
Skriv en kommandofil som ber¨aknar talen
4 + 5/2·7
4 + (5/2)·7
4 + 5/(2·7)
9·4
· 8/2 - 5
3 + 3·2
17.3
Vektorer och matriser
17.3.1
Exempel: en matris av typ 2 × 3
Betrakta en matris av typ 2 × 3
¸ ·
¸
·
1 2 3
a11 a12 a13
=
a = [aj k ] =
a21 a22 a23
4 5 6
a har 2 rader och 3 kolonner. Den f¨orsta raden ¨ar [1 2 3].
Den andra raden ¨ar [4 5 6].
267
De andra och tredje kolonner ¨ar
·
¸ · ¸
3
,
.
6
2
5
Matriselementen
a11 = 1,
a12 = 2,
...
a23 = 6.
I MATLAB, definition av matrisen a av typ 2 × 3 kan ske genom att man ger
elementen p˚
a samma kommandorad, d¨ar semikolon skiljer matrisraderna,
>> A = [1 2 3; 4 5 6];
eller elementvis:
>> a(1,1) = 1; a(1,2) = 2; a(1,3) = 3; a(2,1) = 4; a(2,2) = 5; a(2,3) = 6;
Skriv en kommandofil som skapar matrisen A ovan.
17.3.2
Exempel: skapa matriser
Skapa matrisen A =
−9 −3 −16
13 7
16
3
3
16
genom att skriva en kommandofil.
17.3.3
Exempel: skapa matriser genom att skriva en kommandofil
Skapa matrisen A =
3 4 5
6 2 9
genom att skriva en kommandofil.
17.3.4
Exempel: radvektorer och kolonnvektorer
Ange ett exempel av radvektorer och kolonnvektorer i MATLAB
>> radvek = [1.2 3.2 4];
>> kolvek = [2.7; 3.4; -9.2];
Genom att skriva
>> kolvek
s˚
a visas
kolvek =
2.7000
3.4000
-9.2000
Skriv en kommandofil som skapar radvektorn radvek och kolonnvektorn kolvek och
radvektorer och kolonnvektorer som ger matriserna i 17.3.1 och 17.3.2.
268
17.3.5
Exempel: definition av matriser
genom radvektorer och kolonnvektorer
Matrisen
·
a = [aj k ] =
a11 a12 a13
a21 a22 a23
¸
·
=
1 2 3
4 5 6
¸
kan skrivas som
>> a1 = [1 2 3]; a2 = [4 5 6]; A = [a1; a2];
eller
>> b1 = [1; 4]; b2 = [2; 5;]; b3 = [3; 6;]; A = [b1 b2 b3];
d¨ar radvektorerna
a1 = [1 2 3], a2 = [4 5 6]
och kolonnvektorerna
·
b1 =
1
4
¸
·
, b2 =
2
5
¸
·
, b3 =
3
6
¸
.
Skriv en kommandofil som skapar matriserna i 17.3.1 och 17.3.2 med hj¨alp av deras
radvektorer och kolonnvektorer.
17.3.6
Exempel: MATLABkommandot
ones(1,m)
MATLABkommandot ones(1,m) ger en radvektor med 1 rad och m element
(kolonner), dvs en 1 × m matris med ettor.
Skriv en kommandofil som skapar radvektorer med 5, 7, och 8 element best˚
aende
av talen (i) 1, (ii) 4, (iii) 402, (iv) -2.34.
17.3.7
Exempel: MATLABkommandot
i:h:k
MATLABkommandot i:h:k ger en radvektor fr˚
an i till k i steg om h, dvs
i, i + h, i + 2h, . . . , k.
Anv¨and MATLABkommandot i:h:k och skriv en kommandofil som skapar radvektorer
12345678
20 22 24 26 28 30
0 0.1 0.2 ... 0.9 1.0
Skriv en funktionsfil lab1ex12.m som skapar radvektorerna ovan med hj¨alp av
kommandot i:h:k Skriv en kommandofil lab1ex12kom.m som k¨or funktionsfilen lab1ex12.m I kommandofilen, ange tre tal a, b och h och skapa olika radvektorer fr˚
an a till b i steg om h med olika a, b och h genom att k¨ora lab1ex12.m
t ex
>> a=1; b=8; h=1; lab1ex12(a,b,h)
269
17.3.8
Exempel: en kommandofil som r¨
aknar dina r¨
akningar
Skriv en M-fil (kommandofil) som r¨aknar dina r¨akningar i januari–december 2001.
H¨ar kommer ett exempel av en s˚
adan fil som r¨aknar kommande r¨akningar i
januari–augusti 2002.
disp(’Mina r¨akningar i jan 2002 – aug 2002’)
antman = 8;
manad = 1:1:antman;
lagen = 2456*ones(1,antman);
autog1 = 1005*ones(1,antman);
autog2 = 156*ones(1,antman);
garag = 220*ones(1,antman);
lan1 = [515 554 556 616 602 610 517 550];
telia = [347 282 675 721 553 632 453 850];
ma(1)= 2456+1005 +156 +220 +515 +347;
ma(2)= 2456+1005 +156 +220 +554 +282;
ma(3)= 2456+1005 +156 +220 +556 +675;
ma(4)= 2456+1005 +156 +220 +616 +721;
ma(5)= 2456+1005 +156 +220 +602 +533;
ma(6)= 2456+1005 +156 +220 +610 +632;
ma(7)= 2456+1005 +156 +220 +517 +453;
ma(8)= 2456+1005 +156 +220 +550 +850;
rakn = [manad; lagen; autog1; autog2; garag; lan1; telia; ma]
plot(manad, lan1, ’–’, manad, telia, manad, ma)
grid
xlabel(’M˚
anader, jan 2002 – aug 2002’), ylabel(’L˚
an 1 (–), Telia, Summan’)
MATLABkommandon diag skapar olika diagonalmatriser:
diag (x) ger en kvadratisk diagonalmatris d¨ar diagonalen ¨ar vektorn (x).
Utomdiagonala element ¨ar noll.
diag (x, k) ger en kvadratisk diagonalmatris av typ (n + |k|) × (n + |k|) med
(x)’s element i k:e diagonalen. k = 0 avser huvuddiagonalen, k < 0 diagonaler
under huvuddiagonalen och k > 0 diagonaler ¨over huvuddiagonalen.
17.3.9
Exempel: MATLABkommandon diag och diagonalmatriser
A=
1 2 30
3 4 40
5 6 50
270
diagA =
1
4
50
diagdiagA1 =
010 0
004 0
0 0 0 50
000 0
diagdiagA-1 =
00 00
10 00
04 00
0 0 50 0
17.3.10
Exempel: diagonalmatriser
Anv¨and diag-kommandon och skriv en M-fil (kommandofil) som assemblerar n × n
matriser med elementen
1. n = 3; aj j = 1 och aj k = 0, j 6= k. (en diagonalmatris: enhetsmatris).
2. n = 4; aj j = 10 och aj k = 0, j 6= k. (en diagonalmatris).
3.



A=


1
1
0
0
0
1
2
1
0
0
0
1
3
1
0
0
0
1
4
1
0
0
0
1
5






4. n = 5; aj j = 4 och aj k = 0 p˚
a alla ¨ovriga platser s˚
a n¨ar som p˚
a (4 5) d¨ar
aj k = 10.
5. n = 4; den f¨orsta kolonnen best˚
ar av nollor och varje f¨oljande k kolonn best˚
ar
av talen k, k = 1, 2, 3.
271
17.3.11
Exempel: en funktionsfil som l¨
oser ett linj¨
art ekvationssystem
Skriv en funktionsfil som l¨oser det linj¨ara
metriska tridiagonala koefficientmatrisen

a b 0
 b a b

A = [aj k ] = 
 0 b a
 0 0 b
0 0 0
ekvationssystemet Ax = b med sym0
0
b
a
b
0
0
0
b
a



,


a 6= b.
och olika b. Best¨am A:s storlek. Anv¨and diag-kommandon och skapa koefficientmatrisen A. Utf¨or funktionsfilen med olika indata. Kolla resultat.
17.3.12
Exempel: v¨
ardetabeller fo
¨r funktioner
Generera v¨ardetabeller f¨or funktioner f (x) ber¨aknade i ett likformigt n¨at av n
punkter x = xi som tillh¨or intervallet [a, b].
1. f (x) = 2 cos x, a = −π/2, b = π/2, n = 10.
2. f (x) =
x − 1.96
, a = −10, b = 10, n = 20.
x2 + 1.15
3. f (x) = 2x3 + x2 + 5x + 17, a = −2, b = 2, n = 20.
Anv¨and f¨oljande exemplet av generering av en funktionstabell f¨or funktionen
f (x) = sin x, x ∈ [a, b] = [0, 2π]:
MATLAB kommandon
>> a = 0; b = 2∗pi; n = 10; h = (b–a)/n; x = (a:h:b)’; y = sin(x); Ftable =
[x, y]
genererar funktionstabellen f¨or sin x som best˚
ar av tv˚
a 10-element kolonnvektorer
x och y
Ftable =
0
0
0.6283 0.5878
1.2566 0.9511
...
Man kan ocks˚
a anv¨anda kommandon
272
linspace(a,b)
returnerar en vektor med 100 element i [a, b] (som delar [a, b]
i lika stora intervall).
och
linspace(a,b,n)
returnerar en vektor med n element i [a, b] (som delar [a, b]
i lika stora intervall).
17.4
Ekvationer
Best¨amning av nollst¨allen till funktioner av en variabel kan g¨oras med MATLAB
kommandot fzero F¨or polynom b¨or man ist¨allet anv¨anda MATLAB kommandot roots Algoritmen f¨or fzero ¨ar iterativ och kr¨aver att anv¨andaren ger ett
x-v¨arde n¨ara det nollst¨alle man s¨oker.
fzero(fkn,x0)
returnerar ett av nollst¨allena till funktionen som a¨r angiven
i str¨arngen fkn. Kommandot kr¨aver att man ger en startgissning x0. Approximationens relativa fel ¨ar MATLAB variabeln eps.
fzero(fkn,x0,tol)
returnerar ett av nollst¨allena till funktionen som ¨ar angiven i str¨arngen fkn med relativa felet tol. Kommandot kr¨aver att man ger en
startgissning x0.
17.4.1
Exempel: en sk¨
arningspunkt mellan kurvor
F¨or att best¨amma en sk¨arningspunkt mellan kurvan sin x och 2x − 2, dvs hitta en
l¨osning till ekvationen sin x = 2x − 2, eller
sinm(x) ≡ sin x − 2x + 2 = 0,
(499)
skapar vi en M-fil sinm.m som ber¨aknar funktionen
sinm(x) = sin x − 2x + 2
function s = sinm(x)
s = sin(x) - 2.∗x + 2;
Att rita ut kurvan kan vara ett bra s¨att at finna en startgissning x0, och vi
srkiver
fplot(’sinm’, [-10,10])
grid on; title(’Funktionen sin(x) - 2.∗x + 2’);
Vi ser att x0 = 2 kan vara en god startgissning, och srkiver
273
xzero = fzero(’sinm’,2)
som ger sk¨armingspunkten
xzero =
1.4987
som allts˚
a ¨ar en l¨osning till ekvationen sin x = 2x − 2.
17.4.2
Exempel: fixpunktsiteration
Skriv om ekvationen (499) sin x − 2x + 2 = 0
x = 0.5 sin x + 1,
(500)
och iterera enligt fixpunktsiteration
xn+1 = 0.5 sin xn + 1,
n = 0, 1, 2, . . . , x0 = 2
(501)
Newtons metod. Skriv om ekvationen f (x) = 0
x = G(x),
d¨ar
G(x) = x −
f (x)
,
f 0 (x)
f (x) = sin x − 2x + 2,
¨ar en deriverbar funktion, f 0 (x) = cos x − 2 6= 0. och iterera enligt
xn+1 = G(xn ),
G(xn ) =
xn cos xn − sin xn − 2
,
cos xn − 2
n = 0, 1, 2, . . . .
(502)
Stopregeln: ligger dn = |xn+1 − xn | inom den fr˚
an b¨orjan uppst¨allda toleransgr¨ansen ², dvs
dn < ²,
har man l¨ost den numeriska uppgiften att ber¨akna ett nollst¨alle (som ligger i en
omgivning till x0 = 2) till den givna funktionen f (x) = sin x − 2x + 2.
Man kan programmera stopregeln med hj¨alp av while kommandot, t ex f¨or
s = 1 + 41 + 19 + . . .
tolerans = 0.001; i = 1; s = 0; x = 1;
while abs(x) >= tolerans
274
x=1./(i.*i); s=s+x; i=i+1;
end
MATLABr¨aknade tabellen visar f¨orsta tio xn ber¨aknade med
fixpunktsiteration (501)
n
xn
1 1.45464871341284
2 1.49663122267470
3 1.49862551453152
4 1.49869840857007
5 1.49870103537325
6 1.49870112998303
7 1.49870113339054
8 1.49870113351326
9 1.49870113351768
10 1.49870113351784
xn − xn+1
-0.04198250926186
-0.00199429185682
-0.00007289403855
-0.00000262680318
-0.00000009460978
-0.00000000340750
-0.00000000012273
-0.00000000000442
-0.00000000000016
-0.00000000000001
och Newtons metod (502)
1
2
3
4
5
6
7
8
9
10
1.54857769541316
1.49932951966471
1.49870123562728
1.49870113351785
1.49870113351785
1.49870113351785
1.49870113351785
1.49870113351785
1.49870113351785
1.49870113351785
0.04924817574845
0.00062828403743
0.00000010210943
0.00000000000000
0
0
0
0
0
0
H¨ar kommer en MATLABkod
x = 2; y = 2;
for i = 1:10
r(i,1) = i;
x = 0.5*sin(x)+1;
y = (y.*cos(y)-sin(y)-2)./(cos(y)-2);
r(i,2) = x;
r(i,3) = x - 0.5*sin(x)-1;
r(i,5) = y - (y.*cos(y)-sin(y)-2)./(cos(y)-2);
275
r(i,4) = y;
end
r
Ange en MATLABkod som anv¨ander
while
kommandot
disp(’Fixpunktsiteration, x = 0.5*sin(x) + 1’)
x=2; eps = 10e-6; i=0;
startv = 2, tolerans = eps,
while abs(x - (0.5*sin(x)+1)) >= eps
x=0.5*sin(x)+1; i=i+1;
iterationer(i,1)=i;
iterationer(i,2)=x;
iterationer(i,3) =abs(x - (0.5*sin(x)+1));
end
format long
iterationer
antaliter = i, rot = x
H¨ar kommer resultat
Fixpunktsiteration, x =
startv =
2
tolerans =
1.0000e-005
iterationer =
1 1.45464871341284
2 1.49663122267470
3 1.49862551453152
4 1.49869840857007
antaliter =
4
rot =
1.49869840857007
17.4.3
0.5*sin(x) + 1
0.04198250926186
0.00199429185682
0.00007289403855
0.00000262680318
Exempel: koordinater av en sk¨
arningspunkt
Ber¨akna (med fyra korrekta decimaler) koordinater av en sk¨arningspunkt mellan
kurvorna
y(x) = x2 − x5 och f (x) = 0.75 − x3 , 0 < x < 1,
276
Tips: (1) Skapa en funktionsfil som ber¨aknar y(x) − f (x). (2) Grovlokalisera
en rot till y(x) − f (x) = 0 genom att rita motsvarande kurvor. Anv¨and polyval
och plot
17.4.4
Exempel: l¨
os en ekvation med fixpunktsiteration
L¨os ekvationen
f (x) ≡ x3 − 5.00x2 + 1.01x − 1.88 = 0
med fixpunktsiteration
xn+1 = g(xn ),
n = 0, 1, 2, . . .
(503)
(dvs best¨am dess r¨otter).
Tips: (1) Skapa en funktionsfil som ber¨aknar f (x). (2) Grovlokalisera en rot genom
att generera f :s tabell i intervallet −3 < x < 6 och/eller rita f :s graf. (3) Best¨am
vilken rot du kommer att ber¨akna f¨orst och ange passande startgissning x0 = x0.
(4) Skriv ekvationen p˚
a formen
x = g(x),
(504)
d¨ar g(x) ¨ar en deriverbar funktion, och skapa en funktionsfil som ber¨aknar g(x).
(5) Skapa en kommandofil som itererar enligt (503).
Kolla resultat med fzero.
17.4.5
Exempel: fixpunktsiteration och Newtons metod
Skriv MATLABkoder (kommandofiler) som l¨oser ekvationen (499) med fixpunktsiteration och Newtons metod. Anv¨and while kommandot. Skriv ut resultat
som tabellen ovan. Anv¨and stopregeln med tre olika fr˚
an b¨orjan uppst¨allda toleransgr¨anser ².
Kolla resultat med fzero.
17.5
Polynom i MATLAB
I MATLAB, evaluerar kommandot P = polyval(p1, z) polynomet
P (z) = an z n + an−1 z n−1 + . . . + a1 z + a0
med koefficienter i vektorn
p1 = an an−1 . . . a1 a0 .
277
(505)
17.5.1
Exempel: kommandot
polyval
H¨ar ¨ar n˚
agra exempel av kommandot P = polyval(p1, z). Betrakta polynom
P1 (z) = 3.22z + 4.26,
P2 (z) = 3z 2 + 2z − 4.
(506)
Dessa polynom bildar vi genom att skapa vektorer
>> p1 = [3.22 4.26]
och
>> p2 = [3 2 − 4].
F¨or att ber¨akna v¨ardena av polynomen i x = 1, skriver vi
>> var1 = polyval(p1, 1), var2 = polyval(p2, 1)
och f˚
ar
>> var1 =
>> 7.4800
>> var2 =
>> 1.0000
De polynomen ritas med h¨ajlp av MATLAMkod
p1 = [3.22 4.26]; p2 = [3 2 -4];
z1 = -2 : 2 : 2; z2 = -2 : 0.1 : 2;
plot(z1, polyval(p1, z1), ’–’, z2, polyval(p2, z2));
grid
17.6
Polynomanpassning i MATLAB
Kommandot p = polyfit(x, y, n) skapar en vektor
p = an an−1 . . . a1 a0
med n + 1 koefficienter till det polynom av grad n (av typ P (z) i (505)) som ¨ar
b¨asta anpassningen i minstakvadratmening till den givna punktm¨angden {xi , yi }.
17.6.1
Exempel: b¨
asta anpassningen i minstakvadratmening
Polynomet P1 (z) = az + b som ¨ar b¨asta anpassningen i minstakvadratmening till
de 50 f¨orsta slumptal ritas med h¨ajlp av MATLABkod
N = 50;
y = sort(rand(1,N));
dx=1/(N-1); x = 0 : dx : 1;
a = polyfit(x, y, 1);
plot(x, y, ’+’, x, polyval(a,x), ’-’)
grid
278
Polynomet av grad 6 som ¨ar b¨asta anpassningen i minstakvadratmening till slumpdata p˚
a formen av de 20 f¨orsta slumptal ritas med h¨ajlp av MATLABkod
N = 20;
y = sort(rand(1,N));
dx = 1/(N-1); x = 0 : dx : 1;
a = polyfit(x, y, 6);
z = 0 : 0.1 : 1;
plot(x, y, ’+’, z, polyval(a,z),’-’)
grid
17.7
Polynomanpassning och tendenskurvor
Betrakta ett exempel av en tendenskurva: polynomet av grad 3 som ¨ar b¨asta
anpassningen i minstakvadratmening till slumpdata p˚
a formen av funktionen
g(y) = y sin y, d¨ar y ¨ar de 20 f¨orsta slumptal. Polynomet ritas med h¨ajlp av
MATLABkod
N = 20;
y = sort(rand(1,N));
dx = 1/(N-1); x = 0 : dx : 1;
y1 = y.*sin(y);
a = polyfit(x, y1, 6);
z = 0 : 0.1 : 1;
plot(x, y1, ’+’, z, polyval(a, z),’-’)
grid
Betrakta polynomanpassning till data som visar t ex utveckling av dags- eller
m˚
anadskurser i fonder eller aktiebolag.
S˚
adana polynom som a¨r b¨asta anpassningen i minstakvadratmening kallas tendenskurvor (eller trendkurvor).
17.7.1
Exempel: dagsv¨
ardef¨
or¨
andring i ett aktiebolag
Antag att dagsv¨ardef¨or¨andring i ett aktiebolag under 20 dagar ges med aktiev¨ardena
(i SEK)
1 2
3
4
. . . 20
20.1 20.5 20.9 21.3 22.5 26.1 25.2 22.1 . . . 19.0
Polynomet av grad 3 som ¨ar b¨asta anpassningen i minstakvadratmening till
indata som visar utveckling av dagskursen i ett aktiebolag ritas med h¨ajlp av
MATLABkod
N = 20;
y1 = [20.1 20.5 20.9 21.3 22.5 26.1 25.2 22.1 20.4 19.1 18.2 17.0 16.4 13.9 12.3
14.7 15.2 17.1 18.3 19.0];
279
x=1 : 1 : N;
a = polyfit(x, y1, 3);
plot(x, y1, ’*’, x, polyval(a, x), ’-’)
grid
17.8
Tendenskurvor och referenspunkter
Om indata (slumpdata) inneh˚
aller f¨or m˚
anga v¨arden, kan man rita tendenskurvor genom att ta en delm¨angd av indata: referenspunkter, t ex a¨ndv¨ardena och
maximum- och minimumv¨ardena. I exemplet ovan, kan de referenspunkterna vara
20.1 26.1 12.3 19.0
Polynomet av grad 3 som ¨ar b¨asta anpassningen i minstakvadratmening till
indata i referenspunkterna (1, 20.1) (6, 26.1) (15, 12.3) (20, 19.0) ritas med h¨ajlp
av MATLABkod
y1 = [20.1 26.1 12.3 19.0];
x= [1 6 15 20];
a = polyfit(x, y1, 3);
z = 1 : 1 : N;
plot(x, y1, ’*’, z, polyval(a,z), ’-’)
grid
17.8.1
Polynomanpassning till periodiska kurvor
Ange referenspunkter och rita konvolut-kurvor som omringar xn -banorna i Fig. 14
och 13. Anv¨and polynomanpassning.
280
18
Referenser
1. E. P¨art-Enander et. al, Anv¨andarhandledning for MATLAB 6, Uppsala universitet, 2001.
2. L. Elden et. al, Numeriska ber¨akningar – analys och illustrationer med MATLAB, Studentlitteratur, 2001.
3. E. Kreyszig, Advanced Engineering Mathematics. 8th Edition (AEM).
4. G. B¨ackstr¨om, Practical mathematics using MATLAB, Studentlitteratur, 2000.
5. Kompendiet Introduktion till MATLAB
6. M. Heath, Scientific Computing. An Introductory Survey, New York: McGrawHill, 1997.
281