Monografias.com > Computación > Programación
Descargar Imprimir Comentar Ver trabajos relacionados

Programando en MATLAB (Presentación PowerPoint)




Enviado por Pablo Turmero



    Monografias.com
    PROGRAMANDO CON MATLAB GENERALIDADES Programar en MatLab es usar
    una serie de comandos que permitan realizar una tarea o
    función específica. Estos pueden ser escritos uno
    por uno a través de la línea de comandos:

    Monografias.com
    A=[1 2 3;4 5 6;7 8 9] A = 1 2 3 4 5 6 7 8 9 Ejemplo

    Monografias.com
    Los archivos de disco que contienen instrucciones de MATLAB se
    llaman archivos-M. Esto es así porque siempre tienen una
    extención de ".m" como la última parte de su nombre
    de archivo. Un archivo-M consiste de una secuencia de
    instrucciones normales de MATLAB, que probablemente incluyen
    referencias a otros archivos-M. Un archivo-M se puede llamar a
    sí mismo recursivamente. Puedes crear archivos-M
    utilizando un editor de texto ó procesador de palabras.
    Hay dos tipos de archivos-M: los de comandos y las funciones. Los
    archivos de comandos, automatizan secuencias largas de comandos.
    Los archivos de funciones, permiten añadir a MATLAB
    funciones adicionales expandiendo asi la capacidad de este
    programa. Ambos, comandos y funciones, son archivosordinarios de
    texto ASCII. ARCHIVOS-M: COMANDOS Y FUNCIONES

    Monografias.com
    Cuando un archivo de comandos es invocado, MATLAB simplemente
    ejecuta los comandos encontrados en dicho archivo. Las
    instrucciones en un archivo de comando operan globalmente en los
    datos en el espacio de trabajo. Los comandos son utilizados para
    hacer análisis, resolver problemas, ó
    diseñar secuencias largas de comandos que se conviertan en
    interactivas. Por ejemplo, suponga que el archivo fibo.m contiene
    los siguientes comandos de MATLAB: % Un archivo-M para calcular
    los elementos de la serie de Fibonacci f = [1 1]; i = 1; while
    f(i) + f(i+1) < 1000 f(i+2) = f(i) + f(i+1); i = i + 1; end
    plot(f) ARCHIVOS DE COMANDOS

    Monografias.com
    Si escribimos fibo en una ventana de MATLAB seguido de
    "enter“ vemos que MATLAB calcula los primeros 16
    números de Fibonacci, y luego grafica estos. Luego que la
    ejecución del archivo es completada, las variables f y i
    permanecen en el espacio de trabajo. Los programas de
    demostraciones incluidos en MATLAB son ejemplos de como usar
    comandos para hacer tareas más complicadas. Para utilizar
    estos escriba demos en el "prompt" de MATLAB.

    Monografias.com
    Un archivo-M que contiene la palabra function al principio de la
    primera línea, es un archivo de función. En una
    función, a diferencia de un comando, se deben de pasar los
    argumentos. Las variables definidas y manipuladas dentro de la
    función son locales a esta y no operan globalmente en el
    espacio de trabajo. Los archivos de funciones se utilizan para
    extender a MATLAB, i.e., crear nuevas funciones para MATLAB
    utilizando el lenguaje propio de MATLAB. El archivo mean.m
    contiene las instrucciones: function y = mean(x) % Valor medio. %
    Para vectores, mean(x) retorna el valor medio de los % elementos
    del vector x. % Para matrices, mean(x) es un vector fila
    conteniendo el % valor medio de cada columna. [m, n] = size(x);
    if m == 1 m = n; end y = sum(x)/m; ARCHIVOS DE FUNCIONES

    Monografias.com
    (Las lineas que comienzan con "%" son interpretadas como
    comentarios por MATLAB). La existencia de este archivo en el
    disco duro define una nueva función en MATLAB llamada
    mean. Si z es un vector de los enteros desde 1 a 99, por ejemplo,
    z = 1:99; entonces, el valor promedio es encontrado escribiendo
    mean(z) que resultaría ans = 50

    Monografias.com
    Ejemplo % Ejemplo de un archivo-m % Creación del vector x
    usando el comando for n=5; for i=1:n x(i)=i^2; end x % Fin del
    archivo-m Este ejemplo es un archivo-m tipo comando. Para
    ejecutarlo, en la línea de comandos se debe escribir el
    nombre del archivo: >> ejemplo x = 1 4 9 16 25

    Monografias.com
    Ejemplo % Calcula el promedio de los elementos de un vector y %
    dibuja dicho vector % Sintaxis: promedio(x) donde x es el vector
    a promediar function p = promedio(x) n=length(x); p=0; for i=1:n
    p=p+x(i); end p=p/n; plot(x);

    Monografias.com
    Algunas funciones elementales son: real(a) Parte real imag(a)
    Parte imaginaria conj(a) Conjugado de a fft(x) Transformada
    discreta de Fourier del vector x fft(x,n) FFT de n puntos
    muestrales ifft(x) Transformada inversa rápida de Fourier
    del vector x ifft(x,n) FFT inversa de n puntos muestrados zeros
    Inicializa a ceros zeros(n) Matriz de nxn de ceros zeros(m,n)
    Matriz de mxn de ceros y=zeros(size(A) Matriz del tamaño
    de A, todos ceros OTRAS FUNCIONES FUNCIONES
    MATEMÁTICAS

    Monografias.com
    Ejemplo size Regresa el número de filas y columnas A = 0 7
    -6 1 0 0 0 1 0 >> [m n]=size(A) m = 3 n = 3

    Monografias.com
    tril(A) Matriz triangular inferior triu(A) Matriz triangular
    superior pascal Triangulo de Pascal tocplitz Tocplitz FUNCIONES
    MATRICIALES La descomposición de Valores Singulares es
    importante para el análisis de problemas que envuelvan
    matrices. La asignación triple [U, S, V] = svd(A) produce
    los tres factores en la descomposición de valores
    singulares A = U*S*V'. Las matrices U y V son ortogonales y la
    matriz S es diagonal. La función svd(A) devuelve solamente
    los elementos de la diagonal de S, que son los valores singulares
    de A. DESCOMPOSICIÓN DE VALORES SINGULARES

    Monografias.com
    La Descomposición de Valores Propios se utiliza para
    obtener los valores y vectores propios de una matriz cuadrada A.
    La función eig(A) devuelve los valores propios de A en un
    vector columna. La asignación [X,D]=eig(A) produce una
    matriz diagonal D cuyos elementos diagonales son los valores
    propios de A y las columnas de X son los vectores propios
    correspondientes. Las Funciones de norma, rango y
    acondicionamiento asociadas son: cond – número de
    condición en la norma 2 norm – norma 1, norma 2, norma F,
    norma rank – rango rcond – estimado del número de
    condición DESCOMPOSICIÓN DE VALORES PROPIOS

    Monografias.com
    Ejemplo: El archivo-M llamado humps.m contiene las siguientes
    instrucciones: function y = humps(x) y = 1./((x-.3).^2 +.01) +
    1./((x-.9).^2 +.04) – 6; y para la gráfica de la
    función escribimos x = -1:.01:2; plot(x, humps(x)) Las
    funciones de funciones para ecuaciones no-lineales y
    optimización incluyen: fmin mínimo de una
    función de una variable fmins mínimo de una
    función multi-variable (minimización no-lineal sin
    restricciones) fzero cero de una función de una variable
    constr minimización con restricciones fsolve
    solución de ecuación no-lineal leastsq cuadrados
    mínimos no-lineales ECUACIONES NO-LINEALES Y FUNCIONES DE
    OPTIMIZACIÓN

    Monografias.com
    Las funciones de MATLAB para resolver problemas de valor inicial
    para ecuaciones diferenciales ordinarias son: ode23 método
    Runge-Kutta de largo de paso variable que combina un
    método de orden dos con uno de orden tres. ode45
    método Runge-Kutta-Fehlberg de largo de paso variable que
    combina un método de orden cuatro con uno de orden cinco.
    Ejemplo to=0; tf=10; [t,x]=ode23(`edif',to,tf,xo);
    [t,x]=ode23(`deriv',to,tf,xo); ode45
    [t,x]=ode23(`deriv',to,tf,xo,to1,trace); ode45 trace => 0 – no
    resuntados intermedios 1 – resultados intermedios default tol:
    ode23 -> 1.0e-03 ode45 -> 1.oe-06 FUNCIONES PARA ECUACIONES
    DIFERENCIALES

    Monografias.com
    function nombre_1=nombre_2(parametro_1, …, parametro_n)
    Ejemplos: function y=promedio(x) function i=inodal(t,v) function
    xpunto=vdpol(t,x) xpunto=zeros(2,1);
    xpunto(1)=x(1).*(1-x(2).^2)-x(2); xpunto(2)=x(1);
    DECLARACIÓN DE function SINTAXIS

    Monografias.com
    OPERADORES RELACIONALES Los operadores relacionales de MatLab
    son: < menor que <= menor o igual a > mayor que >=
    mayor o igual a == igual a =~ no igual a Ejemplo: if n< maxn
    … if n>=0, break, end

    Monografias.com
    Los operadores &, | y ~ son los operadores de lógica
    "y", "ó" y "no" respectivamente. El resultado de C = A
    & B es una matriz cuyos elementos son unos donde A y B sean
    ambos distintos de cero, y ceros donde A ó B sean cero. A
    y B deben de ser matrices con las mismas dimensiones, a menos que
    una de ellas sea un escalar. El resultado de C = A | B es una
    matriz cuyos elementos son unos donde A ó B tienen un
    elemento diferente de cero, y ceros donde ambas tienen elementos
    cero. A y B deben de ser matrices con las mismas dimensiones, a
    menos que una sea un escalar. El resultado de B = ~A es una
    matriz cuyos elementos son uno donde A tiene un elemento cero, y
    ceros donde A tiene elementos diferentes de cero. OPERADORES
    LÓGICOS

    Monografias.com
    La función any(x) devuelve 1 si cualquiera de los
    elementos de x es diferente de cero, de lo contrario devuelve 0.
    La función all(x) devuelve 1 solamente si todos los
    elementos de x son diferentes de cero. Estas funciones se usan en
    cláusulas if. Por ejemplo: if all(A <.5) . . . end
    FUNCIONES any Y all

    Monografias.com
    Para argumentos matriciales, any y all trabajan por columnas para
    devolver un vector fila con el resultado para cada columna.
    Aplicando la función dos veces, any(any(A)), siempre
    reduce la matriz a una condición escalar. Las funciones
    relacionales y lógicas en MATLAB son: any condiciones
    lógicas all condiciones lógicas find halla
    índices de arreglos de valores lógicos exist
    verifica si existen variables isinf detecta infinitos finite
    verifica para los valores finitos

    Monografias.com
    Los caracteres especiales de MatLab son: [ ] Se utilizan para
    formar vectores y matrices ( ) Define precedencia en expresiones
    aritméticas. Encierra argumentos de funciones en forma
    usual , Separador de elementos de una matriz, argumentos de
    funciones y declaraciones en líneas con declaraciones
    múltiples ; Termina filas de una matriz, separador de
    declaraciones % Comentario Ejemplos: [6.0 9.0 3.4 ] sqrt(2) for
    i=1:n, a(i)=0, end for i=1:n; a(i)=0; end % inicia vector a en 0
    CARACTERES ESPECIALES

    Monografias.com
    for variable=incio:paso:final declaración 1; …
    declaración n; end for variable=inicio:final
    declaración 1; … declaración n; end CONTROL DE
    FLUJO DECLARACIÓN DE for SIMPLE SINTAXIS

    Monografias.com
    Ejemplo: for i=1:n c(i)=a(i)*b(i); end o for i=1:n;
    c(i)=a(i)*b(i); end El ciclo FOR permite que una
    instrucción, ó grupo de instrucciones, pueda
    repetirse un número determinado de veces. Por ejemplo, for
    i = 1:n, x(i) = 0, end asigna 0 a los primeros n elementos de x.
    Si n es menor de 1, el ciclo sigue siendo válido pero
    MATLAB no ejecuta la instrucción intermedia. Si x no esta
    definido, ó si tiene menos de n elementos, entonces un
    espacio adicional es localizado automáticamente a x cada
    vez que sea necesario.

    Monografias.com
    while expresion proposición 1; … proposición 2;
    end DECLARACIÓN while SINTAXIS e=1.0; while
    (1.0+e)>1.0001 e=e/2.0; end it=1; t=0; wo=2.0*pi*60.0; while
    it<=npts, ut=sin(wo*t);t=t+dt;end Ejemplos

    Monografias.com
    El ciclo WHILE permite a una instrucción, ó grupo
    de instrucciones, repetirse un número indefinido de veces,
    bajo el control de una condición lógica. El
    siguiente ciclo while halla el primer entero n para el cual n! es
    un número de 100 digitos: n = 1; while prod(1:n) <
    1.0e100, n = n+1; end n Un cálculo más
    práctico ilustrando el ciclo while es en el cómputo
    del exponencial de una matriz, llamado expm(A) en MATLAB. Una
    posible definición de la función exponencial es
    mediante la serie: expm(A) = I + A + A^2/2! + A^3/3! + …

    Monografias.com
    La idea es sumar todos los términos necesarios hasta
    producir un resultado que, en la precisión finita la de
    computadora, no cambie aunque más términos sean
    añadidos. Para esto procedemos de la forma siguiente: E =
    zeros(size(A)); F = eye(size(A)); k = 1; while norm(E+F-E, 1)
    > 0 E = E + F; F = A*F/k k = k+1; end Aqui A es la matriz
    dada, E representa la suma parcial de la serie, F es un
    término individual en la serie, y k es el índice de
    este término.

    Monografias.com
    a) if expresión proposición 1; …
    proposición n; end b) if expresión
    proposición 1; … proposición n; else
    proposición 1; … proposición m; end DECLARACIONES
    if, else, elself Y break SINTAXIS c) if expresión
    proposición 1; … proposición n; elseif
    proposición 1; … proposición m; else
    proposición 1; … proposición r; end d) if
    expresión, break, end

    Monografias.com
    Ejemplo >> A=[1 2 3; 4 5 6; 7 8 9] A = 1 2 3 4 5 6 7 8 9
    ALGEBRA MATRICIAL CREACIÓN DE UNA MATRIZ

    Monografias.com
    matriz_modificada = reshape(matriz_original, filas, columnas)
    Ejemplo >> A=[1 4 7 10; 2 5 8 11; 3 6 9 12] A = 1 4 7 10 2
    5 8 11 3 6 9 12 >> B=reshape(A,2,6) B = 1 3 5 7 9 11 2 4 6
    8 10 12 CAMBIO DEL ORDEN DE UNA MATRIZ: reshape SINTAXIS

    Monografias.com
    >> A=[1 2; 3 4] A = 1 2 3 4 >> A(1,1)=A(1,2)+A(2,1) A
    = 5 2 3 4 MODIFICACIÓN INDIVIDUAL DE ELEMENTOS >>
    A(1,2)=A(2,1) A = 5 3 3 4 >> A(2,2)=10 A = 5 3 3 10
    EJEMPLOS

    Monografias.com
    >> A=[1 2; 3 4; 5 6 ] A = 1 2 3 4 5 6 >> b=A(:) b = 1
    3 5 2 4 6 CONVERSIÓN DE UNA MATRIZ EN UN VECTOR

    Monografias.com
    >> x=1:5 x = 1 2 3 4 5 >> x=5:-1:1 x = 5 4 3 2 1
    >> x=0:0.25:1 x = 0 0.2500 0.5000 0.7500 1.0000
    GENERACIÓN DE VECTORES: Ejemplos

    Monografias.com
    Si la matriz original A es de 10*10, entonces: A(1:3,5) matriz de
    3×1 que tiene los tres primeros elementos de la columna 5 de A
    A(1:3, 5:9) matriz de 3×4 que tiene los tres primeros filas y las
    columnas de 5 a 9 de A A(:,5) quinta columna de A A(1:5,:)
    primeras cinco filas de A A(:,[4 6])=B(:,1:2) remplaza la cuarta
    y sexta columnas de A con las dos primeras de A ACCESO A
    SUBMATRICES CONTIGUAS Y NO CONTIGUAS Ejemplos

    Monografias.com
    A=[1 2; 3 4] + i*[5 6 ; 7 8] o A=[1 2; 3 4] + i*[5 6 ; 7 8] o
    A=[1+5i 2+6i; 3+7i 4+8i] A = 1.0000 + 5.0000i 2.0000 + 6.0000i
    3.0000 + 7.0000i 4.0000 + 8.0000i DECLARACIÓN DE MATRICES
    COMPLEJAS

    Monografias.com
    >> x=(0.0:0.2:3.0); >> y=exp(-x).*sin(x); >>
    [x;y] ans = Columns 1 through 7 0 0.2000 0.4000 0.6000 0.8000
    1.0000 1.2000 0 0.1627 0.2610 0.3099 0.3223 0.3096 0.2807 Columns
    8 through 14 1.4000 1.6000 1.8000 2.0000 2.2000 2.4000 2.6000
    0.2430 0.2018 0.1610 0.1231 0.0896 0.0613 0.0383 Columns 15
    through 16 2.8000 3.0000 0.0204 0.0070 GENERACIÓN DE
    TABLAS

    Monografias.com
    >> A=[1 2 3;4 5 6; 7 8 9] A = 1 2 3 4 5 6 7 8 9 >>
    det(A) ans =0 DETERMINANTE DE A: det(A) >> A=[0 7 -6; 1 0
    0;0 1 0] A = 0 7 -6 1 0 0 0 1 0 VALORES Y VECTORES
    CARACTERÍSTICOS: eig(A) >> eig(A) ans = -3.0000
    2.0000 1.0000

    Monografias.com
    >> [v d]=eig(A) v = 0.9435 -0.8729 0.5774 -0.3145 -0.4364
    0.5774 0.1048 -0.2182 0.5774 d = -3.0000 0 0 0 2.0000 0 0 0
    1.0000 v – Vectores característicos d – valores
    característicos >> A=[0 7 -6; 1 0 0;0 1 0] A = 0 7
    -6 1 0 0 0 1 0 >> expm(A) ans = 5.2541 11.0757 -13.6115
    2.2686 5.2541 -4.8044 0.8007 2.2686 -0.3510 Exponencial de una
    matriz: expm(A) >> inv(A) ans = 0 1.0000 0 0 0 1.0000
    -0.1667 0 1.1667 Inversa de A: inv(A) Ecuación
    característica de la matriz A: poly(A) >> p=poly(A)
    p = 1.0000 0.0000 -7.0000 6.0000

    Monografias.com
    id = fopen(`nombre.dat', `permiso') donde permiso puede ser: `r'
    Abre archivo para lectura `r+ Abre archivo para lectura y
    escritura `w' Borra el contenido del archivo existente o crea un
    nuevo archivo y lo abre para escritura `w+' Idem que `w'
    únicamente que el archivo se abre para lectura y escritura
    `a' Crea y abre un nuevo archivo o abre un archivo `a+' Idem que
    `a' únicamente que el archivo es abierto para lectura y
    escritura ARCHIVOS DE E/S DECLARACIÓN fopen SINTAXIS
    Ejemplo fid = fopen(`archivo.dat','r') fid = -1, error 0,
    lectura/escritura normal [fid, mensaje =
    fopen(`archivo.dat','r')

    Monografias.com
    DECLARACIÓN fclose SINTAXIS status = fclose(fid) o status
    = fclose (`all') – cierra todos los archivos abiertos
    DECLARACIÓN fread SINTAXIS Lee un archivo abierto con una
    precisión ndicada fread(fid,registros,'precision')
    registros `char' o `uchar' `short' o `long' `float' o `double'
    Ejemplo: A = fread(fid,10,'float') fwrite(fid,A,'short')
    DECLARACIÓN fwrite SINTAXIS Salida con formato Ejemplos:
    fprintf(fid,'titulon'); fprintf(fid,'%f %12.7fn', y); Formato
    %s – cadena decimal %d – número decimal %f – punto
    flotante % g – formato g DECLARACIÓN fprintf

    Monografias.com
    ESTA PRESENTACIÓN CONTIENE MAS DIAPOSITIVAS DISPONIBLES EN
    LA VERSIÓN DE DESCARGA

    Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

    Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

    Categorias
    Newsletter