,
y (x), x , . n .
n- y (x)
: , [9].
, ( ). ( , .).
, , . , .
y (x) x. y (x) , .
(7.1)
. (7.2)
, (7.1) (x 0, X) (7.2) x 0.
.
7.1. f (x, y) . (7.1), (7.2).
R f (x, y)
,
.
[ x 0, X ] n
(7.3)
y (x) xi, i = 1, 2, , n.
( )
(7.1) xi, i = 0, 1, , n 1
. (7.4)
y (xi + 1):
(7.5)
yi y (xi), .. yi ≈ y (xi),
i = 1, 2, , n.
. 7.1 (7.5). y (x) (x 0, y 0)
(7.6)
. y (x) [ x 0, x 1] (7.6), (x 0, y 0) (x 1, y 1), (. . 7.1). (x 1, y 1) y = y (x), (7.2).
|
|
i = 1 (7.5) (x 2, y 2), (x 1, y 1) y (x), (7.1) .
, i (7.5) (xi, yi), , , , (7.1), (7.2). , . 7.1, .
.7.1.
(7.5) . y (x) x 0:
, , x = x 1 (7.5).
y 1 O (h 2), yn O (h). - .
7.1. [1, 2]
Excel. .
h = 0,1.
A 1: B 12 , 7.1.
D 2 y (0) = 1, C 2 =(1+C2^2)*0,5/A2, f (x 0, y 0). C 2 C 11.
D 3 = D 2+0,1* C 2 D 3 D 12.
E 2: E 12 . E 2 =TAN(LN((A2))) E 2 E 12.
F 2: F 12 =ABS(C2-D2), F 2 .
, , , . ε ≈ 0,01. , yi +1 i.
7.1
A | B | C | D | E | F | |
1 | i | xi | f(xi,yi) | yi | y(x) | |
2 | 0 | 1 | 0,5 | 0 | 0 | 0 |
3 | 1 | 1,1 | 0,455682 | 0,05 | 0,047691 | 0,002309 |
4 | 2 | 1,2 | 0,420472 | 0,095568 | 0,091414 | 0,004154 |
5 | 3 | 1,3 | 0,391899 | 0,137615 | 0,13194 | 0,005676 |
6 | 4 | 1,4 | 0,368307 | 0,176805 | 0,169842 | 0,006964 |
7 | 5 | 1,5 | 0,348547 | 0,213636 | 0,205556 | 0,00808 |
8 | 6 | 1,6 | 0,331796 | 0,248491 | 0,239426 | 0,009065 |
9 | 7 | 1,7 | 0,317452 | 0,28167 | 0,27172 | 0,00995 |
10 | 8 | 1,8 | 0,305064 | 0,313416 | 0,302658 | 0,010758 |
11 | 9 | 1,9 | 0,294285 | 0,343922 | 0,332418 | 0,011503 |
12 | 10 | 2 |
| 0,37335 | 0,36115 | 0,0122 |
Excel (7.1), (7.2) , Visual Basic. (7.1) fxy(x, y):
Function fxy(ByVal x, ByVal y): fxy = (1 + y ^ 2) / (2 * x): End Function
|
|
Eiler(x0, y0, x, n):
Function Eiler(ByVal x0, ByVal y0, ByVal x, ByVal n)
h = (x - x0) / n
For i = 1 To n
y1 = y0 + h * fxy(x0, y0): x0 = x0 + h: y0 = y1
Next i: Eiler = y1: End Function
ByVal , .
x0, y0, x n, , [x0, x], .. h = (x - x0) / n. x.
Excel, Visual Basic Insert Module - (. . 7.2). , Excel.
Excel, 7.1 . 7.2 , 7.3 . 7.1 , 7.2 h = 0,01.
, Eiler. , fxy(x, y).
7.2
A | B | C | D | |
1 | xi | yi | y(x) | |
2 | 1 | 0 | 0 | 0 |
3 | 1,1 | 0,047914 | 0,047691 | 0,000223 |
4 | 1,2 | 0,091817 | 0,091414 | 0,000403 |
5 | 1,3 | 0,132492 | 0,13194 | 0,000552 |
6 | 1,4 | 0,17052 | 0,169842 | 0,000678 |
7 | 1,5 | 0,206345 | 0,205556 | 0,000788 |
8 | 1,6 | 0,240311 | 0,239426 | 0,000885 |
9 | 1,7 | 0,272693 | 0,27172 | 0,000973 |
10 | 1,8 | 0,30371 | 0,302658 | 0,001052 |
11 | 1,9 | 0,333545 | 0,332418 | 0,001126 |
12 | 2 | 0,362345 | 0,36115 | 0,001195 |
7.3
A | B | C | D | |
1 | xi | yi | y(x) | |
2 | 1 | 0 | =TAN(LN((A2))) | =ABS(B2-C2) |
3 | 1,1 | =Eiler(A2;B2;A3;10) | =TAN(LN((A3))) | = ABS (B3-C3) |
4 | 1,2 | =Eiler(A3;B3;A4;10) | =TAN(LN((A4))) | = ABS (B4-C4) |
5 | 1,3 | =Eiler(A4;B4;A5;10) | =TAN(LN((A5))) | = ABS (B5-C5) |
6 | 1,4 | =Eiler(A5;B5;A6;10) | =TAN(LN((A6))) | = ABS (B6-C6) |
7 | 1,5 | =Eiler(A6;B6;A7;10) | =TAN(LN((A7))) | = ABS (B7-C7) |
8 | 1,6 | =Eiler(A7;B7;A8;10) | =TAN(LN((A8))) | = ABS (B8-C8) |
9 | 1,7 | =Eiler(A8;B8;A9;10) | =TAN(LN((A9))) | = ABS (B9-C9) |
10 | 1,8 | =Eiler(A9;B9;A10;10) | =TAN(LN((A10))) | = ABS (B10-C10) |
11 | 1,9 | =Eiler(A10;B10;A11;10) | =TAN(LN((A11))) | = ABS (B11-C11) |
12 | 2 | =Eiler(A11;B11;A12;10) | =TAN(LN((A12))) | = ABS (B12-C12) |
.7.2. Visual Basic
Mathcad x = 2 h = 0,1 (n = 10) h = 0,01 (n = 100):
, Mathcad , Excel.
.
,
-, :
(7.7)
- O (h 2). - . 7.2. - , .
|
|
- -, .
.7.2
-
-. .
- . , . x 1 :
. (7.8)
f (x, y), -
,
. (7.8)
, (7.9)
α, β, γ δ . (7.9) h, h:
,
α, β, γ δ , (7.8). ,
α + β = 1, αγ = 0,5, αδ = 0,5 f (x 0, y 0).
β, γ δ α,
(7.10)
, (x 0, y 0) (7.10) (x 1, y 1), y 2 x 2.
- [ x 0, X ] n , ..
(7.11)
α 1 0,5. - α = 1:
(7.12)
α = 0,5:
(7.13)
- (7.12), (7.13).
7.3 ) (7.12). xi + hi /2. , (xi, yi) x = xi + 1. yi + 1 xi + 1.
7.3 ) (7.13). xi +1. . (xi, yi) , , (xi, yi) . xi +1 x = xi +1.
, (7.13) - (7.7).
.7.3.
7.1. f (x, y) (7.1) , , (7.12), (7.13), (7.1), (7.2) .
-, :
(7.14)
7.2. - (7.12) 7.1:
Excel. 7.4 - (7.12) h = 0,1.
7.2 7.4 , - (7.12) h = 0,1 , 0,01.
7.4
|
|
A | B | C | D | E | F | |
1 | xi | f(xi,yi) | f(xi+0,5h, yi+0,5 f(xi,yi)) | yi | y(x) | |
2 | 1 | 0,5 | 0,476488 | 0 | 0 | 0 |
3 | 1,1 | 0,455577 | 0,436939 | 0,047649 | 0,047691 | 4,24E-05 |
4 | 1,2 | 0,420143 | 0,405049 | 0,091343 | 0,091414 | 7,14E-05 |
5 | 1,3 | 0,391301 | 0,378861 | 0,131848 | 0,13194 | 9,22E-05 |
6 | 1,4 | 0,367432 | 0,357029 | 0,169734 | 0,169842 | 0,000108 |
7 | 1,5 | 0,347401 | 0,338594 | 0,205437 | 0,205556 | 0,00012 |
8 | 1,6 | 0,330395 | 0,322861 | 0,239296 | 0,239426 | 0,00013 |
9 | 1,7 | 0,315811 | 0,309309 | 0,271582 | 0,27172 | 0,000138 |
10 | 1,8 | 0,303198 | 0,297545 | 0,302513 | 0,302658 | 0,000145 |
11 | 1,9 | 0,292211 | 0,287263 | 0,332268 | 0,332418 | 0,000151 |
12 | 2 |
|
| 0,360994 | 0,36115 | 0,000156 |
(7.1), (7.2) - (7.14):
Function Runge_Kutta4(ByVal x0, ByVal y0, ByVal x, ByVal n)
h = (x - x0) / n
For i = 1 To n
k1 = fxy(x0, y0)
k2 = fxy(x0 + h / 2, y0 + h * k1 / 2)
k3 = fxy(x0 + h / 2, y0 + h * k2 / 2)
k4 = fxy(x0 + h, y0 + h * k3)
y1 = y0 + h * (k1 + 2 * k2 + 2 * k3 + k4) / 6
x0 = x0 + h: y0 = y1
Next i
Runge_Kutta4 = y0
End Function
7.5 - (7.14) n = 10, .. yi h = 0,01. .
7.5
xi | yi | y(x) | |
1 | 0,000000000000000 | 0,000000000000000 | 0,000000000000000 |
1,1 | 0,047691197731806 | 0,047691197726655 | 0,000000000005151 |
1,2 | 0,091414144750546 | 0,091414144742135 | 0,000000000008412 |
1,3 | 0,131939841952911 | 0,131939841942306 | 0,000000000010605 |
1,4 | 0,169841513601824 | 0,169841513589657 | 0,000000000012167 |
1,5 | 0,205556457698103 | 0,205556457684762 | 0,000000000013341 |
1,6 | 0,239425622368332 | 0,239425622354065 | 0,000000000014267 |
1,7 | 0,271719843610883 | 0,271719843595851 | 0,000000000015032 |
1,8 | 0,302657774396418 | 0,302657774380728 | 0,000000000015690 |
1,9 | 0,332418460630980 | 0,332418460614704 | 0,000000000016276 |
2 | 0,361150365759415 | 0,361150365742600 | 0,000000000016814 |
Mathcad - x = 2 h = 0,01 (n = 100):