05.1 Metodo di Eulero
Metodo di Eulero
Introduzione del metodo
☑️ Ipotesi
ipotesi
Algoritmo
Discretizzazione
- Nodi:
- Approssimazioni:
Scrivo
Calcolato in
Dove
Essendo, per come è stato definito il problema
posso scrivere:
E posso quindi scrivere l'approssimazione
algoritmo
Errori
Errore di Troncamento Globale
errore di troncamento globale
Errore di troncamento locale
errore di troncamento locale metodo di eulero
Convergenza
Condizioni di convergenza
NON VISTO
Ordine di convergenza
ordine di convergenza
Il [[#Metodo di Eulero]] ha ordine di convergenza pari a 1:
Stima iterazioni necessarie
NON VISTO
Criterio di arresto
Criterio di arresto a posteriori
Posso interrompere l'algoritmo quando l'errore al passo k è minore di una tolleranza scelta
Implementazione in Matlab
Riportare la function per l'applicazione del metodo in matlab
function [Ti,Yi] = MetodoEulero(fun, I, y0, n_step)
% Metodo di Eulero
% Calcola la soluzione di una EDO del orimo ordine ai valori iniziali con
% il metodo di Eulero
% Input:
% fun(t,y): termine noto del problema (function)
% I(1:2): Estremi dell'intervallo di integrazione (vettore)
% y0(1): Condizione iniziale
% n_step: Numero passi temporali (scalare)
%
% Output:
% Ti(1:n_step + 1): Nodi di discretizzazione (vettore)
% Yi(1:n_step + 1): Vettore delle approssimazioni (vettore)
t0 = I(1);
tf = I(2);
% Passo di discretizzazione
h = (tf-t0)/n_step;
% Griglia dei nodi: equispaziata
Ti = linspace(t0,tf, n_step + 1);
Ti = Ti'; % Rendo Ti un vettore colonna
% Inizializzazioni
Yi = nan(n_step + 1, 1);
Yi(1) = y0;
% Metodo di Eulero
for i= 1:n_step
Yi(i+1) = Yi(i) + h*fun(Ti(i), Yi(i));
end
end