, [ xk, xk +1]. .4 k = 0, .
[ xk, xk +1]
,
,
,
.
,
.
f (x, y),
, ,
, .
. h, . ε (xk +1, h) h 3, , y = a 1+ a 2 x + a 3 x 2. , , .
(C.Runge 1895, W.Kutta 1901)
, . : 4- , . , .5 k = 0, h/ 2
,
, ,
.
,
.
(), h,
,
,
.
h
.
, ,
, ,
,
, ,
.
h ε (xk +1, h), h 5. , y = a 1+ a 2 x + a 3 x 2+ a 4 x 3+ a 5 x 4.
, , f (x, y) [ xk, xk +1]. h 2
|
|
,
.
Ck +1 y , .
,
4-
,
Ck +1 - .
, xn
,
m = 2 , m = 3 m = 5 4- , C max q
, .
. q , . q , .
, , , . , ( ), 1. , ,
,
y (xk, h) y (xk, 2 h) , xk , .
[ x 0, xn ] , ,
.
y (0) = 0 [0, 0.4] h = 0.1.
1. .
.
, h = 0.1
,
,
,
,
.
h = 0.2
,
,
.
h = 0.1
,
,
,
.
2. .
h = 0.1
,
,
, , h = 0.1 h = 0.2
|
|
,
,
h = 0.1
,
,
,
,
.
. , :
- ࠠ Subroutine Eu_1(d,m,F,x,y);
-
Subroutine EuY_1(d,m,F,x,y);
- - 4- Subroutine RK4_1(d,m,F,x,y).
:
d - (Real*4);
m - (Integer*4), h d m ;
F - Function, f (x, y) ;
x - (x + d) (Real*4);
y - y (x) (Real*4).
F External , ,
Function F(x,y)
F =...........
Return
End
.
, , .
. , 1%.
. Eu_1, , Fun Function, . 1%, .
External Fun
Real*4 Xm(51), Ys(51), Yn(51), Eps(51)
Open(6, file='res_6.txt')
c h=0.1
x = 0.
y = 0.
Xm(1) = x
Ys(1) = y
Do k = 2, 51
Call Eu_1(0.1, 1, Fun, x, y)
Xm(k) = x
Ys(k) = y
EndDo
c h=0.05
x = 0.
y = 0.
Yn(1) = y
Do k = 2, 51
Call Eu_1(0.1, 2, Fun, x, y)
Yn(k) = y
EndDo
c h=0.05
Ymax = 0
Do k = 1, 51
If(Abs(Yn(k)).gt.Ymax) then
Ymax = Abs(Yn(k))
Endif
EndDo
Do k = 1, 51
Eps(k) = Abs(Ys(k) - Yn(k))/Ymax
EndDo
Write(6,2) (Xm(k), Yn(k), Eps(k), k = 1, 51)
2 Format(2X, 'x=', F4.1, ' y=', F6.4, ' e=', F6.4)
Call Graf_1(51, Xm, Yn, 'x', 'y', ' ', 1)
Close(6)
End
Function Fun(x, y)
Pi = 3.1415927
Fun = 1 + Exp(-x)*Cos(Pi*x) - y
Return
End
rs_6.txt.
x=.0 y=.0000 e=.0000
x=.1 y=.1920 e=.0081
x=.2 y=.3500 e=.0162
x=.3 y=.4724 e=.0235
x=.4 y=.5605 e=.0293
x=.5 y=.6182 e=.0334
..........................
x= 5.0 y=.9944 e=.0011
, 3.59% x = 0.7 . . , h = 0.0125.
, , .6.
.6.
7.
|
|
,
, ,
, , .
x, y 1, y 2, ..., y n . y 1= y 1(x), y 2= y 2(x),..., y n = y n (x), (a, b) .
. , , . .
,
, , , , ,
, , , , ,
, ,
.
, 1- . , . . , y (x) f (x, y) - y f, n y 1(x), y 2(x),..., y n (x) f 1(x, y 1,..., y n), f 2(x, y 1,..., y n),..., f n (x, y 1,..., y n), . .
,
, ,
x.
1- . (n +1)- x, y 1, y 2,..., y n, - y.
, ,
, ,
, ,
, .
-
- 4-
, ,
,
, ,
.
, 4- , (n +1)- . , x.
- n
, ,
,
, ,
.
, 1- , . h 2
|
|
.
,
.
Ck +1 - y , (n +1)- x, y 1, y 2,..., y n, .
h 3
.
,
,
4- h 5
,
Ck +1 - .
. n -
,
m = 2 , m = 3 m = 5 4-
, .
q . , .
. , , ,
,
y (xk, h) y (xk, 2 h) , xk , .
[ x 0, xn ] 1-
.
y (0) = 0, [0, 0.4] h = 0.1.
2- 1- .
,
, .
, .
, h = 0.1
h = 0.2
h = 0.1
,
,
,
,
,
,
,
,
,
,
.
, 0.1 [0, 0.4] , 5.1%.
. IMSL 1- -- 5- 6-
Subroutine Ivprk(Ido,n,Fun,x,xd,Eps,Param,Y).
:
Ido - , (Integer*4);
n - (Integer*4);
Fun - Subroutine, . External , Ivprk. Fun
Subroutine Fun(n,x,Y,F)
Dimension Y(n), F(n)
F(1) =...........
..................
F(n) =...........
Return
End
F - f (x, y) (Real*4).
x - , (Real*4);
xd - (Real*4);
Eps - (Real*4);
Param - 50- , . , , . [6] (Real*4);
Y - (n ) y (x) (Real*4).
Ido 1 . 2, .
|
|
Ivprk . Ido=3. . . [8].
(Real*8) DIvprk.
, :
- Subroutine Eu_n(n,d,m,Fun,x,Y);
-
Subroutine EuY_n(n,d,m,Fun,x,Y);
- - 4-
Subroutine Rk4_n(n,d,m,Fun,x,Y).
:
n - (Integer*4);
d - (Real*4);
m - , (Integer*4);
Fun - Subroutine, f (x, y) . Ÿ ;
x - (x + d) (Real*4);
Y - (n ) y (x) (Real*4).
.
,
. , 0.1%.
. .
.
1-
, .
, . 0.1%, .
External Fun
Real*4 Xm(61),Y(4),Ys(4,61),Yn(4,61),EpsMax(4),
* Eps(61),Ym(61)
Open(6, file='res_7.txt')
c h=0.1
x = 0.
Y(1) = 0.
Y(2) = 1.
Y(3) =-2.
Y(4) = 3.
Xm(1) = x
Do i = 1, 4
Ys(i,1) = Y(i)
Enddo
Do k = 2, 61
Call Eu_n(4, 0.1, 1, Fun, x, Y)
Xm(k) = x
Do i = 1, 4
Ys(i,k) = Y(i)
Enddo
EndDo
c h=0.05
x = 0.
Y(1) = 0.
Y(2) = 1.
Y(3) =-2.
Y(4) = 3.
Do i = 1, 4
Yn(i,1) = Y(i)
Enddo
Do k = 2, 61
Call Eu_n(4, 0.1, 2, Fun, x, Y)
Do i = 1, 4
Yn(i,k) = Y(i)
Enddo
EndDo
c h=0.05
Ymax = 0
Do k = 1, 61
Do i = 1, 4
If(Abs(Yn(i,k)).gt.Ymax) Ymax = Abs(Yn(i,k))
Enddo
EndDo
Do k = 1, 61
Do i = 1, 4
EpsMax(i) = Abs(Ys(i,k) - Yn(i,k))/(3*Ymax)
Enddo
Eps(k) = EpsMax(1)
Do i = 2, 4
If(EpsMax(i).gt.Eps(k)) Eps(k) = EpsMax(i)
Enddo
Ym(k) = Yn(1,k)
EndDo
Write(6,2) (Xm(k), Ym(k), Eps(k), k = 1, 61)
2 Format(2X, 'x=', F4.1, ' y=', F6.4, ' e=', F7.5)
Call Graf_1(61, Xm, Ym, 'x', 'y', 'N', 1)
Close(6)
Stop
End
Subroutine Fun(n, x, Y, F)
Dimension Y(n), F(n)
F(1) = Y(2)
F(2) = Y(3)
F(3) = Y(4)
F(4) = 2*Y(3) - Y(1)
Return
End
res_7.txt.
123456789............... ( )
x=.0 y=.0000 e=.00000
x=.1 y=.0950 e=.00139
x=.2 y=.1715 e=.00245
x=.3 y=.2321 e=.00324
x=.4 y=.2793 e=.00380
x=.5 y=.3151 e=.00419
x=.6 y=.3413 e=.00442
...........................
x= 6.0 y=.0135 e=.00017
, 0.455% x = 0.8 . . , h = 0.01.
, , .1.
.1.
1. .., .., .. . 3- ., . . .: . , 2003. 632 .
2. .. . .: , 1977. 303 .
3. .. . .: , 1982. 254 .
4. .., .. . .: , 2004. 480 .
5. : . . ... .: , 1979. 288 .
6. .. . IMSL. 1. .: , 2000. 448 .
7. .. . IMSL. 2. .: , 2001. 320 .
8. .. . IMSL. 3. .: , 2001. 368 .
充.. | 3 | |||
1. | ⅅ | 5 | ||
2. | ... | 13 | ||
3. | 酅 | 31 | ||
4. | 酅 | 52 | ||
5. | 酅 | 68 | ||
6. | 1- | 83 | ||
7. | ⅅ. | 98 | ||
|
| |||
. | 119 | |||