Untitled
unknown
plain_text
2 months ago
949 B
2
Indexable
% Forward --> x(n+1) = x(n) + h*f(x(n)) %Nel nostro caso diventa --> x(n+1) = x(n) + h*(-k*x(n)) %Semplificando diventa x(n+1) = x(n)*(1-kh) % Backward --> x(n+1) = x(n) + h*f(x(n+1)) % Nel nostro caso diventa --> x(n+1) = x(n) + h*(-k*x(n+1)) %Semplificando diventa x(n+1) = x(n)/(1+kh) function [t, x_forward, x_backward, x_exact] = metodi_eulero(k, x0, tspan N) h = (tspan(2) - tspan(1))/N; t = tspan(1):h:tspan(2); x_forward = zeros(1, N+1); x_backward = zeros(1, N+1); x_exact = zeros(1, N+1); x_forward(1) = x0; x_backward(1) = x0; for i = 1:N % Forward x_forward(i+1) = x_forward(i) * (1-k*h); % Backward x_backward(i+1) = x_backward(i) / (1+k*h); % Soluzione esatta x_exact(i) = x0*exp(-k*t(i)); end x_exact(N+1) = x0*exp(-k*t(N+1)); end k = 1; x0 = 1; tspan = [0 5]; N = 100; [t, x_f, x_b, x_e] = metodi_eulero(k, x0, tpsan, N);
Editor is loading...
Leave a Comment