Sunteți pe pagina 1din 63

JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.

14

UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS


(Universidad del Perú, DECANA DE AMÉRICA)
FACULTAD DE CIENCIAS MATEMATICAS
(CEUPSMAT)

Asesor: Lic. José Jeremías Caballero Cantu


PERFIL
Con estudios de Maestría en Matemática Computacional, con más de 10 años de
experiencia laboral en docencia universitaria, con un nivel de conocimiento avanzado de
matemáticas y computación científica.

Asesor online en Matlab


Asesor de Proyectos con Matlab
Programador en Matlab:

Asesor en Comunidad de Programadores

Página: http://www.lawebdelprogramador.com/foros/Matlab/
Foro de Matlab: http://www.lawebdelprogramador.com/foros/agregar.php?id=132
Blog personal: http://matlabcaballero.blogspot.com/
Group Facebook: https://www.facebook.com/groups/matlabcaballero/
Página Facebook: https://www.facebook.com/matlabcaballero

Correo: jjcc94@hotmail.com
Skype: josejeremiascaballero
Celular: +51 995757570

______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 1
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

SYLLABUS DE MATLAB BÁSICO


Temas Vectores y matrices, Gráficos 2D y 3D, Álgebra lineal, funciones estadísticas,
funciones de procesamientos imágenes, calculo simbólico, bloques de Simulink, matlab
guide

1ra semana
Presentación de Matlab. Ambiente Matlab, Help de Matlab, Ejecución de programas
demos de Matlab. Entrada y salida de información en Matlab, almacenamiento de
variables,
Vectores y Matrices: Entrada de datos por el teclado, funciones simbólicas Vectores y
Matrices. Vectores filas y columnas, Reconocimiento de índices de vectores y matrices.
Operaciones de suma de vectores y matrices. Concatenación de vectores y matrices,
operaciones elemento a elemento de vectores y matrices, operaciones de dos puntos con
vectores y matrices, producto escalar, producto vectorial. Multiplicación de matrices.
Matrices especiales. Aplicación de matrices a imágenes.

2da semana
Solución de Sistemas lineales en Matlab, álgebra lineal para matrices.
autovalores de una matriz, normas de una matriz y vectores.

Grafica 2d en Matlab. Nivel básico. Uso de los comandos de Matlab para graficas en
2d. La función plot, plotty, loglog, semilogx, semilogy, legend, explot, añadir graficas
a graficas ya existentes (superposición de graficas), subplot, control de ejes, función
inline, control de ventajas de gráficas, la función

Grafica 2d en Matlab. Nivel intermedio. La utilización de funciones: Color ( color


de línea). LineWith(ancho de la línea). MarkerEdgeColor(color del borde de las
marcas). MarkerFaceColor(color de la marca), MarkerSize (tamaño de la marca), la
función handle y demás funciones de grafica avanzada. Graficas en coordenadas
polares,

3ra semana
Grafica 3d en Matlab. Nivel Básico. Graficas de curvas en 3 dimensiones, la función
plot3; generación de mallados con la función meshgrid. Graficas de superficies en
coordenadas rectangulares, la utilización de la funciones mesh, meshz, meshc, surf,
surfl, contour, contour3, pcolor, para graficar una superficie en coordenadas
rectangulares.

Grafica 3d en Matlab. Nivel Intermedio.


Transformación de coordenadas rectangulares a coordenadas cilíndricas. Graficas en
coordenadas cilíndricas, en coordenadas esféricas, y en coordenadas paramétricas, el
uso de la función view para distintos puntos de observación.
Utilización de comandos de Matlab simbólico para graficar superficies, cylinder,
sphere, ellipsoid.

4ta semana
Funciones Estadísticas. Mediana, Desviación Estándar, Covarianzas, Numero
Aleatorios. Graficas estadísticos, diagrama de sectores, diagrama de Pareto,
histogramas
______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 2
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

Funciones Básicas de Procesamiento de Imágenes. Imread, imshow, image, rgb2gray,


etc.

5ta semana
Calculo Simbólico
Polinomios: Operación con Polinomios, evaluación de polinomios, productos de
polinomios, división de polinomios, derivada de polinomios, integral de polinomios,
fracciones parciales de polinomios, raíces de polinomios,

Introducción a Simulink Funciones básicas Simulink: scope, To workspace etc

6ta semana
Introducción a Matlab guide Como entrar al guide de Matlab. Uso de Static Text,
Uso de Edit Text, Uso de get y set en un guide, Uso de Push Button, importación y
exportación de variables en guide. Uso de inspector Programas resueltos a nivel
Matlab Guide.
Uso de Axes, Uso de Panel. Control de colores de los ejes, Control de color de los
Etiquetas..

______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 3
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

CAPITULO I

ENTORNO DE MATLAB
Y ARREGLOS DE VECTORES Y MATRICES
1.1 INICIANDOSE EN MATLAB 7.14 (R2012a)
Luego nos va a salir la siguiente ventana.

Primeramente se va a trabajar en la ventana de “command window”

1.2 AMBIENTES DE MATLAB 7.14


El área de trabajo de Matlab está básicamente constituida por:
Commad Window: Ventana de Comandos
El es lugar donde se digitan las instrucciones para Matlab y en donde también se
ven los resultados de las instrucciones.
El prompt '>>' indica que está esperando instrucciones para luego visualizar los
resultados de las instrucciones

Las teclas y repiten los


Comandos digitados anteriormente.

Works pace: Espacio de trabajo


Área de memoria de trabajo
de Matlab, en la cual se hallan
Almacenadas todas las variables
Definidas.

Current Directory:
______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 4
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

Directorio Actual

Área en donde se visualiza la lista


de los archivos contenidas en
este directorio actual.

Command History: Historia de Comandos


Área donde se hallan almacenados
Todos los comandos que fueron ejecutados
en Matlab

LA BARRA DE HERRAMIENTAS

Esta barra contiene


[New M-File] Crea nuevo M-File [Paste] Pega datos
[Open File] Abre Archivo [Undo] Deshace Operación

[Cut] Recorta Datos [Redo] Rehace Operación


[Copy] Copia datos [Help] Abre el navegador ayuda

1.3 CÓMO SALIR DE MATLAB 7.14


Hay varias formas de Salir de Matlab,
la primera forma es digitar en la ventana
Command window el comando quit.

______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 5
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

También puede salir digitando el


Comando exit

También se puede salir de otra forma


Haciendo clic en Exit MATLAB o Ctrl+Q.

1.4 OPERACIONES BÁSICAS


Guarda 5 en la variable a Guarda 10 en la variable b Sumando a y b
>> a=5 >> b=10 >> s=a+b
a= b= s=
5 10 15
Restando b de a División a entre b Multiplica a y b
>> R=a-b >> D=a/b >> M=a*b
R= D= M=
-5 0.5000 50
a elevado a la potencia 2 Guarda en la variable ans >> c=5^2-6/2+5*4
>> d=a^2 por defecto c=
d= >> M/2 42
25 ans =
25

1.5 FUNCIONES MATEMATICAS


La raíz cuadrada de 2 Da el valor de pi La raíz cubica de 3
>> x=sqrt(2) >> p=pi >> nthroot(-8,3)
x= ans =
1.4142 -2
Logaritmo en base 10 Logaritmo neperiano Da el resto de 50/4
>> log10(100) >> log(10) >> z=rem(50,4)
ans = ans = z=
2 2.3026 2

______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 6
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

1.6 COMANDOS IMPORTANTES


>> whos >> who
Name Size Bytes Your variables are:
Class Attributes D
D 1x1 8 z
double
z 1x1 8 double

>> whos z >> z


Name Size Bytes z =
Class Attributes 2

z 1x1 8 double
Borra la variable z de la >> z
memoria Undefined function or variable 'z'.
>> clear z

Limpia la pantalla de comannd Crea archivo name.doc


window >> diary name.doc
>>clc
>> dir >> dir *.m
Ejercicio_4.rar Gui_Table_uicontrol.m
Elemento.pdf Una_empresa_de_Prestamos.m
exportar_importar_datos_excel.m adquisicion_datos1.m
fechas.m bairstow.m
formas_de_ejecutar.doc bairstow1.m
gausiana_adelante.m
>>demo >save M

>> help sqrt See also sqrtm, realsqrt, hypot.


sqrt Square root. Overloaded methods:
sqrt(X) is the square root of the codistributed/sqrt
elements of X. Complex Reference page in Help browser
results are produced if X is not doc sqrt
positive.
>> pwd >>path
ans = MATLABPATH
E:\MATLAB ESCRITORIO C:\Users\jeremias\Desktop
H:\Users\Jeremias\Downloads\winOnTop
Files\MATLAB\R2011b\toolbox\matlabxl\matlabxl

>> version Para verificar si un comando sin existe en matlab


ans = >>which sin
7.13.0.564 (R2011b)
>> syms variable
>> syms x

______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 7
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

1.7 CREANDO VECTORES


Los vectores se pueden introducir separando sus componentes por espacios en
blanco o por comas.
Ejemplo:
Vector=[ a b c d] define un vector fila de valores a, b, c, d.
Vector=[ a ,b, c, d] define un vector fila de valores a, b, c, d.
Vector=[ a ;b ;c ;d] define un vector columna de valores a, b, c, d.

1.7.1 VECTOR FILA >>%Primera forma


¿Cómo digitamos un vector fila en >> V=[2 5 8 6 -10]
Matlab? V=
Ejemplo: Sea el vector 2 5 8 6 -10
>>%Segunda forma
V  (2,5,8,6 10) >> V=[2, 5 ,8, 6,-10]
En Matlab digitamos V=
2 5 8 6 -10

1.7.2 VECTOR COLUMNA >>%Primera forma


¿Cómo digitamos un vector Columna >> V=[2 ; 5; 8 ; 6 ; -10]
en Matlab? V=
2
2 
5  5
  8
Ejemplo: Sea el vector V  8  6
  -10
6  >>%Segunda forma
 10 
En Matlab digitamos
OPERACIÓN (:) PUNTOS Crea el vector b de 0 al 9 con tamaño de
V=V_INICIAL: INCREMENTO: V_FINAL paso 3
Crea el vector a desde 1 al 4 >> b=0:3:9
>> a=1:4 b=
a= 0 3 6 9
1 2 3 4

VISUALIZAR LOS ELEMENTOS DE Los elementos del vector y desde el 1ro al


UN VECTOR V. 4to con un incremento de 1
Crea el vector z >> y(1:4)
>> z=(0:0.1:0.5)*pi ans =
z= 1.0000 0.9511 0.8090 0.5878
0 0.3142 0.6283 0.9425 1.2566 1.5708
Los elementos del vector y desde la
Toma coseno a cada elemento del vector posición 2 hasta posición 6 con un
z incremento de 2.
>> y=cos(z) >> y(2:2:6)
y= ans =
1.0000 0.9511 0.8090 0.5878 0.3090 0.0000 0.9511 0.5878 0.0000

______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 8
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

V(i) es el elemento de la posición i-ésima El 5to, 1ro y el 6to elemento del vector y
del vector V >> y([5 1 6])
ans =
El 2do elemento del vector y 0.3090 1.0000 0.0000
>> y(2)
ans =
0.9511

OPERACIONES CON VECTORES Sirve para ver el tamaño del vector B


En d guarda los elementos del vector a >>length(a)
desde 1ro al 4to con un incremento de 2, ans =
más los números 5, 8,9. 4
>> d=[a(1:2:4) 5 8 9]
d= Producto escalar de vectores a y b
1 3 5 8 9 >> dot(a,b)
ans =
Resta 3 al vector d 60
>> d-3
ans = Error de multiplicación de vectores
-2 0 2 5 6 >> a*b
??? Error using *
Multiplica por 2 al vector d y resta 2 Inner matrix dimensions must agree.
>> 2*d-2
0 4 8 14 16 La transpuesta del vector a
>> a'
Suma los vectores a y b ans=
>> a+b 1
ans = 2
1 5 9 13 3
4

OPERACIÓN ELEMENTO A Multiplica el vector a con el vector b


ELEMENTO EN UN VECTOR elemento a elemento
Multiplica los vectores a y b elemento a >> a.*b
elemento ans =
>> a.*b 0 6 18 36
ans =
0 6 18 36 b elevado a la potencia a elemento a
elemento
a elevado a la potencia 2 elemento a >> b.^a
elemento ans =
>> a.^2 0 9 216 6561
ans =
1 4 9 16 Elimina el 3to elemento del vector b
>> b(3)=[]
Divide el vector a entre el vector b b=
elemento a elemento 0 3 9
>> a./b
ans = >> b(5)=12
Inf 0.6667 0.5000 0.4444 b=
0 3 9 0 12

______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 9
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

1.8 CREANDO MATRICES La transpuesta de la matriz A


Cómo generamos una matriz de 2 filas >> A'
y 4 columnas en matlab? ans =
3 5 7
1 2 3 4 
M   5 1 4
5 6 7 8  8 9 9
Veamos Devuelve la traza de la matriz A (suma de
Genera una matriz M de 2 filas y 4 los elementos de la diagonal)
columnas >> trace(A)
>> M=[1 2 3 4; 5 6 7 8] ans =
M= 13
1 2 3 4
5 6 7 8 Devuelva el determinante de la matriz A
>> det(A)
Genera una matriz A de 3 filas y 3 ans =
columnas 113
>> A=[3 5 8; 5 1 9; 7 4 9]
A= Cambia a cero el elemento de la 3ra fila y
3 5 8 3ra columna de la matriz A
5 1 9 >>A (3,3)=0
7 4 9 A=
3 5 8
5 1 9
7 4 0

Como ver las filas y columnas de una C=


matriz A 3 5 8 7 0
Visualiza la 1ra columna de A 5 1 9 5 9
>> A(:,1) 7 4 0 3 8
ans =
3 Crea B tomando las dos 1ras filas y las
5 dos últimas columnas de A
7 >> B=A(1:2,2:3)
Visualiza la 3ra fila de A B=
>> A(3,:) 5 8
ans = 1 9
7 4 0 Crea el vector columna B al disponer de
Observación: A(: Columna,: Fila) todas las columnas de A
>> B=A(:)
Crea una matriz B tomando todas las filas
B=
de A en orden inverso
3
>> B=A(3:-1:1,:)
5
B=
7
7 4 0
5
5 1 9
1
3 5 8
4
Crea la matriz C tomando la matriz A y 8
las columnas 1ro y 3ro de B 9
>> C=[ A B(:, [1 3])] 0

______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 10
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

Asigna la matriz A en B Sustituye la 2da fila de A con T


>> B=A >> A(2,:)=T
B= 3 5 8
3 5 8 7 0 12
5 1 9 7 4 0
7 4 0
Coloca 1 en la fila 2 y columna 6 de la
Eliminar una columna de la Matriz A matriz A.
La 2da columna de la matriz B, es >>A(2,6)=1
eliminada A=
>> B(:,2)=[ ] 3 5 8 0 0 0
B= 7 0 12 0 0 1
3 8 7 4 0 0 0 0
5 9
7 0 Sirve para ver el tamaño de la matriz A
>> s=size(A)
Toma la transpuesta de la matriz B s=
>> B' 2 6
ans =
3 5 7 f # de filas y c # de columnas de A
8 9 0 >> [f c]=size(A)
f=
la 2da fila de la matriz B es eliminado 3
>> B(2,:)=[ ] c=
B= 6
3 8
7 0
>> T=[B(2,:) 12]
T=
7 0 12

Matrices Especiales >> zeros(2)


Crea una matriz de unos de orden 3x 2. ans =
>> ones(3,2) 0 0
ans = 0 0
1 1
1 1 Crea una matriz de ceros de orden 2x 3.
1 1 >> zeros(2,3)
ans =
Crea una matriz de unos de orden 3. 0 0 0
>> ones(3) 0 0 0
ans =
1 1 1 Crea una matriz de identidad de orden 3
1 1 1 >> eye(3)
1 1 1 ans =
1 0 0
Crea una matriz de ceros de orden 2. 0 1 0
0 0 1

______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 11
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

max(x) máximo del vector x


mix(x) mínimo del vector x
abs(x) Valor absoluto del vector x
prod(x) Producto de los elementos del vector x
sum(x) Suma de los elementos del vector x
sort(x) Ordena de menor a mayor el vector x
dot(x,y) Producto escalar de los vectores x e y
cros(x,y) Producto vectorial de los vectores x e y
find(x<n) Busca los elementos del vector x, menores a n
exp(x) Exponencial de x
complex(a,b) Crea el número complejo a+bi
conj(x) Conjugada del complejo x
imag(x) Parte imaginaria de x
real(x) Parte real de x
Información Básica (Basic Information)
>> A=[2;3; 5] >> B=[2 3 5]
A= B=
2 2 3 5
Controla si es
3
iscolumn(A) columna o no, la
5 >> iscolumn(B)
variable A, B
>> iscolumn(A) ans =
ans = 0
1
Retorna 0 si no es >> isempty(A) >> C=[];
vacío, caso ans = >> isempty(C)
isemty(A)
contrario retorna 1 0 ans =
1
Retorna 1 si son >> D=[3 4 5 6]; >> T=[2 3 5];
iguales, caso >> isequal(B,D) >> isequal(B,T)
Isequal(B,D)
contrario retorna 0 ans = ans =
0 1
Compara vectores >> A=[3 4 NaN 8]; >>
con elementos NaN >> B=A; isequalwithequalnans(A,B)
>> isequal(A,B) ans =
isequalwithequalnans(A, B) 1
ans =
0
Si es infinito >>A = [-2 0 1 2]; isfinite(1./A)
isfinite(A) devuelve 0 caso ans =
contrario devuelve 1 1 0 1
Determinar si la >> a=14.6; whos a >> b=uint8(a); whos b
entrada es punto Name Class Name Class
flotante a double b uint8
isfloat(A)
>> isfloat(a) >> isfloat(b)
ans = ans =
1 0
Devuelve 1 si es >> B = [-2 -1 0 1 2]; >> isinf(A)
Isinf(A) infinito, caso >> A=1./B; ans =
contrario devuelve 0 0 0 1 0 0
Duelve 1 si es un int8 uint8 int16 >> isinteger(uint8(9))
tipo uint* y caso uint16 int32 uint32 ans =
contrario devuelve 0 int64 uint64 1
Isinteger(A)
>> isinteger(9)
ans =
0

______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 12
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

CAPITULO II

2.1 SISTEMA DE ECUACIONES LINEALES


En este capitulo vamos a utilizar Matlab para solucionar Sistema de Ecuaciones
Lineales.
 a11 x1  a12 x2  . . .  a1n xn  b1
a x  a x  . . .  a2 n xn  b2
 21 1 22 2

 . . . . . . . .
. ... ( I )
 . . . . . . . .
 . . . . . . . .

 an1 x1  an 2 x2  . . .  ann xn  bn

Pasando a su forma matricial tenemos Ax  b


 a11 a12 ... a1n   b1   x1 
a a22 ... a2 n  b  x 
 21   2  2
Donde A   . . .  b .  x . 
     
 . . .  . .
 an1 an 2 ... ann  bn   xn 

2.1.1 SOLUCIÓN DE SISTEMAS LINEALES


Si A es una matriz no singular (i.e. A tiene inversa) cuadrada entonces existe A-1.
La solución de la ecuación matricial A*x=b es x= A-1.b
Ejemplo

Resolver  2 3 4   x1   3  Ax=b
 2 x1  3x2  4 x3  3 1 1 1   x    0.5 x=inv(A)*b
   2  
 x1  x2  x3  0.5  4 7 14   x3   2 
4 x  7 x  14 x  2
 1 2 3 A x b

En Matlab tenemos
>> A=[2 3 -4 ;1 -1 1; 4 -7 14] >> b=[3; -0.5; 2] >> x=A\b
A= b= x=
2 3 -4 3.0000 0.5000
1 -1 1 -0.5000 2.0000
4 -7 14 2.0000 1.0000

>> % con la función linsolve() tenemos >> % con la función mldivide() tenemos
>> x=linsolve(A,b) >> x=mldivide(A,b)
x= x=
0.5000 0.5000
2.0000 2.0000
______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 13
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

1.000 1.0000

>> [x1,x2,x3]=solve('2*x1+3*x2-4*x3=3', 'x1-x2+x3=-0.5', '4*x1-7*x2+14*x3=2', 'x1,x2,x3')


x1 = x2 = x3 =
.5000 2. 1.

2.2 OPERACIONES ELEMENTALES FILA Y COLUMNA DE


MATRICES
Tomamos la matriz siguiente En matlab tenemos
2 6 4 8  >> A=[2 6 4 8; 4 2 6 2; 0 8 2 0]
A   4 2 6 2 
A=
2 6 4 8
 0 8 2 0  4 2 6 2
0 8 2 0

2.2.1 OPERACIONES FILA

1ro. Multiplicación de una 2do. Intercambio de filas


fila por un escalar >> aux=A(1,:); A(1,:)=A(3,:); A(3,:)=aux; A
>> A(3,:)=0.5*A(3,:) A=
A= 0 4 1 0
2 6 4 8 4 2 6 2
4 2 6 2 2 6 4 8
0 4 1 0

3ro. Sumar o restar una fila a la otra fila por un escalar.


>> A(3,:)=A(3,:)-4*A(1,:)
A=
0 4 1 0
4 2 6 2
2 -10 0 8

2.2.2 OPERACIONES COLUMNA

Tomamos la matriz siguiente >> B=[0 4 1 0; 4 2 6 2; 2 -10 0 8 ]


0 4 1 0 B=
B   4 2 6 2 
0 4 1 0
4 2 6 2
 2 10 0 8  2 -10 0 8

1ro. Multiplicación de una columna por un escalar


>> B(:,2)=0.5*B(:,2) %0.5xColumna2  Columna2
B=
0 2 1 0
4 1 6 2
2 -5 0 8

______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 14
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

2do. Intercambio de columnas


>> aux=B(:,1); B(:,1)=B(:,3); B(:,3)=aux; B % Columna1  Columna2
B=
1 2 0 0
6 1 4 2
0 -5 2 8

3ro. Adicionar a una columna a otra columna por un escalar.


>> B(:,4)=B(:,4)-4*B(:,1) %Columna4-4xColumna1  Columna4
B=
1 2 0 -4
6 1 4 -22
0 -5 2 8

2.3 AUTOVECTORES Y AUTOVALORES DE UNA MATRIZ


Definición1._ Sea A un matriz Real. Un vector v V \{0} es un autovector (o vector
propio) asociado al autovalor    ( A) de A si Av  v. El conjunto {v V : Av  v}
es el subespacio propio correspondiente al autovalor  .

Definición 2._ Sea A una matriz Real de orden n.


1) El polinomio de grado n pA ( x)  det( A   I ) se denomina polinomio característico
de A.
2) Las raíces del polinomio característico de A se denominan autovalores (o valores
propios) de la matriz A, es decir i ( A) es un autovalor de A si PA (i ( A))  0 . Por
el teorema Fundamental del Álgebra, la matriz A tiene n autovalores
1 ( A), 2 ( A),..., n ( A) , ya sean reales o complejos, contados con su multiplicidad.
3) Llamaremos espectro de A al conjunto de todos los autovalores de la matriz A y lo
representaremos por sp( A)  1 ( A), 2 ( A),..., n ( A).
4) El número no negativo  ( A)  max{| i ( A) |: i ( A)  sp( A),1  i  n} es el radio
espectral de A.

2.3.1 AUTOVECTORES Y AUTOVALORES DE UNA MATRIZ EN


MATLAB

FUNCIÓN OPERACIÓN
eig(A) Autovalores de la matriz A
jordan(A) Forma canónica de Jordan de la matriz A

[X,D]=eig(A) Valores Propios(Diagonal de D) y los Vectores Propios


(Columnas de X) de una matriz cuadrada A. Con frecuencia
el resultado es complejo (Si A no es simétrica)

[X,D]=eig(A,B) Valores Propios (diagonal de D) y Vectores Propios (columnas


de X) de dos matrices cuadradas A y B (Ax=  Bx)
______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 15
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

1 2 3
EJEMPLOS EN MATLAB A 
4 5 6


7 8 9

>> A=[1 2 3; 4 5 6; 7 8 9] Vectores Propios y Valores Propios


>> [V,D]=eig(A)
Autovalor de la Matriz A V=
>> eig(A) -0.2320 -0.7858 0.4082
ans = -0.5253 -0.0868 -0.8165
16.1168 -0.8187 0.6123 0.4082
-1.1168
-0.0000 D=
16.1168 0 0
Polinomio Caracterisco de la Matriz A 0 -1.1168 0
>> poly(A) 0 0 -0.0000
ans =
1.0000 -15.0000 -18.0000 -0.0000 >> B=[2 3 4; 6 3 8; 4 8 9];
>> [X,D]=eig(A,B)
Forma canónica de Jordan de la matriz A X =
>> jordan(A) 1.0000 -0.5000 0.4595
ans = 0.6166 1.0000 -0.0486
0 0 0 -0.9723 -0.5000 -1.0000
0 16.1168 0
0 0 -1.1168 D=
17.4326 0 0
0 0.0000 0
0 0 0.8174

2.4 NORMAS DE UNA MATRIZ


Teorema.- Se verifica:
n
a) ||| A |||1  max{ | aij |,1  j  n} , es decir, la norma ||| . |||1 viene dada por la mayor de
i 1
todas las cantidades que se obtienen al sumar los módulos de los elementos de cada
columna.
b) ||| A |||2    ( AT A)    ( AAT ) ||| AT |||2
n
c) ||| A |||  max{ | aij |,1  i  n} , es decir, la norma ||| . ||| viene dada por la mayor
j 1

de todas las cantidades que se obtienen al sumar los módulos de los elementos de cada
fila.
n
d) ||| A |||F   | a
i , j 1
ij |2   tr ( AT * A)   tr ( A * AT ) es la norma Frobenius

2.4.1 NORMAS DE UNA MATRIZ EN MATLAB


Norma Significado
______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 16
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

norm(A,1) norma 1 de la matriz A


norm(A) norma 2 de la matriz A
norm(A,inf) norma infinito de la matriz A
norm(A,’fro’) Norma frobenius de la matriz A

EJEMPLOS DE NORMAS EN MATLAB


>>norm(A,1) >>norm(A,inf)
ans= ans=
18 24

>> norm(A) >>norm(A,'fro')


ans= ans=
16.8481 16.8819

2.4.2 NORMAS DE UN VECTOR EN MATLAB

Norma Significado

norm(V) Norma 2 del vector V V 2  v12  v2 2  ...  vn 2


 v1  v2  ...  vn  1 p  
p p p p
norm(V,p) Norma V p

norm(V,inf) Norma infinito del vector V, || V ||  max{| vi | , 1  i  n}

norm(V,-inf) Norma -infinito del vector V, || V ||  min{| vi | , 1  i  n}

______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 17
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

CAPITULO III
GRÁFICOS BI-DIMENSIONALES (2-D)
MATLAB utiliza un tipo especial de ventanas para realizar las operaciones
gráficas. Ciertos comandos abren una ventana nueva y otros dibujan sobre la ventana
activa, bien sustituyendo lo que hubiera en ella, o bien añadiendo nuevos elementos
gráficos a un dibujo anterior. Todo esto se verá con más detalle en las siguientes
secciones.

3.1 FUNCIONES GRÁFICAS 2-D ELEMENTALES


MATLAB dispone de 4 funciones básicas para crear gráficos 2-D. Estas
funciones se diferencian principalmente por el tipo de escala que utilizan en los ejes de
abscisas y de ordenadas. Estas 4 funciones son las siguientes:

5.1.1 FUNCIÓN plot()


Crea un gráfico a partir de vectores y/o columnas de matrices, con escalas
lineales sobre los ejes

plot(X) Representa los puntos (k,Xk ). Si X es una matriz, hace lo mismo para cada
columna de la matriz. Si X es un vector complejo, representa la parte Real de X frente
a Imaginaria de X.

plot(X,Y) Representa el conjunto de puntos (X,Y). Si X o Y son matrices, representa


por filas o columnas los datos de X frente a los datos de Y, dependiendo si el otro vector
fila es columna. Para valores complejos de X e Y, se ignoran las partes imaginarias
EJEMPLO:
>> x=[1 5 3 7]; >> x=1:1:1000;
>> plot(x) >> y=sqrt(x);
>> plot(x,y)

5.1.2 LA FUNCION loglog()


Crea un gráfico a partir de vectores con escala logarítmica en ambos ejes

______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 18
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

5.1.3 LA FUNCION semilogx()


Dibuja una función con escala lineal en el eje de ordenadas (eje Y) y logarítmica
en el eje de abscisas (Eje X)
EJEMPLO: >> x=1:1:1000;
>> x=1:1:1000; >> y=sqrt(x);
>> loglog(x,sqrt(x)) >> semilogx(x,y)

5.1.4 LA FUNCION semilogy()


Dibuja una función con escala lineal en el eje de abscisas y logarítmica en el eje
de ordenadas.

EJEMPLO: >> x=1:1:1000;


>> y=sqrt(x);
>> semilogy(x,y)

5.1.5 FUNCION plotyy()


Dibuja dos funciones
con dos escalas diferentes
para las ordenadas, una a la
derecha y otra a la izquierda
de la figura

EJEMPLO:
>> x=0:pi/200:2*pi;
>> y=sin(x);
>> y1=sqrt(x);
>> plotyy(x,y,x,y1)

______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 19
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

plot(X,Y,S) Grafica X vs Y con las opciones definidas en S. Usualmente, S se


compone de 3 caracteres entre tildas, el primero de los cuales fija el color de línea del
gráfico, el segundo fija la etiqueta o marca en el nodo y el último fija el estilo de línea
a usar en el gráfico es decir ‘color_de_linea marca estilo_de_linea’ . Los colores, las
marcas y los caracteres son respectivamente, los siguientes:

símbolo Color símbolo marcadores (markes)


y Yellow . Puntos
m Magenta o Círculos
c Cyan x marcas con x
r Red + marcas en +
g Green * marcas en *
b Blue s marcas cuadradas (square)
w White d marcas en diamante (diamond)
k Black ^ triangulo apuntando arriba
v triangulo apuntando abajo
símbolo estilo de línea > Triangulo apuntando a la der.
- líneas continuas < triangulo apuntando a la izq.
: líneas a puntos p estrella de 5 puntas
-. líneas a barra-punto h estrella de 6 puntas
-- líneas a trazos

EJEMPLO:
>> x=0:pi/40:2*pi;
>> y=cos(x);
>> plot(x,y,'+') % dibuja la línea con el marcador (+)
>>plot(x,y, 'b+') % dibuja la línea de color azul con el marcador (+)
>>plot(x,y, 'g*:')' %dibuja la línea de color verde con marcador (* ) y estilo de línea (:)

En lo sucesivo se hará referencia casi exclusiva a la primera de estas funciones


(plot). Las demás se pueden utilizar de un modo similar. Existen además otras

______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 20
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

funciones orientadas a añadir títulos al gráfico, a cada uno de los ejes, a dibujar una
cuadrícula auxiliar, a introducir texto, etc. Estas funciones son las siguientes:

title('título') añade un título al dibujo


xlabel('tal') añade una etiqueta al eje de abscisas. Con xlabel off desaparece
ylabel('cual') añade una etiqueta al eje de ordenadas. Con ylabel off desaparece
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. Si texto es también
un vector de cadenas de texto de la misma dimensión, cada elemento se escribe en las
coordenadas correspondientes.
gtext('texto') introduce texto con ayuda del mouse: el cursor cambia de forma y
se espera un clic para introducir el texto en esa posición
legend() define rótulos para las distintas líneas o ejes utilizados en la figura.
grid activa la inclusión de una cuadrícula en el dibujo. Con grid off
desaparece la cuadrícula

5.1.6 LA FUNCION legend(cad1,cad2,cad3,….)


Pone una leyenda en el diagrama actual usando las secuencias especificadas
como etiquetas

CODIGO EN EDITOR EJEMPLO DE FUNCIÓN LEGEND


x=0:pi/40:2*pi; >> x = 0:.2:12;
y=cos(x); >> plot(x,besselj(1,x),x,besselj(2,x),x,besselj(3,x));
plot(x,y,'+') legend('primero','Secundo','tercero');
title('la funcion coseno')
xlabel('eje x')
ylabel('eje y')
text(x,y, 'coseno ')
text(3.5,0.2, 'jose ')
grid

La función plot() permite también dibujar múltiples curvas introduciendo varias


parejas de vectores como argumentos. En este caso, cada uno de los segundos vectores
______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 21
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

se dibuja en ordenadas como función de los valores del primer vector de la pareja, que
se representan en abscisas. Si el usuario no decide otra cosa, para las sucesivas líneas se
utilizan colores que son permutaciones cíclicas del azul, verde, rojo, cyan, magenta,
amarillo y negro. Obsérvese bien cómo se dibujan el seno y el coseno en el siguiente:

EJEMPLOS:
>> x=0:pi/25:6*pi;
>> y=sin(x); z=cos(x);
>> plot(x, y, x, z, '--')

5.1.7 ANADIR LÌNEAS A UN GRAFICO YA EXISTENTE


Existe la posibilidad de añadir líneas a un gráfico ya existente, sin destruirlo o
sin abrir una nueva ventana. Se utilizan para ello los comandos hold on y hold off. El
primero de ellos hace que los gráficos sucesivos respeten los que ya se han dibujado en
la figura (es posible que haya que modificar la escala de los ejes); el comando hold off
deshace el efecto de hold on.

EJEMPLO: CODIGO EN EDITOR


x=0:pi/40:2*pi; y=cos(x);
plot(x,y)
x1=0:pi/40:2*pi;
y1=sin(x1);
x2=0.3:pi/40:2*pi;
y2=log(x2);
hold on
plot(x1,y1,'--')
plot(x2,y2,'-.')
hold off

5.1.8 EL COMANDO subplot()


Una ventana de gráfica se puede dividir en m particiones horizontales y n
particiones verticales, con objeto de representar múltiples gráficos en ella. Cada una de
estas subventanas tiene sus propios ejes y sus propiedades propias. La forma general de
este comando es:
subplot(m,n,i)

______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 22
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

Donde m y n son el número de subdivisiones en filas y columnas, e i es la subdivisión


que se convierte en activa. Las subdivisiones se numeran consecutivamente empezando
por la primera fila, siguiendo por la segunda fila, etc.

>> subplot(2,2,3) >> subplot(2,2,2) >> subplot(2,2,1) >> subplot(2,2,4)

EJEMPLO: La siguiente secuencia de comandos genera cuatro gráficos en la misma


ventana:
CODIGO EN EDITOR
x=0:pi/40:2*pi;
y=sin(x);
z=cos(x);
w=exp(-x*0.1).*y;
v=y.*z;
subplot(2,2,1), plot(x,y)
subplot(2,2,2), plot(x,z)
subplot(2,2,3), plot(x,w)
subplot(2,2,4), plot(x,v)

______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 23
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

Se puede practicar con este ejemplo añadiendo títulos a cada subplot, así como
rótulos para los ejes. Se puede intentar también cambiar los tipos de línea. Para volver a
la opción por defecto basta teclear el comando:
>> subplot(1,1,1)
5.1.9 CONTROL DE EJES
El comando básico es el comando axis. Por defecto, MATLAB ajusta la escala
de cada uno de los ejes de modo que varíe entre el mínimo y el máximo valor de los
vectores a representar. Este es el llamado modo "auto", o modo automático. Para definir
de modo explícito los valores máximo y mínimo según cada eje, se utiliza el comando:
axis([xmin, xmax, ymin, ymax])
axis('auto') devuelve el escalado de los ejes al valor por defecto.
v=axis devuelve un vector v con los valores [xmin, xmax, ymin, ymax]
axis('ij') utiliza ejes de pantalla, con el origen en la esquina superior
izquierda. y el eje j en dirección vertical descendente
axis('xy') utiliza ejes cartesianos normales, con el origen en la esquina
Inferior izquierda y el eje y vertical ascendente
axis('image') La ventana tendrá las proporciones de la imagen que se desea
representar en ella (por ejemplo la de una imagen bitmap que se
desee importar)
axis('equal') el escalado es igual en ambos ejes
axis('square') la ventana será cuadrada
axis('normal') elimina las restricciones introducidas por 'equal' y 'square'
axis('off') elimina las etiquetas, los números y los ejes
axis('on') restituye las etiquetas, los números y los ejes

EJEMPLO
x=0:pi/40:2*pi; y=sin(x); plot(x,y)
axis([-1 7, -2, 2])
v=axis
axis('ij')
axis('xy')
axis('image')
axis('equal')
axis('square')
axis('normal')
axis('off')
axis('on')

______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 24
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

5.1.10 CONTROL DE VENTANAS GRAFICAS: FUNCION figure()

Si se llama a la función figure sin argumentos, se crea una nueva ventana gráfica
con el número consecutivo que le corresponda. El valor de retorno es dicho número.
Por otra parte, el comando figure(n) hace que la ventana n pase a ser la ventana
o figura activa. Si dicha ventana no existe, se crea una nueva ventana con el número
consecutivo que le corresponda La función close cierra la figura activa, mientras que
close(n) cierra la ventana o figura número n.
El comando clf elimina el contenido de la figura activa, es decir, la deja abierta
pero vacía. La función gcf devuelve el número de la figura activa en ese momento.

El comando figure(gcf) (get current figure) permite hacer visible la ventana de


gráficos desde la ventana de comandos.
EJEMPLO
x=-4*pi:pi/20:4*pi;
plot(x,sin(x),'r',x,cos(x),'g')
title('Función seno(x) -en rojo- y función coseno(x) -en verde-')
xlabel('ángulo en radianes'), figure(gcf)
ylabel('valor de la función trigonométrica'), figure(gcf)

______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 25
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

5.1.11 LA FUNCION fplot()


La función fplot admite como argumento de entrada un nombre de función o un
nombre de fichero *.m. La función puede ser escalar (un único resultado por cada valor
de x) o vectorial. La forma general de esta función es la siguiente:
fplot('funcion', limites, 'cadena')
Donde:
'funcion' representa el nombre de la función o del fichero *.m entre apóstrofos
(Pasado como cadena de caracteres).
limites es un vector de 2 ó 4 elementos, cuyos valores son [xmin,xmax] o
[xmin,xmax,ymin,ymax],
'cadena' tiene el mismo significado que en plot y permite controlar el color, los
markers y el tipo de línea.:

>> fplot('200*sin(x)./x ', [-20 20], 'b')

3.2 FUNCION plot(x,y,S) avanzado.


Tenemos los siguientes atributos:
Color: color de línea.
LineWith: Ancho de la línea.
MarkerEdgeColor: color del borde de las marcas.
MarkerFaceColor: color de la marca
MarkerSize: tamaño de la marca.

______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 26
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

Para especificar un color, se puede utilizar un vector de tres componentes con


valores entre 0 y 1 que especifica un color según el estándar RGB (Red, Green, Blue.
Crea un color añadiendo los partes de rojo, verde y azul según los valores de un vector
de tres componentes).
EJEMPLO:

x=linspace(-2*pi,2*pi,100); > x=linspace(-2*pi,2*pi,100);


y=sin(x); >> y=sin(x);
plot(x,y,'color',[0.9 0.1 0.3]) >> plot(x,y,'color',[0.1 0.9 0.3])

>> x=linspace(-2*pi,2*pi,100);y=sin(x); >> x=linspace(-2*pi,2*pi,100); y=sin(x);


>> plot(x,y,'linewidth',2) >> plot(x,y,'linewidth',4)

______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 27
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

>> x=linspace(-2*pi,2*pi,100); y=sin(x); > >x=linspace(-2*pi,2*pi,100); y=sin(x);


>> plot(x,y,'-d','markeredgecolor','r') >> plot(x,y,'-d','markerfacecolor',[0.9 0.5 0.3])

>> x=linspace(-2*pi,2*pi,100); >> x=linspace(-2*pi,2*pi,100); y=sin(x);


>> y=sin(x); >> plot(x,y,'-d','markersize',13,'markerfacecolor',[0.9 0.5 0.3])
>> plot(x,y,'-d','markersize',10)

>> x=linspace(-2*pi,2*pi,100); y=sin(x); plot(x,y,'-d','markersize',10)


>> xlabel('Eje OX','fontname','Comic Sans Ms')
>> ylabel('Eje OY','fontname','arial')
>> title('la funcion f(x)=sen(x)','fontname','impact')

______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 28
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

>> x=linspace(-2*pi,2*pi,100); y=sin(x); plot(x,y,'-d','markersize',10)


>> xlabel('Eje OX','fontname','Comic Sans Ms','fontsize',14)
>> ylabel('Eje OY','fontname','arial','fontsize',18)
>> title('la funcion f(x)=sen(x)','fontname','impact','fontsize',20)

>> x=linspace(-2*pi,2*pi,100); plot(x,sin(x)); >> x=linspace(-2*pi,2*pi,100); plot(x,sin(x));


>> set(gca,'fontsize',16) >> setgca,'fontsize',20)

>> x=linspace(-2*pi,2*pi,100); y=sin(x); >> x=linspace(-2*pi,2*pi,100); y=sin(x);


>> plot(x,y) >> plot(x,y)
>> set(gca,'xtick',[-6 -4 -2 0]) >> set(gca,'xtick',[0 2 4 6])

______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 29
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

CAPITULO IV
GRÁFICOS TRI-DIMENSIONALES (3-D)
Quizás sea ésta una de las características de MATLAB que más admiración
despierta entre los usuarios no técnicos.
Un gráfico de malla tridimensional viene definido por una función z=f(x,y), de
tal forma que los puntos de la superficie se representan sobre una rejilla, resultado de
levantar los valores de z dados por f(x,y) sobre la correspondientes puntos del plano
(x,y).

4.1 GRAFICOS DE LINEA EN 3D


1) plot3(x,y,z) ._Que dibuja una línea que une los puntos (x(1), y(1), z(1)), (x(2), y(2),
z(2)), etc. y la proyecta sobre un plano para poderla representar en la pantalla.

EJEMPLO
>> x=0:0.5:4, y=1+x.^2, z=log(1+x)
x=
0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000 3.5000 4.0000

y=
1.0000 1.2500 2.0000 3.2500 5.0000 7.2500 10.0000 13.2500 17.0000

z=
0 0.4055 0.6931 0.9163 1.0986 1.2528 1.3863 1.5041 1.6094
>> plot3(x,y,z)
>> grid

Al igual que en el caso plano, se


puede incluir una cadena de 1, 2 ó 3
caracteres para determinar el color, los
marcas, y el tipo de línea:
EJEMPLO
>> plot3(x,y,z,'+r')
>> grid

Un de superficie cuyo grafo tiene la


forma de red. Para representar un gráfico de
malla, se utiliza el comando mesh y sus
variantes, cuya sintaxis la siguiente.

4.2 GENERACIÓN DE MALLADOS EN EL PLANO x-y


4.2.1 [X,Y]=meshgrid(x,y)
Crea una matriz X cuyas filas son copias del vector x, y una matriz Y cuyas
columnas son copias del vector y.
Una vez dada esta orden, la gráfica de malla se genera mediante: mesh(X,Y,Z),
que veremos más adelante.

______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 30
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

>>x =[1 2 3]; >> [X,Y]=meshgrid(x,y) Y=


>>y =[4 5 6 7]; X= 4 4 4
1 2 3 5 5 5
1 2 3 6 6 6
1 2 3 7 7 7
1 2 3

OBSERVACIÓN.
El vector x=[1 2 3] representa el Eje X y el vector y=[4 5 6 7] representa el Eje Y.

(1,7) (2,7) (3,7)

(1,6) (2,6) (3,6)

(1,5) (2,5) (3,5)

(1,4) (2,4) (3,4)

______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 31
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

4.3 GRÁFICOS DE SUPERFICIE EN 3-D


4.3.1 mesh(X,Y,Z,C)._Representa el gráfico de malla de la función z=f(x,y),
dibujando las líneas de la rejilla que componen la malla con los colores especificados
en C. El argumento C se puedo ignorar.

EJEMPLO:
4.3.2 COORDENADAS RECTANGULAR,
Graficar el paraboloide z  x 2  y 2 en
el dominio rectangular [ -4,4 ]x[ -6,6 ]
En matlab tenemos

>> x=-4:0.25:4; y=-6:0.25:6;


>> [X,Y]=meshgrid(x,y);
>> Z=X.^2+Y.^2;
>> mesh(X,Y,Z)

4.3.3 meshz(X,Y,Z,C)._Represe
nta el gráfico de malla de la función
z= f(x,y) con una especie de cortina o
telón en la parte inferior.

>> x=-4:0.25:4; y=-6:0.25:6;


>> [X,Y]=meshgrid(x,y);
>> Z=X.^2+Y.^2;
>> meshz(X,Y,Z)

4.3.4 meshc(X,Y,Z,C)._Representa
el gráfico de malla de la función z=f(x,y)
con el grafico de contorno
correspondiente (curvas de nivel
proyectadas sobre el plano XY).

>> x=-4:0.25:4; y=-6:0.25:6;


>> [X,Y]=meshgrid(x,y);
>> Z=X.^2+Y.^2;
>> meshc(X,Y,Z)

______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 32
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

4.3.5 surf(X,Y,Z)._Representa el
grafico de superficie de la función z=f(x,y),
realizando el dibujo con los colores
especificados en C. El argumento en C se
puede ignorar.

>> x=-4:0.25:4; y=-6:0.25:6;


>> [X,Y]=meshgrid(x,y);
>> Z=X.^2+Y.^2;
>> surf(X,Y,Z)

4.3.6 surfl(X,Y,Z,C)._Representa el
grafico de superficie de la función z=f(x,y),
realizando el dibujo sombreado.

>> x=-4:0.25:4; y=-6:0.25:6;


>> [X,Y]=meshgrid(x,y);
>> Z=X.^2+Y.^2;
>> surfl(X,Y,Z)

4.4 CURVAS DE NIVEL


4.4.1 contour(X,Y,Z)._Dibuja el
gráfico de contorno (curvas de nivel) para
la matriz (X,Y,Z),. El número de líneas de
contorno a utilizar es automático.

>> x=-4:0.25:4; y=-6:0.25:6;


>> [X,Y]=meshgrid(x,y);
>> Z=X.^2+Y.^2;
>> contour(X,Y,Z)

______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 33
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

4.4.2 contuor(X,Y,Z,n)._Dibuja el
gráfico de contorno (curvas de nivel) para
las coordenadas (X,Y,Z). Usando n líneas
de contorno.

>> x=-4:0.25:4; y=-6:0.25:6;


>> [X,Y]=meshgrid(x,y);
>> Z=X.^2+Y.^2;
>> contour(X,Y,Z,4)

4.4.3 contuor3(x,y,z)._Dibuja los


gráficos de contorno en 3 dimensiones.

>> x=-4:0.25:4; y=-6:0.25:6;


>> [X,Y]=meshgrid(x,y);
>> Z=X.^2+Y.^2;
>> contour3(X,Y,Z)

4.4.4 contuor3(X,Y,Z,n)._Dibuja
los gráficos de contorno en 3
dimensiones, con n curvas

>> x=-4:0.25:4; y=-6:0.25:6;


>> [X,Y]=meshgrid(x,y);
>> Z=X.^2+Y.^2;
>> contour3(X,Y,Z,20)

______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 34
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

4.4.5 pcolo(X,Y,Z)._Dibuja un gráfico


de contorno (curvas de nivel) para la
matriz (X,Y,Z) utilizando una
representación basada en densidades de
colores. Suele denominarse gráfico de
densidad.

>> x=-4:0.25:4; y=-6:0.25:6;


>> [X,Y]=meshgrid(x,y);
>> Z=X.^2+Y.^2;
>> pcolor(X,Y,Z)

4.5 COORDENADAS CILÍNDRICAS, ESFÉRICAS Y


PARAMÉTRICAS
Graficar el cono z  x 2  y 2 en el dominio rectangular [ -6 , 6 ]x[ -6 ,6 ] es una
situación donde no están claras las propiedades geométricas del cono, por esa razón es
mejor graficar en el dominio circular, con radio variando desde 0 hasta 6, y allí levantar
el cono que queremos. Para ello necesitamos hacer el cambio de coordenadas, pasar la
coordenada cartesiana a la coordenada cilíndrica.

4.5.1 COORDENADAS CILÍNDRICAS,


 x  r cos(u )

 y  rsen(u ) u  [ ,  ], r  [r1, r 2]
 z  x2  y 2

EJEMPLO:
Graficar el cono z  x 2  y 2 en el dominio circular de radio 6 centrado en el origen
de coordenadas.

[r,u]=meshgrid(0:0.25:6,0:pi/30:2*pi);
x=r.*cos(u);
y=r.*sin(u);
z=sqrt(x.^2+y.^2);
surf(x,y,z)

______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 35
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

4.5.2 COORDENADAS ESFÉRICAS

 x  r s en(v) cos(u )

 y  rsen(v) sen(u ) u  [1 ,  2 ], v  [1 , 2 ]
 z  r cos(v)

EJEMPLO:
Graficar la esfera z 2  x2  y 2  r 2 , de radio r=6 en coordenadas esféricas,
parametrizando en coordenadas esféricas tenemos

 x  6s en(v) cos(u )

 y  6sen(v) sen(u ) u  [0, 2 ], v  [0,  ]
 z  6 cos(v)

[u,v]=meshgrid(0:pi/20:2*pi,0:pi/20:pi);
x=6*sin(v).*cos(u);
y=6*sin(v).*sin(u);
z=6*cos(v);
surf(x,y,z)
axis('image')

4.5.3 COORDENADAS PARAMÉTRICAS EN CURVAS 3-D


 x  x(t )

 y  y (t ) t  [t1 , t2 ],
 z  z (t )

EJEMPLO:
Graficar la siguiente curva paramétrica
 x  sen(t )

 y  cos(t ) t  [0, 2 ],
 z  cos(t )

t=0:pi/20:2*pi;
x=sin(t);
y=cos(t);
z=cos(t);
plot3(x,y,z)
grid
______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 36
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

4.6 CILINDRO, ESFERAS Y ELIPSOIDES


CILINDRO:
[x,y,z]=cylinder Retorna las coordenadas x, y, x de un cilindro de radio 1
[x,y,z]=cylinder(R,N) Retorna las coordenadas x,y,z necesarias para la
generación de un cilindro con altura 1, Radio R y número de puntos en cada
circunferencia de N (20 por defecto)
EJEMPLO:
>>[x,y,z]=cylinder; >>[x,y,z]=cylinder(2,10);
>>mesh(x,y,z) >>mesh(x,y,z)

Sphere Genera una esfera que consiste de 20-por-20 las caras


[x,y,z]=sphere(N) Retorna las coordenadas x, y, z necesarias para la generación
de una esfera con radio 1. El número de ternas es (N+1)x(N+1) ( N=20 por defecto)

EJEMPLO:
>>sphere, >> [x,y,z]=sphere(30);
>> axis equal, >>mesh(x,y,z)

[x,y,z]= ellipsoide(xc,yc,zc,xr,yr,zr,N) Retorna las coordenadas x,


y, z necesarias para la generación de una elipsoide centradad en (xc,yc,zc) con
semiejes xr,yr,zr. El número de ternas es (N+1)x(N+1), ( N=20 por efecto)
______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 37
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

EJEMPLO:

>>[x,y,z]=ellipsoid(0,0,0,5,10,20);
>>mesh(x,y,z)

______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 38
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

CAPITULO V

5.1 GRÁFICOS DE FUNCIONES ESTADISTICOS


5.1.1 DIAGRAMA DE SECTORES
EJEMPLO: Los resultados de las elecciones para el Presidente del 16 de Febrero de
2006.
PARTIDO VOTOS %
Espacio 90 (PS) 228.343 31.8712
Asamblea Uruguay (AS) 171.728 23.9691
Mov. Participación Popular (MPP) 120.233 16.7816
Vertiente Artiguista (VA) 106.574 14.8752
Alianza Progresista (AP) 78.105 10.9016
Otros 8.265 1.1536
Votos al lema (VL) 3.208 0.4478
TOTAL 716.4560 100

a) Pie().- Este comando sirve para graficas sectores,


b) Pie3().-Este comando sirve para graficar sectores en tridimensional.
Tanto para el comando pie y como para comando pie3, podemos separarlo uno

>> x=[228.3430 171.7280 120.2330 106.5740 78.1050 8.2650 3.2080];


>> pie(x)
>> legend('PS','AS','MPP','VA','AP','otros','VL')

>> pie3(x)
>> legend('PS','AS','MPP','VA','AP','otros','VL')

______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 39
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

EJEMPLO:
>> pie3(x,[1 1 1 0 0 0 0 ])
>> legend('PS','AS','MPP','VA','AP','otros','VL')

5.1.2 DIAGRAMA DE PARETO


El diagrama de Pareto q produce Matlab consta de barras cuyas alturas son el
número de escaños, ordenados en forma decreciente y sobre las barras, un polígono con
las frecuencias acumuladas de los escaños. Además, en el eje vertical derecho aparece
una escala de porcentajes.

EJEMPLO:
PARTIDO NUMERO DE ESCAÑOS
Espacio 90 (PS) 228
Asamblea Uruguay (AS) 171
Móv. Participación Popular (MPP) 120
Vertiente Artiguista (VA) 106
Alianza Progresista (AP) 78
Otros 8
Votos al lema (VL) 3
TOTAL 714

>>x=[228 171 120 106 78 8 3]


>> pareto(x)
>> ylabel('Número de Escaños')

Diagrama de Pareto

______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 40
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

5.1.3 DIAGRAMA DE BARRAS


Hay varias formas para representar diagramas de barras y estos son los
comandos en MatLab.
bar(): Grafica barras Verticales.
barh(): Grafica barras Horizontales.
bar3(): Grafica de barras verticales en 3 dimensiones.
bar3h(): Grafica de barras horizontales en 3 dimensiones.
EJEMPLO:
>> x=[10 5 3 20 5 34 22 31];
>> subplot(2,2,1); bar(x); title('Barras Verticales')
>> subplot(2,2,2); barh(x); title('Barras Horizontales')
>> subplot(2,2,3); bar3(x); title('Barras Verticales 3D')
>> subplot(2,2,4); bar3h(x); title('Barras Horizontales 3D')

Diagramas de Barras

>> x=[10 5 3; 20 5 34; 22 31 40];


>> subplot(2,2,1); bar(x); title('Barras Verticales')
>> subplot(2,2,2); barh(x); title('Barras Horizontales')
>> subplot(2,2,3); bar3(x); title('Barras Verticales 3D')
>> subplot(2,2,4); bar3h(x); title('Barras Horizontales 3D')

Diagramas de Barras
con datos agrupados

______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 41
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

Por ultimo, también se pueden agrupar en 3D , con la orden bar3(x,’group’) y


para que aparezcan las barras apiladas lo hacemos con el comando bar3(x,’stack’).

>> x=[10 5 3; 20 5 34; 22 31 40];


>> subplot(1,2,1); bar3h(x,'stack');
>> subplot(1,2,2); bar3(x,'group');

Datos agrupados en 3D y barras apiladas

5.1.4 HISTOGRAMAS
Para generar histogramas se utiliza el comando hist. Por ejemplo para generar
500 números aleatorios siguiendo la normal N (0,1) . Con la orden hist(x), obtenemos
la figura 1 un histograma con 10 intervalos y con la orden hist(x,N) obtenemos la
figura 2 un histograma con N intervalos.
EJEMPLO:
>> x=randn(500,1);
>>x=randn(500,1); >> hist(x,20)
>> hist(x)

Fig. 1 Fig.2

______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 42
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

area(x,y) similar plot(), pero rellena las ordenadas de 0 a y


stairs(x,y) función análoga a bar() sin líneas internas
stem(x,y) representa una gráfica de tallos
errorbar(x,y) representa sobre una gráfica –mediante barras– valores de errores

x=2001:2010;
y=[917 714 618 343 936 125 731 646 833 398];
subplot(2,2,1); area(x,y);
subplot(2,2,2),stairs(x,y);
subplot(2,2,3),stem(x,y);
subplot(2,2,4),errorbar(x,y);

1000 1000

800 800

600 600

400 400

200 200

0 0
2002 2004 2006 2008 2010 2000 2005 2010

1000 3000

800
2500
600
2000
400
1500
200

0 1000
2000 2005 2010 0 5 10 15

rose(x) histograma de ángulos (en radianes)


quiver(x,y,x ',y ') dibujo de campos vectoriales como conjunto de vectores
compass(x) dibuja los elementos de un vector complejo
feather(x) dibuja los elementos de un vector complejo como un conjunto de
vectores partiendo de orígenes uniformemente espaciados sobre el eje de abscisas

alfa=(rand(1,20)-0.5)*2*pi; subplot(2,2,1); rose(alfa);


t=linspace(0,2*pi,20); subplot(2,2,2); quiver(cos(t),sin(t),-
sin(t),cos(t)), grid on
Z=[2+3i,3-2i,5.6+4i]; subplot(2,2,3); compass(Z); grid on
Z=[2+3i,3-2i,5.6+4i]; subplot(2,2,4), feather(Z); grid on

______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 43
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

90 1.5
4
120 60
1

150 2 30
0.5

180 0 0

-0.5
210 330

-1
240 300
270
-1.5
-1.5 -1 -0.5 0 0.5 1 1.5

90 4
10
120 60
3

150 5 30
2

180 0 1

0
210 330

-1
240 300
270
-2
1 2 3 4 5 6 7 8 9

5.2 GRÁFICOS EN COORDENADAS POLARES


Matlab habilita el comando específico polar, que representa funciones en
coordenadas polares.
Su sintaxis es la siguiente:
polar(  ,r) Representa la curva en coordenadas polares r=r(  ).
polar (  ,r,S) Representa la curva en coordenadas polares con el estilo de línea dado
por S.
EJEMPLO

>>%El CARDIODE >>%ROSAS de 4 petalos


>>%polar(teta,r) >>polar(a,4*sin(2*a))
>>a=0:pi/40:2*pi;
>>polar(a,2*(1+cos(a)));

______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 44
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

CAPITULO VI

6.1 INTRODUCCION A PROCESAMIENTOS DE IMAGENES


a) Leer una imagen con matlab.
Se lee con la función imread(nombre_de_imagen)
A = imread('ngc6543a.jpg');

b) Visualizar Leer una imagen con matlab.


Se puede usar la función imshow(), image(),
image(A) imshow(A)

100

200

300

400

500

600

100 200 300 400 500 600

c) Guardar una imagen. Se guarda con la función


imwrite(A, nombre_imagen) donde A es la matriz que proviene de la
imagen
imwrite(A,'rosa.jpg');
d) Visualizar el tamaño de una imagen, se usa la función size()
>> [f,c,r]=size(A)
f=
650
c=
600
r=
3

e) Visualizar el valor de un pixel,


valor = impixel(im,col,fil);
[c,r,valor]=impixel
f) Informacion acerca de la imagen
info = imfinfo('ngc6543a.jpg')
info =

______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 45
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

Filename:
'matlabroot\toolbox\matlab\demos\ngc6543a.jpg'
FileModDate: '01-Oct-1996 16:19:44'
FileSize: 27387
Format: 'jpg'
FormatVersion: ''
Width: 600
Height: 650
BitDepth: 24
ColorType: 'truecolor'
FormatSignature: ''
NumberOfSamples: 3
CodingMethod: 'Huffman'
CodingProcess: 'Sequential'
Comment: {'CREATOR: XV Version 3.00b Rev:
6/15/94 Quality = 75, Smoothing = 0
'}

g) Cambiar el tamaño de una imagen.


h) Extraer una parte de una imagen.
i) Rotar una imagen.
j) Cambiar a escala de grises una imagen
k) Pasar a imagen binaria una imagen.
l) Guardar en cualquier lugar de la pc la imagen
m) Leer de cualquier lugar la imagen.

______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 46
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

CAPITULO VII
CALCULO SIMBOLICO
Construcción de objetos simbólicos
Función Salida
syms Crea variables simbólicas
sym Convierte a variables simbólicas
double Convierte a variables numéricas cuando las variables son simbólicas

7.1 OPERACIONES CON POLINOMIOS


Un polinomio a1 xn  a2 x n1  ....  an x  an1 en Matlab se introduce a través de
sus coeficientes pero considerando el vector complejo y ordenado decrecientemente.
EJEMPLO
El polinomio p( x)  x3  4 x 2  10 en Matlab será
>> p=[1 4 0 -10]
p=
1 4 0 -10

7.1.1 EVALUACIÓN DE POLINOMIOS


polyval(p,x) Evalúa el vector p que es un vector de longitud n+1 cuyos elementos
son los coeficientes del polinomio p( x).

EJEMPLO
El polinomio p( x)  x3  4 x 2  10 lo evaluamos en distintos x
>> y=polyval(p,1) p( x)  x3  4 x 2  10
x 1 y=
-5 P(1)  13  4*12  10  5
>> y=polyval(p,2+3i) p( x)  x3  4 x 2  10
y=
x  2  3i P(2  3i)  (2  3i)3  4*(2  3i) 2  10
-76.0000 +57.0000i
 76  57i
>> x=2:1:6;
x  (2,3, 4,5,6) >>y= polyval(p,x) x  2 3 4 5 6
y= p( x)  14 53 118 215 350
14 53 118 215 350

7.1.2 PRODUCTO DE POLINOMIOS


d ( x)  x 2  x  5
conv(p,d) Multiplicación de polinomios p y d
En Matlab tenemos

>> d=[1 -1 5]
d=
1 -1 5

>> P=conv(p,d)
______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 47
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

P= P( x)  p ( x)  d ( x)
1 3 1 10 10 -50 P( x)  ( x3  4 x 2  10)  ( x 2  x  5)
La cual seria el polinomio siguiente
P( x)  x5  3x 4  x 3  10 x 2  10 x  50

7.1.3 DIVISIÓN DE POLINOMIOS


[Q,R]=deconv(p,d) División de polinomios p y d, obteniéndose el cociente Q y
residuo R.
En Matlab tenemos

>> [Q,R]=deconv(p,d)
Q= ( ) x5
El cociente es Qx
1 5
R= El residuo es R(x) 35
0 0 0 -35

7.1.4 DERIVADA DE UN POLINOMIO


polyder(p) Calcula la derivada del polinomio p
>>der= polyder(p) la derivada del polinomio p seria
der=
der ( x)  3x 2  8x
3 8 0
polyder(p,d) Calcula la derivada del producto de polinomios p y d

>>dp= polyder(p,d) la derivada del producto de polinomios es


dp= dp( x)  5x4  12 x3  3x2  20 x  10
5 12 3 20 10

[N,D] = polyder(p,d) Retorna el numerador N y el denominador D de la derivada del


cociente polinomial p/d.
>> [N,D] = polyder(p,d) '
 P ( x )  P ' ( x)d ( x)  P( x)d '( x) N ( x)
N=
   
 d ( x) 
2
1 -2 11 60 -10  d ( x)  D( x)

D= N ( x)  x 4  2 x3  11x 2  60 x  10
1 -2 11 -10 25
D( x)  x 4  2 x3  11x 2  10 x  25

7.1.5 LA INTEGRAL DE UN POLINOMIO


polyint(p) Calcula la Integral del polinomio p
>> int=polyint(p) la integral del polinomios es
int = 1 4 4 3
 p( x)dx  4 x  3 x  0 x 10 x  0
2
1/4 4/3 0 -10 0

polyint(p,k) Calcula la Integral del polinomio p con el constante de integración k


>> int=polyint(p,3) la integral del polinomios es
int = 1 4 4 3
1/4 4/3 0 -10 5  p ( x ) dx 
4
x  x  0 x 2  10 x  5
3
______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 48
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

7.1.6 LA FUNCION poly()


poly(A) Devuelve los coeficientes del polinomio característico de la matriz A
1 2 3  1 2 3  1 0 0
     1 0 
  p( )  det( A  I )  6 9 1   0
Sea la matriz A  6 9 1

 2 3 6   2 3 6  0 0 1 
1  2 3
9 1 6 1 6 9
 p ( )  6 9 1  (1   ) 2 3
3 6 2 6 2 3
2 3 6
 p( )   3  16 2  54  19 donde p( ) es el polinomio caracterisco de A
>> A=[1 2 3; 6 9 -1; 2 3 6]; El polinomio característico de la matriz
>> poly(A) A es
ans = p( )    16 2  54  19
3

1 -16 54 19

poly(r) Devuelve los coeficientes del polinomio cuyas raíces es el vector r


>> r=[2 -4 3]; poly(r)
ans = El polinomio de raíces r=[2 -4 3] es
1 -1 -14 24 p( x)  ( x  2)( x  4)( x  3)  p( x)  x3  x 2  14 x  24

7.1.7 LA FUNCION sym2poly(p), poly2sym(p), expand(p)


sym2poly(p) Convierte el polinomio simbólico p en un vector P cuyas componentes
son sus coeficientes del polinomio p
p( x)  x3  4 x 2  10 >> p=sym2poly(p)
>> syms x p=
>> p=x^3+4*x^2-10; 1 4 0 -10

poly2sym(p) Convierte el vector p en un polinomio P(x) cuyos coeficientes son las


componentes del vector p

poly2sym(p, y) Convierte el vector p en un polinomio P(y) cuyos coeficientes son las


componentes del vector p

>> p >> P=poly2sym(p)


p= P=
1 4 0 -10 x^3+4*x^2-10
>> p >> P=poly2sym(p, 'y')
p= P=
1 4 5 0 -10 y^4+4*y^3+5*y^2-10

expand(espresion) Expande polinomios y funciones trigonométricas, logarítmicas,


poténciales, exponenciales.
>> syms x >> syms x y
>> E=expand((x+2)*(x-3)*(x-8)) >> E=expand(sin(x+y))
E= E=
x^3-9*x^2+2*x+48 sin(x)*cos(y)+cos(x)*sin(y)

______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 49
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

( x  y)3  x3  3x2 y  3xy 2  y3 2 2


e( x y )  e x e2 xy e y
2

>> E=expand((x+y)^3) >>E=expand(exp((x+y)^2))


E= E=
x^3+3*x^2*y+3*x*y^2+y^3 exp(x^2)*exp(x*y)^2*exp(y^2)

collect(expresión) agrupa los términos de igual potencia en la expresión


simplify(expresión) produce a forma más simple posible da expresión
factor(expresión) Factoriza la expresión
compose(f,g) retorna f(g(y)) where f = f(x) and g = g(y).
>> syms x y >>syms x
>>E=collect(x^2*y + y*x - x^2 - 2*x, x) >>E=simplify([(x^2 + 5*x + 6)/(x + 2),...
E= sin(x)*sin(2*x) + cos(x)*cos(2*x);
(y - 1)*x^2 + (y - 2)*x (exp(-x*i)*i)/2 - (exp(x*i)*i)/2, sqrt(16)])

>> syms x y E=
>>E=collect(x^2*y + y*x - x^2 - 2*x, y) [ x + 3, cos(x)]
E= [ sin(x), 4]
(x^2 + x)*y - x^2 - 2*x
>>syms x y >>syms x y z t u
>>E=factor(x^3-y^3) >>f = 1/(1 + x^2); g = sin(y); h = x^t; p =
E= exp(-y/u);
(x - y)*(x^2 + x*y + y^2) >>a = compose(f,g)
a=
1/(sin(y)^2 + 1)

diff(F,var) Halla la derivada de F con respecto a la variable var.


int(expresión) Integrales definidas e indefinidas
rsums(f,a,b) La Integral de Riemann por sumas finitas
limit(expresión, var, valor,lado) límite de una función
>>syms x >>rsums(x^2,-2,2)
>>f(x) = sin(x^2);
>>df = diff(f)
df(x) =
2*x*cos(x^2)
>>syms x >>syms x y z
>>int(-2*x/(1 + x^2)^2) >>f = 2*y*z*sin(x) + 3*x*sin(z)*cos(y);
ans = >>E1=gradient(f, [x, y, z])
1/(x^2 + 1)
>>syms x h E1=
>>limit(sin(x)/x) 3*cos(y)*sin(z) + 2*y*z*cos(x)
>>limit((sin(x + h) - sin(x))/h, h, 0) 2*z*sin(x) - 3*x*sin(y)*sin(z)
ans = 2*y*sin(x) + 3*x*cos(y)*cos(z)
1
ans =
cos(x)

______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 50
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

7.2 FRACCIONES PARCIALES


B( x)
[R,P,Q]=residue(B,A) Descomposición en fracciones parciales de , siendo
A( x)
B( x) R(1) R(2) R ( n)
   ...   Q( x)
A( x) x  P(1) x  P(2) x  P ( n)

EJEMPLO 1
Consideremos el polinomio d ( x)  2 x 2  4 x  1 entonces tendremos el cociente
p( x) x3  4 x 2  10
siguiente 
d ( x) 2 x 2  4 x  1
>> d=[2 4 1]; >>P =
>> [R,P,Q]=residue(p,d) -1.7071 p ( x) 1.1781 3.4231
>>R = -0.2929  
1.1731 >>Q =
d ( x) x  1.7071 x  0.2929
-3.4231 0.5000 Q( x)  0.5 x  1
1.0000
[p,d] = residue(R,P,Q) Convierte la expansión del fragmento parcial anterior a los
coficientes del polinomio anterior.
[p,d] = residue(R,P,Q) El resultado puede expresarse como
p= 1 3
0.5000 2.0000 -0.0000 -5.0000 x  2 x2  5
p( x) 2
d= sigue 
d ( x) 1
1.0000 2.0000 0.5000 x2  2 x 
2

EJEMPLO 2
Consideremos el polinomio A( x)  4 x  2 y B( x)  x - x - 2 x entonces tendremos
3 2

A( x) 4x  2
el cociente  3 2
B( x) x - x - 2 x
>> A=[4 -2] >> [R,P,Q]=residue(A,B)
A= R= P= Q= A( x) R(1) R(2) R(3)
    Q( x )
4 -2 1 2 [] B( x) x  P(1) x  P(2) x  P(3)
-2 -1
>> B 1 0 A( x) 1 2 1
B=    0
1 -1 -2 0 B( x) x  2 x  1 x  0

7.3 RAICES DE POLINOMIOS


roots(p) Calcula las raíces del polinomio p p( x)  x3  4 x 2  10
>> raices=roots(p)
raices =
-2.6826 + 0.3583i
-2.6826 - 0.3583i
1.3652

______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 51
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

rref y rrefmovie
clear all x=
syms x1 x2 x3 1/2
1=2*x1+3*x2-4*x3+3; c1=coeffs(e1); C1=c1(end:-1:1); 2
e2=x1-x2+x3-0.5; c2=coeffs(e2); C2=c2(end:-1:1); 1
e3=4*x1-7*x2+14*x3+2; c3=coeffs(e3); C3=c3(end:-1:1);
M=[C1;C2;C3];
x=inv(M(:,1:end-1))*M(:,end)
x=
%%rref y rrefmovie 1/2
clear all 2
syms x1 x2 x3 1
1=2*x1+3*x2-4*x3+3; c1=coeffs(e1); C1=c1(end:-1:1);
e2=x1-x2+x3-0.5; c2=coeffs(e2); C2=c2(end:-1:1);
e3=4*x1-7*x2+14*x3+2; c3=coeffs(e3); C3=c3(end:-1:1);
M=[C1;C2;C3];
x=inv(M(:,1:end-1))*M(:,end)

______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 52
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

CAPITULO VIII
INTRODUCCION A SIMULINK
Digitamos la sentencia Simulink en la ventana de comandos de matlab

Librería Simulink

______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 53
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

Ejemplo1: Graficar una onda.


1. Abrir un nuevo modelo de archivo de simulink haciendo clic en la hoja blanca en
la esquina superior izquierda

2. Vamos a Simulik\Sources y tomamos el bloque Sine Wave jalamos este bloque al


nuevo archivo de Simulink

3. Vamos a Simulik\Sinks y tomamos el bloque Scope jalamos este bloque al nuevo


archivo de Simulink

______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 54
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

4. Unimos el bloque Sine Wave con Scope mediante una flecha.

5. Guardamos con el nombre de ondaseno.mdl y ejecutamos el archivo haciendo


click en la flecha derecha superior. Luego hacemos doble click en el bloque Scope
para ver la gráfica.

______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 55
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

6. Podemos cambiar parametros del bloque Sine Wave

______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 56
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

Ejemplo2: Enviar información desde un archivo Simulink a Workspace de Matlab

1. Hacemos los pasos, 1,2,3 y 4 del Ejemplo 1.


2. Vamos a Simulik\Sinks y tomamos el bloque To Workspace jalamos este bloque al
nuevo archivo de Simulink
3. Unimos el To Workspace con Sine Wave
4. Guardamos nuestro archivo con el nombre desde_simulink_a_workspace

5. Antes de ejecutar el Workspace esta vacío.

6. Ejecutamos el código, haciendo click clic en la flecha que encuentra parte superior
derecha del archivo.

______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 57
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

CAPITULO IX

MATLAB GUIDE
function varargout = electroacustica2_por_caballero(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn',
@electroacustica2_por_caballero_OpeningFcn, ...
'gui_OutputFcn',
@electroacustica2_por_caballero_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
function electroacustica2_por_caballero_OpeningFcn(hObject, eventdata,
handles, varargin)
handles.output = hObject;
guidata(hObject, handles);

function varargout = electroacustica2_por_caballero_OutputFcn(hObject,


eventdata, handles)
varargout{1} = handles.output;

function leer_funcion_Callback(hObject, eventdata, handles)


function leer_a_Callback(hObject, eventdata, handles)
function leer_b_Callback(hObject, eventdata, handles)

function graficar_Callback(hObject, eventdata, handles)


fun=get(handles.leer_funcion,'string');
a=str2double(get(handles.leer_a,'string'));
b=str2double(get(handles.leer_b,'string'));
t=a:0.01:b;
f=vectorize(inline(fun));
y=f(t);
axes(handles.axes1)
plot(t,y,'LineWidth',2,'color',rand(1,3));
set(gca,'fontsize',13)
set(gca,'xcolor',[1 0 0])
set(gca,'ycolor',[0 0 1])
title(['f(x)=',fun],'fontname','Arial back','fontsize',13)
xlabel('EJE X','fontname','Arial back','fontsize',13,'color','b');
ylabel('EJE Y','fontname','Arial back','fontsize',13,'color','m');
grid on;
axis([t(1) t(end) min(y) max(y)]);

function entrar_a_la_pagina_webdelpromador_Callback(hObject,
eventdata, handles)
web http://www.lawebdelprogramador.com/foros/Matlab/ -browser
______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 58
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

function entrar_al_blog_josecaballero_Callback(hObject, eventdata,


handles)
web http://matlabcaballero.blogspot.com -browser

function varargout = hexadecimal_decimal_hexadecimal(varargin)


gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn',
@hexadecimal_decimal_hexadecimal_OpeningFcn, ...
'gui_OutputFcn',
@hexadecimal_decimal_hexadecimal_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end

function hexadecimal_decimal_hexadecimal_OpeningFcn(hObject,
eventdata, handles, varargin)
handles.output = hObject;
guidata(hObject, handles);

function varargout =
hexadecimal_decimal_hexadecimal_OutputFcn(hObject,...
eventdata, handles)
varargout{1} = handles.output;

______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 59
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

cadena_hexa1='35 2E A8 D4';
cadena_decimal1='53 46 168 212';
set(handles.text6,'String',cadena_hexa1);
set(handles.text12,'String',cadena_decimal1);

function ingrese_cadena_hexadecimal_Callback(hObject, eventdata,


handles)
cadena_hexa=get(hObject,'String');
eb1=find(cadena_hexa==' ');
k=1; m=1;
for i=1:length(eb1)
cadena_dec{k}=cadena_hexa(m:eb1(i)-1);
k=k+1;
m=eb1(i)+1;
end
cadena_dec{k}=cadena_hexa(m:end);
for i=1:length(cadena_dec)
decimal(i)=hex2dec(cell2mat(cadena_dec(i)));
end
set(handles.text3,'String',num2str(decimal))

function ingrese_cadena_decimal_Callback(hObject, eventdata, handles)


cadena_decimal=str2num(get(hObject,'String'));
hexadecimal=dec2hex(cadena_decimal);
k=1;
for i=1:size(hexadecimal,1)
hex{k}=hexadecimal(i,:);
hex{k+1}=',';
k=k+2;
end
set(handles.text10,'String',cell2mat(hex))

______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 60
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

Problema: Crear una matriz que guarde estos datos


Inicial Primario X Y Ancho Altura Visible
A 1 10 20 30 40 on
A 2 10 20 30 40 on
A 3 10 20 30 40 on
B 1 10 30 30 40 off
Utilizar estos valores para un GUI
function varargout = crear_matrices_strings2_jose_caballero(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn',
@crear_matrices_strings2_jose_caballero_OpeningFcn, ...
'gui_OutputFcn',
@crear_matrices_strings2_jose_caballero_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end

function crear_matrices_strings2_jose_caballero_OpeningFcn(hObject, eventdata,


handles, varargin)
handles.output = hObject;
guidata(hObject, handles);

function varargout = crear_matrices_strings2_jose_caballero_OutputFcn(hObject,


eventdata, handles)
a(1)=handles.text1; a(2)=handles.text2; a(3)=handles.text3;
a(4)=handles.text4; a(5)=handles.text5; a(6)=handles.text6;
a(7)=handles.text7; a(8)=handles.text8; a(9)=handles.text9;
a(10)=handles.text10; a(11)=handles.text11; a(12)=handles.text12;
a(13)=handles.text13; a(14)=handles.text14;
for i=1:5
set(a(i),'string',' ')
end

%Impresion desde un archivo de texto


fid =fopen('crear_matrices_strings1_jose_caballero.txt');
datos=textscan(fid,'%s %s %s %s %s %s %s');
fclose(fid);
for i=1:7
set(a(i),'String',datos{i}(1:end))
end
columnas=char(65:90);
%exportacion a excel el archivo de texto con matlab
for i=1:7

xlswrite('crear_matrices_strings1_jose_caballero.xlsx',datos{i}(1:end),1,colum
______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 61
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

nas(i));
end
%importacion desde excel hacia matlab
[num,txt,raw]=xlsread('crear_matrices_strings1_jose_caballero.xlsx');
for i=8:14
set(a(i),'String',raw(:,i-7))
end
handles.output = hObject;
guidata(hObject, handles);
varargout{1} = handles.output;

function pushbutton1_Callback(hObject, eventdata, handles)


web http://www.lawebdelprogramador.com/foros/Matlab/ -browser

function pushbutton2_Callback(hObject, eventdata, handles)


web http://www.matlabcaballero.blogspot.com/ -browser

______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 62
JOSE JEREMIAS CABALLERO CANTU MatLab R2012a 7.14

MATLAB UICONTROL
function gui_pop_men
close all
hFig = figure(...
'units','pixels',...
'position',[400 300 500 300],...
'menubar','none',...
'name','gui_pop_menu',...
'numbertitle','off',...
'resize','on');

hPopup = uicontrol(...
'Parent',hFig,...
'style','popupmenu',...
'unit','pix',...
'position',[30 60 100 20],...
'fontsize',16,...
'fontweight','bold',...
'string',{'20';'80';'940';'150'},... % imprime
'value',1,...
'Callback',@Popup_Callback);

hOutput = uicontrol(...
'Parent',hFig,...
'Units','characters',...
'BackgroundColor',[1 1 1],...
'FontSize',16,...
'ForegroundColor',[0 0 0],...
'Position',[5 0.5 16 2.5],...
'String','First',...%% visualiza
'value',1,...
'Style','edit');

hOutputb = uicontrol(...
'Parent',hFig,...
'Units','characters',...
'BackgroundColor',[1 1 1],...
'FontSize',16,...
'ForegroundColor',[0 0 0],...
'Position',[25 0.5 16 2.5],...
'String','Second',... %% visualiza
'value',1,...
'Style','edit');

function Popup_Callback(hObject, eventdata);


Ax = get(hPopup,'String');
By = get(hPopup,'Value');
Cz = Ax{By};
set(hOutput,'String',Cz);
Dn = log10(str2num(Cz));
set(hOutputb,'String',Dn);
end

end

______________________________________________________________________
Facultad de Ciencias Matemáticas CEUPSMAT jjcc941@hotmail.com
Pág. 63

S-ar putea să vă placă și