Está en la página 1de 44

Universidad Andina Nstor Cceres Velsquez

INFORMTICA PARA
INGENIERA CIVIL
TERCER SEMESTRE
2015 - I

CAP INGENIERIA CIVIL

Ing JESUS MAMANI VELASQUEZ

Universidad Andina Nstor Cceres Velsquez

INFORMTICA PARA INGENIERA CIVIL

UNIDAD DIDACTICA IV
MATLAB
CAP INGENIERIA CIVIL

Ing JESUS MAMANI VELASQUEZ

4.1 INTRODUCCIN
MATLAB es el nombre abreviado de MATrix LABoratory. MATLAB
es un programa para realizar clculos numricos con vectores y
matrices. Como caso particular puede tambin trabajar con nmeros
escalares (tanto reales como complejos), con cadenas de caracteres y
con otras estructuras de informacin ms complejas. Una de las
capacidades ms atractivas es la de realizar una amplia variedad de
grficos en dos y tres dimensiones. MATLAB tiene tambin un
lenguaje de programacin propio.

Principales Caractersticas:
1. Lenguaje de programacin de alto nivel para clculo tcnico y
cientfico.
2. Entorno de desarrollo para la gestin de cdigo, archivos y datos.
3. Herramientas interactivas para exploracin, diseo y resolucin de
problemas iterativos.
4. Funciones matemticas para lgebra lineal, estadstica, anlisis de
Fourier, filtraje, optimizacin e integracin numrica.
5. Funciones grficas para visualizacin de datos en 2D y 3D.
6. Herramientas para crear interfaces grficas de usuario
personalizadas.
7. Funciones para integrar algoritmos basados en MATLAB con
aplicaciones y lenguajes externos (C/C++, FORTRAN, Java, COM y
Microsoft Excel).
8. Provee Toolboxes, herramientas orientadas a problemas especficos.

Los creadores del MATLAB


CLEVE MOLER
Director cientfico y co-fundador de The
MathWorks. Es autor de la primera versin de
MATLAB y co-autor de las bibliotecas de
subrutinas LINPACK y EISPACK (ampliamente
utilizadas en todo el mundo). Bachiller en
Matemticas por Caltech (1961), Magister
(1963) y Ph.D. (1965) en Matemticas por la
Universidad de Stanford. Ha sido profesor de
Matemticas y Ciencias Computacionales por
ms de 20 aos en universidades las
Universidades de Michigan, Stanford y Nuevo
Mxico. Trabaj para Intel Hypercube y Ardent
Computer Corporation. Es coautor de varios
textos sobre mtodos numricos y miembro de
la ACM.

JACK LITTLE
Presidente y co-fundador de The MathWorks.
Coautor y principal arquitecto de las versiones
inciales de MATLAB, Signal Processing
Toolbox y Control Systems Toolbox. Bachiller
en Ingeniera Elctrica por el MIT (1978) y
Magister por la Universidad de Stanford
(1980). Es miembro de la IEEE. Se encarga de
la escritura y divulgacin de los clculos
tcnicos, diseos basado en modelos, y temas
de la industria del software.

El Sistema MATLAB
1. Herramientas de escritorio y entornos de desarrollo
Ayudan a utilizar con mayor productividad los archivos y funciones
MATLAB (el escritorio MATLAB, el editor/depurador, el analizador de
cdigo, los navegadores para la visualizacin de ayuda, el
workspace, etc).
2. Biblioteca de funciones matemticas
Coleccin de algoritmos computacionales que abarca desde
funciones matemticas bsicas hasta las ms sofisticadas.
3. Lenguaje
MATLAB es un lenguaje de alto nivel basado en matrices/arreglos
que posee sentencias de control de flujo, funciones, estructuras de
datos, entrada/salida, y caractersticas de programacin orientada a
objetos.

4. Grficos
MATLAB posee funciones de alto y bajo nivel para la visualizacin de
datos en dos y tres dimensiones, as como para el desarrollo de
interfaces grficas.
5. Interfaces Externas
Las bibliotecas de interfaces externas permiten escribir programas en
C y Fortran que interacten con MATLAB.

El escritorio MATLAB
Cuando se inicia MATLAB, el escritorio (desktop) aparece con sus
paneles en la disposicin (layout), por defecto (default):

INTERFAZ
RIBBON

VENTANA CARPETA ACTUAL


(CURRENT FOLDER)

VENTANA DE COMANDOS
(COMMAND WINDOW)

El Current Folder permite acceder a los archivos. El Command


Window es la ventana por medio de la cual se ingresan lneas de
comandos, en el punto de insercin denominado prompt (>>). A
traves del Workspace se pueden explorar los datos que se vayan
creando o importando a partir de archivos. En el Command
History se visualizan o reejecutan los comandos que han sido
ingresados previamente digitados en la lnea de comandos.

VENTANA DE VARIABLES
(WORKSPACE)

VENTANA DE HISTORIAL
DE COMANDOS
(COMAND HISTORY)

1. La Ventana de Comandos (Command Window)


La Ventana de Comandos permite el ingreso de datos, la ejecucin
de cdigo MATLAB y la visualizacin de resultados. El prompt (>>)
de la Ventana de Comandos indica el punto en el que se puede dar
una entrada a MATLAB. Como el prompt es el punto de insercin de
sentencias, ste es tambin conocido como la lnea de comando.
La apariencia del prompt puede tomar diferentes aspectos:
>> indica que la Ventana de Comando est en modo normal
EDU>> indica que la Ventana de Comando est en modo normal,
en la Versin de Estudiante de MATLAB
K>> indica que MATLAB est en modo de depuracin (debug
mode)

2. Ventana Historial de Comandos (Command History)


La Ventana Historial de Comandos visualiza un registro (log) de
sentencias que se hayan ejecutado en las sesiones MATLAB actual y
previas. La hora y la fecha de cada sesin aparece al inicio de las
sentencias listadas para aquella sesin. Todas las entradas son
registradas en el archivo history.m.
El archivo history.m:

Reside en la carpeta que retorna el comando prefdir.


Se carga cuando MATLAB inicia.
Almacena un mximo de 200 000 bytes.
Elimina las entradas mas antiguas necesarias tal que se mantenga
el nmero mximo de bytes.

3. El Workspace
El Workspace de MATLAB (MATLAB Workspace) es el conjunto de
variables creadas y almacenadas en memoria durante una sesin
MATLAB. Cuando se utilizan funciones, ejecuta cdigo MATLAB y se
carga workspaces almacenados, se aaden variables al workspace.
El Workspace es una herramienta que permite ver, modificar, y grabar
valores del Worskpace de MATLAB. Por defecto, el Workspace
muestra el Worskpace base. Si MATLAB se halla en modo de
depuracin (debug mode), el campo Stack
permitir ver los
worskpaces de las funciones.

4. Ventana Carpeta Actual (Current Folder)


La Carpeta de Inicio (Startup folder) es la Carpeta Actual (Current
folder) en la aplicacin MATLAB cuando sta inicia.
La Carpeta Actual debe ser la carpeta que se usa con mayor
frecuencia.

La Ventana Carpeta Actual (Current Folder):


Muestra siempre la ruta completa de la carpeta actual en la barra
de direccin, y el contenido de la actual carpeta en un as como
sus respectivas subcarpetas en el panel debajo de la barra.
Permite el acceso a las caractersticas de gestin de archivos del
sistema operativo desde dentro de MATLAB.

Es similar a los administradores de archivos provistos por los


sistemas operativos, aadiendo caractersticas nicas para
MATLAB.

5. Atajos de Teclado (Keyboard shortcuts)


MATLAB provee atajos de teclados para navegar en un historial de
comandos y listar ayudas contextuales.

Tecla Flecha Arriba


Al presionar la tecla hacia arriba, la ltima lnea o sentencia ser
mostrada. Luego, usando la tecla hacia izquierda, se mueve el
cursor, para realizar correcciones y se presiona ENTER para
ejecutar el comando corregido (nuevo comando).
Tecla Tab
Al presionar la tecla tab, MATLAB presentar un men contextual
conteniendo todas las sentencias, del cual se puede seleccionar
uno.
El operador punto y coma (Semicolon)
El operador punto y coma de una lnea suprime la salida (eco) en
pantalla de MATLAB, o sea la ejecuta en silencio. Esto es til
cuando se desea mantener limpia la Ventana de Comandos.

El Sistema de Ayuda de MATLAB


MATLAB tiene tres formas de ayuda en lnea:
Help
Digitando help en la Ventana de Comandos se visualizar una
listado de los tpicos de ayuda mas importantes.
Doc
Funciona de manera similar a help, slo que el resultado de las
consultas ser visualizado en formato HTML en el Help Browser.
Demos
Es una herramienta de ayuda que nos permite aprender mas sobre
MATLAB a travs de demostraciones. Esto se hace tipeando demo
en la lnea de comandos, obteniendo un listado de enlaces a demos
en el Help Browser

Funciones y comandos tiles


Para una detallada explicacin y obtencin de ejemplos para cada uno
de los siguientes comando/funcin consultar la ayuda de MATLAB

Ejercicios
Despus de iniciar MATLAB, la ventana de comandos se abre y
aparece el signo:
>> (Prompt)

El modo calculadora de MATLAB opera en forma secuencial cuando se


entran los comandos lnea por lnea. Para cada comando se obtiene un
resultado
>> 55 - 16
Notar que MATLAB ha asignado automticamente la respuesta a la
variable, ans. Por lo que se puede usar ans en clculos subsiguientes:

>> ans + 11

Asignacin
La asignacin se refiere a asignar valores al nombre de la variable. Esto
resulta en un almacenamiento de valores en la memoria
correspondiente al nombre de la variable.
1.1 Escalares
La asignacin de valores a variables escalares es similar a otros
lenguajes:
>> a = 4

La repeticin es una caracterstica de MATLAB. Puede ser suprimida


mediante el uso del carcter punto y coma (;) al final de la lnea de
comando:
>> A = 6;

Se puede digitar varios comandos en la misma lnea separndolos


mediante comas o punto y coma. Si se separan con comas, los
comandos sern mostrados, y si se usa punto y coma no sern
mostrados:
>> a = 4, A = 6; x = 1;
MATLAB trata los nombres de una forma sensible entre maysculas y
minsculas, es por ello que a no es lo mismo que A:
>> a
>> A
Los valores son distintos y tienen distintos nombres.

Se puede asignar valores complejos a las variables ya que MATLAB


maneja la aritmtica compleja automticamente. La unidad del nmero
imaginario 1 es preasignada a la variable i. Consecuentemente, un
valor complejo puede ser asignado simplemente como:

>> x = 2+i*4
Debe ser notado que MATLAB permite que el smbolo j sea usado como
entrada para representar la unidad imaginaria. Sin embargo, siempre
usa una i para mostrar el nmero:
>> x = 2+j*4

La raz cuadrada, trabaja con complejos. La unidad imaginaria se


representa en MATLAB como i o j, variables con dicho valor como
predeterminado:
>> sqrt(144)
>> sqrt(-144)

Existen diferentes valores predefinidos, por ejemplo, pi:


>> pi

Se pueden utilizar las funciones matemticas habituales. As, por


ejemplo, la funcin coseno:
>> cos(pi) % pi es una variable con valor predeterminado 3.14159...
o la funcin exponencial:
>> exp(1) % Funcin exponencial evaluada en 1, es decir, el nmero e

MATLAB muestra cuatro decimales. S se desea ms precisin, se


digita lo siguiente:

>> format long % devuelve el formato en 15 cifras decimales


Para retornar a la versin de cuatro decimales se digita:
>> format short % devuelve el formato estndar, en 4 cifras decimales

Los comandos MATLAB


Un comando es una orden o instruccin que el usuario proporciona a
un sistema informtico, desde la lnea de comandos (shell) o desde una
llamada de programacin.
Los comandos MATLAB permiten calcular el resultado de una
expresin ubicada a la derecha del signo igual, asignando el valor
resultante a la variable ubicada a la izquierda (variable de salida).
>> y = 4.32*log10(1+0.135)-5
Los comandos MATLAB no mostrarn el valor del resultado asignado a
la variable de salida cuando culminen con punto y coma.
>> y = 4.32*log10(1+0.135)-5;

Si no se asigna explcitamente la salida de un comando a una variable.


MATLAB asigna el resultado a la palabra reservada ans.

>> 4.32*log10(1+0.135)-5
El valor de ans vara con cada comando que reporte un valor de salida
que no se asigne a variable alguna.

>> 3.13^2-sqrt(1/0.4217)
Se puede ingresar ms de un comando en una lnea finalizndola con
coma (,) o punto y coma (;). Los comandos terminados con coma
muestran sus resultados cuando son ejecutados; mientras que los
terminados con punto y coma, no.
>> d=4/3.14; 1.3^4, exp(-0.31), w=d+ans

Cuando un comando genera mas de una salida, se debe especificar el


conjunto de variables de salida separadas por espacio en blanco o
con comas y encerrado, en conjunto, entre corchetes.
>> [A,B,C] = deal( [-12.3 4.89 -3.01] , pi*1.46, diag(12:4:24) )
El comando deal distribuye los valores de cada uno de sus entradas en
variables de salida separadas

Las funciones MATLAB


Ejecutan un conjunto de instrucciones que toman como datos un
conjunto de argumentos de entrada y devuelven como resultado un
conjunto de argumentos de salida
La sintaxis de una funcin MATLAB es
[v1,v2,...,vm] = nombreFcn(u1,u2,...,un)
Donde:
u1,u2,...,un : son los argumentos de entrada de la funcin
v1, v2,...,vn : son los argumentos de salida de la funcin
nombreFcn : es el nombre de la funcin

EJEMPLO:
Generacin de una matriz cuadrada de tamao 3x3 de elementos
aleatorios comprendidos entre 0 y 1.
>> A = rand(3)
Obtencin de los vectores propios y valores propios de la matriz del
ejemplo anterior.
>> [V,D] = eig(A)

Los arreglos
Son elementos dispuestos en dimensiones (en el caso de
dimensin 2, en filas y columnas). Estos elementos no
necesariamente obedecen a algn conjunto de reglas algebraicas
(por ejemplo, las del lgebra lineal), son slo elementos que
contienen valores.
Sea el caso mas usual, de dimensin 2, en el que los elementos
estn dispuestos en forma rectangular con m filas y n columnas:

Para ingresarla en MATLAB se digita:

Observaciones:
Los elementos de una misma fila deben separarse con espacio en
blanco o coma (,)
Todas las filas deben contener n elementos.
Todos los elementos deben ser de la misma clase

Para crear un vector fila en MATLAB, se escribe el conjunto de


elementos entre corchetes y se separan por espacios o una coma (,)
para delimitar los nmeros:
>> va=[-1 0 1]
>> va=[-1,0,1]
Para crear un vector columna, se escribe el conjunto de nmeros
entre corchetes y se separan por punto y coma (;):
>> vc=[1;2;4;16]
Un vector fila se puede convertir a un vector columna calculando su
transpuesto. Se usa el comando transpose (V) o la comilla(').
>> ve=va
>> ve=transpose(va)
>> vf=vc
>> vf=transpose(vc)

Calcular un vector fila, usando el vector columna ve:


>> ve=[1;2;4;16]
>> vf=ve
Para definir un vector igualmente espaciado se da el comando:
x=[ vi : i: vf]
Donde :
vi: valor inicial
vf: valor final
i: incremento
>> a=[0:1:9] %genera una matriz con un incremento de 1.
>> x = [0:0.25:2] %genera una matriz con un incremento de 0.25
>> x = [0:0.25:2] % es la transpuesta de x

Otra forma es usar el comando linspace (X1 , X2 , N). Este


comando genera N puntos entre los valores X1 y X2
>> B=linspace (0 ,2, 9)
Para definir una matriz se escriben las filas separadas por ";".
Para definir la matriz [B] de 2 filas y 3 columnas, se escribe:

>> B= [1 2 3;4 5 6]
Para indicar el elemento b12 se escribe:
>> b12=B(1,2)
De igual forma para indicar el elemento b23 escribe:
>> b23=B(2,3)

EJEMPLO:
Ingresar los siguientes arreglos o matrices:

>> M = [-3 2 1; 0 4 9; 1 7 8; 9 11 -3] %ES UNA MATRIZ 4x3


>> V = [-5; 4; 0; 7] %ES UN VECTOR COLUMNA

Otra forma de haber ingresado el arreglo es como un vector fila al


cual se le aplica la transpuesta:
>> V = [-5 4 0 7] %ES UN VECTOR FILA

EJEMPLO:
Ingresar los siguientes arreglos:

Donde: i = 1

>> B = [4+i 2+i; -3*i 3-i] %ES UNA MATRIZ 2x2


En MATLAB las variables i y j estn predefinidas con el valor de
1, por lo tanto otra forma de haber ingresado la matriz B es:
>> B = [4+j 2+j; -3*j 3-j]

Por otro lado, cuando se usa la unidad imaginaria, la premultiplicacin de cualquier nmero por la variable i o j no requiere
de la presencia explcita del operador de multiplicacin * (ste es el
nico caso, en los dems, siempre que se especifique una
multiplicacin deber de hacerse de forma explcita)
>> B = [4+i 2+i; -3i 3-i]
Observacin:
Basta que uno de los elementos del arreglo sea complejo y
MATLAB representar a todos los dems tambin como complejo.
Si son reales, tendrn un 0 en la parte imaginaria.

Funciones para clculos con polinomios:


Para MATLAB un polinomio se puede definir mediante un vector de
coeficientes. Por ejemplo, el polinomio:

MATLAB puede realizar diversas operaciones sobre l, como por


ejemplo evaluarlo para un determinado valor de x (funcin
polyval()) y calcular las races (funcin roots()):
>> pol=[1 0 -8 6 -10]
>> roots(pol) %calcula las raices del polinomio

Un polinomio se representa por un vector fila con sus coeficientes en


orden descendiente, no olvidando colocar los trminos con coeficiente
nulo.
Para encontrar las races de un polinomio p se usa la funcin roots (p).
Si se conocen las races de un polinomio es posible construir el
polinomio asociado mediante la funcin poly (r).
Matlab trabaja con los polinomios como vectores fila y con las races
como vectores columnas.

EJEMPLO:

>> p = [1 -9 13 9 -14]; % representa al polinomio x4-9x3+13x2-9x-14


>> roots (p) % calcula sus races
>> poly (ans) % devuelve el polinomio generado por esas cuatro races

Otras caractersticas del MATLAB respecto a polinomios:

Grficos:
La orden plot genera una grfica. Los argumentos deben ser
vectores de la misma longitud.

EJEMPLO:
>> x = [-2 -1 0 1 2 3]; y = [4 1 0 1 4 9];
>> plot (x,y)
Si se desea cambiar la apariencia de la grfica basta pinchar en el
ltimo botn de la barra de herramientas y se abrirn unos cuadros
en los laterales que permitirn ir haciendo los cambios deseados
como darle nombre a los ejes, etc.
La funcin plot
mismos ejes:

permite tambin superponer grficas sobre los

>> x = [-2 -1 0 1 2 3]; y = [4 1 0 1 4 9]; z = [6 5 3 7 5 2];


>> plot (x,y,x,z)

Tambin se puede usar distintos tipos de lneas para el dibujo de la


grfica:
>> plot (x,y,'*')

Se puede colocar etiquetas o manipular la grfica:

Etiqueta sobre el eje X de la grfica actual: >> xlabel('texto')


Etiqueta sobre el eje Y de la grfica actual: >> ylabel('texto')
Ttulo en la cabecera de la grfica actual: >> title('texto')
Texto en el lugar especificado por las coordenadas: >> text(x,y, 'texto')
Texto, el lugar lo indicamos despus con el ratn: >> gtext('texto')
Dibujar una rejilla: >> grid
Fija valores mximo y mnimo de los ejes: >> axis( [xmin xmax ymin
ymax] )
Fija que la escala en los ejes sea igual: >> axis equal
Fija que la grfica sea un cuadrado: >> axis square
Desactiva axis equal y axis square: >> axis normal
Abre una ventana de grfico: >> hold on
Borra lo que hay en la ventana de grfico: >> hold off

Para volver al modo por defecto basta escribir: subplot (1,1,1).


EJEMPLO:
Para dibujar polgonos se puede usar la funcin plot pero teniendo
en cuenta que el ltimo punto de ambos vectores deben coincidir
para que la grfica quede cerrada. Pero si lo que se quiere es que
quede coloreado todo el interior del polgono se usa mejor la funcin
fill, tiene tres argumentos, los dos vectores que forman los puntos y
un tercer argumento para indicar el color.
>> x = [-2 0 2 0 -2]; y = [4 8 4 0 4];
>> plot (x,y)
>> fill (x,y,'r') % dibuja el polgono, 'r' indica el color rojo

EJEMPLO:
>> x=-4:.01:4; y=sin(x); plot(x,y), grid, title('Funcin seno(x)')
Se observa que se abre una nueva ventana en la que aparece
representada la funcin y=sin(x). Esta figura tiene un ttulo
"Funcin seno(x)" y una cuadrcula o "grid".
La lnea anterior contiene varias instrucciones separadas por
comas o puntos y comas. En la primera se crea un vector x con
801 valores reales entre -4 y 4, incrementadas por una centsima
(0.01). A continuacin se crea un vector y, cada uno de cuyos
elementos es el seno del correspondiente elemento del vector x.
Despus se dibujan los valores de y en ordenadas frente a los de
x en abscisas. Las dos ltimas instrucciones establecen la
cuadrcula y el ttulo.

Para crear grficas en 3 dimensiones, se extiende la orden de plot (2-D)


a plot3 (3-D) donde el formato ser igual pero los datos estarn en
tripletes
EJEMPLO:

>> x = -720:720; y = sind (x); z = cosd (x);


>> plot3 (x,y,z)

EJEMPLO:
Dibujar la esfera unidad con ejes iguales.

>> sphere
axis equal

EJEMPLO:
Representar la superficie de la siguiente ecuacin:

[X,Y]=meshgrid(-7.5:.5:7.5);
Z=sin(sqrt(X.^2+Y.^2))./sqrt(X.^2+Y.^2);
surf(X,Y,Z)