Lima, Agosto del 2011.        Fundamentos de C´lculo Num´rico Asistido con el Software                        a         e ...
´Indice1 Introducci´n al Matlab:            o                                                                             ...
1     Introducci´n al Matlab:                oMatLab es un paquete de software matem´tico basado en matrices, consiste de ...
NOMBRE                  COMANDO   SINTAXIS                                 funci´n seno                                   ...
d)         >> polyder(p)                  ans = 24     0     5   Tambi´n puede usar el comando syms para declarar la varia...
>> fzero(’(x^2+x-1)*sin(x)’,[0.5,2])         ans = 0.6180Cuando se trata de funciones polinomicas, los ceros se hallan usa...
>> A=[2 4 1 6;3 5 0 1;67 5 10 9]Se muestra:                        A =                               2    4        1      ...
Ejemplo 6. Resolver el sistema:                                             3x + 5y = 7                                   ...
>> X=fsolve(’sistema’,[x0,y0])Donde [x0,y0] es la aproximaci´ inicial de la soluci´n para x e y, esta informaci´n la obten...
6     Interpolaci´n.                 oSea P = {(xi , yi = f (xi )) : i = 1, · · ·, n, n ∈ N} un conjunto de puntos dado. S...
Figura 5:7    Derivada de una funci´n                          oPara derivar funciones se usa el comando diff.Ejemplo 9. Da...
8    Integraci´n              oPara realizar el proceso de integraci´n, en matlab se puede usar los comandos: int (para ha...
Soluci´n:         o       >> y = dsolve(’Dy=y*x^2’,’x’) % respuesta --->          y = C1*exp(1/3*x^3)Ejemplo 14. Resolver ...
t =                     1.0e+003 *                         2.0070                         2.0083                         2...
Upcoming SlideShare
Loading in …5
×

Cálculo Numérico Asistido con el Software Matemático MatLab.

2,237 views

Published on

Autor:
Mg. Mat. Walter Ysique Quesquén.

Published in: Education, Technology
2 Comments
4 Likes
Statistics
Notes
  • Muy bueno el material, solo que no pude descargarlo.

    Gracias
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • muy bueno el material. gracias
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
2,237
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
37
Comments
2
Likes
4
Embeds 0
No embeds

No notes for slide

Cálculo Numérico Asistido con el Software Matemático MatLab.

  1. 1. Lima, Agosto del 2011. Fundamentos de C´lculo Num´rico Asistido con el Software a e Matem´tico MatLab. a Jos´ Walter Ysique Quesqu´n 1 e e jwysiqueq@pucp.edu.pe Resumen Se presenta una peque˜a gu´ orientada a encontrar la soluci´n num´rica de problemas n ıa o e matem´ticos usando el software MatLab. a Palabras clave: MatLab, polinomio, funci´n, interpolaci´n, derivada, integral, ecuaciones o o diferenciales. Abstract There is little guidance aimed at finding the numerical solution of mathematical problems using the software MatLab. Keywords: MatLab, polynomials, functions, interpolation, derivative, integral, differential equations. ————————————————————————————————————————1 Magister en Matem´ticas a
  2. 2. ´Indice1 Introducci´n al Matlab: o 1 1.1 Funciones Aritm´ticas: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . e 1 1.2 Funciones Predefinidas: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Polinomios. 23 Busqueda de los Ceros de una Funci´n. o 34 Matrices 4 4.1 Operaciones con Matrices: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 4.2 Funciones Definidas que Involucran Matrices: . . . . . . . . . . . . . . . . . . . . . . . 55 Soluci´n de un Sistema de Dos Ecuaciones con Dos variables. o 5 5.1 Sistema de Ecuaciones Lineales. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 5.2 Sistema de Ecuaciones No Lineales. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 Interpolaci´n. o 8 6.1 Funci´n Spline o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 Derivada de una funci´n o 98 Integraci´n o 109 Ecuaciones Diferenciales 1010 Bibliograf´ ıa 12 ii
  3. 3. 1 Introducci´n al Matlab: oMatLab es un paquete de software matem´tico basado en matrices, consiste de una extensa biblioteca ade rutinas num´ricas, con las cuales se puede realizar diferentes operaciones de c´lculo, adem´s de e a agr´ficos en dos y tres dimensiones. Tambi´n consta de un formato de programaci´n de alto nivel a e oque nos permite elaborar programas con facilidad a fin de examinar y ejecutar los algoritmos que sepresentan en el an´lisis num´rico. a e1.1 Funciones Aritm´ticas: e Suma + Sustracci´n o - Multiplicaci´n o * Divisi´n o / Potencia ˆEjemplo 1. >> 4+2 ans = 6 >> 5^2 ans = 251.2 Funciones Predefinidas: NOMBRE COMANDO SINTAXIS funci´n signo o sign sign(X) Resto despu´s de dividir e rem rem(x,y) n´ mero entero pr´ximo hacia el infinito negativo u o floor floor(A) n´ mero entero pr´ximo hacia el infinito positivo u o ceil ceil(A) M´ximo com´ n divisor a u gcd gcd(A,B) M´ ınimo com´ n m´ ltiplo u u lcm lcm(A,B) Valor absoluto, magnitud compleja abs abs(x) Suma de elementos de un vector sum sum(A) M´ ınimo elemento de un vector min min(A) M´ximo elemento de un vector a max max(A) Valor promedio de los elementos de un vector mean mean(A) Producto de los elementos de un vector prod prod(A) Traza de una matriz trace trace(A) factorial de un n´ mero u factorial factorial(N) valores y vectores propios de la matriz A eig [V,D]=eig(A) funci´n logaritmo natural o log log(X) funci´n ra´ cuadrada o ız sqrt sqrt(x) 1
  4. 4. NOMBRE COMANDO SINTAXIS funci´n seno o sin sin(x) funci´n coseno o cos cos(x) funci´n tangente o tan tan(x) funci´n cotangente o cot cot(x) funci´n secante o sec sec(x) funci´n cosecante o csc csc(x) inversa de la funci´n seno o asin asin(x) funci´n exponencial o exp exp(x)Ejemplo 2. Calcular M= sen2 (3π/4) + | − 5|. >> M=sqrt((sin(3*pi/4))^2+abs(-5)) M = 2.34522 Polinomios.Dado un polinomio en una variable P (x) = ax2 + bx + c, en matlab, este polinomio se puederepresentar por el vector formado por sus coeficientes (considerando el polinomio completo), esto es,P = [a b c] . Tal representaci´n vale cualquiera que fuera el grado del polinomio. oEjemplo 3. Dados los polinomios p(x) = 8x3 + 5x + 3 y q(x) = x2 + 3x + 1 . Hallar: a) El valor de p(x) en x = 20. b) El producto de p(x) y q(x) . c) El cociente y el resto que resulta de p(x) ÷ q(x) . d) La derivada del polinomio p(x) . Soluci´n: o Usando Matlab: >> p=[8 0 5 3]; >> q=[1 3 1]; a) >> polyval(p,20) ans = 64103 b) conv(p,q) ans = 8 24 13 18 14 3 c) >> [c,r]=deconv(p,q) c = 8 -24 r = 0 0 69 27 2
  5. 5. d) >> polyder(p) ans = 24 0 5 Tambi´n puede usar el comando syms para declarar la variable o variables que se est´ usando, e ay proceder de la siguiente manera si queremos por ejemplo, hallar p(x) ∗ q(x) : >> syms x y >> p=8*x^3+5*x+3; >> q=x^2+3*x+1; >> expand(p*q) ans = 8*x^5+24*x^4+13*x^3+18*x^2+14*x+3 >> pretty(ans) 5 4 3 2 8 x + 24 x + 13 x + 18 x + 14 x + 3* El comando pretty lo que hace es presentar de forma usual, en este caso, el producto de dospolinomios.3 Busqueda de los Ceros de una Funci´n. oPara averiguar si una determinada funci´n tiene o no ceros (tambi´n llamadas raices) en un intervalo o edado, se debe tener presente el Teorema de Bolzano. En MatLab para hallar los ceros de una funci´n oen un determinado intervalo se puede hacer con el comando fzero.Ejemplo 4. Encontrar los ceros de la funci´n f (x) = (x2 + x − 1)sen(x) en el intervalo [0.5, 2] . oSoluci´n: o Se recomienda primero hacer un gr´fico de la funci´n y luego identificar el intervalo o los intervalos a odonde existe un cero y finalmente usar fzero. >> x=-2:0.01:2; >> y=(x.^2+x-1).*sin(x); >> plot(x,y),grid Figura 1: 3
  6. 6. >> fzero(’(x^2+x-1)*sin(x)’,[0.5,2]) ans = 0.6180Cuando se trata de funciones polinomicas, los ceros se hallan usando el comando roots.Ejemplo 5. Hallar los ceros de la funci´n p(x) = 5x4 + 6x2 + 8x − 4 . oSoluci´n: o >> x=-5:0.01:5; >> p=[5 0 6 8 -4]; >> roots(p) ans = 0.3300 + 1.3860i 0.3300 - 1.3860i -1.0393 0.3792Observe que dos de los ceros de p(x) son n´ meros complejos. u Usamos la siguiente sintaxis en Matlab para generar en un apropiado intervalo, el gr´fico de p(x), aen donde se visualiza la ubicaci´n de los dos ceros reales. o >> x=-2:0.01:2; >> p=5*x.^4+6*x.^2+8*x-4; >> plot(x,p),grid Figura 2:4 Matrices   2 4 1 6Por ejemplo, si queremos ingresar en MatLab la matriz A =  3 5 0 1  , se procede de la   67 5 10 9siguiente manera: Se ingresa: 4
  7. 7. >> A=[2 4 1 6;3 5 0 1;67 5 10 9]Se muestra: A = 2 4 1 6 3 5 0 1 67 5 10 9Al ingresar la matriz, cada espacio en las filas tambi´n se puede reemplazar por una coma. e4.1 Operaciones con Matrices: Suma A+B Resta A-B Multiplicaci´n o A*BDonde A y B son matrices que deben cumplir las condiciones necesarias para que exista la operaci´n omatem´tica en cada caso. a4.2 Funciones Definidas que Involucran Matrices: • transpose(A) transpuesta de la matriz A • inv(A) inversa de la matriz A, • eye(n) genera una matriz identidad de orden n, • ones(n) genera una matriz de orden n con elementos todos 1, • A(m,n) extrae de la matriz A el elemento ubicado en la fila m y en la columna n, • [m, n]=size(A) se˜ ala el n´ mero de filas y columnas de la matriz A. n u5 Soluci´n de un Sistema de Dos Ecuaciones con Dos o variables.5.1 Sistema de Ecuaciones Lineales.Dado el sistema: a11 x1 + a12 x2 = b11 a21 x1 + a22 x2 = b21 a11 a12se puede representar de la forma AX = B, donde: A = es la matriz de los coeficientes, a21 a22 x1 b11X= la matriz de las variables, B = la matriz de los t´rminos independientes. e x2 b21 Usando Matlab, la matriz X se puede hallar como: X = inv(A) ∗ B o tambi´n por X = A B e( es el operador divisi´n izquierda y equivale a premultiplicar por la matriz inversa de A). o 5
  8. 8. Ejemplo 6. Resolver el sistema: 3x + 5y = 7 −2x + 3y = 1 soluci´n: o • Forma 1: >> A=[3 5;-2 3]; >> B=[7;1]; >> X=inv(A)*B X = 0.8421 0.8947 • Forma 2 >> A=[3 5;-2 3]; >> B=[7;1]; >> X=AB X = 0.8421 0.8947 • Forma 3 >> [x,y]=solve(’3*x+5*y=7’,’-2*x+3*y=1’) x = 16/19 y = 17/195.2 Sistema de Ecuaciones No Lineales.Para resolver sistema de ecuaciones no lineales, lo escribimos en la forma: f1 = 0; f2 = 0.Usando matlab, hacemos un gr´fico para aproximar la ubicaci´n de la posible soluci´n o soluciones a o odel sistema dado, introduciendo la siguiente sintaxis: >> ezplot(’f1’,[a,b],[c,d]),grid,hold on >> ezplot(’f2’)Donde [a,b] y [c,d] especifican los l´ımites para las cuadr´ ıculas en el eje X e Y respectivamente.En principio no es necesario colocar estos intervalos para los ejes, pero si se cortara la gr´fica o se anecesita una mejor presentaci´n, estos intervalos se escogen a conveniencia . o Luego, guardar f1 y f2 en un M-file, le damos un nombre, por ejemplo sistema.m. Como un siguiente paso ejecutamos la orden: 6
  9. 9. >> X=fsolve(’sistema’,[x0,y0])Donde [x0,y0] es la aproximaci´ inicial de la soluci´n para x e y, esta informaci´n la obtenemos del o o ogr´fico realizado. La respuesta esperada es el vector de la forma X=[xsoluc ysoluc ]. aEjemplo 7. Resolver el sistema: y − 2 = (x − 1)2 ; y − x = 1. soluci´n: o Creamos un M-file, el cual lo llamamos sistema.m, en donde la variable x la ingresamos comox(1) y la variable y como x(2) tal como se muestra en la siguiente figura: Figura 3: Luego generamos un gr´fico para averiguar una aproximaci´n inicial de la soluci´n: a o o >> ezplot(’y-2-(x-1)^2’,[-1,3],[1,5]),grid,hold on >> ezplot(’y-x-1’) .En la gr´fica se observa que existen dos soluciones reales para el sistema. Para una soluci´n, una a oaproximaci´n inicial para x es 0.5 y una aproximaci´n inicial para y es 2.5. Para la otra soluci´n se o o opuede considerar la aproximaci´n inicial de x como 2.25 y de y como 3.25. o • Caso 1: [X]=fsolve(’sistema’,[0.5,2.5]) Se muestra: Optimization terminated: first-order optimality is less than options.TolFun. X = 1.0000 2.0000 • Caso 2: [X]=fsolve(’sistema’,[2.25,3.25]) Se muestra: Optimization terminated: first-order optimality is less than options.TolFun. X = 2.0000 3.0000 7
  10. 10. 6 Interpolaci´n. oSea P = {(xi , yi = f (xi )) : i = 1, · · ·, n, n ∈ N} un conjunto de puntos dado. Se denomina “funci´n ointerpolante” a una funci´n cuya gr´fica pasa por todos los puntos del conjunto P . o a Figura 4: • 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.6.1 Funci´n Spline oLa 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 ox y los puntos xi son los puntos a interpolar.Ejemplo 8. Los datos de la siguiente tabla han sido obtenidos considerando la funci´n f (x) =√ o 100 − x2 , para −10 ≤ x ≤ 10. x -10 -8 -6 -4 -2 0 2 4 6 8 10 f(x) 0 6 8 9.1652 9.7980 10 9.7980 9.1652 8 6 0Suponiendo que no se conoce la definici´n de f (x), mostrar la gr´fica de una funci´n interpolante o a oque pasa por todos los puntos (x, f (x)) dados en la tabla. Soluci´n: o >> x=[-10 -8 -6 -4 -2 0 2 4 6 8 10 ]; >> y=[0 6 8 9.1652 9.7980 10 9.7980 9.1652 8 6 0]; >> xi=-10:0.5:10; >> yi=spline(x,y,xi); >> plot(x,y,’o’,xi,yi),gridSe muestra: 8
  11. 11. Figura 5:7 Derivada de una funci´n oPara derivar funciones se usa el comando diff.Ejemplo 9. Dada la funci´n g(x) = xx sen(x), hallar g ′(x) . o Soluci´n: o >> syms x, >> g=(x^x)*sin(x); >> diff(g)Se obtiene como respuesta: ans = x^x*(log(x)+1)*sin(x)+x^x*cos(x) .Si se quiere evaluar la funci´n derivada en x = 2, se ingresa la siguiente sintaxis: o >> f=inline(’x^x*(log(x)+1)*sin(x)+x^x*cos(x)’) >> feval(f,2)Respuesta: ans = 4.4937 9
  12. 12. 8 Integraci´n oPara realizar el proceso de integraci´n, en matlab se puede usar los comandos: int (para hallar ola primitiva de una funci´n), trapz (usa la regla extendida del trapecio ), quad (usa cuadratura ogaussiana). √Ejemplo 10. Hallar 100 − x2 dx Soluci´n: o >> syms x, >> int(sqrt(100-x^2)) ans = 1/2*x*(100-x^2)^(1/2)+50*asin(1/10*x) 10 √Ejemplo 11. Hallar 100 − x2 dx −10Soluci´n: o >> g=inline(’sqrt(100-x.^2)’); % no olvidar el punto antes del operador potencia. >> quad(g,-10,10) ans = 157.0796Ejemplo 12. Considerando los datos de la siguiente tabla: x -10 -8 -6 -4 -2 0 2 4 6 8 10 f(x) 0 6 8 9.1652 9.7980 10 9.7980 9.1652 8 6 0 10Usar trapz para hallar h(z)dz, donde z = −10 : 0.5 : 10 y h = spline(x, y, z) . −10Soluci´n: o >> x=[-10 -8 -6 -4 -2 0 2 4 6 8 10]; >> y=[0 6 8 9.1652 9.7980 10 9.7980 9.1652 8 6 0]; >> z=-10:0.5:10; >> h=spline(x,y,z); >> I=trapz(z,h) % respuesta ---> I = 154.76119 Ecuaciones DiferencialesEn MatLab se usa los siguientes comandos: ode45, ode23, ode113, ode15s, ode23s, ode23t,ode23tb, los cuales sirven para resolver problemas de valor inicial para ecuaciones diferencialesordinarias. Tambi´n podemos usar dsolve para resolver ecuaciones diferenciales ordinarias de primer egrado.Ejemplo 13. Resolver y ′ = yx2 . 10
  13. 13. Soluci´n: o >> y = dsolve(’Dy=y*x^2’,’x’) % respuesta ---> y = C1*exp(1/3*x^3)Ejemplo 14. Resolver y ′′′ − 3y ′′ + 3y ′ − y = 0, con condiciones iniciales y ′′(0) = 1, y ′ (0) = 0,y(0) = 0.Soluci´n: o >> y=dsolve(’D3y-3*D2y+3*Dy-y=0’,’D2y(0)=1’,’Dy(0)=0’,’y(0)=0’,’x’) % respuesta ---> y = 1/2*exp(x)*x^2Ejemplo 15 (Ley de Malthus). Supongamos que el n´mero de habitantes de un pa´ en el a˜ o u ıs n2007 fue de 26.4 millones. Y crece siguiendo la Ley (de Malthus) y = 0.05y, donde y(t) representa ′el n´mero de habitantes en millones, en un instante t . uEstimar el n´mero de Habitantes en el a˜ o 2020. u n Soluci´n: o Datos: to=2007 ,yo=26.4,tf=2020. Ejecutamos la orden >> f=inline(’0.05*y’,’t’,’y’) >> ode23(f,[2007,2020],26.4),grid; >> [t,y]=ode23(f,[2007,2020],26.4)Obteniendo como respuesta que en el a˜ o 2020 el n´ mero de habitantes es aproximadamente 50.5699 n umillones. Figura 6: 11
  14. 14. t = 1.0e+003 * 2.0070 2.0083 2.0096 2.0109 2.0122 2.0135 2.0148 2.0161 2.0174 2.0187 2.0200 y = 26.4000 28.1730 30.0650 32.0841 34.2389 36.5383 38.9921 41.6108 44.4053 47.3875 50.569910 Bibliograf´ ıa[1] Chainskaia, Liudmila - Doig, Elizabeth Elementos de An´lisis Num´rico: algoritmos y aplicaciones, Fondo a e Editorial de la PUCP, 1999.[2] Nakamura, Shoichiro, Numerical analysis and graphic visualization with MATLAB Upper Saddle River, NJ : Prentice-Hall, 1996.[3] Ysique, Walter, T´picos de MatLab: Aplicaciones a los M´todos Num´ricos, o e e http: www.slideshare.net/WALTERYSIQUE/tpicos-de-matlab-aplicacin-a-los-mtodos-numricos 12

×