0% encontró este documento útil (0 votos)
48 vistas51 páginas

Mat Lab Progra

Este documento introduce el lenguaje de programación MATLAB. Explica los elementos básicos del escritorio de MATLAB, números y operaciones matemáticas, vectores y matrices, y funciones para realizar operaciones, gráficos y análisis numérico.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
48 vistas51 páginas

Mat Lab Progra

Este documento introduce el lenguaje de programación MATLAB. Explica los elementos básicos del escritorio de MATLAB, números y operaciones matemáticas, vectores y matrices, y funciones para realizar operaciones, gráficos y análisis numérico.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd

CURSO MATEMATICA III

ESCUELA: INGENIERA CIVIL

INTRODUCCIN A
MATLAB

Indice
Introduccin
Nmeros y operaciones
Vectores y matrices
Operaciones con vectores y matrices
Funciones para vectores y matrices
Polinomios
Grficos 2D y 3D
Programacin
Anlisis numrico

Introduccin

Qu es Matlab?, MATrix LABoratory

Es un lenguaje de programacin (inicialmente escrito en C)


para realizar clculos numricos con vectores y matrices.
Como caso particular puede tambin trabajar con nmeros
escalares, tanto reales como complejos.

Cuenta con paquetes de funciones especializadas

Introduccin
Elementos bsicos del escritorio de Matlab

Command Windows: Donde se ejecutan todas las instrucciones y


programas. Se escribe la instruccin o el nombre del programa y se da a
Enter.

Command History: Muestra los ltimos comandos ejecutados en


Command Windows. Se puede recuperar el comando haciendo doble

Current directory: Situarse en el directorio donde se va a trabajar

Help (tambin se puede usar desde comand windows)

Workspace: Para ver las variables que se estn usando y sus


dimensiones (si son matrices)

Editor del Matlab: Todos los ficheros de comandos Matlab deben de llevar
la extensin .m

Introduccin
Elementos bsicos del escritorio de Matlab

Current
directory

Command
Windows
Command
History

Introduccin
Algunos comentarios sobre la ventana de comandos
Se pueden recuperar instrucciones con las teclas
Se puede mover por la lnea de comandos con las teclas .

Ir al comienzo de la lnea con la tecla Inicio y al final con Fin.


Con Esc se borra toda la lnea.
Se puede cortar la ejecucin de un programa con Ctrl+C

Nmeros y operaciones
Datos numricos:

No hace falta definir variables enteras, reales, etc. como en otros lenguajes
Nmeros enteros: a=2
Nmeros reales: x=-35.2
Mximo de 19 cifras significativas
2.23e-3=2.23*10-3

Precisin y formatos: Por defecto tiene un formato corto, pero se pueden


usar otros
>> format long (14 cifras significativas)
>> format short (5 cifras significativas)
>> format short e (notacin exponencial)
>> format long e (notacin exponencial)
>> format rat (aproximacin racional)

Ver en men de File: Preferences Command Windows

Preferences

(en el men de File)

Nmeros y operaciones
Datos numricos:

Son sensibles a las maysculas: x=5, X=7

Informacin sobre variables que se estn usando y sus dimensiones (si son
matrices): Workspace. Tambin tecleando
>> who
>> whos (da ms informacin)

Para eliminar alguna variable se ejecuta


>> clear variable1 variable2
Si se quieren borrar todas las variables:

>> clear

Constantes caractersticas: pi=, NaN (not a number, 0/0), Inf= .

Nmeros complejos: i=sqrt(-1) (slo se puede usar i o j), z=2+i*4, z=2+4i


Cuidado con no usar luego i como contador en un bucle
trabajando con complejos.

Nmeros y operaciones
Operaciones aritmticas elementales:

Suma: +, Resta -

Multiplicacin: *, Divisin: /

Potencias: ^

Orden de prioridad: Potencias, divisiones y multiplicaciones y por


ltimo sumas y restas. Usar () para cambiar la prioridad

Nmeros y operaciones
Operaciones aritmticas elementales :

Ejemplo: main_operaciones_numeros.m

Instruccin clear.
Funcionamiento de Debugger: run, breakpoint, step
Evaluar una lnea.
Cometer un error de programacin para que el Debugger te d la
lnea.
Comentarios sobre el editor: ; para que no escriba, % para
comentar lneas, para continuar una linea
No se pueden dejar espacios en blanco en el nombre de un fichero

Nmeros y operaciones
Funciones de Matlab:

exp(x), log(x), log2(x) (en base 2), log10(x) (en base 10), sqrt(x)

Funciones trigonomtricas: sin(x), cos(x), tan(x), asin(x), acos(x),


atan(x), atan2(x) (entre pi y pi)

Funciones hiperblicas: sinh(x), cosh(x), tanh(x), asinh(x),


acosh(x), atanh(x)

Otras funciones: abs(x) (valor absoluto), int(x) (parte entera),


round(x) (redondea al entero ms prximo), sign(x) (funcin
signo)

Funciones para nmeros complejos: real(z) (parte real), imag(z)


(parte imaginaria), abs(z) (mdulo), angle(z) (ngulo), conj(z)
(conjugado)

Vectores y matrices
Definicin de vectores:

Vectores fila; elementos separados por blancos o comas


>> v =[2 3 4]

Vectores columna: elementos separados por punto y coma (;)


>> w =[2;3;4;7;9;8]

Dimensin de un vector w: length(w)

Generacin de vectores fila:


Especificando el incremento h de sus componentes v=a:h:b
Especificando su dimensin n: linspace(a,b,n) (por defecto
n=100)
Componentes logartmicamente espaciadas logspace(a,b,n) (n
puntos logartmicamente espaciados entre 10a y 10b. Por defecto
n=50)

Vectores y matrices
Definicin de matrices:

No hace falta establecer de antemano su tamao (se puede definir


un tamao y cambiarlo posteriormente).

Las matrices se definen por filas; los elementos de una misma


fila estn separados por blancos o comas. Las filas estn
separadas por punto y coma (;).
M=[3 4 5; 6 7 8; 1 -1 0]

Matriz vaca: M=[ ];

Informacin de un elemento: M(1,3), de una fila M(2,:), de una


columna M(:,3).

Cambiar el valor de algn elemento: M(2,3)=1;

Eliminar una columna: M(:,1)=[ ], una fila: M(2,:)=[ ];

Vectores y matrices
Definicin de matrices:

Generacin de matrices:
Generacin de una matriz de ceros, zeros(n,m)
Generacin de una matriz de unos, ones(n,m)
Inicializacin de una matriz identidad eye(n,m)
Generacin de una matriz de elementos aleatorios rand(n,m)

Aadir matrices: [X Y] columnas, [X; Y] filas

Operaciones con vectores y matrices


Operaciones de vectores y matrices con escalares:
v: vector, k: escalar:

v+k adicin o suma


v-k sustraccin o resta
v*k multiplicacin
v/k divide cada elemento de v por k
k./v divide k por cada elemento de v
v.^k potenciacin de cada componente de v a k
k.^v potenciacin k elevado a cada componente de v

Operaciones con vectores y matrices

+ adicin o suma
sustraccin o resta
* multiplicacin matricial
.* producto elemento a elemento
^ potenciacin
.^ elevar a una potencia elemento a elemento
\ divisin-izquierda
/ divisin-derecha
./ y .\ divisin elemento a elemento
matriz traspuesta: B=A (en complejos calcula la traspuesta
conjugada, slo la traspuesta es B=A.)

Funciones para vectores y matrices


Funciones de matlab para vectores y matrices:

sum(v) suma los elementos de un vector

prod(v) producto de los elementos de un vector

dot(v,w) producto escalar de vectores

cross(v,w) producto vectorial de vectores

mean(v) (hace la media)

diff(v) (vector cuyos elementos son la resta de los elemento de v)

[y,k]=max(v) valor mximo de las componentes de un vector (k indica la


posicin), min(v) (valor mnimo). El valor mximo de una matriz M se
obtendra como max(max(M)) y el mnimo min(min(v))

Aplicadas algunas de estas funciones a matrices, realizan dichas


operaciones por columnas.

Funciones para vectores y matrices


Funciones de Matlab para vectores y matrices

[n,m]=size(M) te da el nmero de filas y columnas

matriz inversa: B=inv(M), rango: rank(M)

diag(M): Obtencion de la diagonal de una matriz. sum(diag(M))


calcula la traza de la matriz A. diag(M,k) busca la k-sima diagonal.

norm(M) norma de una matriz (mximo de los valores absolutos de


los elementos de A)

flipud(M) reordena la matriz, haciendo la simtrica respecto de un


eje horizontal. fliplr(M) ) reordena la matriz, haciendo la simtrica
respecto de un eje vertical

[V, landa]=eig(M) da una matriz diagonal landa con los autovalores


y otra V cuyas columnas son los autovectores de M

Funciones para vectores y


matrices

Guardar en ficheros y recuperar datos:


save nombre_fichero nombre_matriz1, nombre_matriz2
load nombre_fichero nombre_matriz1, nombre_matriz2
save nombre_fichero nombre_matriz1 ascii (guarda 8 cifras

decimales)

save nombre_fichero nombre_matriz1 ascii double (guarda 16

cifras decimales)

Polinomios

Los polinomios se representan en Matlab por un vector fila de


dimensin n+1 siendo n el grado del polinomio. Ejemplo: x3+2x-7
se representa por
>> pol1=[1 0 2 -7]

Clculo de las races: roots (da un vector columna, aunque pol1 es


un vector fila)
>>raices=roots(pol1)

Un polinomio puede ser reconstruido a partir de sus races con el


comando poly
>> p=poly(raices) (da un vector fila) **

Si el argumento de poly es una matriz se obtiene el polinomio

caracterstico de la matriz.

Polinomios
Funciones de Matlab para polinomios

Calcular el valor de un polinomio p en un punto dado x: polyval


>>y=polyval(p,x)

Multiplicar y dividir polinomios: conv(p,q) y deconv(p,q)

Calcular el polinomio derivada: polyder(p)

Grficos 2D y 3D
Funciones grficas 2D y 3D elementales

2D: plot() crea un grfico a partir de vectores con escalas lineales


sobre ambos ejes,
>> plot(X,Y,opcin) (opcin: permite elegir color y trazo de la
curva)
hold on: permite pintar ms grficos en la misma figura (se

desactiva con hold off)


grid activa una cuadrcula en el dibujo. Escribiendo de nuevo grid
se desactiva.

2D: loglog() escala logartmica en ambos ejes, semilogx():


escala lineal en el eje de ordenadas y logartmica en el eje de
abscisas, semilogy(): escala lineal en abscisas y logartmica en
ordenadas

Grficos 2D y 3D
Funciones grficas 2D y 3D elementales

2D: subplot(n,m,k) subdivide una ventana grfica se puede en m


particiones horizontales y n verticales y k es la subdivisin que se
activa.

2D: polar(ngulo,r) para pintar en polares

2D: fill(x,y,opcin) dibuja una curva cerrada y la rellena del color


que se indique en opcin

3D: plot3 es anloga a su homloga bidimensional plot.

plot3(X,Y,Z, opcin)

Grficos 2D y 3D
Eleccin de la escala de los ejes

axis([x0 x1 y0 y1]) (2D), axis([x0 x1 y0 y1 z0 z1]) (3D)

axis auto: devuelve la escala a la de defecto

axis off: desactiva los etiquetados de los ejes desapareciendo los ejes,
sus etiquetas y la malla, axis on: lo activa de nuevo

axis equal: los mismos factores de escala para los dos ejes

axis square: cierra con un cuadrado la regin delimitada por los ejes de
coordenadas actuales.

Para elegir las etiquetas que aparecen en los ejes:


set(gca, XTick,-pi:pi/2,pi) %gca:get current axis
set(gca, XTicklabel,({-pi,-pi/2,0,pi/2,pi})

Grficos 2D y 3D
Funciones para aadir ttulos a la grfica

title('ttulo') aade un ttulo al dibujo. Para incluir en el texto el


valor de una variable numrica es preciso transformarla mediante :
int2str(n) convierte el valor de la variable entera n en carcter
num2str(x) convierte el valor de la variable real o compleja x en

carcter. Ejemplo: title(num2str(x))

xlabel(texto) aade una etiqueta al eje de abscisas. Con xlabel


off desaparece. Lo mismo ylabel(texto) o zlabel(texto)

text(x,y,'texto') introduce 'texto' en el lugar especificado por las


coordenadas x e y. Si x e y son vectores, el texto se repite por cada
par de elementos.

gtext('texto') introduce texto con ayuda del ratn.

Grficos 2D y 3D

Funciones de Matlab para grficos 2D y 3D

Imprimir grficos: Print (botn File en ventana grfica)

Guardar grficos: Save (botn File en ventana grfica): Se crea un


fichero .fig que podr volver a editarse y modificarse

Exportar grficos: Export (botn File en ventana grfica)

figure(n): Llamar una nueva figura o referirnos a una figura ya


hecha

close all borra todas las figuras, close(figure(n)) una en concreto

Ejercicio I

Representar las funciones:


y1= sin(3 x)/ex
y2=cos(3 x)/ex
con x variando entre 0 y 3 ,obteniendo una nica figura de la forma:

Ejercicio II
a)

Obtener la solucin del sistema de ecuaciones:


3x+2y-z=1
5x+y+3z=-2
3y-4z=3

b)

Sea A de coeficientes del sistema anterior. Calcular el mximo


autovalor de A y su autovector asociado como salida del programa

Grficos 2D y 3D
Representacin grfica de superficies

Creacin de una malla a partir de vectores [X, Y]=meshgrid(x,y)


Grfica de la malla construida sobre la superficie Z(X,Y):
mesh(X,Y,Z), meshc(X,Y,Z) (dibuja adems lneas de nivel en el
plano z=0)
Grfica de la superficie Z(X,Y): surf(X,Y,Z), surfc(X,Y,Z)
pcolor(Z) dibuja proyeccin con sombras de color sobre el plano (la
gama de colores est en consonancia con las variaciones de Z)
contour(X,Y,Z,v) y contour3(X,Y,Z,v) generan las lneas de nivel
de una superficie para los valores dados en v. Para etiquetar las
lneas, primero cs=contour(Z) (para saber los valores del contorno)
y luego clabel(cs) o directamente clabel(cs,v)

Grficos 2D y 3D
Representacin grfica de superficies
Diferentes formas de representar los polgonos coloreados:
shading flat: sombrea con color constante para cada polgono.
shading interp: sombrea calculado por interpolacin de colores
entre los vrtices de cada polgono
shading faceted: sombreado constante con lneas negras
superpuestas (opcin por defecto)

hidden off (desactiva la desaparicin de lneas escondidas),


hidden on (lo activa)

Manipulacin de grficos
view(azimut, elev), view([xd,yd,zd])
rotate(h,d,a) o rotate(h,d,a,o), h es el objeto, d es un vector
que indica la direccin, a un ngulo y o el origen de rotacin
En ventana grfica: View (camera toolbar)

Grficos 2D y 3D
Transformacin de coordenadas

[ang,rad]=cart2pol(x,y), de cartesianas a polares


[ang,rad,z]=cart2pol(x,y,z), de cartesianas a cilindricas
[x,y]=pol2cart(ang,rad), de polares a cartesianas
[x,y,z]=pol2cart(ang,rad,z), de cilindricas a cartesianas
[angx,angz,rad]=cart2sph(x,y,z), de cartesianas a esfericas
[x,y,z]=aph2cart(angx,angz,rad), de esfericas a cartesianas

Grficos 2D y 3D
Creacin de pelculas

Una pelcula se compone de varias imgenes (frames)

getframe se emplea para guardar todas esas imgenes. Devuelve


un vector columna con la informacin necesaria para reproducir la
imagen que se acaba de representar, por ejemplo con la funcin
plot. Esos vectores se almacenan en una matriz M.

movie(M,n,fps) representa n veces la pelcula almacenada en M a


una velocidad de fps imgenes por segundo
X=0:0.01:2*pi;
for j=1:10
plot(x,sin(j*x)/2)
M(j)=getframe;
end
movie(M,4,6)

Programacin
Ficheros de Matlab

Ficheros de programa: Se construyen mediante una secuencia de


comandos. El fichero principal se llamar main_nombre.m

Ficheros de funcin: para crear funciones propias. Son llamados


por los ficheros de programa.
La primera lnea es ejecutable y empieza por la palabra function
de la forma:
function arg_salida=funcion_nombre(arg_entrada, parametros)
El fichero se debe guardar como funcion_nombre.m

Comandos de entrada y salida:


input: permite introducir datos: ae=input(Teclee valor de a);
disp: muestra un texto por pantalla: disp(El algoritmo no ha
convergido)

Ejemplo: main_pintarseno.m

Programacin
Ficheros de Matlab

Ficheros de programa: Se construyen mediante una secuencia de


comandos. El fichero principal se llamar main_nombre.m

Ficheros de funcin: para crear funciones propias. Son llamados


por los ficheros de programa.
La primera lnea es ejecutable y empieza por la palabra function
de la forma:
function arg_salida=funcion_nombre(arg_entrada,
parametros)
El fichero se debe guardar como funcion_nombre.m
Comandos de entrada y salida:
input: permite introducir datos: ae=input(Teclee valor de
a);
disp: muestra un texto por pantalla: disp(El algoritmo no
ha convergido)

Programacin
Funciones de funciones

fzero(nombre_funcion,x0): Calcula el cero de una funcin ms


prximo al valor de la variable x0

fminsearch(funcion,x0): calcula el mnimo relativo de una


funcin ms prximo a x0

fminbnd(funcion,a,b): calcula un mnimo de la funcin en el


intervalo [a,b]

Lectura y escritura de variables

Input
Aparece en pantalla pidiendo un dato. Si
se desea asignar una cadena se debe
agregar el argumento s
Ejemplo
>> z = input ( Ingrese un numero)
>> z = input (Ingrese su nombre :, s)

Disp

Permite visualizar en pantalla un


mensaje o el valor de una matriz, pero
sin imprimir su nombre.
Ejemplo:
Disp( El programa ha terminado)
Disp([ k,m])

FORMATO DE SALIDA: fprintf

Permite visualizar en pantalla un valor


numrico o el resultado de una expresin
generada por el usuario. Tiene la ventaja que
se puede escoger un formato:
%d: para variables enteras
%f: para variables decimales
%1f: para grandes variables decimales
Ejemplo:
fprintf(El volumen de la esfera es
%12.5f.,vol)

>> Vol = 100

Estructuras
condicionales

Operaciones lgicas:
>, <,
>=,<=,== (igual)
| (or), disyuncin
&(and) conjuncin
~ (no),
~= (no igual)

Estructura If
If condicin

sentencias
end
Con dos bloques de sentencias
If
condicin

Bloque 1 de sentencias
Else % opcin por defecto cuando no se
cumple la condicin 1,puede ser omitida

Bloque 2 de sentencias
End

EJEMPLOS
>>x=4;
If ( x+ 1 == 5)
fprintf (El nmero es igual a cuatro, \n);
Else
fprintf ( El nmero es diferente de cuatro, \n);
end

Con condiciones mltiples

If

condicin 1
bloque 1
Elseif
condicin 2
bloque 2
Elseif
condicin 3
bloque 3
Elseif
condicin 4
bloque 4
else
% opcin por defecto
cuando no se cumple ni la
condicin 1, ni 2, ni 3,ni 4.
bloque 5
end

Function: permite definir


funciones
Los argumentos de entrada son los datos
de la funcin
Los argumentos de salida o valores de
retorno son los resultados
Sintaxis
function[ w, y , z]=nombre de la funcin( x, h )
Si hay mas de un valor de entrada o de
salida se separaran por comas

function y = cubica(x)
y = 2*x^3 + 8;

ESTRUTURAS REPETITIVAS
Estructura For: Permite repetir la ejecucin de un
bloque de sentencias, un numero definido de veces

for x = 9: -2: 1
y = x.^2 - 1
disp( [ x,y]);
end
^
Variable : k
Valor inicial: n1
Valor final: n2
Incre: incremento

Estructuras
condicionales
Operaciones

lgicas:

>, <, >=,<=,== (igual)

| (or), &(and)

~ (no),
~= (no igual)

if
end

if
else
end

if
elseif
else
end

Programacin

Interpolacin

1D:
Se define un polinomio de un cierto grado (ejemplo, n=2,
ax^2+bx+c), para hacer la interpolacin: p=polyfit(x,y,n). Si se
quiere la interpolacin en ciertos valores xi: yi=polyval(p,xi).
yi = interp1(x,Y,xi,metodo). Mtodos: linear (interpolacin
lineal), cubic (cbica), spline (spline cbica)

2D:
matriz_Z=interp2(X,Y,Z,matriz_X,matriz_Y,metodo). Mtodos:
bilinear (interpolacin lineal), bicubic (cbica)

Anlisis numrico

Integracin

1D: quad, quadl: integran una funcin en un intervalo [a,b]


quad(funcion,a,b)

2D: dblquad: integran una funcin en un intervalo


[xmin,xmax]x[ymin,ymax]
dblquad('y*sin(x)+x*cos(y)',xmin,xmax,ymin,ymax)

Anlisis numrico

Resolucin de ecuaciones diferenciales

Resolucin de problemas de valores iniciales para ecuaciones


diferenciales ordinarias (ODEs)

[T,Y]=solver(F,tspan,Y0)
solver: algoritmo de resolucin de ODEs, ode45, ode23,
ode113, ode15s,ode23s.
F: funcin que contiene las ecuaciones diferenciales en forma
matricial
Tspan: vector de tiempos [t0 tfinal] de integracin.
Y0: vector columna de condiciones iniciales en t0

También podría gustarte