Praktická cvičení z Numerické matematiky
Počáteční (Cauchyova) úloha pro ODR - 7. týden
- Rovnice y' = -4.2 y, y(0) = 1, Explicitní Eulerova metoda
y = 1;
n = 4;
dt = 1 / n;
for i = 1:(2n), y(i+1) = y(i) + h * (-4.2 * y(i));, end
Rovnice y' = -4.2 y, y(0) = 1, Implicitní Eulerova metoda
y = 1;
n = 4;
dt = 1 / n;
for i = 1:(2n), y(i+1) = y(i)/ (1 + h * 4.2);, end
Graf řešení.
x = (0:(2n)) * dt;
plot(x, y);
Rovnice X' = A X, X(0) = u, Explicitní Eulerova metoda
A = [ -0.2 10; -10 -0.05]; X = [ 2 ; 0 ];
T = 4;
n = 800;
dt = T / n;
% postupne pro i = 1, 2, 3, ... opakujeme
i = 1;
k1 = A * X(:,i),
X(:,i+1) = X(:,i) + dt * k1; end
Graf řešení, fázová trajektorie
tt = 0:dt:T;
plot(tt, X(1,:));
plot(X(1,:), X(2,:));
Implicitní Eulerova metoda pro soustavu ODR (linearni)
X ' = A X
A = [ -0.2 10; -10 -0.05]; X = [ 2 ; 0 ];
T = 4;
n = 800;
dt = T / n; B = eye(size(A,1)) - dt * A;
i = 1;
% opakujeme
X(:,i+1) = B \ X(:,i); i = i +1;
Collatzova metoda pro soustavu ODR
X ' = A X
A = [ -0.2 10; -10 -0.05]; X = [ 2 ; 0 ];
T = 4;
n = 800;
dt = T / n;
i = 1;
% Opakujeme
k1 = A * X(:,i);
Xpom = X(:,i) + dt * k1;
k2 = A * Xpom;
X(:,i+1) = X(:,i) + dt * k2; end