Sei sulla pagina 1di 18




  

   
CURSURI POSTUNIVERSITARE

LUCRARE DE DIPLOMA

REZOLVAREA NUMERICA A ECUATIILOR


DIFERENTIALE. APLICATII IN C.

 IFIC : AUTOR :


conf. dr. Gheorghe Grigora Cristian Constantin Bordeianu

!
2002
REZOLVAREA NUMERIC  
      

CUPRINS

Introducere.
CAPITOLUL I Metode numerice pentru rezolvarea  
1.1 Introducere…………………………………………………………………………………4
!"#$%%
1.2 Metoda  în serie Taylor…………………………………………………………5
1.3 Metoda lui Euler……………………………………………………………………………6
1.4 Metoda Runge -Kutta……………………………………………………………………...11
1.5 Controlul pasului în metoda Runge -Kutta………………………………………………..16
1.6 Bibliografie………………………………………………………………………………..18
CAPITOLUL II Func & în C
2.1 Moduri video ……………………………………………………………………………..19
2.2 Domenii '% ferestre………………………………………………………………………..19
2.3. Modul text………………………………………………………………………………..20
,
2.3.1. ()*+ %%  -.% '-$ '% manevrare……………………………………………………20
2.3.2. Controlul atributelor……………………………………………………………..22
"# 12
2.3.3 Inspectarea / $%% 0000000000000000000000000
2.3.4 Controlul cursorului……………………………………………………………...23
2.4 Modul grafic ……………………………………………………………………………..24
2.4.1. Controlul sistemului grafic……………………………………………………….24
2.4.2. Desenarea '% umplerea regiunilor………………………………………………...26
" 24
2.4.3. Manevrarea elementelor -.% '-  00000000000000000003
2.4.4. 5. % '-$- textelor………………………………………………………………….31
2.4.5. Controlul culorii………………………………………………………………….33
! , #
2.4.6. Tratarea erorilor…………………………………………………………………..34
2.5 Un exemplu de -6 % +- %  7$-.% + ………………………………………………………….35
2.6 Bibliografie…………………………………………………………………………….…37
CAPITOLUL ! ,III 89 în :;
! $00000000000000000000000000
%
3.1 Studiul /+ - %% 33 02<
3.2 =% '+-$- planetelor…………………………………………………………………..…..48
3.3 Bibliografie…………………………………………………………………………..…..53
Concluzii ……………………………………………………………………………………54

2
REZOLVAREA NUMERIC  
      

Introducere
     !   # !  !$ 
%&Lucrarea nu ur           % " %  
   '        ( )         ! *   +#, - . 
#$ !  &       #   
! - &   /# !  000 !!#  &   $#    ! ' #%
#  & "#  % # $ ()      
       ,  # "  !$ 

%& #$   !  /#   1  % , 
2#!$  ,&! %# 3 455  &   C
 /#-# % !6  !  ' #! "6#% 
.
&#!$      !#" 
  % ( ! $ & !
În ultimul capitol am prezentat %programe C cu   în "  . Primul , intitulat
! $  ! $ & #$ ! # 
"Studiul   7 "         "  oscilatorului liber ,

oscilatorului amortizat , oscilatorului Duffing  oscilatorului Van der
 #
Pol  "  grafic
$  !  ! $ %
   () doilea , intitulat" 8   planetelor" "        #"
& #$ !
  rii unei planete în jurul Soarelui   "" # $  acesteia .
!

3
REZOLVAREA NUMERIC  
      

CAPITOLUL I Metode numerice pentru rezolvarea


 

1.1 Introducere
!! "!# !
Majoritatea legilor fizicii sunt formulate sub forma unor 
!! "!# ! $% &  ordinare sau cu
derivate '$ iale . Problemele în care intervin 
!! "!# ! " $% &  ordinare de ordin superior! pot fi
reduse la rezolvarea unui sistem de   $ &
 %   ordinul 1 .De exemplu , fie  
"!# $% ! &( " ordinul 2

d2y dy
2
+ q( x ) = r( x) (1.1)
dx dx

#! $ ! ! * " ", !! "!# $% ! &  " ,$"!%& -


Aceasta poate )$ )(  % ) ) +  ( 
dy
= z (x ) (1.2)
dx
dz
= r ( x ) − q( x ) z ( x )
dx
. *# & / $ 0,&1$   !  !! "!# $ ! & ,$"! $ " ,$"! & ,* #! $ " ( & $ 0,&1$ 
)    %   %  %   % %'   )  
%! )! )*+ " %  !! "!# $% ! &  ,$"!%$ " ,$"!%& - '&* / 12%" #,$+ 3%$&(

dy i
= f i ( x, y i ,......, y n ), i = 1,......, n (1.3)
dx

O problem( '% $
* ,  ! "!# $% ! &( % )* ,+'& * #,$+&*( "(  !! % ! ) "3(
, "! !!  & ! *$ $ # $!*,$ & 1&,$! & ,& ! ! 4   !* '%* & ",+%!&! "
" %#! ! ! )6', +% "! !! &  & !  *$ 4 $* $,)7&  & %4 %",+ ! * , !!
 % 5 %  ) ' +%  +' ' +  % ( +$  3 $ :
• probleme cu condi ii 9:9 9;<=
8 8
8 C
• probleme cu >?:@9 99 <; <9A9B bilocale
*
În 7) ( lucrare vom considera numai prima categorie de probleme.
,
O '$ &+ (   %
, "! !! ! ! ! & $ 0&*( *D2 " sistemului (1.3) , "! !!  & ! *$ 4 *$-un
* ! ! ! %   %  % ) ' +%  %

' % % & E 0 ,

y i ( x 0 ) = y i0 i = 1,2,......, n (1.4)
F 0,&1$  $,7& ! ! & ! ( " * $ ! $  "!  $, 4  $,  ,& ! ! ,  ! "
  ' + +'    + %  % ' ' % ' ' )  ' ) ) % 
puncte x0, x1,…….,xmax.

4
REZOLVAREA NUMERIC  
      
     !"  # #   $! $   %
'  ( #    ! )
• metode 
directe 
(pas cu pas ) & n numai pe baza
(#   !  ) .
• metode &   ( #    ! ) pe baza
'n-1
(#     # !*  ) , x , …..
indirecte (multipas) n

  * '
În  lucrare vom considera numai metodele directe Euler  +
n-1 n-2
-Kutta .
55
1.2 Metoda ,-./01234 în serie Taylor
       * ( #    #
&
!  $ !  *      (   
Aceast
(  6 7
  #
 #      ! 68!#      $
(!  (   !   !     ! 6& &
9 !"  #  #  ! #  (# 

   y' = f(x,y) (1.5)


cu condi#  #

y(x0) = y0 (1.6)
:  $   ! )
solu#ia în serie Taylor 0

x − x0 / ( x − x 0 ) 2 ''
y( x ) = y ( x 0 ) + y ( x0 ) + y ( x 0 ) + ..... (1.7)
1! 2!
     #  ! # 
 ;(
Presupun  !      !! $ puncte
!x!0 , x1,…..,
x
n , dezvoltarea
 
" 
(1.7)      67 ( '      &
   )
!   #  #    !!   #   ! 
  #  (#   #  #  n la punctul xn+1
este echivalent (1.5)

y( x n ) = y n
*    ! " (

h 2 ''
y n +1 = y n + hy n' + y n + ...... (1.8)
2

este pasul. Cu c;
 !        '#   *
unde h = x n +1 − x n ;
 ;        # $  #  $   (1.8) , cu atât valoarea y
este mai apropiat
  )  #  6 <    = este  n+1

#  n+1
determinarea valorilor y ' , y '' ,..... ale derivatelor
n n în punctul x . n

5
REZOLVAREA NUMERIC  
      

Din  ia 
   avem


y n' = f ( x n , y n )
! &
 "# $% $ $%   (1.5)  '()  * (%$

 ∂f ∂f ∂y   ∂f ∂f 
y n'' =  +  = + f
 ∂x ∂y ∂x  xn , yn  ∂x ∂y  x , y
n n

În locuind expresiile de mai sus în (1.8) se o%




h2  ∂f ∂f 
y n +1 = y n + hf ( x n , y n ) +  ∂x + f ∂y  + O(h 3 ) (1.9)
2   xn , ym
 ) ) ) )
unde/ nota ia O (h3) indic '   +  + 0($  +   ( ,3 -  (  $
)  )
  ) ) ) )
.  )  (  ,  '    + $ $   1 ($) )  $ O (h3)
'1  ( eroare de trunchiere de forma K h3 , unde K este o (+   
) ) 
Metoda este (+    deoarece pentru calculul lui yn+1 sunt necesare informa ii numai
despre punctul anterior (xn , yn ).
) ) )
De 2 +  .  ' practic , metoda 1"(  în serie Taylor 11 criterii de
 )
evaluare a preciziei altor metode. Aceste criterii se   gradul în care o +(  '(*$ " 
coincide cu dezvoltarea în serie Taylor a + ( 
 exacte
) , grad
 exprimabil) ca putere a lui h din
ultimul termen din dezvoltarea cu care este ,"   +(  '(* $ " 3 spune  (
$ )( este de ordinul p  termenul +  eroare este O(hp+1).

1.3 Metoda lui Euler

   ) )
Fie ecua   (1.5) cu (      (1.6) . 4 . $ '(2   '  (x0,y0) iar
)
))
din (1.5) se  imediat panta curbei    în punctul (x0,y0)

y' (x0) = f (x0,y0) (1.10)

Metoda lui Euler (+ 


) &  .     ' , ) )
)    )    )+ 2  $  '+  '+  ' (  ' %
 '1  +(   -  $ ( .( $

y n' = f ( x n , y n )
(1.11)
y n +1 = y n + hy n'

cu h = xn+1 - xn .

6
REZOLVAREA NUMERIC  
      
           !" $  $&
Interpretarea geometric             ## % #
y
C
y
y1
C'
y=y(x)

A
y0 B
A3
a
h
A2
A0 A1

x0 x1 x x0 x1 x2 x3 x
/
Figura 1.1 Interpretarea geometric' ( )*+,-*. Figura 1.2 *+,-( 012*3 4* 51)*6+* 6.
Euler. metoda liniilor poligonale.

Din punctul (x0,y0) se


 tangenta la curba 7 %  y ' . Alegând un pas h , din
"8 9:; <=" $ #$ # >  0

y1 − y 0
= tg a = y 0'
h

de unde
y1 = y 0 + hy 0'

 !    7 7? y = y (x) prin linia


"
7  9 (1.11). Geometric
        
, metoda lui Euler const        
   A A 7      ! : @ A 7  7 7 @  ! @      7
0 1 2…………….

A prin
punct panta curbei , începem  aduce
9 din A0 dreapta ce trece prin acest punct cu coeficientul
unghiular f(x0,y0) , ob@ 7
A 7 9 1B 7$C 7 @ " 7 B    
.Apoi ducem dreapta ce trece prin A1 , cu coeficientul
  
unghiular f(x 1 ,y1 ) ob @ 2   
  %
   metoda
 liniilor poligonale , Fig.1.2.
 
Este %    7 un astfel de procedeu
;;poate conduce la erori mari de calcul ,  un  
deD% prin       se cumule $ 
care eroarea       
'
  8
      7  7  7     E 9 7  
h2 (din seria Taylor se iau doar doi termeni) %        $ 7    
"  ! 7  B   !   A     7  " $
ordinul
F       !        ?        !  
7        7 B  @        7   B 
G  utilizarea
 7  7       7    ?E  " C 7 H
impune   h "foarte mic.
unui pas de integrare
                 & B
 7 @ ! @   B     # %      $

7
REZOLVAREA NUMERIC  
      

Exemplul 1
        
Programul urm             :
  
y ' + y = 0 cu condi      y(0) = 1
  !   $  $ $ 
Rezultatele execu   "#     % -
&    # este furnizat de
utilizator.
//metoda lui Euler ex. 1
#include <stdio.h>
#include <math.h>
FILE *f; char s[60];
float omega0; float y,t,h,u;
int i;
void main()
{
printf("numele fisierului: ");
scanf("%s",s);
f =fopen(s,"wt");
fprintf(f," i t y solutia exacta \n");
fprintf(f,"----------------------------------------------\n");
t=0; h=.01 ; y=1;i=0;
for (i=1;i<=10;i++)
{
t=h*i;
y=y-h*y;
u=exp(-t);
fprintf(f,"%i\t%f\t%f\t%f\n",i,t,y,u);
}
fclose(f);
}
 
execu  programului pentru
$ !  +   ,
pasul '()*     %     #   *  
+ 
Rezultatele 
 $    !!"   !    $  # %   !-#  .
& $  -   -t.

i t y solutia exacta
----------------------------------------------
1 0.100000 0.900000 0.904837
2 0.200000 0.810000 0.818731
3 0.300000 0.729000 0.740818
4 0.400000 0.656100 0.670320
5 0.500000 0.590490 0.606531
6 0.600000 0.531441 0.548812
7 0.700000 0.478297 0.496585
8 0.800000 0.430467 0.449329
9 0.900000 0.387420 0.406570
10 1.000000 0.348678 0.367879

8
REZOLVAREA NUMERIC  
      

       !   " "#   !  $ %
  "   #  
'   "    !    rezultatele
   & programului
"   ) & (%
Astfel execu
 pentru pasul h=0.01 .
&    (

i t y solutia exacta
---------------------------------------------
1 0.100000 0.904382 0.904837
2 0.200000 0.817907 0.818731
3 0.300000 0.739700 0.740818
4 0.400000 0.668972 0.670320
5 0.500000 0.605006 0.606531
6 0.600000 0.547157 0.548812
7 0.700000 0.494839 0.496585
8 0.800000 0.447523 0.449329
9 0.900000 0.404732 0.406570
10 1.000000 0.366032 0.367879

*  !2
Exemplul
("  # & !+ & ! !  ,    (un punct
    #  +  
material asupra c  & & )
y ' '+ ω 2 y = 0
  ! 0
   
& & y (0) = 1 y ' (0) = 0
     "  
Utilizatorul introduce valoarea pentru & ω 0 iar rezultatele execu&  -
 +)   "  + #  ! # %.  !+  ! !  ,
+"   " ! ,   !+  ! !  /&0
 într-
scrise &
-un & &
y' = z
z ' = −ω 02 y

//metoda lui Euler ex.2


#include <stdio.h>
#include <math.h>
FILE *f; char s[60];
float omega0; float z,y,t,h,u;
int i;
void main()
{
printf("Introduceti valoarea pentru pulsatie: ");
printf("omega0=");scanf("%f",&omega0);
printf("numele fisierului: ");
scanf("%s",s);
f =fopen(s,"wt");
fprintf(f," i t y solutia exacta \n");
fprintf(f,"--------------------------------------------\n");
t=0; h=.01 ;z=0; y=1;i=0;
9
REZOLVAREA NUMERIC  
      
for (i=1;i<=10;i++)
{
t=h*i;
z=z-h*(omega0)*(omega0)*y;
y=y+h*z;u=cos(omega0*t);
fprintf(f,"%i\t%f\t%f\t%f\n",i,t,y,u);
}
fclose(f);
}
!
Rezultatele
& execu programului
! pentru
! pasul      "" #$% 
%$ " # ' "  % ($ % $ '%'%)$  ("% %*#($ + %" 
*'$ cos(ω 0 t ) .

i t y solutia exacta
--------------------------------------
1 0.010000 0.999900 0.999950
2 0.020000 0.999700 0.999800
3 0.030000 0.999400 0.999550
4 0.040000 0.999000 0.999200
5 0.050000 0.998500 0.998750
6 0.060000 0.997901 0.998201
7 0.070000 0.997201 0.997551
8 0.080000 0.996402 0.996802
9 0.090000 0.995503 0.995953
10 0.100000 0.994505 0.995004

,  %!       %  %  


     '       " algoritmul predictor- corector de tip
Euler ,  '  )#$ )%$ %*#! " %" %-  '" *n+1.Prima dintre
'  '"'" $ '  #%) ." %  +$ / ) + # 0 1234567 289:;<1=28 :

y np+1 = y n + hf ( x n , y n ) n = 0,1,2,......... (1.12)


> %    $ )  !
"   "  '  "$ %  %   %*# '%' )
formula corectoare :

h
y nc +1 = y n + [ f ( x n , y n ) + f ( x n +1 , y np+1 )] (1.13)
2

10
REZOLVAREA NUMERIC  
      

1.4 Metodele Runge - Kutta


      !"  "  # #! $! !%&!
$!'#!  (  ( )* #  !#"! $!$!"( + !
:
• sunt metode directe (pas cu pas );
" $! $!! ! (  (
• necesit ;
" $!'#  $,"  !#  ! "p" al seriei care
• sunt identice cu 
" ! - Taylor
seria    +!
asociat
 #!
de altfel d
 ;
" &!   !&   $!   !! .  %, ! &!
• nu necesit
 " $      $    )
   !  (     !!
/ ( +!("

y' = f(x,y) (1.14)


!$! (   (    $  0 la punctul x  $ !% - # -a
P"
!   ( 1.2 , pe baza formulei n n+1

h 2  ∂f ∂f 
y n +1 = y n + hf ( x n , y n ) +  + f  + O(h 3 ) (1.15)
2  ∂x ∂y  x , y
n m

(!  #"! # !  !#  " !  #$' " !" !-! !$ 
Re#$0
 "( !& !.    - $!$ !!  +(  1 . !
" $"  -  - $! ! %&!  !  $" $!
 1 " f(x,y) %  !   (   (1.15) $,"  termeni de ordin cât mai mare ,
&
"  ,dar 
nu   
derivatele
 0 sale

+(
indiferent
""# de f(x,y).
C
(
y sub forma unei combina ii liniare
n+1

p
y n +1 = y n + ∑ wi k i (1.16)
i =1

unde


k = hf (ξ , η )
 i i i

ξ i = x n + α i h (1.17)
 i −1
η i = y n + ∑ β ij k j
 j =1

- !"
αi ,βij i wi fiind constante care trebuie determinate . În toate cazurile se

11
REZOLVAREA NUMERIC  
      
α 1 = 0 , β 11 = 0 , ξ 1 = x n , η1 = y n

Avem atunci

k 1 = hf ( x n , y n )
k = hf ( x + α h, y + β k )
 2 n 2 n 21 1
 (1.18)
k 3 = hf ( x n + α 3 h, y n + β 31 k 1 + β 32 k 2 )
.......................................

αi,βij i wi ,astfel în serie 


                "#   $   
      !
Vom determina în continuare constantele încât dezvoltarea
puterilelui&
h a '  
 &(1.16)
formulei  (' #   &  
(1.15)%   f(x,y) . Dând diferite valori lui p în (1.16) %    
Runge - Kutta
 
• pentru p = ) " 

y n +1 = y n + hf ( x n , y n )
      + 
  *      ,   
• pentru p = 2 din formulele (1.16)  (1.18) " 
y n +1 = y n + w1 k 1 + w 2 k 2

cu

k 1 = hf ( x n , y n )

k 2 = hf ( x n + α 2 h, y n + β 21 k1 )

sau

y n +1 = y n + w1 hf ( x n , y n ) + w 2 hf ( x n + α 2 h, y m + β 21 hf ( x n , y n ))
-"#     $        !  ('
   
∂f ∂f
y n +1 = y n + ( w1 + w 2 )hf ( x n , y n ) + h 2 [w 2α 2 + w 2 β 21 f ]x , y
∂x ∂y n n
  
Comparând   formul cu (1.15) * 

 w1 + w 2 = 1

 w 2α 2 = 1 / 2
w β = 1 / 2
 2 21

12
REZOLVAREA NUMERIC  
      

  
Acesta este un sistem de 3 ecua   necunoscute , care nu are        

trebuie  avem w 2 ≠ 0 . Alegând w2 = 1/2   

α 2 = β 21 = 1
w1 = w 2 = 1 / 2

 !!" !# ! $    metoda Runge - Kutta de ordinul 2

1
y n +1 = y n + (k 1 + k 2 ) (1.19)
2

unde

k 1 = hf ( x n , y n )
 (1.20)
k 2 = hf ( x n + h, y n + k1 )

• %!!"! "! &!   &'"!" ! &"( )# - *""!   '" ' = 4 .Urmând
!!&   ( &!    !+ #  !  "& ( ,- !  ,. " / !  !
 $  $ " / '$1(-  2  
 " " 0 " ("&!" !   ( " "& ( " "! 
      &'  2  (! 3 !     ! &!  " 4!"" ! !" !&"( 
Runge - Kutta , reprezentând un optim de simplitate-'4 /   (!  (  ! 

1
y n +1 = y n + ( k 1 + 2 k 2 + 2 k 3 + k 4 ) n = 0,1,2,............. (1.21)
6

k 1 = hf ( x n , y n )
 k
k 2 = hf ( x n + h , y n + 1 )
 2 2
 (1.22)
k = hf ( x + h , y + k 2 )
 3 n
2
n
2
k = hf ( x + h, y + k )
 4 n n 3

5  &!4 '4"&  '#!&  2    & !+  ( '#!&! C / ! 4


  $  
! ! (  !  y' - y +2x/y = 0  ( !   !  y(0) = 1 ,folosind metoda Runge -
Kutta de ordinul 4 .

//metoda Runge- Kuta de ordinul 4


#include <stdio.h>
#include <math.h>
FILE *f; char s[60];
float f1 (float x,float y)
{ float f1;
f1 = y-2*x/y;
13
REZOLVAREA NUMERIC  
      
return f1;
};
void main()
{ printf("numele fisierului: ");
scanf("%s",s);
f =fopen(s,"wt");
fprintf(f," i x y solutia exacta\n");
fprintf(f,"-----------------------------------------------\n");
float x,y,h,k0,k1,k2,k3,s;
int i;
x=0; h=.1 ;i=0; y=1;
for (i=1;i<=10;i++)
{
k0=h*f1(x,y);
k1=h*f1(x+h/2,y+k0/2);
k2=h*f1(x+h/2,y+k1/2);
k3=h*f1(x+h,y+k2);
x=h*i;
y = y+(.1666)*(k0+2*k1+2*k2+k3);
s=sqrt(2*x+1);
fprintf(f,"%i\t%f\t%f\t%f\n",i,x,y,s);
}
fclose(f);
}
! &
!
Rezultatele      "" #$%  
! execu programului pentru pasul
% '$ % $ (%(%)$  '"% %*#'$ + %"  *($  ( 

i x y solutia exacta
----------------------------------------
1 0.100000 1.095407 1.095445
2 0.200000 1.183138 1.183216
3 0.300000 1.264790 1.264911
4 0.400000 1.341471 1.341641
5 0.500000 1.413988 1.414214
6 0.600000 1.482950 1.483240
7 0.700000 1.548828 1.549193
8 0.800000 1.611998 1.612452
9 0.900000 1.672762 1.673320
10 1.000000 1.731369 1.732051

,  $ ' $  # %)


"    -. - / ) %)" 0 (  1%"%+ ( "'$ " #
' $  )$ ) 1%#""

1
y n +1 = y n + ( k1 + 3k 2 + 3k 3 + k 4 ) n = 0,1,2,............. (1.23)
8

14
REZOLVAREA NUMERIC  
      

k 1 = hf ( x n , y n )

k 2 = hf ( x n + h , y n + k 1 )
 3 3
 (1.24)
k = hf ( x + 2h , y + k − k 1 )
 3 n
3
n 2
2
k = hf ( x + h, y + k − k + k )
 4 n+ n 3 2 1

Eroarea de trunchiere pentru metoda Runge - Kutta de ordinul 4 are forma

ε T = K h5 (1.25)
     f(x,y)    ! "     " ! # $

instabilitate numerica

eroarea de trunchiere
eroarea de rotunjire

Figura 1.3 Reprezentarea erorii totale în metoda Euler (curba continu%) &' () *+,-./ 01)2+ -
3
de ordinul 4(curba punctat%) , func ie de inversul pasului de integrare . Reprezentare
4-2/5 ,*
Kutta
' '6%78] .
9!  :    ; ! <  = ;     =  "
   
Metoda Runge - >      <" 
 ; <" ;   (Figura
  
1.3).
 
mare(<10-5 ).În celelalte cazuri se poate folosi  ?" 
    "  !  <  $@ < 
metoda
care s-ar "     ! 
Burlisch-Stoer care folose
! <! " # " ! " <  " =  " $
 =
unui rezultat spre valoarea

15
REZOLVAREA NUMERIC  
      

1.5 Controlul pasului în metoda Runge -Kutta


         ! "!   " # $% & 
un control adaptativ
# #  automat asupra
  pasului
  deintegrare
 , cu
 scopul
 atingerii
 unei
precizii
 $   $ ! ' (      $ )    * "       
  
  # ' + $  *    $   * )  " % $%    $ % ,
!   " "-  $! * % "-un  "    "   , !  
  ! "$% * ,     "%    #!%   $    * ,-un  %
   " . '
/!  $! %      $ "    $
 "  )'0 $   $    $ $.  "   * , $%  $ 
"     % " .  $   #!  $!   %  '
1  $%   "  $   "  )  % 234567 89: ;2<4<=>?>>@ 7A;B;>
.
C  $ % & !   ~ .  $! ,  
y n +1 y n +1 x ≡ xn + h ,
#!   $! $  $ " % ) n*+1. * $  , "
y n ≡ y ( x n ) într-un
. "  % )/2. D #% $      "  )  $!  "   x
n+1
este atunci

~
y n +1
ε n +1 = 1 − (1.26)
y n +1

 " 
" F *   $!   "  " , $
În cazul metodei
GH  - E  
  " "  )4 *  "  )   $ $% $# 
%  Runge
 I

ε n +1 = Kh 5 (1.27)
%  #!  &  %    K , aceasta ar
 " & %  $! *   $ ,  $#  ' G . * 
Dac  -un procedeu oarecare s-ar
 )
$ %  %  % $# % ε    #!% I"  $ h
"% 

ε = Kh 5
J% I"   "%   * #!  $   $     # $%
h -l
 %    "%.   & % "$#  % ε * ,  ! "  %  $ ) . "
 $% ε
n +1

1/ 5
 ε 
h =   h (1.28)
 ε n +1 

16
REZOLVAREA NUMERIC  
      

Dac
ε
< 1 formula (1.28)   
             !
•       
ε
 !  n+1 .
  ε
"         -ar #  $ % # 
ε
• > 1     
ε
  n +1    & .
#       ε    '   
Controlul automat pe baza formulelor (1.26) (1.28) implic    !      (dup
      )    ( ) *       ε sub valoarea prin reducerea
           ε
  +       ! %   !      n +, 1! ! !+   !  , ! , !
                  -     -
     -  $    %  , ! '  +   -  !    
decât în cazul foarte restrictiv ε n +1 = ε . Prin urmare , utilizarea nediscriminatorie a acestui
$   !  !     !   !  ! ! ).   !      
        #       #
  #!!  ! !+ [ε ' , ε ] de valori ale lui ε mai mici decât ε - , !    # 
   ! ! (  ! , !  !   ! %  n!+1     ) /!   !  ! +
                 

    $0!  #   (1.28) un factor multiplicativ pozitiv subunitar , numit factor de
123456789

1/ 5
 ε 
h = S   h (1.29)
 ε n +1 

• Pentru ε n +1 > ε     )


   )
• Pentru ε n +1 < ε '    
        )
• Pentru ε n +1 ∈ [ε ' , ε ] -      !  !

17
REZOLVAREA NUMERIC  
      

1.6 Bibliografie

[1] W.H.Press , S.A. Teukolsky, W.T.Vetterling , B.P.Flannery , Numerical Recipes in C : The


Art of Scientific Computing , Second Edition ,Cambridge University Press , Cambridge, 1992.
   
[2] T.A.Beu , Calcul numeric în C ,  -Napoca , 2000.
   !"# $%%&'
[3] M. Postolache , Metode numerice , 

[4] G.Vraciu , A.Popa , Metode numerice cu aplica


()) *+ ,-.+)/0 1- /02/32 4 Editura Scrisul
Românesc , Craiova , 1982.
5 +02)67 +38-9)/7 : -+,93 9-0/,;9) +3/2-09) 4  ! "<"  !"# 
[5] M.Pavelescu ,  
1974.

numerice pentru -
/30()) /3 1-9)=0,- : 09()02-
 >"?@!
[6] M.Racoveanu , Gh.Dodescu  !"#
, I.Mincu  $%AB
, Metode
de tip hiperbolic , 

18

Potrebbero piacerti anche