SlideShare uma empresa Scribd logo
1 de 18
Baixar para ler offline
Lima - 2010



             T´picos de Matlab: Aplicaciones a M´todos Num´ricos
              o                                 e         e
                                                                       1
                                      Jos´ Walter Ysique Quesqu´n
                                         e                     e
                                         jwysiqueq@pucp.edu.pe

                                                   Resumen
           Uso del paquete de software matem´tico MatLab para el c´lculo de algunos m´todos num´ri-
                                                a                     a                 e          e
       cos. Se definen funciones en las que se implementan m´todos conocidos para calcular,por ejemplo
                                                              e
       el polinomio interpolador, ra´ıces,derivada e integral de una funci´n. Adem´s se aborda algunas
                                                                          o        a
       nociones con respecto a la soluci´n de ecuaciones diferenciales ordinarias.
                                         o

       Palabras clave: MatLab,interpolador,derivada,integral,ecuaciones diferenciales.


                                                 Abstract

          Use of the mathematical software package MatLab for the calculation of some numerical
       methods. Functions are defined in which known methods are implemented to calculate, for
       example the interpolador polynomial, roots, derived and integral of a function. In addition one
       approaches some slight knowledge with respect to the solution of ordinary differential equations.
       Keywords: MatLab, interpolador, derived,integral,differential equations.




     ————————————————————————————————————————
1
    Magister en Matem´ticas .
                     a
Introducci´n
                                                   o
    Las t´cnicas computacionales permiten abordar problemas de manera num´rica, anal´
          e                                                                             e          ıtica o
gr´fica, por ejemplo los sistemas de ecuaciones lineales y no lineales, las soluciones de ecuaciones
  a
diferenciales ordinarias y parciales, la evaluaci´n num´rica de derivadas, de integrales, el procesamien-
                                                 o       e
to de datos experimentales, etc.
    MATLAB (MATatrix LABoratory) es un lenguaje de alto nivel y un ambiente interactivo creado
por MathWorks. MATLAB est´ dise˜ ado para realizar r´pida y eficientemente tareas matem´ticas
                                  a      n                     a                                    a
computacionalmente intensivas. El programa cuenta con muchas funciones que permiten hacer todas
las operaciones matem´ticas elementales. Los gr´ficos generados por el computador usando Mat-
                         a                            a
lab son utiles para mostrar la evoluci´n de diversos sistemas, como la formaci´n de patrones, el
         ´                                 o                                          o
procesamiento de im´genes, etc.
                      a
    Se espera incentivar al lector en el estudio y aplicaci´n de los conceptos fundamentales de las t´cni-
                                                           o                                         e
cas num´ricas usando el desarrollo de algoritmos matem´ticos. Asimismo, realizar la implementaci´n
         e                                                   a                                          o
del programa correspondiente usando el entorno integrado del Matlab.




                                                    i
´
Indice
1 Interpolaci´n.
              o                                                                                                                                                      1
  1.1 Interpolaci´n de Lagrange. . .
                 o                      .   .   .   .   .   .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   1
  1.2 Interpolaci´n de Hermite . .
                 o                      .   .   .   .   .   .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   3
       1.2.1 Polinomio de Hermite       .   .   .   .   .   .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   3
  1.3 Funci´n Spline . . . . . . . .
            o                           .   .   .   .   .   .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   4
  1.4 Ejemplo de Aplicaci´n . . . .
                         o              .   .   .   .   .   .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   5

2 Ra´
    ıces de Ecuaciones                                                                                                                                               6

3 Presentaci´n de Algunos M´todos.
            o                  e                                                                                                                                     6
  3.1 M´todo de Bisecci´n . . . . . . . .
        e              o                            .   .   .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   6
  3.2 M´todo de la Secante . . . . . . . .
        e                                           .   .   .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   7
  3.3 M´todo de Falsa Posici´n . . . . . .
        e                   o                       .   .   .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   8
  3.4 M´todo de Newton . . . . . . . . .
        e                                           .   .   .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   9

4 Derivada de una funci´n
                       o                                                                                                                                             10

5 Integraci´n
           o                                                                                                                                                         12

6 Ecuaciones Diferenciales                                                                         13
  6.1 Ley de Malthus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

7 Bibliograf´
            ıa                                                                                                                                                       15




                                                            ii
1     Interpolaci´n.
                 o
Sea P = {(xi , yi = f (xi )) : i = 1, · · ·, n, n ∈ N} un conjunto de puntos dado. Se denomina “funci´n
                                                                                                     o
interpolante” a una funci´n cuya gr´fica pasa por todos los puntos del conjunto P .
                            o             a




                                                       Figura 1:


    • Las funciones m´s usadas para interpolar son las polinomiales debido a que ´stas son m´s f´ciles
                       a                                                         e          a a
      de derivar e integrar.

    • Se dispone de dos m´todos generales de interpolaci´n polin´mica: Interpolaci´n de Lagrange e
                          e                             o       o                 o
      Interpolaci´n de Hermite.
                 o

1.1     Interpolaci´n de Lagrange.
                   o
Sea f la funci´n a interpolar, sean P = {(xi , yi = f (xi )) : i = 1, · · ·, n, n ∈ N} los puntos
               o
conocidos,donde f (xi ) es la funci´n evaluada en cada punto xi . El polinomio interpolador de
                                   o
grado m de Lagrange es definido por:
                                                  n
                                      Pn =            f (xi )Li (x) , n ≤ m .                      (1)
                                              i=0

donde los Li (x) son llamados polinomios de Lagrange y est´n definidos por:
                                                          a
                                              n
                                                       x − xj
                                  Li (x) =                     , i = 0, 1, · · ·, n .              (2)
                                             j=0j=i    xi − xj

-Propiedades de los Polinomios de Lagrange:
                   0, si i = j;
    • Li (xj ) =
                   1, i=j.

    • El grado de Li (x) es igual a n cualquiera que sea i, donde 0 ≤ i ≤ n .




                                                            1
-Implementaci´n del m´todo usando MatLab
                o       e
               %Algoritmo de Lagrange
               %Ingresar los valores conocidos de x
               %Ingresar los valores conocidos de y
               %Ingresar los valores a interpolar xi
               %muestra el polinomio de lagrange y los valores yi

               function Lagrange(x,y,xi);
                   p=0;
                   syms t;
                   n=length(x);
                   yi=zeros(size(xi));
                for i=1:n
                   z=ones(size(xi));
                   L=1;
                for j=1:n
                 if i~=j
                    L=L*(t-x(j))/(x(i)-x(j));
                    z=z.*(xi-x(j))/(x(i)-x(j));
                 end
                end
                yi=yi+z*y(i);
                p=p+L*y(i);
                p=simplify(p);
               end
               polinomio=p
               yi


Ejemplo 1. Sea f (x) = x21   +1
                                  una funci´n tal que x0 = −2, f (x0 ) = 1/5, x1 = −1, f (x1 ) =
                                           o
1/2, x2 = 0, f (x2 ) = 1 . Su polinomio interpolador de Lagrange es:
                                               2
                                   P2 (x) =         f (xi ) · Li (x) ,
                                              i=0

donde :

                                             (x + 1)x     x2 x
                                L0 (x) =                =   +
                                           (−2 + 1)(−2)   2   2
                                             (x + 2)x
                                L1 (x) =                = x2 − 2x
                                           (−1 + 2)(−1)
                                       (x + 2)(x + 1)   x2 3x
                            L2 (x) =                  =   +   +1 .
                                           (2)(1)       2   2
Luego:
                                       1             1
                            P2 (x) =     · L0 (x) + · L1 (x) + 1 · L2 (x)
                                       5             2
                                                   2
                                                  x    3x
                                       P2 (x) =      +    +1 .
                                                  10    5


                                                    2
Usando la funci´n “Lagrange” en MatLab, ingresamos la orden :
                  o

        Lagrange([-2 -1 0],[1/5 1/2 1],[-1.5 -0.5])


en donde xi=[-1.5 -0.5] son los valores a interpolar. Como resultado se mostrar´:
                                                                               a

         polinomio = 1/10*t^2+3/5*t+1
                yi = 0.3250    0.7250



1.2     Interpolaci´n de Hermite
                   o
Teniendo en cuenta la interpolaci´n de Lagrange, se puede exigir otro tipo de condiciones,por ejemplo
                                     o
que adem´s de coincidir los valores P (xi ) = f (xi ) = yi , tambi´n coincidan el de sus derivadas:
             a                                                     e
P ′ (xi ) = f ′ (xi ) = yi para todo xi con i = 0, · · ··, n .
                         ′

As´ tenemos los siguientes datos:
    ı

                                              x0     x1       ···   xn
                                              y0     y1       ···   yn
                                               ′      ′              ′
                                              y0     y1       ···   yn


                                                    Cuadro 1:

   Observamos que se tiene 2(n + 1) condiciones, por lo que buscaremos un polinomio de grado
2n + 1 que verifique la condiciones dadas en el Cuadro (1).

1.2.1    Polinomio de Hermite
Se define como:                                 n                     n
                                                                                    ′
                                P2n+1 (x) =         hj (x) · yj +         gj (x) · yj ,           (3)
                                              j=0                   j=0

donde hj (x) y gj (x) est´n definidos en t´rminos de polinomios de Lagrange:
                         a               e

                 hj (x) = [1 − 2(x − xj ) · L′j (xj )] · L2 (x) , gj (x) = (x − xj ) · L2 (x) .
                                                          j                             j         (4)

Implementaci´n del m´todo en MatLab :
            o       e

           %Algoritmo    generalizado de Hermite
           % ingresar    valores conocidos de x
           % ingresar    valores conocidos de y
           % ingresar    valores de las derivadas dy
           % ingresar    valores a interpolar xi

             function Hermite(x,y,dy,xi)
              p=0;
              syms t;
              n=length(x);
              yi=zeros(size(xi));
              for i=1:n

                                                          3
l=1;
                 L=1;
                 M=0;
                  for j=1:n
                    if i~=j
                       l=l.*(xi-x(j))/(x(i)-x(j));%polinomio lagrange
                       L=L.*1/(x(i)-x(j)); %factor constante en derivada
                       M=M+(x(i)-x(j));% acumulando derivadas
                       F=L.*M ; %resultado delagrange derivado
                     hj=((1-2.*(xi-x(i)).*F)).*l.^2; %coeficiente en hemite
                     gj=(xi-x(i)).*l.^2 ;%coeficiente en hemite
                  end
                 end
                yi=hj.*y(i)+gj.*dy(i);
                p=p+yi;
                end
                p

                             1
Ejemplo 2. Sea f (x) =     x2 +1
                                   la funci´n a interpolar, con los siguientes datos adicionales:
                                           o

                                    i=0     i=1    i=2      i=3      i=4
                              xi     −2      −1     0         1         2
                              yi     1/5     1/2    1        1/2      1/5
                               ′
                              yi    4/25     1/2    0       −1/2   −4/25 .


                                                Cuadro 2:
Evaluar el polinomio de Hermite en los valores {−1 · 5, −0 · 5, 0 · 5, 1 · 5} .

Soluci´n:
      o
Usando la funci´n “Hermite” en MatLab, ingresamos la orden :
               o

 Hermite([-2 -1 0         1   2],[1/5 1/2 1 1/2 1/5],
         [4/25 1/2        0   -1/2 -4/25],[-1.5 -0.5 0.5              1.5])


y se mostrar´ como respuesta:
            a

      p =   1.1099      0.5692        0.5692       1.1099



1.3    Funci´n Spline
            o
Una “funci´n spline de grado k ” con valores conocidos en x0 , x1 , · · ·, xn es una funci´n S(x)
            o                                                                              o
formada por varios polinomios cada uno definido sobre un subintervalo [xi , xi+1 ] y se unen bajo las
siguientes condiciones de continuidad:

   • En el intervalo [xi , xi+1 >, S(x) es un polinomio de grado menor o igual a k .

   • S(x) admite derivada continua de orden (k − 1) en [x0 , xn ] .

                                                     4
-La interpolaci´n m´s frecuente es por medio de splines de grado 3, llamados “splines c´ bicos”.
               o     a                                                                    u
-MatLab tiene incorporado el interpolador “spline cubic”, se ejecuta siguiendo la siguiente sintaxis:
yi = spline(x, y, xi), donde los valores y representa los valores de la funci´n evaluada en los puntos
                                                                             o
x y los puntos xi son los puntos a interpolar.

Ejemplo 3.
     x = 0:10;
     y = x.*cos(x);
     xi = 0:.25:10;
     yi = spline(x,y,xi);
     hold on
     plot(x,y,’o’,xi,yi) % ubicaci´n de los puntos dados
                                   o
                          % y la gr´fica del polinomio interpolador
                                   a




                                             Figura 2:



1.4    Ejemplo de Aplicaci´n
                          o
Ejemplo 4. Con ayuda de la funci´n de Matlab ginput realice un dibujo de su mano. Para esto
                                      o
coloque su mano en la pantalla de su monitor y seleccione unos 30 a 35 puntos del contorno de su
mano. Ahora imagine que las abscisas y las ordenadas de los datos que recolect´ son funciones de una
                                                                              o
variable independiente que va desde 1 hasta el n´mero de puntos. Luego realice una interpolaci´n de
                                                u                                              o
cada una de estas tablas en una rejilla muy fina. Seleccione el m´todo de interpolaci´n que considere
                                                                e                   o
el mejor para este caso.
Soluci´n: Definimos en MatLab la siguiente funci´n que realiza lo pedido:
      o                                           o

                 % N es numero de puntos
                 %get consigue las propiedades del objeto
                 %get(h,’PropertyName’)
                 %screensize tama~o de la pantalla
                                  n
                 %figure(’position’,get(0,’screensize’))
                 % ginput permite seleccionar puntos de la figura con el mouse
                 function mano(N)
                  figure(’position’,get(0,’screensize’))
                  axes(’position’,[0 0 1 1])
                  [x,y] = ginput(N);

                                                  5
N = length(x);
                       n =(1:N)’;
                       xi=(1:0.05:N)’;
                       u = spline(n,x,xi);
                       v = spline(n,y,xi);
                   plot(x,y,’ro’,u,v,’-’);



2     Ra´
        ıces de Ecuaciones
En esta secci´n nos ocuparemos de encontrar las ra´ de ecuaciones no lineales. Esto es, encontrar
              o                                   ıces
los ceros de funciones. El proceso a seguir es:

    • Ubicar intervalos [aj , bj ] en donde se encuentran las ra´
                                                                ıces, para esto hacemos uso del Teorema
      del Valor Intermedio . Podemos optar por hacer la gr´fica de la funci´n .
                                                               a                o

    • En cada intervalo contruir una sucesi´n xn ∈ [aj , bj ] tal que limn→∞ xn = rj , donde rj es
                                           o
      un cero de la fuci´n.
                        o

    • Lo anterior es un proceso iterativo mediante el cual se busca encontrar una mejor aproximaci´n
                                                                                                  o
      de los ceros de una funci´n. Se termina cuando se impone alg´n criterio de tolerancia. Por
                                 o                                      u
      ejemplo : |xn+1 − xn | < ǫ, para ǫ > 0 bastante peque˜ o.n


3     Presentaci´n de Algunos M´todos.
                o              e
Presentaremos la implementaci´n de algunos m´todos en Matlab mediante un ejemplo:
                             o              e

Ejemplo 5. Hallar las ra´
                        ıces de la ecuaci´n:
                                         o

                   sin(sqrt(sec(x) + (x3 ) ∗ exp(5 ∗ x/tan(x)))) − exp(−1 ∗ x) = 0

en el intervalo [0 · 17, 0 · 81] .
Primero definimos una funci´n en Matlab:
                                o

           function y=f(x)
              y=sin(sqrt(sec(x)+(x^3)*exp(5*x/tan(x))))-exp(-1*x);                .


La cual es guardada con el nombre de f .

3.1    M´todo de Bisecci´n
        e               o
Definimos una funci´n para este m´todo:
                  o             e


           function MB=biseccion(a,b,f,tol);
           % Esta funci´n aplica el m´todo de bisecci´n para
                       o             e               o
           % ubicar raices.
           % a y b son extremos del intervalo donde se ubica la ra´z
                                                                  ı
           % n indica el n´mero de la iteraci´n
                          u                  o

                                                   6
% f es la funci´n
                          o
          % tol= tolerancia
            error=1;%error inicial
            f_ant=feval(f,b);
          % f_ant indica f anterior ,feval(f,b)indica f evaluado en b.
            n=1; while (error>tol)
            f_a=feval(f,a);
            f_b=feval(f,b);
            m =(a+b)/2;
            f_m=feval(f,m);
            error=abs(f_m-f_ant);
            fprintf(’n=%d, a= %5.8f,b=%5.8f,m=%5.8f,f(m)=%5.8f,
                      error=%5.8fn’,n,a,b,m,f_m,error)
            if f_a == 0,
             W=sprintf(’n ra´z en x = %5.8f ’, a);
                              ı
             disp(W);
             return
            end
           if f_b == 0
            W=sprintf(’n ra´z en x = %5.8f ’, b);
                             ı
            disp(W);
            return
            end
           if (f_a*f_m)<0
            b= m;
           else
            a= m;
           end
            f_ant=f_m;
            n=n+1;
           end;
           W=sprintf(’n ra´z en x = %5.8f ’, m);
                            ı
         disp(W);


Para nuestro ejemplo ejecutamos la orden:
      biseccion(0.17,0.81,’f’,0.5*10^(-8))       ,


obteniendo como resultado:
        ra´z en x = 0.32913022
          ı                        .



3.2   M´todo de la Secante
       e
Definimos una funci´n para este m´todo:
                  o             e
        function MS=secante(x1,x2,f,tol)
         % Esta funci´n aplica el m´todo de la secante para ubicar
                     o             e

                                             7
% ra´ces de una funci´n.
             ı                 o
         % f es la funci´n que ingresamos (a ser llamada)
                         o
         % tol es la tolerancia que deseamos
         % x1 y x2 son los extremos iniciales del intervalo en
         % el que est´ la ra´z
                      a      ı
         % delta es el tama~o del nuevo interv. en el q’ est´ la ra´z
                           n                                 a     ı
        f1=feval(f,x1);
        f2=feval(f,x2);
          x_nuevo=x2;
         for n=2:30
           x=x2+f2*(x2-x1)/(f1-f2);
          fx=feval(f,x);
          x1=x2;
          f1=f2;
          delta=abs(x2-x);
          x2=x;
          f2=fx;
          fprintf(’n = %d, x = %5.8f, fx = %5.8f n’,n,x,fx)
           if delta < tol,
               break,
           end
         end
        fprintf(’n ra´z en x = %5.8f ’, x);
                       ı


Para nuestro ejemplo ejecutamos la orden:
      secante(0.17,0.81,’f’,0.5*10^(-8))        ,


obtenemos como resultado:
         ra´z en x = 0.32913022 .
           ı



3.3   M´todo de Falsa Posici´n
       e                    o
Definimos una funci´n para este m´todo:
                  o             e
          function MFP=falsaposicion(x1,x2,f,tol)
           % Esta funci´n aplica el m´todo de Falsa Posici´n
                       o             e                    o
           % para hallar las ra´ces de una funci´n.
                               ı                o
           % f es la funci´n que ingresamos
                          o
           % tol es la tolerancia que deseamos
           % x1 y x2 son los extremos del intervalo donde se
           % encuentra la ra´z
                             ı
          f1=feval(f,x1); f2=feval(f,x2); x_nuevo=x2;
           if f1*f2<0
             for n=2:30
               x=x2+f2*(x2-x1)/(f1-f2);
              fx=feval(f,x);

                                            8
if fx*f1>0
                 x1=x;f1=fx;
             else
                 x2=x;f2=fx;
             end
               fprintf(’n = %d, x = %5.8f, fx = %5.8f n’,n,x,fx)
             if abs(x_nuevo-x)<tol,
               break,
             end
               x_nuevo=x;
            end
           else
           disp(’La ra´z debe estar en el intervalo [x1,x2]’)
                       ı
           end
           fprintf(’n ra´z en x = %5.8f ’, x_nuevo);
                          ı


Para nuestro ejemplo ejecutamos la orden:

      falsaposicion(0.17,0.81,’f’,0.5*10^(-8))            ,


obteniendo como resultado:

        ra´z en x = 0.32913022
          ı                          .



3.4    M´todo de Newton
        e
Presentaremos la implementaci´n del m´todo de Newton en una variable. Este m´todo necesita a
                                o       e                                          e
diferencia de los anteriores,una aproximaci´n inicial de la ra´
                                           o                  ız,tambi´n la derivada de la funci´n.
                                                                      e                         o
Primero definimos una funci´n en MatLab para la derivada de la funci´n de la cual se quiere hallar
                             o                                         o
su ra´
     ız.
Para nuestro ejemplo:

              function y=derivada(x)
               y=1/2*cos((sec(x)+x^3*exp(5*x/tan(x)))^(1/2))/(sec(x)
                 +x^3*exp(5*x/tan(x)))^(1/2)*(sec(x)*tan(x)
                 +3*x^2*exp(5*x/tan(x))+x^3*(5/tan(x)
                 -5*x/tan(x)^2*(1+tan(x)^2))*exp(5*x/tan(x)))+exp(-x);



Implementaci´n de MatLab del m´todo de Newton para una variable:
            o                 e

              function N=newton1v(xo,f,df,tol)
               % Esta funci´n aplica elm´todo de una variable
                           o            e
               % para hallar la ra´z de una funci´n.
                                  ı              o
               % xo es la aproximacion inicial de la ra´z
                                                       ı
               % f es la funcion
               % df es la derivada de la funcion

                                                9
% tol=tolerancia
                 error=1; x_ant=xo; n=1; while (error>tol)
                 x_nuevo=x_ant-feval(f,x_ant)/feval(df,x_ant);
                 error=abs(x_nuevo-x_ant);
                 W=fprintf(’n=%d,x_ant=%5.8f,x_nuevo=%5.8f,
                            error=%5.8f’,n,x_ant,x_nuevo,error);
                 disp(W);
                 x_ant=x_nuevo;
                 n=n+1;
                 end;
                fprintf(’n ra´z en x=%5.8f’,x_ant);
                              ı

Para nuestro ejemplo ejecutamos la orden:
               newton1v(0.30,’f’,’derivada’,0.5*10^(-8))                ,

obteniendo como resultado:
            ra´z en x=0.32913022
              ı                          .



4     Derivada de una funci´n
                           o
Ejemplo 6. Considere la funci´n f (x) = xexp(x) . Determinar aproximaciones de f ′ (2) , para
                                 o
cada uno de los siguientes pasos h = 0 · 5, 0 · 45, · · ·, 0 · 05 ; usando las f´rmulas de diferencia hacia
                                                                                o
atr´s, diferencia hacia delante y diferencia central. Para visualizar como la aproximaci´n mejora con
   a                                                                                         o
el decrecimiento del paso, graficar el error como funci´n de h en cada caso.
                                                            o
   soluci´n:
         o
Diferencia hacia adelante:
                  %derivada de la funci´n Y =x.*exp(x) en el punto x=2
                                       o
                  %usando diferencia hacia adelante con dos puntos,
                  %se grafica el error como funci´n del paso.
                                                 o
                   xo=2;
                   h=0.5:-0.05:0.05;
                   n = length(h)-1;
                   disp(’ DIFERENCIA HACIA ADELANTE ’);
                   for j=1:length(h)
                    x1=xo;
                    x2=xo+h;
                    y1=x1.*exp(x1);
                    y2=x2.*exp(x2);
                    y=(y2-y1)./(h);
                   end
                  fprintf(’n h=%5.2f’,h);
                  fprintf(’n y=%5.8f’,y);
                    w=abs(exp(2)+2.*exp(2)- y);%error
                  plot(h,abs(exp(2)+2.*exp(2)- y),’ro’), grid


                                                    10
Diferencia hacia atr´s:
                       a


             %derivada de la funci´n Y =x.*exp(x) en elpunto x=2 usando
                                  o
             %diferencia hacia atras con dos puntos, se grafica el
             %error como funci´n del paso.
                               o
              xo=2;
              h=0.5:-0.05:0.05;
              n = length(h)-1;
              disp(’ DIFERENCIA HACIA ATRAS ’);
              for j=1:length(h)
               x1=xo;
               x2=xo-h;
               y1=x1.*exp(x1);
               y2=x2.*exp(x2);
               y=(y1-y2)./(h);
              end
             fprintf(’n h=%5.2f’,h);
             fprintf(’n y=%5.8f’,y);
             w=abs(exp(2)+2.*exp(2)- y);%error
             plot(h,abs(exp(2)+2.*exp(2)- y),’ro’), grid


Diferencia central:


                 %derivada de la funci´n Y =x.*exp(x) en el
                                      o
                 %punto x=2 usando diferencia central con dos
                 %puntos, se grafica el error como funci´n del paso
                                                        o
                 xo=2;
                 h=0.5:-0.05:0.05;
                 n =length(h)-1;
                 disp(’ DIFERENCIA CENTRAL ’);
                  for j=1:length(h)
                   x1=xo-h;
                   x2=xo+h;
                   yo=xo.*exp(xo);
                   y1=x1.*exp(x1);
                   y2=x2.*exp(x2);
                   y=(y2-y1)./(2.*h);
                  end
                 fprintf(’n h=%5.2f’,h);
                 fprintf(’n y=%5.8f’,y);
                 w=abs(exp(2)+2.*exp(2)- y);%error
                 plot(h,abs(exp(2)+2.*exp(2)- y),’ro’), grid     .




                                           11
5     Integraci´n
               o
Ejemplo 7. Evaluar num´ricamente las siguientes integrales impropias realizando las transforma-
                          e
ciones que crea conveniente.
                                            ∞    1
                                    a)                dx
                                          0    1 + x2
                                            1 cos(x)
                                     b)         √ dx
                                          0       x
   Soluci´n:
         o
Parte a), definimos la siguiente funci´n en Matlab:
                                     o


             function integral
              disp(’INTEGRAL DE f(x)=1/(1+x^2)’);
              disp(’LIMITES DE INTEGRACION:a=0;b=infty’);
              %Evaluamos de a=0 hasta c=1 y de c=1 hasta b=infty;
              I1=trapecio(’h’,0,1,80);
              %segundo desde c=1 hasta b=infty
              %hacemos el cambio x=1/t
               I2=trapecio(’g’,0,1,80);
               disp(’EL VALOR DE LA INTEGRAL ES:’);
               I=I1+I2
               %inicio de la subfunci´n regla extendida del trapecio
                                      o
               function s = trapecio(f,a,b,m)
                h = (b - a)/m; s = 0; for k=1:(m-1),
                x = a + h*k;
                s = s + feval(f,x);
               end s = h*(feval(f,a)+feval(f,b))/2 + h*s;
               % definiendo funciones
              function h=h(x)
               h=1/(1+x^2);
             function g=g(t)
              g= 1/(1+t^2);                     .


El valor de la integral es: I=1.5708 .

    Parte b), definimos la siguiente funci´n en Matlab:
                                         o


             function integral_2
              disp(’INTEGRAL DE f(x)=(cos(x))/(x^(1/2))’);
              disp(’LIMITES DE INTEGRACION: a=0;b=1’);
              %hacemos el cambio x=(t^2)
              %integraremos g(t)=2cos(t^2)
              %nuevos l´mites de integrac´n a=0 ,b=1.
                       ı                 o
              disp(’EL VALOR DE LA INTEGRAL ES :’);
              richarson(’g’,0,1,20)
              %inicio de la subfunci´n richarson - trapecio
                                    o

                                               12
function [integral]=richarson(f,a,b,m)
                 format short
                 %-------------------------------------------
                 %EMPEZAMOS ALGORITMO DE RICHARSON PARA
                 %HALLAR LA integral de una funci´n
                                                  o
                 for i=1:length(m)
                  h=(b-a)./m;
                  delta=0.01; err=1; j=1;
                  I(1,1)=trapecio(f,a,b,m);
                  while err>delta && j<50
                     m=2.*m;
                     I(j+1,1)=trapecio(f,a,b,m);
                      for k=1:j
                       I(j+1,k+1)=(I(j,k)-(4^k)*I(j+1,k))/(1-4^k);
                      end
                     err=abs(I(j+1,j+1)-I(j,j));
                     j=j+1;
                  end [n ,n]= size(I);
                 end
                 I;
                 I(n,n)
                %inicio de la subfunci´n regla
                                       o
                %extendida del trapecio
                function s = trapecio(f,a,b,m)
                 h = (b - a)/m; s = 0; for k=1:(m-1),
                 x = a + h*k;
                 s = s + feval(f,x);
                end
                s = h*(feval(f,a)+feval(f,b))/2 + h*s;
               % definiendo funci´n
                                  o
                 function g=g(t)
                 g=2*cos(t^2);                               .


El valor de la integral es: I=1.8090 .



6    Ecuaciones Diferenciales
Para calcular, la soluci´n aproximada del problema: y ′ = f (t, y) en [to, tf ] con la condici´n inicial
                        o                                                                     o
y(to) = yo; en MatLab se usan los comandos:

            f=inline(’expresion de f(t,y)’,’t’,’y’)
            ode23(f,[to,tf],yo)     ,


esta orden calcula una aproximaci´n num´rica de la soluci´n y muestra una gr´fica.
                                 o     e                 o                  a

Ejemplo 8. Ejecutamos la orden:


                                                  13
f=inline(’-5*y+10’,’t’,’y’)
         ode23(f,[0,3],0)
         axis([-0.5 3 -0.5 3]),grid              ,


se muestra la siguiente gr´fica:
                          a

                                  3


                               2.5


                                  2


                               1.5


                                  1


                               0.5


                                  0


                              −0.5
                                −0.5   0   0.5       1        1.5   2   2.5   3




                                                 Figura 3:


   Tambi´m podemos hacer el c´lculo mediante la orden
        e                    a

       [t,y]=ode23(f,[t0,tf],y0)             ,


la diferencia con la enterior,es que esta no muestra gr´fica.
                                                       a

6.1    Ley de Malthus
Ejemplo 9. Supongamos que el n´mero de habitantes de un pa´ en el a˜ o 2007 fue de 26.4 millones.
                                 u                        ıs       n
                                       ′
Y crece siguiendo la Ley (de Malthus) y = 0,05y, donde y(t) representa el n´mero de habitantes
                                                                            u
en millones, en un instante t .
Estimar el n´mero de Habitantes en el a˜ o 2020.
             u                         n


   soluci´n: Datos: to=2007 ,yo=26.4,tf=2020. Ejecutamos la orden
         o

         f=inline(’0.05*y’,’t’,’y’)
         ode23(f,[2007,2020],26.4)           ;


usamos la orden ginput(1) para hallar en la gr´fica las coordenadas que me indican la soluci´n.
                                                a                                          o
Obteniendo como respuesta que en el a˜ o 2020 el n´ mero de habitantes es aproximadamente 50.6
                                     n            u
millones.
Implementamos una funci´n en MatLab para la soluci´n anal´
                       o                            o      ıtica de este modelo:



                                                         14
function M=malthus(to,tf,yo)
            %to=tiempo inicial,tf=tiempo final
           % yo=y(to)
         k=0.05; % constante de proporcionalidad, puede variar.
         h=0.01; % incremento de tiempo,puede variar.
         th=to:h:tf;
         soluc=yo.*exp(k.*(th-to));
         plot(th,soluc)                .


Para nuestro ejemplo ingresamos la orden:

          malthus(2007,2020,26.4)             .



7    Bibliograf´
               ıa
[1] Juan-Antonio Infante y Jos´ Mar´ Rey,
                               e     ıa
Introducci´n a MATLAB(notas en internet).
           o
[2] Nakamura, Shoichiro,
Numerical analysis and graphic visualization with MATLAB Upper Saddle River,
NJ : Prentice-Hall, 1996.
[3] W.H. Press, S.A. Teukolsky, W.T Vetterling, B.P. Flannery Numerical Recipes in C (2nd edition),
Cambridge University Press. 1992.
[3]Elizabeth Doig. Notas de clase del curso C´lculo Num´rico,
                                             a           e
Ciencias e Ingenier´
                   ıa-PUCP.




                                                  15

Mais conteúdo relacionado

Mais procurados

Suma y Resta de matrices en Excel
Suma y Resta de matrices en ExcelSuma y Resta de matrices en Excel
Suma y Resta de matrices en Excel
Marko Ruiz
 
Ejercicios resueltos de java
Ejercicios resueltos de javaEjercicios resueltos de java
Ejercicios resueltos de java
Faral TF
 
Web ft06 ec multicomponentes
Web ft06 ec multicomponentesWeb ft06 ec multicomponentes
Web ft06 ec multicomponentes
SolEir DiAz
 
1.4 software numerico
1.4 software numerico1.4 software numerico
1.4 software numerico
morenito9001
 

Mais procurados (11)

metodo de trapecio.pdf
metodo de trapecio.pdfmetodo de trapecio.pdf
metodo de trapecio.pdf
 
Suma y Resta de matrices en Excel
Suma y Resta de matrices en ExcelSuma y Resta de matrices en Excel
Suma y Resta de matrices en Excel
 
Ejercicios resueltos de java
Ejercicios resueltos de javaEjercicios resueltos de java
Ejercicios resueltos de java
 
Web ft06 ec multicomponentes
Web ft06 ec multicomponentesWeb ft06 ec multicomponentes
Web ft06 ec multicomponentes
 
Expocicion de matematica para ingenieros iii ecuacion del calor
Expocicion de matematica para ingenieros iii   ecuacion del calorExpocicion de matematica para ingenieros iii   ecuacion del calor
Expocicion de matematica para ingenieros iii ecuacion del calor
 
CALCULO VECTORIAL UNIDAD 4
CALCULO VECTORIAL UNIDAD 4CALCULO VECTORIAL UNIDAD 4
CALCULO VECTORIAL UNIDAD 4
 
Presentación Métodos Numéricos
Presentación Métodos Numéricos Presentación Métodos Numéricos
Presentación Métodos Numéricos
 
Badillo riosyortizdelaluz
Badillo riosyortizdelaluzBadillo riosyortizdelaluz
Badillo riosyortizdelaluz
 
1.4 software numerico
1.4 software numerico1.4 software numerico
1.4 software numerico
 
Lista circulares doblemente enlazadas
Lista circulares doblemente enlazadasLista circulares doblemente enlazadas
Lista circulares doblemente enlazadas
 
RECURSIVIDAD C++
RECURSIVIDAD C++RECURSIVIDAD C++
RECURSIVIDAD C++
 

Semelhante a TÓPICOS DE MATLAB: APLICACIÓN A LOS MÉTODOS NUMÉRICOS.

Guia rapida de matlab (comandos basicos, graficacion y programacion)
Guia rapida de matlab (comandos basicos, graficacion y programacion)Guia rapida de matlab (comandos basicos, graficacion y programacion)
Guia rapida de matlab (comandos basicos, graficacion y programacion)
morones.om
 
Vba excel numericos
Vba excel numericosVba excel numericos
Vba excel numericos
JOHN BONILLA
 
Introduccion a la programacion en c prev
Introduccion a la programacion en c prevIntroduccion a la programacion en c prev
Introduccion a la programacion en c prev
jtk1
 
Apuntes De Matematicas Discretas
Apuntes De Matematicas DiscretasApuntes De Matematicas Discretas
Apuntes De Matematicas Discretas
sergio
 
Apuntes De Matematicas Discretas
Apuntes De Matematicas DiscretasApuntes De Matematicas Discretas
Apuntes De Matematicas Discretas
guest553c2e
 
Apuntes De Matematicas Discretas
Apuntes De Matematicas DiscretasApuntes De Matematicas Discretas
Apuntes De Matematicas Discretas
guest553c2e
 
Apuntes De Matematicas Discretas
Apuntes De Matematicas DiscretasApuntes De Matematicas Discretas
Apuntes De Matematicas Discretas
sergio
 

Semelhante a TÓPICOS DE MATLAB: APLICACIÓN A LOS MÉTODOS NUMÉRICOS. (20)

Guia rapida de matlab (comandos basicos, graficacion y programacion)
Guia rapida de matlab (comandos basicos, graficacion y programacion)Guia rapida de matlab (comandos basicos, graficacion y programacion)
Guia rapida de matlab (comandos basicos, graficacion y programacion)
 
Vba excel mnumericos1
Vba excel mnumericos1Vba excel mnumericos1
Vba excel mnumericos1
 
Vba excel mnumericos
Vba excel mnumericosVba excel mnumericos
Vba excel mnumericos
 
Vba excel numericos
Vba excel numericosVba excel numericos
Vba excel numericos
 
Manual dematlab
Manual dematlabManual dematlab
Manual dematlab
 
Cálculo Numérico Asistido con el Software Matemático MatLab.
 Cálculo Numérico Asistido con el Software Matemático MatLab. Cálculo Numérico Asistido con el Software Matemático MatLab.
Cálculo Numérico Asistido con el Software Matemático MatLab.
 
Introduccion a matlab
Introduccion a matlabIntroduccion a matlab
Introduccion a matlab
 
Manual matlab 2009
Manual matlab 2009Manual matlab 2009
Manual matlab 2009
 
Cap1y2.Textoguiapdf
Cap1y2.TextoguiapdfCap1y2.Textoguiapdf
Cap1y2.Textoguiapdf
 
Introduccion a la programacion en c prev
Introduccion a la programacion en c prevIntroduccion a la programacion en c prev
Introduccion a la programacion en c prev
 
Linear & Logistic Regression Analysis.
Linear & Logistic Regression Analysis.Linear & Logistic Regression Analysis.
Linear & Logistic Regression Analysis.
 
Vba excel mnumericos
Vba excel mnumericosVba excel mnumericos
Vba excel mnumericos
 
Apuntes De Matematicas Discretas
Apuntes De Matematicas DiscretasApuntes De Matematicas Discretas
Apuntes De Matematicas Discretas
 
Apuntes De Matematicas Discretas
Apuntes De Matematicas DiscretasApuntes De Matematicas Discretas
Apuntes De Matematicas Discretas
 
Apuntes De Matematicas Discretas
Apuntes De Matematicas DiscretasApuntes De Matematicas Discretas
Apuntes De Matematicas Discretas
 
Apuntes De Matematicas Discretas
Apuntes De Matematicas DiscretasApuntes De Matematicas Discretas
Apuntes De Matematicas Discretas
 
Mi proyecto de pre-tesis
Mi proyecto de pre-tesisMi proyecto de pre-tesis
Mi proyecto de pre-tesis
 
M´etodos num´ericos
M´etodos num´ericosM´etodos num´ericos
M´etodos num´ericos
 
Manual cpp
Manual cppManual cpp
Manual cpp
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 

Último

2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
RigoTito
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
EliaHernndez7
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
Wilian24
 
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptxRESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
pvtablets2023
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Fernando Solis
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
jlorentemartos
 

Último (20)

2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
 
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADOTIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
Posición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptxPosición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptx
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptxRESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdf
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIASISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
 
Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtuales
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptx
 

TÓPICOS DE MATLAB: APLICACIÓN A LOS MÉTODOS NUMÉRICOS.

  • 1. Lima - 2010 T´picos de Matlab: Aplicaciones a M´todos Num´ricos o e e 1 Jos´ Walter Ysique Quesqu´n e e jwysiqueq@pucp.edu.pe Resumen Uso del paquete de software matem´tico MatLab para el c´lculo de algunos m´todos num´ri- a a e e cos. Se definen funciones en las que se implementan m´todos conocidos para calcular,por ejemplo e el polinomio interpolador, ra´ıces,derivada e integral de una funci´n. Adem´s se aborda algunas o a nociones con respecto a la soluci´n de ecuaciones diferenciales ordinarias. o Palabras clave: MatLab,interpolador,derivada,integral,ecuaciones diferenciales. Abstract Use of the mathematical software package MatLab for the calculation of some numerical methods. Functions are defined in which known methods are implemented to calculate, for example the interpolador polynomial, roots, derived and integral of a function. In addition one approaches some slight knowledge with respect to the solution of ordinary differential equations. Keywords: MatLab, interpolador, derived,integral,differential equations. ———————————————————————————————————————— 1 Magister en Matem´ticas . a
  • 2. Introducci´n o Las t´cnicas computacionales permiten abordar problemas de manera num´rica, anal´ e e ıtica o gr´fica, por ejemplo los sistemas de ecuaciones lineales y no lineales, las soluciones de ecuaciones a diferenciales ordinarias y parciales, la evaluaci´n num´rica de derivadas, de integrales, el procesamien- o e to de datos experimentales, etc. MATLAB (MATatrix LABoratory) es un lenguaje de alto nivel y un ambiente interactivo creado por MathWorks. MATLAB est´ dise˜ ado para realizar r´pida y eficientemente tareas matem´ticas a n a a computacionalmente intensivas. El programa cuenta con muchas funciones que permiten hacer todas las operaciones matem´ticas elementales. Los gr´ficos generados por el computador usando Mat- a a lab son utiles para mostrar la evoluci´n de diversos sistemas, como la formaci´n de patrones, el ´ o o procesamiento de im´genes, etc. a Se espera incentivar al lector en el estudio y aplicaci´n de los conceptos fundamentales de las t´cni- o e cas num´ricas usando el desarrollo de algoritmos matem´ticos. Asimismo, realizar la implementaci´n e a o del programa correspondiente usando el entorno integrado del Matlab. i
  • 3. ´ Indice 1 Interpolaci´n. o 1 1.1 Interpolaci´n de Lagrange. . . o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Interpolaci´n de Hermite . . o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2.1 Polinomio de Hermite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.3 Funci´n Spline . . . . . . . . o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.4 Ejemplo de Aplicaci´n . . . . o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2 Ra´ ıces de Ecuaciones 6 3 Presentaci´n de Algunos M´todos. o e 6 3.1 M´todo de Bisecci´n . . . . . . . . e o . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.2 M´todo de la Secante . . . . . . . . e . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.3 M´todo de Falsa Posici´n . . . . . . e o . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.4 M´todo de Newton . . . . . . . . . e . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 4 Derivada de una funci´n o 10 5 Integraci´n o 12 6 Ecuaciones Diferenciales 13 6.1 Ley de Malthus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 7 Bibliograf´ ıa 15 ii
  • 4. 1 Interpolaci´n. o Sea P = {(xi , yi = f (xi )) : i = 1, · · ·, n, n ∈ N} un conjunto de puntos dado. Se denomina “funci´n o interpolante” a una funci´n cuya gr´fica pasa por todos los puntos del conjunto P . o a Figura 1: • Las funciones m´s usadas para interpolar son las polinomiales debido a que ´stas son m´s f´ciles a e a a de derivar e integrar. • Se dispone de dos m´todos generales de interpolaci´n polin´mica: Interpolaci´n de Lagrange e e o o o Interpolaci´n de Hermite. o 1.1 Interpolaci´n de Lagrange. o Sea f la funci´n a interpolar, sean P = {(xi , yi = f (xi )) : i = 1, · · ·, n, n ∈ N} los puntos o conocidos,donde f (xi ) es la funci´n evaluada en cada punto xi . El polinomio interpolador de o grado m de Lagrange es definido por: n Pn = f (xi )Li (x) , n ≤ m . (1) i=0 donde los Li (x) son llamados polinomios de Lagrange y est´n definidos por: a n x − xj Li (x) = , i = 0, 1, · · ·, n . (2) j=0j=i xi − xj -Propiedades de los Polinomios de Lagrange: 0, si i = j; • Li (xj ) = 1, i=j. • El grado de Li (x) es igual a n cualquiera que sea i, donde 0 ≤ i ≤ n . 1
  • 5. -Implementaci´n del m´todo usando MatLab o e %Algoritmo de Lagrange %Ingresar los valores conocidos de x %Ingresar los valores conocidos de y %Ingresar los valores a interpolar xi %muestra el polinomio de lagrange y los valores yi function Lagrange(x,y,xi); p=0; syms t; n=length(x); yi=zeros(size(xi)); for i=1:n z=ones(size(xi)); L=1; for j=1:n if i~=j L=L*(t-x(j))/(x(i)-x(j)); z=z.*(xi-x(j))/(x(i)-x(j)); end end yi=yi+z*y(i); p=p+L*y(i); p=simplify(p); end polinomio=p yi Ejemplo 1. Sea f (x) = x21 +1 una funci´n tal que x0 = −2, f (x0 ) = 1/5, x1 = −1, f (x1 ) = o 1/2, x2 = 0, f (x2 ) = 1 . Su polinomio interpolador de Lagrange es: 2 P2 (x) = f (xi ) · Li (x) , i=0 donde : (x + 1)x x2 x L0 (x) = = + (−2 + 1)(−2) 2 2 (x + 2)x L1 (x) = = x2 − 2x (−1 + 2)(−1) (x + 2)(x + 1) x2 3x L2 (x) = = + +1 . (2)(1) 2 2 Luego: 1 1 P2 (x) = · L0 (x) + · L1 (x) + 1 · L2 (x) 5 2 2 x 3x P2 (x) = + +1 . 10 5 2
  • 6. Usando la funci´n “Lagrange” en MatLab, ingresamos la orden : o Lagrange([-2 -1 0],[1/5 1/2 1],[-1.5 -0.5]) en donde xi=[-1.5 -0.5] son los valores a interpolar. Como resultado se mostrar´: a polinomio = 1/10*t^2+3/5*t+1 yi = 0.3250 0.7250 1.2 Interpolaci´n de Hermite o Teniendo en cuenta la interpolaci´n de Lagrange, se puede exigir otro tipo de condiciones,por ejemplo o que adem´s de coincidir los valores P (xi ) = f (xi ) = yi , tambi´n coincidan el de sus derivadas: a e P ′ (xi ) = f ′ (xi ) = yi para todo xi con i = 0, · · ··, n . ′ As´ tenemos los siguientes datos: ı x0 x1 ··· xn y0 y1 ··· yn ′ ′ ′ y0 y1 ··· yn Cuadro 1: Observamos que se tiene 2(n + 1) condiciones, por lo que buscaremos un polinomio de grado 2n + 1 que verifique la condiciones dadas en el Cuadro (1). 1.2.1 Polinomio de Hermite Se define como: n n ′ P2n+1 (x) = hj (x) · yj + gj (x) · yj , (3) j=0 j=0 donde hj (x) y gj (x) est´n definidos en t´rminos de polinomios de Lagrange: a e hj (x) = [1 − 2(x − xj ) · L′j (xj )] · L2 (x) , gj (x) = (x − xj ) · L2 (x) . j j (4) Implementaci´n del m´todo en MatLab : o e %Algoritmo generalizado de Hermite % ingresar valores conocidos de x % ingresar valores conocidos de y % ingresar valores de las derivadas dy % ingresar valores a interpolar xi function Hermite(x,y,dy,xi) p=0; syms t; n=length(x); yi=zeros(size(xi)); for i=1:n 3
  • 7. l=1; L=1; M=0; for j=1:n if i~=j l=l.*(xi-x(j))/(x(i)-x(j));%polinomio lagrange L=L.*1/(x(i)-x(j)); %factor constante en derivada M=M+(x(i)-x(j));% acumulando derivadas F=L.*M ; %resultado delagrange derivado hj=((1-2.*(xi-x(i)).*F)).*l.^2; %coeficiente en hemite gj=(xi-x(i)).*l.^2 ;%coeficiente en hemite end end yi=hj.*y(i)+gj.*dy(i); p=p+yi; end p 1 Ejemplo 2. Sea f (x) = x2 +1 la funci´n a interpolar, con los siguientes datos adicionales: o i=0 i=1 i=2 i=3 i=4 xi −2 −1 0 1 2 yi 1/5 1/2 1 1/2 1/5 ′ yi 4/25 1/2 0 −1/2 −4/25 . Cuadro 2: Evaluar el polinomio de Hermite en los valores {−1 · 5, −0 · 5, 0 · 5, 1 · 5} . Soluci´n: o Usando la funci´n “Hermite” en MatLab, ingresamos la orden : o Hermite([-2 -1 0 1 2],[1/5 1/2 1 1/2 1/5], [4/25 1/2 0 -1/2 -4/25],[-1.5 -0.5 0.5 1.5]) y se mostrar´ como respuesta: a p = 1.1099 0.5692 0.5692 1.1099 1.3 Funci´n Spline o Una “funci´n spline de grado k ” con valores conocidos en x0 , x1 , · · ·, xn es una funci´n S(x) o o formada por varios polinomios cada uno definido sobre un subintervalo [xi , xi+1 ] y se unen bajo las siguientes condiciones de continuidad: • En el intervalo [xi , xi+1 >, S(x) es un polinomio de grado menor o igual a k . • S(x) admite derivada continua de orden (k − 1) en [x0 , xn ] . 4
  • 8. -La interpolaci´n m´s frecuente es por medio de splines de grado 3, llamados “splines c´ bicos”. o a u -MatLab tiene incorporado el interpolador “spline cubic”, se ejecuta siguiendo la siguiente sintaxis: yi = spline(x, y, xi), donde los valores y representa los valores de la funci´n evaluada en los puntos o x y los puntos xi son los puntos a interpolar. Ejemplo 3. x = 0:10; y = x.*cos(x); xi = 0:.25:10; yi = spline(x,y,xi); hold on plot(x,y,’o’,xi,yi) % ubicaci´n de los puntos dados o % y la gr´fica del polinomio interpolador a Figura 2: 1.4 Ejemplo de Aplicaci´n o Ejemplo 4. Con ayuda de la funci´n de Matlab ginput realice un dibujo de su mano. Para esto o coloque su mano en la pantalla de su monitor y seleccione unos 30 a 35 puntos del contorno de su mano. Ahora imagine que las abscisas y las ordenadas de los datos que recolect´ son funciones de una o variable independiente que va desde 1 hasta el n´mero de puntos. Luego realice una interpolaci´n de u o cada una de estas tablas en una rejilla muy fina. Seleccione el m´todo de interpolaci´n que considere e o el mejor para este caso. Soluci´n: Definimos en MatLab la siguiente funci´n que realiza lo pedido: o o % N es numero de puntos %get consigue las propiedades del objeto %get(h,’PropertyName’) %screensize tama~o de la pantalla n %figure(’position’,get(0,’screensize’)) % ginput permite seleccionar puntos de la figura con el mouse function mano(N) figure(’position’,get(0,’screensize’)) axes(’position’,[0 0 1 1]) [x,y] = ginput(N); 5
  • 9. N = length(x); n =(1:N)’; xi=(1:0.05:N)’; u = spline(n,x,xi); v = spline(n,y,xi); plot(x,y,’ro’,u,v,’-’); 2 Ra´ ıces de Ecuaciones En esta secci´n nos ocuparemos de encontrar las ra´ de ecuaciones no lineales. Esto es, encontrar o ıces los ceros de funciones. El proceso a seguir es: • Ubicar intervalos [aj , bj ] en donde se encuentran las ra´ ıces, para esto hacemos uso del Teorema del Valor Intermedio . Podemos optar por hacer la gr´fica de la funci´n . a o • En cada intervalo contruir una sucesi´n xn ∈ [aj , bj ] tal que limn→∞ xn = rj , donde rj es o un cero de la fuci´n. o • Lo anterior es un proceso iterativo mediante el cual se busca encontrar una mejor aproximaci´n o de los ceros de una funci´n. Se termina cuando se impone alg´n criterio de tolerancia. Por o u ejemplo : |xn+1 − xn | < ǫ, para ǫ > 0 bastante peque˜ o.n 3 Presentaci´n de Algunos M´todos. o e Presentaremos la implementaci´n de algunos m´todos en Matlab mediante un ejemplo: o e Ejemplo 5. Hallar las ra´ ıces de la ecuaci´n: o sin(sqrt(sec(x) + (x3 ) ∗ exp(5 ∗ x/tan(x)))) − exp(−1 ∗ x) = 0 en el intervalo [0 · 17, 0 · 81] . Primero definimos una funci´n en Matlab: o function y=f(x) y=sin(sqrt(sec(x)+(x^3)*exp(5*x/tan(x))))-exp(-1*x); . La cual es guardada con el nombre de f . 3.1 M´todo de Bisecci´n e o Definimos una funci´n para este m´todo: o e function MB=biseccion(a,b,f,tol); % Esta funci´n aplica el m´todo de bisecci´n para o e o % ubicar raices. % a y b son extremos del intervalo donde se ubica la ra´z ı % n indica el n´mero de la iteraci´n u o 6
  • 10. % f es la funci´n o % tol= tolerancia error=1;%error inicial f_ant=feval(f,b); % f_ant indica f anterior ,feval(f,b)indica f evaluado en b. n=1; while (error>tol) f_a=feval(f,a); f_b=feval(f,b); m =(a+b)/2; f_m=feval(f,m); error=abs(f_m-f_ant); fprintf(’n=%d, a= %5.8f,b=%5.8f,m=%5.8f,f(m)=%5.8f, error=%5.8fn’,n,a,b,m,f_m,error) if f_a == 0, W=sprintf(’n ra´z en x = %5.8f ’, a); ı disp(W); return end if f_b == 0 W=sprintf(’n ra´z en x = %5.8f ’, b); ı disp(W); return end if (f_a*f_m)<0 b= m; else a= m; end f_ant=f_m; n=n+1; end; W=sprintf(’n ra´z en x = %5.8f ’, m); ı disp(W); Para nuestro ejemplo ejecutamos la orden: biseccion(0.17,0.81,’f’,0.5*10^(-8)) , obteniendo como resultado: ra´z en x = 0.32913022 ı . 3.2 M´todo de la Secante e Definimos una funci´n para este m´todo: o e function MS=secante(x1,x2,f,tol) % Esta funci´n aplica el m´todo de la secante para ubicar o e 7
  • 11. % ra´ces de una funci´n. ı o % f es la funci´n que ingresamos (a ser llamada) o % tol es la tolerancia que deseamos % x1 y x2 son los extremos iniciales del intervalo en % el que est´ la ra´z a ı % delta es el tama~o del nuevo interv. en el q’ est´ la ra´z n a ı f1=feval(f,x1); f2=feval(f,x2); x_nuevo=x2; for n=2:30 x=x2+f2*(x2-x1)/(f1-f2); fx=feval(f,x); x1=x2; f1=f2; delta=abs(x2-x); x2=x; f2=fx; fprintf(’n = %d, x = %5.8f, fx = %5.8f n’,n,x,fx) if delta < tol, break, end end fprintf(’n ra´z en x = %5.8f ’, x); ı Para nuestro ejemplo ejecutamos la orden: secante(0.17,0.81,’f’,0.5*10^(-8)) , obtenemos como resultado: ra´z en x = 0.32913022 . ı 3.3 M´todo de Falsa Posici´n e o Definimos una funci´n para este m´todo: o e function MFP=falsaposicion(x1,x2,f,tol) % Esta funci´n aplica el m´todo de Falsa Posici´n o e o % para hallar las ra´ces de una funci´n. ı o % f es la funci´n que ingresamos o % tol es la tolerancia que deseamos % x1 y x2 son los extremos del intervalo donde se % encuentra la ra´z ı f1=feval(f,x1); f2=feval(f,x2); x_nuevo=x2; if f1*f2<0 for n=2:30 x=x2+f2*(x2-x1)/(f1-f2); fx=feval(f,x); 8
  • 12. if fx*f1>0 x1=x;f1=fx; else x2=x;f2=fx; end fprintf(’n = %d, x = %5.8f, fx = %5.8f n’,n,x,fx) if abs(x_nuevo-x)<tol, break, end x_nuevo=x; end else disp(’La ra´z debe estar en el intervalo [x1,x2]’) ı end fprintf(’n ra´z en x = %5.8f ’, x_nuevo); ı Para nuestro ejemplo ejecutamos la orden: falsaposicion(0.17,0.81,’f’,0.5*10^(-8)) , obteniendo como resultado: ra´z en x = 0.32913022 ı . 3.4 M´todo de Newton e Presentaremos la implementaci´n del m´todo de Newton en una variable. Este m´todo necesita a o e e diferencia de los anteriores,una aproximaci´n inicial de la ra´ o ız,tambi´n la derivada de la funci´n. e o Primero definimos una funci´n en MatLab para la derivada de la funci´n de la cual se quiere hallar o o su ra´ ız. Para nuestro ejemplo: function y=derivada(x) y=1/2*cos((sec(x)+x^3*exp(5*x/tan(x)))^(1/2))/(sec(x) +x^3*exp(5*x/tan(x)))^(1/2)*(sec(x)*tan(x) +3*x^2*exp(5*x/tan(x))+x^3*(5/tan(x) -5*x/tan(x)^2*(1+tan(x)^2))*exp(5*x/tan(x)))+exp(-x); Implementaci´n de MatLab del m´todo de Newton para una variable: o e function N=newton1v(xo,f,df,tol) % Esta funci´n aplica elm´todo de una variable o e % para hallar la ra´z de una funci´n. ı o % xo es la aproximacion inicial de la ra´z ı % f es la funcion % df es la derivada de la funcion 9
  • 13. % tol=tolerancia error=1; x_ant=xo; n=1; while (error>tol) x_nuevo=x_ant-feval(f,x_ant)/feval(df,x_ant); error=abs(x_nuevo-x_ant); W=fprintf(’n=%d,x_ant=%5.8f,x_nuevo=%5.8f, error=%5.8f’,n,x_ant,x_nuevo,error); disp(W); x_ant=x_nuevo; n=n+1; end; fprintf(’n ra´z en x=%5.8f’,x_ant); ı Para nuestro ejemplo ejecutamos la orden: newton1v(0.30,’f’,’derivada’,0.5*10^(-8)) , obteniendo como resultado: ra´z en x=0.32913022 ı . 4 Derivada de una funci´n o Ejemplo 6. Considere la funci´n f (x) = xexp(x) . Determinar aproximaciones de f ′ (2) , para o cada uno de los siguientes pasos h = 0 · 5, 0 · 45, · · ·, 0 · 05 ; usando las f´rmulas de diferencia hacia o atr´s, diferencia hacia delante y diferencia central. Para visualizar como la aproximaci´n mejora con a o el decrecimiento del paso, graficar el error como funci´n de h en cada caso. o soluci´n: o Diferencia hacia adelante: %derivada de la funci´n Y =x.*exp(x) en el punto x=2 o %usando diferencia hacia adelante con dos puntos, %se grafica el error como funci´n del paso. o xo=2; h=0.5:-0.05:0.05; n = length(h)-1; disp(’ DIFERENCIA HACIA ADELANTE ’); for j=1:length(h) x1=xo; x2=xo+h; y1=x1.*exp(x1); y2=x2.*exp(x2); y=(y2-y1)./(h); end fprintf(’n h=%5.2f’,h); fprintf(’n y=%5.8f’,y); w=abs(exp(2)+2.*exp(2)- y);%error plot(h,abs(exp(2)+2.*exp(2)- y),’ro’), grid 10
  • 14. Diferencia hacia atr´s: a %derivada de la funci´n Y =x.*exp(x) en elpunto x=2 usando o %diferencia hacia atras con dos puntos, se grafica el %error como funci´n del paso. o xo=2; h=0.5:-0.05:0.05; n = length(h)-1; disp(’ DIFERENCIA HACIA ATRAS ’); for j=1:length(h) x1=xo; x2=xo-h; y1=x1.*exp(x1); y2=x2.*exp(x2); y=(y1-y2)./(h); end fprintf(’n h=%5.2f’,h); fprintf(’n y=%5.8f’,y); w=abs(exp(2)+2.*exp(2)- y);%error plot(h,abs(exp(2)+2.*exp(2)- y),’ro’), grid Diferencia central: %derivada de la funci´n Y =x.*exp(x) en el o %punto x=2 usando diferencia central con dos %puntos, se grafica el error como funci´n del paso o xo=2; h=0.5:-0.05:0.05; n =length(h)-1; disp(’ DIFERENCIA CENTRAL ’); for j=1:length(h) x1=xo-h; x2=xo+h; yo=xo.*exp(xo); y1=x1.*exp(x1); y2=x2.*exp(x2); y=(y2-y1)./(2.*h); end fprintf(’n h=%5.2f’,h); fprintf(’n y=%5.8f’,y); w=abs(exp(2)+2.*exp(2)- y);%error plot(h,abs(exp(2)+2.*exp(2)- y),’ro’), grid . 11
  • 15. 5 Integraci´n o Ejemplo 7. Evaluar num´ricamente las siguientes integrales impropias realizando las transforma- e ciones que crea conveniente. ∞ 1 a) dx 0 1 + x2 1 cos(x) b) √ dx 0 x Soluci´n: o Parte a), definimos la siguiente funci´n en Matlab: o function integral disp(’INTEGRAL DE f(x)=1/(1+x^2)’); disp(’LIMITES DE INTEGRACION:a=0;b=infty’); %Evaluamos de a=0 hasta c=1 y de c=1 hasta b=infty; I1=trapecio(’h’,0,1,80); %segundo desde c=1 hasta b=infty %hacemos el cambio x=1/t I2=trapecio(’g’,0,1,80); disp(’EL VALOR DE LA INTEGRAL ES:’); I=I1+I2 %inicio de la subfunci´n regla extendida del trapecio o function s = trapecio(f,a,b,m) h = (b - a)/m; s = 0; for k=1:(m-1), x = a + h*k; s = s + feval(f,x); end s = h*(feval(f,a)+feval(f,b))/2 + h*s; % definiendo funciones function h=h(x) h=1/(1+x^2); function g=g(t) g= 1/(1+t^2); . El valor de la integral es: I=1.5708 . Parte b), definimos la siguiente funci´n en Matlab: o function integral_2 disp(’INTEGRAL DE f(x)=(cos(x))/(x^(1/2))’); disp(’LIMITES DE INTEGRACION: a=0;b=1’); %hacemos el cambio x=(t^2) %integraremos g(t)=2cos(t^2) %nuevos l´mites de integrac´n a=0 ,b=1. ı o disp(’EL VALOR DE LA INTEGRAL ES :’); richarson(’g’,0,1,20) %inicio de la subfunci´n richarson - trapecio o 12
  • 16. function [integral]=richarson(f,a,b,m) format short %------------------------------------------- %EMPEZAMOS ALGORITMO DE RICHARSON PARA %HALLAR LA integral de una funci´n o for i=1:length(m) h=(b-a)./m; delta=0.01; err=1; j=1; I(1,1)=trapecio(f,a,b,m); while err>delta && j<50 m=2.*m; I(j+1,1)=trapecio(f,a,b,m); for k=1:j I(j+1,k+1)=(I(j,k)-(4^k)*I(j+1,k))/(1-4^k); end err=abs(I(j+1,j+1)-I(j,j)); j=j+1; end [n ,n]= size(I); end I; I(n,n) %inicio de la subfunci´n regla o %extendida del trapecio function s = trapecio(f,a,b,m) h = (b - a)/m; s = 0; for k=1:(m-1), x = a + h*k; s = s + feval(f,x); end s = h*(feval(f,a)+feval(f,b))/2 + h*s; % definiendo funci´n o function g=g(t) g=2*cos(t^2); . El valor de la integral es: I=1.8090 . 6 Ecuaciones Diferenciales Para calcular, la soluci´n aproximada del problema: y ′ = f (t, y) en [to, tf ] con la condici´n inicial o o y(to) = yo; en MatLab se usan los comandos: f=inline(’expresion de f(t,y)’,’t’,’y’) ode23(f,[to,tf],yo) , esta orden calcula una aproximaci´n num´rica de la soluci´n y muestra una gr´fica. o e o a Ejemplo 8. Ejecutamos la orden: 13
  • 17. f=inline(’-5*y+10’,’t’,’y’) ode23(f,[0,3],0) axis([-0.5 3 -0.5 3]),grid , se muestra la siguiente gr´fica: a 3 2.5 2 1.5 1 0.5 0 −0.5 −0.5 0 0.5 1 1.5 2 2.5 3 Figura 3: Tambi´m podemos hacer el c´lculo mediante la orden e a [t,y]=ode23(f,[t0,tf],y0) , la diferencia con la enterior,es que esta no muestra gr´fica. a 6.1 Ley de Malthus Ejemplo 9. Supongamos que el n´mero de habitantes de un pa´ en el a˜ o 2007 fue de 26.4 millones. u ıs n ′ Y crece siguiendo la Ley (de Malthus) y = 0,05y, donde y(t) representa el n´mero de habitantes u en millones, en un instante t . Estimar el n´mero de Habitantes en el a˜ o 2020. u n soluci´n: Datos: to=2007 ,yo=26.4,tf=2020. Ejecutamos la orden o f=inline(’0.05*y’,’t’,’y’) ode23(f,[2007,2020],26.4) ; usamos la orden ginput(1) para hallar en la gr´fica las coordenadas que me indican la soluci´n. a o Obteniendo como respuesta que en el a˜ o 2020 el n´ mero de habitantes es aproximadamente 50.6 n u millones. Implementamos una funci´n en MatLab para la soluci´n anal´ o o ıtica de este modelo: 14
  • 18. function M=malthus(to,tf,yo) %to=tiempo inicial,tf=tiempo final % yo=y(to) k=0.05; % constante de proporcionalidad, puede variar. h=0.01; % incremento de tiempo,puede variar. th=to:h:tf; soluc=yo.*exp(k.*(th-to)); plot(th,soluc) . Para nuestro ejemplo ingresamos la orden: malthus(2007,2020,26.4) . 7 Bibliograf´ ıa [1] Juan-Antonio Infante y Jos´ Mar´ Rey, e ıa Introducci´n a MATLAB(notas en internet). o [2] Nakamura, Shoichiro, Numerical analysis and graphic visualization with MATLAB Upper Saddle River, NJ : Prentice-Hall, 1996. [3] W.H. Press, S.A. Teukolsky, W.T Vetterling, B.P. Flannery Numerical Recipes in C (2nd edition), Cambridge University Press. 1992. [3]Elizabeth Doig. Notas de clase del curso C´lculo Num´rico, a e Ciencias e Ingenier´ ıa-PUCP. 15