Metoda Rungego-Kutty 4-ego rzędzu

Równania różniczkowe i całkowe. Równania różnicowe. Transformata Laplace'a i Fouriera oraz ich zastosowanie w równaniach różniczkowych.
Spwrt
Użytkownik
Użytkownik
Posty: 4
Rejestracja: 9 mar 2019, o 20:10
Płeć: Mężczyzna
Lokalizacja: Blachownia

Metoda Rungego-Kutty 4-ego rzędzu

Post autor: Spwrt » 9 mar 2019, o 20:38

Witam. Mam rozwiązać rówananie różniczkowe załączone na zdjęciu.
https://zapodaj.net/14d3679210cb4.png.html
Tylko nie wiem jak zaimplementować w kod Te wspolczynniki K2,K3,K4.
Kod wygląda tak:

Kod: Zaznacz cały


%% Parameters
d = 0.01;
h = 0.1; 
t0 = 0;
tEnd = 2/d;
N = (tEnd - t0)/h;

%% Inicialization
T = [t0:h:tEnd];
y = zeros(N+1, 1);
y(0) = d;


%% Runge-Kutta Method

for i = 1:N
    f =  y(i)^2 - y(i)^3; 
    
    K1 = f;
    K2 =
    K3 =
    K4 =
    
   
    y(i+1) = y(i) + h/6*(K1 + 2K2 + 2K3 + K4);

end

%% Drawing diagram

plot(T, y, 'r-');
title("Euler Method (Explicit)");
xlabel("t");
ylabel("y");
grid on;

Dzięki za każdą pomoc !

janusz47
Użytkownik
Użytkownik
Posty: 4967
Rejestracja: 18 mar 2009, o 16:24
Płeć: Mężczyzna

Metoda Rungego-Kutty 4-ego rzędzu

Post autor: janusz47 » 9 mar 2019, o 21:36

Kod w Matlabie

Kod: Zaznacz cały

h=(b-a)/n;
y=y0;
for i = i:n 
t= a+(i-1)*h;
K1 = feval(f, t,y);
K2 = feval(f, t+h/2, y+h*K1/2);
K3 = feval(f, t+h/2, y+K2/2);
K4 = feval (f, t+h, y+h*K3);
y = y+h*(K1+2*K2+2*K3+K4)/6;
t = t+h;

ODPOWIEDZ