next up previous   
Next: Funzioni adoperate Up:Introduzione  Previous: Formule di quadratura
Intro Gen: Introduzione Generale  Home: Home page

Metmulst.m

% METODI MULTISTEP PER EQUAZIONI DIFFERENZIALI

 

help metmulst;

inizio=0;

while inizio==0

clear;

inizio=0;

disp('INTRODUCI:');

err=0;

while err==0

    F=input('- Il nome della function contenente la funzione f(t,y): ','s');

    if exist(F)==0

       disp('La funzione non esiste, introduci :');

    else

       err=1;

    end

end

err=0;

while err==0

  a=input('- L''estremo inferiore dell''intervallo di definizione : ');

  b=input('- L''estremo superiore dell''intervallo di definizione : ');

  if a>=b

     disp('I due estremi dell''intervallo sono errati.Introduci :');

  else

     err=1;

  end

end

y(1)=input('- La condizione iniziale corrispondente all''estremo inferiore dell''intervallo : ');

err=0;

while err==0

     n=input('- Il numero di suddivisioni dell''intervallo di definizione :');

     if n<=0 | round(n)~=n

       disp('Il numero di suddivisioni deve essere un intero naturale non nullo.Introduci');

     else

       err=1;

     end

end

disp('Scegliere tra : ');

err=0;

while err==0

     disp('1. Metodo di Eulero implicito');

     disp('2. Metodo di Eulero esplicito');

     disp('3. Metodo dei trapezi');

     s=input('Introduci il numero corrispondente : ');

     if s~=1 & s~=2 & s~=3

        disp('Scelta errata.Ricomincia :');

     else

        err=1;

     end

end

h=(b-a)/n;

t(1)=a;

for i=2:n+1

    t(i)=t(i-1)+h;

end

t(n+1)=b;

if s==1 | s==3

   err=0;

   while err==0

G=input('Introduci il nome della function contenente la derivata prima della funzione rispetto a y : ','s');   

      if exist(G)==0

         disp('La funzione non esiste, introduci :');

      else

         err=1;

      end

   end

   e=input('Introduci l''errore massimo che si puņ commettere (massimo 0.1) : ');

   err=0;

   while err==0

      if e>0.1 | e<=0

         disp(' Il valore dell''errore massimo introdotto non é corretto');

         e=input('Introducilo nuovamente : ');

      else

         err=1;

      end 

   end

end

if s==1

   [y,risp]=eulimpl(F,G,t,y,n,h,e);                % METODO DI EULERO IMPLICITO 

end

if s==2

   risp=0;

   y=eulespl(F,t,y,n,h);                           % METODO DI EULERO ESPLICITO

end

if s==3

   [y,risp]=mettrap(F,G,t,y,n,h,e);                % METODO DEI TRAPEZI

end

if risp==0

   disp('In corrispondenza dei seguenti punti t ');

   disp('La funzione soluzione dell''equazione differenziale assume i valori y che sono ');

   t=t';

   y=y';

   disp('t=             y=');

   disp([t y]);

else

   disp('Metodo non applicabile.Utilizza gli altri metodi');  

end

inizio=input('Se vuoi ricominciare nuovamente premi i


next up previous   
Next: Funzioni adoperate Up:Introduzione  Previous: Formule di quadratura
Intro Gen: Introduzione Generale  Home: Home page
Vito Marinelli
8-5-2000

HyperCounter
BPath Contatore