Descargar

MATLAB: Conceptos Básicos y Programación (página 2)


Partes: 1, 2, 3

Partes: 1, , 3

 

Una primera mirada a MATLAB

Cargue el programa MATLAB en su computador.

El entorno de MATLAB está organizado mediante ventanas

Command Window: es la ventana de comandos para ejecución de instrucciones

Command History: es el registro de los comandos que han sido ingresados.

Workspace: contiene la descripción de las variables usadas en cada sesión.

Inicialmente, se sugiere dejar activa únicamente la ventana de comandos, cerrando las otras ventanas con el botón x.

Para restaurarlas use la opción view de la barra de herramientas de MATLAB.

Los ejemplos de este manual debe probarlos en la ventana de comandos

El símbolo >> indica que el programa está listo para recibir sus instrucciones.

Escriba cada ejemplo y presione la tecla de ingreso para finalizar.

MATLAB muestra el resultado inmediatamente, o un mensaje si hubo algún error.

Al final de cada ejemplo hemos incluido con letra azul una breve explicación.

Por supuesto, usted no tiene que escribir en el computador estas explicaciones.

>> exp(2)/3 calcule y muestre inmediatamente el resultado

ans =

2.4630 respuesta mostrada por Matlab, ans proviene de answer

>> x=exp(2)/3; calcule y asigne el resultado a la variable x

>> x escriba la variable para conocer su contenido

x =

2.4630 respuesta mostrada por MATLAB

>> x=exp(2)/3 al omitir ; el resultado se muestra inmediatamente

x =

2.4630 respuesta mostrada por MATLAB

>> y=2*x+1 puede usar el contenido de las variables

y =

5.9260 respuesta mostrada por MATLAB

>> x=x+1 puede modificar el contenido de las variables

x =

3.4630 respuesta mostrada por MATLAB

Puede reutilizar comandos con las teclas del cursor ­ ¯ . Pruébelo.

>> x=exp(2)/3; y=2*x+1, z=3*x Puede escribir y ejecutar varios

comandos en una misma línea

y =

5.9260 respuestas mostradas por MATLAB

z =

7.3891

El sistema de ayuda de MATLAB

Ofrece una descripción detallada del uso de cada comando.

>> help despliega temas de ayuda

>> help ops despliega comandos de un tema. Ej. lista de operadores

>> help exp uso de un comando específico. Ej. función exponencial

Adicionalmente, presionando el ícono Help usted puede entrar al sistema de ayuda de MATLAB organizado por contenido, índice, búsqueda y demostraciones.

Algunos ejemplos para apreciar el poder de MATLAB

  1. 2x + 3y = 4

    5x – 2y = 6

    >> a=[2, 3; 5, -2]; ingrese la matriz de coeficientes

    >> b=[4; 6]; ingrese el vector columna de constantes

    >> x=inv(a)*b; obtenga la solución con la función para invertir

    >> x muestre el vector solución

  2. Resuelva el sistema:

    >> ezplot('sin(x)*exp(x)', 0, pi); escriba la función entre comillas simples

    >> grid on; muestre cuadrículas en el gráfico

  3. Grafique la función f(x)=sen(x) ex en el intervalo 0 £ x £ p

    >> a=[5, 2, -3, 1]; ingrese los coeficientes de la ecuación

    >> x=roots(a) obtenga y muestre las raíces de la ecuación

  4. Resuelva la ecuación cúbica 5×3 + 2×2 – 3x + 1 = 0;

    >> y=dsolve('Dy-x-y=0','y(0)=1', 'x'); defina la ecuación, condición y variable

    >> y muestre la solución analítica obtenida

    >> ezplot(y, 0, 2); grafique la solución para 0 £ x £ 2

    >> grid on muestre cuadrículas

  5. Obtenga la solución de la ecuación diferencial ordinaria: y´-x-y = 0, y(0)=1

    >> f=int('x*sin(x)') obtenga el resultado analítico

    >> s=int('x*sin(x)',0,pi) integre entre 0 y p

  6. Integre la función f(x) = x sen(x)
  7. Manejo simbólico de expresiones

>> syms x defina x con tipo simbólico

>> y=x^3-8 una expresión con x

>> t=factor(y) factorar la espresión asignada a y

>> e=taylor(exp(x), 5); expandir ex con 5 términos de la serie de Taylor

Símbolos especiales que usa MATLAB

[ ] para definir vectores y matrices

( ) para definir precedencia en expresiones y para subíndices

, para separar elementos de un vector use comas o espacios

; para separar filas y para evitar mostrar contenido de variables

% para iniciar un comentario (programas y funciones)

para continuar un comando en la siguiente línea

CÁLCULO NUMÉRICO

Formatos de exhibición de números en la pantalla

>> format long muestra 14 decimales

>> x=exp(2) un ejemplo para visualizar

>> format bank 2 decimales

>> x

>> format rat notación racional (fracciones)

>> x

>> format short e notación científica

>> x

>> format long e notación científica con 14 decimales

>> x

>> format + muestra signos +, , –

>> x

>> format short 4 decimales (MATLAB lo usa por omisión)

>> x

>> format compact suprime líneas adicionales en la salida

>> x

>> format loose inserta líneas en blanco en la salida(recomendado)

>> x

>> format hex formato hexadecimal

>> x

>> vpa(sqrt(2), 100) variable precision arithmetic

(muestra la raíz cuadrada de 2 con 100 dígitos

>> format short regrese al formato normal de MATLAB

Operadores aritméticos

+ – * / ^ ( ) ^ se usa para potenciación

/ es división a la derecha

es división a la izquierda

>> help ops liste los operadores y caracteres especiales

Funciones matemáticas

exp, log, sqrt, sin, cos, tan, …..

>> help elfun liste las funciones matemáticas elementales

Practique con expresiones aritméticas

>> x=sin(3)+3*exp(2)

Operadores relacionales y lógicos

< <= > >= == ~= & | ~ los tres últimos corresponden a: Ù Ú ù

== representa al símbolo =

~= representa al símbolo ¹

Practique con operadores relacionales y lógicos

>> t=sin(2) < 0.8 & log(2) > 0.5 el resultado es un valor lógico (0 o 1)

Símbolos numéricos especiales

>> 2/0

Inf es el símbolo ¥

>> 0/0

NaN significa "Not A Number" (valor indeterminado)

>> pi contiene la constante p

>> eps es la precisión del tipo real en MATLAB

>> realmin el menor número real en MATLAB

>> realmax el mayor número real en MATLAB

>> i representa al símbolo complejo Ö -1

Practique con números complejos

>> x=3+2i asigne un número complejo

>> t=2*x + 3 – 5i operación con números complejos

>> y=exp(x) el resultado también es complejo

>> y=log(-2) el referencial de MATLAB son los complejos

Funciones adicionales para números complejos

conj, real, imag, abs, angle, complex

>> z=3+2i;

>> t=conj(z) obtenga el conjugado

Variables

  • No requieren ser declaradas
  • Su tipo depende del valor asignado
  • Pueden ser redefinidas
  • Sensible al tipo de letra (mayúsculas o minúsculas)
  • ans es la variable por omisión provista por MATLAB
  • Matlab realiza la asignación de memoria a variables durante la ejecución.

>> x=3 x es de tipo real

>> x='mensaje' x es de tipo literal (use comillas simples)

>> syms x x es un símbolo

>> x=[2 7 4] x es un vector

>> x=2+3i x es de tipo complejo

>> x muestre el contenido actual de la variable

>> whos x muestre el tipo actual de la variable

>> disp(x) muestre solamente el contenido

>> x=input('¿dato?'); ingrese un valor para una variable desde el teclado

>> exp(x)/3

>> ans la variable ans contiene el último resultado

>> y=2*ans la puede usar

Algunos comandos del Sistema Operativo

>> help general lista de comandos

>> who lista las variables en uso

>> whos lista las variables en uso y su descripción

clear borra variables.

>> clear a b c ejemplo

>> clc despeja la ventana de comandos

>> pwd muestra cual es el directorio actual

cd cambia la ruta del directorio actual

>> cd c:matlabwork ejemplo

>> dir lista el contenido del directorio actual

save almacena las variables en un archivo .mat

>> save prueba ejemplo

load carga variables y su contenido

>> load prueba ejemplo

delete elimina archivo

>> delete prueba.mat ejemplo

>> quit para terminar la sesión con MATLAB (no lo digite)

Comandos especiales

>> date fecha

>> clock fecha hora, vea su uso con help.

>> format rat para visualizar la fecha con mas claridad

>> clock

>> format short vuelva al formato normal

Cadenas de caracteres

>> x='Matematica'; asignación de una cadena (use comillas simples)

>> x(4) manejo de un carácter de la cadena, use un indice

En MATLAB los índices se escriben entre

paréntesis y son numerados desde 1

>> t=x(2:5); manejo de una subcadena, use: (inicio: final)

>> n=length(x) longitud de la cadena

>> c=strcat(x, t) concatenación de cadenas

>> help strfun liste las funciones para cadenas

Vectores y Matrices

>> x=[3, -1, 4, 7, -2] asignación directa de un vector fila

>> x=[3 -1 4 7 -2] puede separar con comas o con espacios

>> x(2)=5 manejo de un componente del vector.

En MATLAB los índices se escriben entre

paréntesis y son numerados desde 1

>> y=x(2: 4) para asignar parte de un vector use (inicio: final)

>> t=[3; 1; 4; 5] para asignar un vector columna use ;

>> t=x' para obtener la transpuesta de un vector use '

x' es la transpuesta del vector x

>> y=[3, x, -6, 7] puede asignar un vector usando otro vector

>> y=[2:1:10] puede asignar un vector mediante una secuencia

En MATLAB las secuencias se escriben:

valor inicial : incremento : valor final

si el incremento es 1 puede omitirlo

>> y=[2, 5, 4, … Para continuar en la siguiente línea use

7, -3] escriba la continuación de la línea anterior

>> x=[3, 5, 2, 0]

>> y=2*x puede realizar operaciones escalares

>> y=exp(x) o crear vectores con funciones

>> a=[6 3 ; 5 1] asignación directa de una matriz 2×2

separe elementos con espacios o comas

separe filas con punto y coma

>> a(2,1) manejo de los componentes de una matriz con índices numerados desde 1: (fila, columna)

>> a=[2, -3; 5, 1; 0, 7] una matriz 3×2

>> x=[7, 3]

>> a=[x; x] una matriz 2×2

>> b=[5, 6]

>> c=[a; b] c es una matriz aumentada 3×2

>> d=[a, b'] c es una matriz aumentada 2×3

>> x=c(1, :) asigne a x la primera fila de c

>> x=c(: ,1) asigne a x la primera columna de c

>> c(:,2)=[ ] elimine la segunda columna de c

Matrices especiales

>> a=ones(5) matriz 5×5 iniciada con unos

>> a=ones(3,5) matriz 3×5 iniciada con unos

>> a=zeros(4,5) matriz 4×5 iniciada con ceros

>> a=eye(5) matriz identidad 5×5

>> a=magic(4) cuadrado mágico 4×4

>> a=hilb(5) matriz de Hilberth 5×5

>> x=[2, 5, 3, 7];

>> a=vander(x) matriz de Vandermonde 4×4 usando un vector

>> a=[ ] matriz nula

Generación de números aleatorios

>> x=rand genera un número aleatorio entre 0 y 1

>> a=rand(5) genera una matriz 5×5 con números aleatorios

>> b=rand(4,5) genera una matriz 4×5 con números aleatorios

>> d=fix(rand*10)+1 transfomación para obtener un entero aleatorio

entre 1 y 10

Una matriz puede componerse con otras matrices

>> a=rand(3); matriz 3×3 con números aleatorios

>> b=[5 3 9]; vector de tres componentes

>> e=diag(b); matriz 3×3 con b en la diagonal

>> c=eye(3); matriz identidad 3×3

>> d=zeros(3); matriz con ceros 3×3

>> t=[a e; c d] matriz compuesta 9×9

Editor de matrices

En la ventana workspace puede activar el editor de arreglos, similar a una

hoja electrónica, con el cual puede modificar con facilidad las dimensiones y

el contenido de vectores y matrices.

Elementos de vectores y matrices pueden manejarse con otro vector o matriz

>> x=[ 8 7 9 5 6];

>> p=[2 4 1]; vector para direccionar al vector x

>> t=x(p) t contiene los elementos 2, 4 y.1 del vector x

>> a=[4 7 3; 5 7 8; 6 0 9];

>> p=[1 3]; vector para direccionar las filas de la matriz a

>> q=[2 3]; vector para direccionar las columnas de la matriz a

>> t=a(p, q) t contiene las filas 1 y 3, columnas 2 y 3 de a

Operaciones con matrices

>> a=[3, 2; 1, 4];

>> b=[8, 6; 5, 7];

>> c=a' transpuesta de a

>> c=2*a producto de un escalar por matriz

>> c=a+b suma de matrices

>> c=a*b producto de matrices

>> c=a.*b producto elemento por elemento de matrices

para operar elemento a elemento use un punto

antes del operador

>> c=a^2 matriz al cuadrado, equivale a: a*a

>> c=a.^2 cada elemento de la matriz a, elevar al cuadrado

>> c=a==b compare igualdad entre matrices (de igual tamaño)

el resultado es una matriz binaria (ceros y unos)

>> c=a~=b compare si dos matrices no son iguales

el resultado es una matriz binaria (ceros y unos)

>> c=a>3 compare si cada elemento de a es mayor a 3

el resultado es una matriz binaria (ceros y unos)

Funciones para matrices

>> x=[-2, 0, 6, 5]; un vector para los ejemplos

>> a=[1, 2, 3; 4, 5, 6;7, 8, 9]; una matriz para los ejemplos

>> n=length(x) longitud del vector x

>> [n,m]=size(a) tamaño de la matriz a: el resultado es un vector

>> n número de filas: 3

>> m número de columnas: 3

>> exist('c') chequea si la variable existe

>> isempty(a) chequea si un vector o matriz está vacío

>> any(x) determina si el vector contiene algún valor no cero

>> any(a) igual que arriba, pero por columnas de la matriz

>> t=find(x) obtiene índices de elementos del vector no ceros

>> t=find(x>3) obtiene los índices de cada elemento > 3

>> [f,c]=find(a) obtiene los índices de filas y columnas de la matriz

cuyos elementos son no ceros

>> t=dot(x, x) producto punto entre dos vectores

>> k=rank(a) rango de a

>> t=trace(a) traza de a

>> d=det(a) determinante de a

>> b=inv(a) inversa de a

>> h=norm(a, 1) norma de columna de la matriz a

>> h=norm(a, inf) norma de fila de la matriz a

>> h=norm(x, inf) norma de fila o columna del vector x

>> c=cond(a) número de condición de la matriz a

>> t=diag(a) vector con la diagonal de la matriz a

>> t=diag(x) matriz con x en la diagonal

>> t=rot90(a) rote a 90 grados (sentido opuesto al reloj)

>> t=fliplr(a) voltee horizontalmente la matriz a

>> t=tril(a) obtenga la matriz triangular inferior de a

>> t=triu(a) obtenga la matriz triangular superior de a

>> b=[5,-1; 3, 4; 2, 7];

>> b=reshape(b, 2, 3) reconfigura la matriz b de 3×2 a 2×3

>> [t,s]=lu(a) descomposición triangular de a en las matrices

>> t triangulares t y s tales que t*s es igual que a

>> s

>> t*s se obtiene la matriz a

>> t=cov(a) matriz de covarianza de a

>> e=eig(a) valores propios de a

>> p=poly(a) polinomio característico de a

>> r=roots(ans) valores propios de a

>> help matfun liste las funciones para matrices

Ingreso de puntos desde la pantalla con el mouse

>> ezplot('sin(x)'); ejemplo para tomar puntos desde un gráfico

>> grid on

>> [x,y]=ginput(5); ingrese 5 puntos desde la pantalla .

Presione el botón del mouse para

ingresar cada punto

>> x observe las abscisas

>> y y las ordenadas ingresadas

>> plot(x, y, 'o') grafique los puntos ingresados

Funciones adicionales para manejo de datos con vectores y matrices

>> x=[2, 5, 4]; un vector

>> a=[5,-1; 3, 4; 2, 7]; una matriz

>> t=max(x) el mayor valor del vector x

>> v=max(a) el mayor valor por columnas de la matriz a

>> t=sum(x) suma de componentes

>> v=sum(a) suma de componentes por columnas

>> t=prod(x) producto escalar

>> v=prod(a) producto escalar por columnas

>> t=cumsum(x) suma acumulada

>> v=cumsum(a) suma acumulada por columnas

>> t=cumprod(x) producto acumulado

>> v=cumprod(a)

>> t=mean(x) media aritmética

>> v=mean(a)

>> t=median(x) mediana

>> v=median(a)

>> t=std(x) desviación estándar

>> v=std(a)

>> t=sort(x) ordenamiento ascendente

>> v=sort(a)

>> t=dsort(x) ordenamiento descendente

>> bar(x) diagrama de barras

>> bar(a)

>> hist(x) histograma

>> stairs(x) dibuja x mediante escalones

>> pie(x) gráfico tipo pastel

>> pie3(x) pastel en relieve

>> v=[0,1,0] vector para extraer sectores del pastel

>> pie3(x,v) gráfico tipo pastel con un sector separado

Polinomios

>> a=[2, –3, 0, 5}, define el polinomio 2×3 – 3×2 + 5

>> y=polyval(a,4) evaluación del polinomio con un valor

>> x=roots(a) obtenga un vector con raíces (reales y complejas)

>> t=polyval(a, x(1)) verifique una raíz

>> p=poly(x) producto de todas las raíces

>> b=[3, 4, –2]; define el polinomio 3×2+ 4x – 2

>> c=conv(a,b) producto de polinomios

>> [c, r]=deconv(a,b); división de polinomios

>> c cociente

>> r residuo

>> x=[2 3 5 7 8]; abscisas de puntos (x,y)

>> y=[3.2 4.1 5.8 6.4 6.3]; ordenadas de los puntos

>> z=3.2; valor para interpolar, z puede ser un vector

>> u=interp1(x,y,z,’linear’) resultado de la interpolación lineal

>> u=spline(x,y,z) interpolación con un trazador cúbico

>> a=polyfit(x, y, 2); polinomio de mínimos cuadrados de grado 2

>> a el vector a contiene los coeficientes

Practique: Obtenga y grafique el polinomio de interpolación, la recta de mínimos cuadrados y el trazador cúbico para un conjunto de datos dados

>> x=[1 2 4 5 7]; cinco puntos (x, y) para el ejemplo

>> y=[5 3 6 7 4];

>> plot(x,y,'o') grafique los datos con círculos

>> grid on poner cuadrículas

>> hold on superponer los siguientes gráficos

>> a=polyfit(x,y,4); polinomio de interpolación, 5 puntos: grado 4

>> a coeficientes a(1)x^4 + a(2)x^3 + a(3)x^2 + …

>> z=[1: 0.1: 7]; puntos para evaluar el polinomio

>> p=polyval(a,z); evalúe el polinomio con z obtenga puntos p

>> plot(z,p) grafique el polinomio de interpolación

>> b=polyfit(x,y,1); recta de mínimos cuadrados (grado 1)

>> b coeficientes de la recta: b(1)x + b(2)

>> t=[1 7]; puntos extremos de la recta (abscisas)

>> q=polyval(b,t); obtenga las ordenadas respectivas de la recta

>> plot(t,q,'r') grafique la recta en color rojo

>> s=spline(x,y,z); evalúe con z el trazador cúbico y obtenga s

>> plot(z,s,'g') grafique el trazador cúbico con verde

>> hold off deshabilite la superposición de gráficos

 

Partes: 1, 2, 3

Partes: 1, 2, 3
 Página anterior Volver al principio del trabajoPágina siguiente