Praktická cvičení z Numerické matematiky
Počáteční (Cauchyova) úloha pro ODR - 6. týden
- Explicitní Eulerova metoda pro lin. ODR 2. řádu
Iterace v jednotlivych casech ukladame jako sloupecky matice X.
X = [ 1 ; 0 ]; T = 1; n = 800; dt = T / n; tt = 0:dt:T; i = 1; % opakujeme fX = [ X(2,i) ; -X(1,i) + tt(i) * exp(-tt(i)) ]; X(:, i+1) = X(:, i) + dt * fX; i = i + 1;
A = [ -0.2 10; -10 -0.05]; X = [ 2 ; 0 ]; T = 4; n = 800; dt = T / n; for i = 1:n, X(:,i+1) = X(:,i) + dt * A * X(:,i), end
tt = 0:dt:T; plot(tt, X(1,:)); plot(X(1,:), X(2,:));
A = [ -0.2 10; -10 -0.05]; X = [ 2 ; 0 ]; T = 4; n = 800; dt = T / n; B = eye(size(A,1)) - dt * A; for i = 1:n, X(:,i+1) = B \ X(:,i), end
A = [ -0.2 10; -10 -0.05]; X = [ 2 ; 0 ]; T = 4; n = 800; dt = T / n; % opakujeme postupne pro i = 1:n i = 1; k1 = A * X(:,i); Xpom = X(:,i) + dt / 2 * k1; k2 = A * Xpom; X(:, i+1) = X(:,i) + dt * k2;