matlab tuto

Download Matlab Tuto

Post on 07-Feb-2016

214 views

Category:

Documents

0 download

Embed Size (px)

DESCRIPTION

Tutorial de Uso de Matlab

TRANSCRIPT

  • ETSI de Topografa, Geodesia y Cartografa

    U. D. de Matemticas de la ETSITGC 1

    Laboratorio de Matemticas (Pequeo manual de MatLab)

    En lo que sigue, se supone que el usuario teclea lo que aparece en color azul. En color negro aparecer la respuesta de MATLAB a la instruccin tecleada precedida del smbolo >>. El signo % permite aadir comentarios y aparecern en verde.

    La ventana de trabajo es la que tiene el ttulo de COMMAND WINDOW Los clculos que se asignan a una variable en concreto devuelve ans (del ingls

    answer) que significa respuesta. Si se aade un punto y coma (;) al final de la instruccin, no muestra ninguna

    respuesta. Se pueden utilizar las funciones matemticas habituales. Al pulsar flecha hacia arriba del cursor ^ aparecen las instrucciones anteriores.

    % Funcin exponencial evaluada en 1, es decir, el nmero e >> exp(1) ans = 2.7183 % pi es una variable con valor predeterminado 3.14159... >> pi ans = 3.1416

    Por defecto devuelve 4 decimales, aunque no afecta a la precisin de los clculos se puede cambiar la presentacin en pantalla.

    >> format long >> pi ans = 3.141592653589793 %Para volver al formato estndar >> format >> x=pi/3 x = 1.0472 >> y=sin(x) y = 0.8660

    Para conocer las variables que se han usado hasta el momento: >> who Your variables are: ans x y

  • ETSI de Topografa, Geodesia y Cartografa

    U. D. de Matemticas de la ETSITGC 2

    Controles de flujo para programacin

    Al proceso de toma de decisiones se le llama control del flujo

    >>for En cada iteracin asigna valores y ejecuta rdenes

    >>if Acta si todos los elementos de la expresin son verdaderos

    >>while Acta si todos los elementos de la expresin son verdaderos o ceros

    >>break Termina la ejecucin de rdenes: for, while

    >>end Fin del bucle

    >>x==1 Es x = 1?

    >>x~=2 Es x distinto de 2?

  • ETSI de Topografa, Geodesia y Cartografa

    U. D. de Matemticas de la ETSITGC 3

    Vectores y Matrices

    Para definir un vector, basta introducir sus coordenadas entre corchetes: >> v=[1 2 3] v = 1 2 3

    Para trasponer se usa (debajo de ?) >> v' ans = 1 2 3

    Las matrices se escriben como los vectores, pero separando las filas mediante un punto y coma.

    >>M=[1 2 3;4 5 6;7 8 9] M = 1 2 3 4 5 6 7 8 9

    Matriz formada por la parte triangular inferior de M. >> tril(M) ans = 1 0 0 4 5 0 7 8 9

    Matriz formada por la parte triangular superior de M. >> triu(M) ans = 1 2 3 0 5 6 0 0 9

    Determinante de la matriz cuadrada. >> det(M) ans = 0

    Matriz identidad. >> eye(3) ans = 1 0 0 0 1 0 0 0 1

    Matriz inversa. >> M=[1 0 1;1 -1 0;1 1 -2]; >> inv(M) ans =

  • ETSI de Topografa, Geodesia y Cartografa

    U. D. de Matemticas de la ETSITGC 4

    0.5000 0.2500 0.2500 0.5000 -0.7500 0.2500 0.5000 -0.2500 -0.2500

    Matriz diagonal cuya diagonal es el vector v. >> diag(v) ans = 1 0 0 0 2 0 0 0 3

    Se puede escribir una matriz diagonal con los elementos de la diagonal de otra matriz

    >> diag(diag(M)) ans = 1 0 0 0 5 0 0 0 9

    Matriz tridiagonal 5x5 con 0 en la diagonal principal y 1 en la sub y superdiagonal >> diag(ones(1,4),1)+diag(ones(1,4),-1) ans = 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0

    Matriz dispersa: matriz de un gran tamao con la mayor parte de sus elementos cero. Se indica primeramente la columna y a continuacin la fila con los elementos distintos de cero

    >>B=sparse([1,1,2,2,2,3,3,3,4,4,4,5,5,5,6,6],[1,2,1,2,3,2,3,4,3,4,5,4,5,6,5,6],[4,1,1,4,1,1,4,1,1,4,1,1,4,1,1,4]) B = (1,1) 4 (2,1) 1 (1,2) 1 (2,2) 4 (3,2) 1 (2,3) 1 (3,3) 4 (4,3) 1 (3,4) 1 (4,4) 4 (5,4) 1 (4,5) 1 (5,5) 4 (6,5) 1 (5,6) 1 (6,6) 4

  • ETSI de Topografa, Geodesia y Cartografa

    U. D. de Matemticas de la ETSITGC 5

    % Para trabajar con la matriz completa, se usa full (llena) >> A=full(B) A = 4 1 0 0 0 0 1 4 1 0 0 0 0 1 4 1 0 0 0 0 1 4 1 0 0 0 0 1 4 1 0 0 0 0 1 4

    Polinomios

    Se escriben los coeficientes de un polinomio de mayor a menor grado. >> p=[1 2 3 4] p = 1 2 3 4 % Polinomio x3+2x2+3x+4

    Se obtiene el valor del polinomio para un valor de x >> polyval(p,-1) ans = 2 % Evaluacin del polinomio x3+2x2+3x+4 en x=-1

    Obtener las races del polinomio >> roots(p) ans = -1.6506 -0.1747 + 1.5469i -0.1747 - 1.5469i

  • ETSI de Topografa, Geodesia y Cartografa

    U. D. de Matemticas de la ETSITGC 6

    Grficas de funciones

    Representacin grfica de una funcin en un rango determinado >>fplot('x^2*sin(1/x)',[-0.05, 0.05]) % Dibuja la funcin x2sin(1/x) en el intervalo cerrado [-0.05, 0.05].

    Representacin grfica de una funcin sin determinar el domino

    >>ezplot('x^2')

    Representacin grfica de una curva en paramtricas

    >>ezplot('t-sin(t)','1-cos(t)',[0 8*pi])

    Representacin grfica de una funcin en implcitas >> ezplot('x^2 - y^2 - 1')

    -0.05 -0.04 -0.03 -0.02 -0.01 0 0.01 0.02 0.03 0.04 0.05-2.5

    -2

    -1.5

    -1

    -0.5

    0

    0.5

    1

    1.5

    2

    2.5x 10

    -3

    -6 -4 -2 0 2 4 6

    0

    5

    10

    15

    20

    25

    30

    35

    40

    x

    x2

    0 5 10 15 20 25

    -8

    -6

    -4

    -2

    0

    2

    4

    6

    8

    10

    x

    y

    x = t-sin(t), y = 1-cos(t)

  • ETSI de Topografa, Geodesia y Cartografa

    U. D. de Matemticas de la ETSITGC 7

    Dibujar superficies.

    >>ezsurf(' x^2 - y^2 - 1',[-1 1 -1 1])

    Grficas. >> x=linspace(-3,3,500); >>y=exp(-x.^2); >>plot(x,y) >>plot(x,y,'*') >> plot(x,y,'--') >> plot(x,y,'r')

    Mantiene en la ventana grfica los dibujos anteriores. >> hold on Borrar las grficas anteriores. >> hold off Funcin definida a trozos >> x=linspace(-2,3,3000); >>y=(x.^2).*(x

  • ETSI de Topografa, Geodesia y Cartografa

    U. D. de Matemticas de la ETSITGC 8

    SISTEMAS DE ECUACIONES LINEALES

    Sistema compatible determinado por el mtodo de Gauss. >> A=[1,18,-6;2,1,16;8,1,-2],b=[-10;-2;8],x=A\b A = 1 18 -6 2 1 16 8 1 -2 b = -10 -2 8 x = 1.0326 -0.6834 -0.2114 %Si A es una matriz n por n y b es un vector columna de dimensin n, o una

    matriz con varias columnas, entonces X = A \ b es la solucin a la ecuacin A * X = b. El nmero de condicin de una matriz A en la norma 2, k2(A)=||A||||A-1||, se calcula

    tambin como el cociente entre el valor singular ms grande y el ms pequeo de A. >> cond(A) ans = 2.5217

    Factorizacin LU >> [L,U]=lu(A) L = 0.1250 1.0000 0 0.2500 0.0420 1.0000 1.0000 0 0 U = 8.0000 1.0000 -2.0000 0 17.8750 -5.7500 0 0 16.7413 %Se cumple L*U=A

    Si L no sale triangular superior hace falta permutar las ecuaciones >> [L,U, P]=lu(A) L = 0.1250 1.0000 0 0.2500 0.0420 1.0000 1.0000 0 0 U = 8.0000 1.0000 -2.0000 0 17.8750 -5.7500 0 0 16.7413P = P = 0 0 1

  • ETSI de Topografa, Geodesia y Cartografa

    U. D. de Matemticas de la ETSITGC 9

    1 0 0 0 1 0 >> B=[8,1,-2;1,18,-6;2,1,16];b=[8;-10;-2]; >> [L,U,P]=lu(B) L = 1.0000 0 0 0.1250 1.0000 0 0.2500 0.0420 1.0000 U = 8.0000 1.0000 -2.0000 0 17.8750 -5.7500 0 0 16.7413 P = 1 0 0 0 1 0 0 0 1

  • ETSI de Topografa, Geodesia y Cartografa

    U. D. de Matemticas de la ETSITGC 10

    ALGORITMO DE CROUT: Para programar con MatLab hay que escribir un fichero con las instrucciones

    necesarias. Para ello abrimos el editor con los siguientes pasos: File>>>New>>>M-File, o bien, New Script

    Ya podemos escribir las instrucciones: function[x,l,u]=crout(a,b,c,z); n=length(a); l(1)=a(1); y(1)=z(1)/l(1); for i=2:n

    u(i-1)=b(i-1)/l(i-1); l(i)=a(i-1)-c(i-1)*u(i-1); y(i)=(z(i)-c(i-1)*y(i-1))/l(i);

    end x(n)=y(n); for i=n-1:-1:1

    x(i)=y(i)-u(i)*x(i+1) end Una vez guardado el archivo con el nombre de la funcin, escribimos las condiciones para la iteracin. >>B=sparse([1,1,2,2,2,3,3,3,4,4,4,5,5,5,6,6],[1,2,1,2,3,2,3,4,3,4,5,4,5,6,5,6],[4,1,1,4,1,1,4,1,1,4,1,1,4,1,1,4]); A=full(B)

    A = 4 1 0 0 0 0 1 4 1 0 0 0 0 1 4 1 0 0 0 0 1 4 1 0 0 0 0 1 4 1 0 0 0 0