next up previous   
Next: Metodi multistep per equazioni differenziali Up:Introduzione  Previous: Calcolo degli zeri di una funzione
Intro Gen: Introduzione Generale  Home: Home page

Formquad.m

% FORMULE DI QUADRATURA

 

help formquad;

inizio=0;

while inizio==0

clear;

inizio=0;

disp('INTRODUCI:');

err=0;

while err==0

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

     if exist(F)==0

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

     else

        err=1;

     end

end

a=input('- L''estremo inferiore di integrazione : ');

b=input('- L''estremo superiore di integrazione : ');

if a==b

   disp(' L''integrale definito é nullo ');

else

    err=0;

    while err==0

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

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

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

     else

       err=1;

     end

    end

    h=(b-a)/n;

    x(1)=a;                                                        % determinazione del vettore

    for i=2:n                                                      % sul quale applicare la

        x(i)=x(i-1)+h;                                             % formula di quadratura

    end

    x(n+1)=b;

    for i=1:n+1

        y(i)=feval(F,x(i));

    end

    e=0;

    while e==0

      disp('Scegliere tra le seguenti formule di quadratura : ');

      disp('1. Trapezi composta');

      disp('2. Simpson composta');

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

      q=0;

      if s~=1 & s~=2

        disp('Scelta errata.Ricomincia :');

      else

        risp=1;

        while q==0 & risp==1

          if s==1 & risp==1                                        % Trapezi composta

             c=0;

             for i=2:n

                 c=c+y(i);

             end

             T=(h/2)*(y(1)+y(n+1))+h*c

             q=1;

          elseif s==2 & risp==1                                    % Simpson composta

                 if rem(n,2)~=0

                    disp('Il numero di intervalli deve essere pari');

                    disp('Allora premere :');

                    disp('1. Per applicare la formula dei trapezi composta ');

                    disp('2. Per uscire dal programma ');

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

                    s=1;

                    if risp~=1

                       risp=2;

                       q=1;

                    end

                 else

                    c=0;

                    for i=1:n/2-1     

                        c=c+y(2*i+1);

                    end

                    d=0;

                    for i=1:n/2     

                        d=d+y(2*i);

                    end 

                    T=(h/3)*(y(1)+y(n+1)+2*c+4*d)

                    q=1;

                 end

          end

        end

        e=1;

      end

    end   

end

inizio=input('Se vuoi ricominciare nuovamente premi il tasto ''0'' :');

end  


next up previous   
Next: Metodi multistep per equazioni differenziali Up:Introduzione  Previous: Calcolo degli zeri di una funzione
Intro Gen: Introduzione Generale  Home: Home page
Vito Marinelli
8-5-2000

HyperCounter
BPath Contatore