Metoda Eulera - Cauchy

Równania różniczkowe i całkowe. Równania różnicowe. Transformata Laplace'a i Fouriera oraz ich zastosowanie w równaniach różniczkowych.
janusz47
Użytkownik
Użytkownik
Posty: 7910
Rejestracja: 18 mar 2009, o 16:24
Płeć: Mężczyzna
Podziękował: 30 razy
Pomógł: 1670 razy

Metoda Eulera - Cauchy

Post autor: janusz47 »

Metoda Eulera-Cauchy

Metoda Eulera-Cauchy zwana też metodą punktu środkowego bazuje na następującym równaniu rekurencyjnym:

\(\displaystyle{ y_{i+1} = y_{i} + h\left [ x_{i}+ \frac{1}{2}h, y_{i} + \frac{1}{2}f(x_{i},y_{i})] \right]. }\)

Algorytm metody

\(\displaystyle{ h \leftarrow \frac{b-a}{N} }\)

\(\displaystyle{ y_{0} \leftarrow y(a) }\)

\(\displaystyle{ dla \ \ i = 0,1,...,N-1 }\)

\(\displaystyle{ k_{1} \leftarrow f(t_{i},y_{i}) }\)

\(\displaystyle{ k_{2} \leftarrow f \left (t_{i} + \frac{h}{2} , y_{i} + \frac{h}{2}k_{1}\right)}\)

\(\displaystyle{ y_{I+1} \leftarrow y_{i} + kh_{2} }\)

Metoda Eulera - Cauchy jest metodą rzędu drugiego (lokalny błąd obcięcia wynosi \(\displaystyle{ O(h^3) }\)) (*).

Z analizą zbieżności i analizą wpływu błędów zaokrągleń w arytmetyce zmiennoprzecinkowej dla tej metody można zapoznać się w (*).

(*) JANINA i MICHAŁ JANKOWSCY Przegląd metod i algorytmów numerycznych. Część 1. WNT Warszawa 1981.


Program w MATLAB

Kod: Zaznacz cały

function euler_cauchy(f,a,b,y0,n) 
% Rozwiązuje problem początkowy y'=f(t,y), y(a)=y0 
% Metodą Eulera-Cauchy. 
fprintf('\n') 
disp('Metoda Eulera-Cauchy') 
disp('_______________________________________________') 
disp(' t           k1          k2             y      ') 
disp('_______________________________________________') 
fprintf('\n') 
h=(b-a)/n; 
y=y0; 
m=feval(f,a,y0); 
fprintf('%6.2f        -----       -----   %12.6f\n',a,y) 
for i=1:n 
 t=a+(i-1)*h; 
 k1=feval(f,t,y); 
 k2=feval(f,t+h/2,y+h*k1/2); 
 y=y+h*k2; 
 t=t+h; 
 fprintf('%6.2f %12.6f %12.6f %12.6f\n',t,k1,k2,y) 
 end 
 



Przykład

Kod: Zaznacz cały

function f=f1(t,y)
f=2*t-y;

>> euler_cauchy('f1',0,1,-1,10)

Metoda Eulera-Cauchy
_______________________________________________
 t           k1          k2             y      
_______________________________________________

  0.00        -----       -----      -1.000000
  0.10     1.000000     1.050000    -0.895000
  0.20     1.095000     1.140250    -0.780975
  0.30     1.180975     1.221926    -0.658782
  0.40     1.258782     1.295843    -0.529198
  0.50     1.329198     1.362738    -0.392924
  0.60     1.392924     1.423278    -0.250596
  0.70     1.450596     1.478067    -0.102790
  0.80     1.502790     1.527650     0.049975
  0.90     1.550025     1.572524     0.207228
  1.00     1.592772     1.613134     0.368541
  
ODPOWIEDZ