Matlab - Métodos Numéricos 1.2

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 170

Métodos Numéricos – Laboratorio 2

Edwin Chávez Ramírez


Vectores y Matrices

Edwin Chávez Ramírez


UNMSM, 2021 - II
VECTORES Y MATRICES
 Las matrices son el tipo fundamental de
dato en MatLab.

Edwin Chávez
Edwin
» A=[1 3 5; 6 9 2; 4 8 7]
» A^2+3*A
A =

Chávez Ramírez
ans =
1 3 5

Ramírez
6 9 2 42 79 61
4 8 7 86 142 68
92 164 106
» det(A)

ans = Matrix Laboratory


-- datos son matrices
-- reglas del álgebra lineal
5
Vectores y matrices_______________________________
Definición de vectores:
Los vectores pueden ser vectores fila o vectores columna
Vectores fila; los elementos de una misma fila están separados por
blancos o comas,
>> v =[2 3 4]

Edwin Chávez
Edwin
Vectores columna: los elementos de una misma columna están
separados por intro o por caracteres punto y coma (;).

Chávez Ramírez
>> w =[2;3;4;7;9;8]

Ramírez
La dimensión de un vector se obtiene por el comando length(nombre
del vector) sub_w=w(i:k:j)

Generación de vectores:
• Especificando el incremento de sus componentes v=a:h:b;
• Especificando su dimensión linspace(a,b,n) si se omite n toma 100
por defecto; el incremento es k=(b-a)/(n-1)
• Con componentes logarítmicamente espaciadas logspace(a,b,n)
genera un vector fila de n puntos logarítmicamente espaciados entre
10a y 10b. Si se omite el valor de n se toma 50
Vectores y matrices_______________________________
Operaciones con escalares:
v+k adición o suma
v-k sustracción o resta
v*k multiplicación

Edwin Chávez
Edwin
v/k divide por k cada elemento de v
k./v divide k por cada elemento de v
v.^k potenciación cada componente de v esta elevado a k

Chávez Ramírez
k.^v potenciación k elevado cada componente de v
Operaciones entre vectores:

Ramírez
v+w adición o suma
v-w sustracción o resta
v.*w multiplicación cada elemento de v por el correspondiente de w
v./w divide cada elemento de v por el correspondiente de w
v.^w potenciación cada componente de v esta elevado al
correspondiente de w
Producto escalar de vectores v*w calcula el producto escalar de v
por w
Vectores y matrices_______________________________
Funciones de MatLab específicas para vectores:

sum(v) suma
prod(v) producto

Edwin Chávez
Edwin
sort(x) Ordena de menor a mayor el vector x
find(x<n) Busca los elementos del vector x, menores a n
v' transposición de vectores (filas  columnas)

Chávez Ramírez
dot(v,w) producto escalar de vectores
cross(v,w) producto vectorial de vectores

Ramírez
[y,k]=max(v) valor máximo de las componentes de un vector k indica
la posición, lo mismo para min(v) valor mínimo
mean(v) (hace la media)
diff(v) (vector cuyos elementos son la resta de los elemento de v)
iscolumn(A) Controla si isemty(A) Isequal(B,D)
es columna o no, la Retorna 0 si no es Retorna 1 si son
variable A, B vacío, caso contrario iguales, caso
retorna 1 contrario retorna 0
Ejemplo:
>> A=[2;3; 5]

Edwin Chávez
Edwin
Ejemplo: Ejemplo:
A= >> isempty(A) >> D=[3 4 5 6];
2 ans = >> isequal(B,D)

Chávez Ramírez
3 0 ans =
5 >> C=[ ]; 0
>> iscolumn(A) >> isempty(C) >> T=[2 3 5];

Ramírez
ans = ans = >> isequal(B,T)
1 1 ans =
>> B=[2 3 5] 1
B=
235
>> iscolumn(B)
ans =
0
isequalwithequalnans(A, B) isfinite(A) isfloat(A)
Compara vectores con Si es infinito devuelve Determinar si la
elementos NaN 0 caso contrario entrada es punto
devuelve 1 flotante
Ejemplo:
>> A=[3 4 NaN 8]; Ejemplo: Ejemplo:

Edwin Chávez
Edwin
>> B=A; >>A = [-2 0 1 2]; >> a=14.6; whos a
>> isequal(A,B) isfinite(1./A) Name Class
ans =

Chávez Ramírez
ans = a double
0 101 >> isfloat(a)
>> ans =

Ramírez
isequalwithequalnans(A,B) 1
ans = >> b=uint8(a); whos b
1 Name Class
b uint8
>> isfloat(b)
ans =
0
Isinf(A) Isinteger(A)
Devuelve 1 si es infinito, Duelve 1 si es un tipo uint* y caso contrario
caso contrario devuelve 0 devuelve 0
int8 uint8 int16
Ejemplo: uint16 int32 uint32
>> B = [-2 -1 0 1 2]; int64 uint64
>> A=1./B;

Edwin Chávez
Edwin
>> isinf(A) Ejemplo:
ans = >> isinteger(uint8(9))

Chávez Ramírez
00100 ans =
1
>> isinteger(9)

Ramírez
ans =
0
SELECCIÓN DE LOS ELEMENTOS DE UN VECTOR “V”:

Se hace de acuerdo a la siguiente sintaxis:

 V(n) Devuelve el n-ésimo elemento del vector V.


 V([n,m,p]) Devuelve los elementos del vector V situados en las
posiciones n-ésima, m-ésima y p-ésima.

Edwin Chávez
Edwin
 V(n:m) Devuelve los elementos del vector V situados entre el n-ésimo y
el m-ésimo, ambos inclusive.
 V(n:p:m) Devuelve los elementos del vector V situados entre el n-ésimo

Chávez Ramírez
y el m-ésimo, ambos inclusive pero separados de p en p unidades.

Sea el vector

Ramírez
>> V=[6 7 2 8 9];

Para obtener su tercera componente


>> V(3)
ans =
2
Para obtener su 1ra, 4ta y última componente
>> V([1, 4, 5])
ans =
689
Vectores y matrices_______________________________
Ejemplo: Cálculo de errores relativos
Supongamos que para resolver una ecuación diferencial ordinaria hemos
utilizado.
-Un método analítico mediante el cual sabemos que su solución en el
intervalo [0,1] es y(x)=x2+cos(x).

Edwin Chávez
Edwin
-Un método numérico para aproximar la solución en el intervalo [0,1] con
parámetro de discretización 0.2

Chávez Ramírez
Ángulo (radianes) Solución aproximada
0 1.0030
0.2 1.0234

Ramírez
0.4 1.0825
0.6 1.1869
0.8 1.3342
1 1.5415

Utilice los vectores para hallar la solución exacta y el error relativo


𝑉𝑒𝑥𝑎𝑐𝑡𝑜 −𝑉𝑎𝑝𝑟𝑜𝑥
(𝐸𝑟 = ).
𝑉𝑒𝑥𝑎𝑐𝑡𝑜
Vectores y matrices_______________________________

Para definir una matriz no hace falta establecer de antemano su tamaño (de
hecho, se puede definir un tamaño y cambiarlo posteriormente). MatLab
determina el número de filas y de
columnas en función del número de elementos que se proporcionan (o se
utilizan). Las matrices se definen por filas; los elementos de una misma fila

Edwin Chávez
Edwin
están separados por blancos o comas, mientras que las filas están separadas
por pulsaciones intro o por caracteres punto y coma (;). Por ejemplo, el

Chávez Ramírez
siguiente comando define una matriz A de dimensión (3x3):
» A=[1 2 3; 4 5 6; 7 8 9]
La respuesta del programa es la siguiente:

Ramírez
A=
123
456
789

matriz traspuesta: En MatLab el apóstrofo (') es el símbolo de trasposición


matricial.

matriz inversa: la inversa de A se calcula con la función inv( ) B=inv(A).


Vectores y matrices_______________________________
En MatLab se accede a los elementos de un vector poniendo el índice entre
paréntesis (por ejemplo x(3) ó x(i)). Los elementos de las matrices se acceden
poniendo los dos índices entre paréntesis, separados por una coma (por ejemplo
A(1,2) ó A(i,j)). Las matrices se almacenan por columnas (aunque se
introduzcan por filas, como se ha dicho antes), y teniendo en cuenta esto puede

Edwin Chávez
Edwin
accederse a cualquier elemento de una matriz con un sólo subíndice. Por ejemplo,
si A es una matriz (3x3) se obtiene el mismo valor escribiendo A(1,2) que
escribiendo A(4).

Chávez Ramírez
Los operadores matriciales de MatLab son los siguientes:

+ adición o suma

Ramírez
– sustracción o resta
* multiplicación
' adjunta (transpuesta o transpuesta conjugada)
^ potenciación
\ división-izquierda
/ división-derecha
.* producto elemento a elemento
./ y .\ división elemento a elemento
.^ elevar a una potencia elemento a elemento
SELECCIÓN DE LOS ELEMENTOS DE UNA MATRIZ “A”:

Se hace de acuerdo a la siguiente sintaxis:


 A(m,n) Devuelve el elemento (m,n) de la matriz A (fila m y columna n).
 A([m, n],[p, q]) Devuelve la submatriz de A formada por la intersección de
las filas n-ésima y m-ésima y las columnas p-ésima y q-ésima.
 A(n,:) Devuelve la fila n-ésima de la matriz A.

Edwin Chávez
Edwin
 A(:,p) Devuelve la columna p-ésima de la matriz A.
 A(:) Devuelve un vector columna cuyos elementos son las columnas de A

Chávez Ramírez
situadas por orden.
 A(:,:) Devuelve toda la matriz A.

Ramírez
Sea la matriz Para obtener el elemento de la 2da fila y la 3ra
>> A=[1:4; 5:8; 9:12] col.
A = >> A(2,3)
1 2 3 4 ans =
5 6 7 8 7
9 10 11 12 Para obtener la primera fila
>> A(1,:)
ans =
1 2 3 4
Para obtener la tercera columna
>> A(:,3)
ans =
3
7
11
Para obtener la submatriz formada por la 1ra y 2da columna

Edwin Chávez
Edwin
>> A(:,1:2)
ans =
1 2

Chávez Ramírez
5 6
9 10

Ramírez
Para obtener la matriz aumentada añadiendo a la matriz A su tercera
columna
>> AD=[A A(:,3)]
AD =
1 2 3 4 3
5 6 7 8 7
9 10 11 12 11
Para obtener todos sus elementos de la
matriz A como un único vector
>> vect=A(:)
vect =
1
Extraer la submatriz indicada de la matriz B.
5
9
2

Edwin Chávez
Edwin
6
10

Chávez Ramírez
3
7
11

Ramírez
4
8
12

>> B=[3,6,10,12;2,16,30,31;4,-2,3,96;5,32,96,97;2,1,3,4];
>> M=B(2:4,2:3)
M =
16 30
-2 3
32 96
Vectores y matrices
 Matriz vacía: M=[ ];

 Información de un elemento: M(1,3), de una fila M(2,:), de una


columna M(:,3).

Edwin Chávez
Edwin
 Cambiar el valor de algún elemento: M(2,3)=1;

Chávez Ramírez
 Eliminar una columna: M(:,1)=[ ], una fila: M(2,:)=[ ];

Ramírez
Generación de matrices:
 eye(n) Crea la matriz identidad de nxn
 zeros(n) Crea la matriz nula de nxn
 ones(n) Crea la matriz de unos de nxn
 rand(n) Crea una matriz aleatoria uniforme de nxn
 randn(n) Crea una matriz aleatoria normal de nxn
 diag(A) Extraer la diagonal de la matriz A

Edwin Chávez
Edwin
 diag(A,k)Extraer la k-ésima diagonal de la matriz A.
 k = 0 es la diagonal principal, k > 0 es encima de la diagonal principal y k < 0

Chávez Ramírez
es debajo de la diagonal principal.
 eye(m,n) Idem orden mxn
 zeros(m,n) Idem de orden mxn

Ramírez
 ones(m,n) Idem de orden mxn
 rand(m,n) Idem de orden mxn
 randn(m,n) Idem de orden mxn
 diag(v) Matriz diagonal con los elementos de v
 diag(v,k) Matriz diagonal con los elementos de v en la k-ésima diagonal
 tril(A) Parte triangular inferior de la matriz A
 triu(A) Parte triangular superior de la matriz A
Genere una matriz NULA de orden 2 y otra de orden 2x3
>> zeros(2)
>> zeros(2,3)

Genere una matriz de UNOS de orden 2 y otra de orden 2x3


>> ones(2)
>> ones(2,3)

Edwin Chávez
Edwin
Genere una matriz IDENTIDAD de orden 3

Chávez Ramírez
>> I=eye(3)

Ramírez
Genere una matriz ALEATORIA de orden 3
>> rand(3)
Extraer la DIAGONAL de la matriz A
>> A=[1:4; 5:8; 9:12];
>> D=diag(A)
D =
1
6
11
Genere una matriz DIAGONAL con los valores del 2 al 4
>> I=diag(2:4)
I =
2 0 0
0 3 0
0 0 4

Edwin Chávez
Edwin
Genere la matriz Identidad de orden 3
>> I=diag(ones(3,1))

Chávez Ramírez
I =
1 0 0
0 1 0

Ramírez
0 0 1
MÁS MATRICES ESPECIALES:

magic matriz Mágica.

M = magic(n) retorna una matriz de nxn construida con enteros del 1.. n2
con igual suma en las filas, columnas, diagonal principal y diagonal
secundaria.

Edwin Chávez
Edwin
>> magic(3)
ans =

Chávez Ramírez
8 1 6
3 5 7
4 9 2

Ramírez
>> magic(4)
ans =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
pascal: matriz de Pascal.

M=pascal(N) es la matriz de orden N, simétrica y definida


positiva, con elementos enteros, construidos como el
triángulo de Pascal. Su matriz inversa tiene elementos
enteros.

Edwin Chávez
Edwin
>> pascal(2)
ans =

Chávez Ramírez
1 1
1 2
>> pascal(3)

Ramírez
ans =
1 1 1
1 2 3
1 3 6
Vander: matriz de Vandermonde.

A = vander(v) matriz cuyas columnas son potencias del vector v, dado por
A(i,j) = v(i)^(n-j)
.
>> vander([2 4 1])
ans =
4 2 1

Edwin Chávez
Edwin
16 4 1
1 1 1

Chávez Ramírez
>>%tambien
>> vander([2;4;1])
ans =

Ramírez
4 2 1
16 4 1
1 1 1
>> vander([2 4 5 3 6])
ans =
16 8 4 2 1
256 64 16 4 1
625 125 25 5 1
81 27 9 3 1
1296 216 36 6 1
Hilb: matriz de Hilbert.
H = hilb(n) matriz de orden n. Es una matriz pobremente
condicionada, sus elementos son

Invhilb: matriz Inversa de Hilbert.

Edwin Chávez
Edwin
>> hilb(3)

Chávez Ramírez
ans =
1.0000 0.5000 0.3333
0.5000 0.3333 0.2500

Ramírez
0.3333 0.2500 0.2000
>> invhilb(4)
ans =
16 -120 240 -140
-120 1200 -2700 1680
240 -2700 6480 -4200
-140 1680 -4200 2800
Mas Operaciones con Matrices
 A’ Matriz transpuesta de A
 inv(A) Matriz inversa de la matriz cuadrada A
 det(A) Determinante de la matriz cuadrada A
 trace(A) Suma de los elementos de la diagonal de A
 transpose(A) Matriz transpuesta de A

Edwin Chávez
Edwin
rank(A) Rango de la matriz A
 size(A) Devuelve el orden (tamaño) de la matriz A, es decir el numero de filas
y numero de columnas.

Chávez Ramírez
 sum(A) Suma de los elementos de la matriz A en cada columna.
 sum(A,2) suma de los elementos de la matriz A en cada fila.
 prod(A) Producto de los elementos de la matriz A en cada columna.

Ramírez
 prod(A,2) producto de los elementos de la matriz A en cada fila.
 cumsum(A) Suma acum. de los elementos de la matriz A en cada columna.
 cumsum(A,2) suma acum. de los elem. de la matriz A en cada fila.
 norm(A) norma de una matriz (máximo de los valores absolutos de los
elementos de A)
 flipud(A) reordena la matriz, haciendo la simétrica respecto de un eje
horizontal.
 fliplr(A) ) reordena la matriz, haciendo la simétrica respecto de un eje vertical
 [V, landa]=eig(A) da una matriz diagonal landa con los autovalores y otra V
cuyas columnas son los autovectores de A
Vectores y matrices_______________________________

Desde la versión 5 de MatLab se admiten variables subindicadas


multidimensionalmente
a=ones(2,2,3)
a(:,:,1)= 1 1 a(:,:,2)= 1 1 a(:,:,3)= 1 1
1 1 1 1 1 1

Edwin Chávez
Edwin Chávez Ramírez
Matrices dispersas o huecas son aquellas que tienen gran cantidad de
elementos nulos

Ramírez
>> a= sparse(i,j,c,m,n)

m indica filas, n columnas, c vector que contiene los elementos no nulos i,j son
dos vectores que indican la posición de cada elemento de c
para visualizar la matriz entera

>>full(a)

[i2,j2,c2]=find(a)
Vectores y matrices_______________________________

Ejemplo: Tomemos la siguiente matriz

 12 4 0 0 0 
 
8 

Edwin Chávez
Edwin
 7 3 0 0
 0 0 0 0 0 
 

Chávez Ramírez
 0 0  13 11 0 
 
 0 0 2 7 4 

Ramírez
Y trabajemos con ella como una matriz dispersa, para ello definimos el vector
de elementos no nulos, el vector definido por las filas y el vector definido por
las columnas
Vectores y matrices_______________________________
m=[12,-4,7,3,-8,-13,11,2,7,-4];
f=[1,1,2,2,2,4,4,5,5,5];
c=[1,2,1,2,5,3,4,3,4,5];
a=sparse(f,c,m,5,5)
full(a)

Edwin Chávez
Edwin
m1=[12,7,-4,3,-13,2,11,7,-8,-4];
f1=[1,2,1,2,4,5,4,5,2,5];

Chávez Ramírez
c1=[1,1,2,2,3,3,4,4,5,5];
b=sparse(f1,c1,m1,5,5];

Ramírez
full(b)
a=sparse(f,c,m)
s=a+b
p=a*b
[f2,c2,m2]=find(p)
e=full(sparse(f2,c2,m2))
Solución de los SEL, usando MatLab
Para resolver los sistemas lineales A*x = B por ejemplo

Edwin Chávez
Edwin
Recuerde las siguientes operaciones:
Símbolo Operación

Chávez Ramírez
/ Cociente matricial, B/A=B*inv(A)
\ Cociente matricial, A\B=inv(A)*B

Ramírez
Si A es una matriz no singular cuadrada entonces A\B y B/A corresponden
formalmente a la multiplicación izquierda y derecha de B por A-1 (inversa de A).

Estas expresiones se utilizan para solucionar los tipos siguientes de sistemas


de ecuaciones:
División izquierda:
x = A\B y también x=linsolve(A, B) soluciona A * x = B
División derecha:
x = B/A soluciona x * A = B
Ejemplo: Resolver

Las acciones en MATLAB serán:


>> A=[2,3,-4;1,-1,1;4,-7,14]

Edwin Chávez
Edwin
A =
2 3 -4

Chávez Ramírez
1 -1 1
4 -7 14
>> b=[3;-0.5;2]

Ramírez
b =
3.0000
-0.5000
2.0000
>> x=A\b %solución
x =
0.5000
2.0000
1.0000
>> linsolve(A,b) %con linsolve
Vectores y matrices_______________________________
Ejercicio 2.1 Dados los vectores definidos por
x=(1,4.5,7.8) y=(sen(90),cos(45),0)
Realizar los cálculos siguientes:
x+y;el producto escalar de x e y; calcular el ángulo que forman ambos
vectores.

Edwin Chávez
Edwin
Ejercicio 2.2 Para un laboratorio se compran los materiales
especificados en la tabla siguiente.

Chávez Ramírez
Ref. arti. Precio Cantidad
1520 1146 200

Ramírez
1621 3450 250
1428 6225 150
1429 7100 150
1628 8500 100
Utilizar vectores y el producto de vectores para calcular el coste de
cada producto y el total a pagar (la tabla de precios no incluye IGV,
debiendo por tanto aplicarse un 18% de incremento.
Vectores y matrices_______________________________

Ejercicio 2.3 Dadas las matrices a y b calcular: a+b, a+0, BI.


Comprobar que el producto de matrices no es conmutativo. Elegir la

Edwin Chávez
Edwin
submatriz de a formada por la primera columna y la tercera fila y la
submatriz de b formada por la segunda y tercera columna y calcular el
producto  1 2 3 4 2 1 
   

Chávez Ramírez
a   2 3 4 b   2 0 4 
 4 2 5  1  2  5
   

Ramírez
Ejercicio 2.4 Utilizar matrices para construir una tabla que
contenga: En la 1º columna la variable grados celsius en el intervalo [0
100] con un paso de 2. En la 2º columna su valor en grados fahrenheit
y en la 3º en grados kelvin. ¿Cómo guardarías en un fichero la tabla
anterior?
9 * celsius
 32
5
Vectores y matrices_______________________________
Ejercicio 2.5 Considérese la matriz tridiagonal definida por:

i, si i  j 
 j, si i  j  1 
 
aij   1  i , j  n
 j, si i  j - i

Edwin Chávez
Edwin

0, en otro caso 

Chávez Ramírez
Introducir la matriz en el espacio de trabajo como matriz
dispersa para n=10

Ramírez
Ejercicio 2.6: Resolver el sistema de ecuaciones lineales

2x + 4y – 4z + 0w = 12
x + 5y – 5z – 3w = 18
2x + 3y + z + 3w = 8
x + 4y – 2z + 2w = 8
Ejercicio:

Resolver el sistema de ecuaciones lineales

2x + 4y – 4z + 0w = 12
x + 5y – 5z – 3w = 18

Edwin Chávez
Edwin
2x + 3y + z + 3w = 8
x + 4y – 2z + 2w = 8

Chávez Ramírez
Ramírez
POLINOMIOS

Edwin Chávez Ramírez


Edwin Chávez Ramírez
UNMSM, 2021 - II
POLINOMIOS

Los polinomios se representan en matlab por un vector fila de


dimensión n+1 siendo n el grado del polinomio.

Edwin Chávez
Edwin
Dado un polinomio

Chávez Ramírez
x3+2x
se representa por
>> pol1=[1 0 2 0]

Ramírez
para el cálculo de las raíces de un polinomio existe el comando
roots.

>>raices=roots(pol1) %(da un vector columna,


aunque pol1 es un vector fila)
Ejercicio:
Construya el polinomio P(x) = (x – 2)(x + 1)(x + 3)(x – 4)

Sol:

Edwin Chávez
Edwin
>>pp=poly([2 -1 -3 4])
pp =

Chávez Ramírez
1 -2 -13 14 24

Ramírez
Ejercicio:
Construya un polinomio que tenga por raíces a:
2
-3 Sol:
0
2-3i >> p1=poly([2 -3 0 2-3i 2+3i])
2+3i p1 =

1 -3 3 37 -78 0
Polinomios______________________________________

Un polinomio puede ser reconstruido a partir de sus raíces con el comando


poly
>> p=poly(raices) %(da un vector fila)

Edwin Chávez
Edwin
en caso de que el argumento de poly fuera una matriz obtendríamos como
resultado el polinomio característico de la matriz. Así mismo si queremos
calcular los autovalores de la matriz bastaría con calcular las raíces del

Chávez Ramírez
polinomio característico.
Ejemplo1:

Ramírez
pol2=[2 4 0 1]; % definición del polinomio 2x3+4x2+1
raices=roots(pol2) % cálculo de sus raíces
pol2_n=poly(raices) % reconstrucción del polinomio
real(pol2_n) % ¿qué pasó?

Ejemplo2:
A=[1 2 3 ; 2 3 4; 4 2 5]; p=poly(A) % pol. característico
roots(p) % autovalores de A
Polinomios______________________________________
Para calcular el valor de un polinomio p en un punto dado x basta con
utilizar el comando polyval

>>y=polyval(p,x)

Ejemplo3:

Edwin Chávez
Edwin
p=[1 –1 –1 1] % definición del polinomio x3-x2-x+1
polyval(p,2)

Chávez Ramírez
Ejemplo4:
x=-2:0.1:2;

Ramírez
Y=polyval(p,x);

Ejercicio: evaluar p en la matriz A


>> A=[1 2 3 ; 2 3 4; 4 2 5]; polyval(p,A)
ans =

4 15 40
15 40 85
85 15 156
Polinomios______________________________________
Para multiplicar y dividir polinomios tenemos los comandos especiales
conv(p1,p2) y deconv(p1,p2)
Ejemplo5:
p1=[1, -2, 1]; p2=[1,1]; p3=conv(p1,p2)

Edwin Chávez
Edwin
p4=deconv(p3,p2)
Para obtener el residuo usar la secuencia:

Chávez Ramírez
[p4,r]=deconv(p3,p2) % resto de la división
Ejercicio:

Ramírez
Halle el cociente y el residuo de P(x)/d(x)
>> p=[1,4,0,-10];d=[1,0,-2];
>> [Q,R]=deconv(p,d) %division de p(x) por d(x)
Q =
1 4
R =
0 0 2 -2
Polinomios______________________________________
El comando residue, permite el cálculo del desarrollo en suma de fracciones
simples del cociente p1/p2.
p2 debe tener raíces reales

El formato del comando es:

Edwin Chávez
Edwin
>>[r,p,k] =residue(p1,p2)

Chávez Ramírez
donde:
r= vector columna con los numeradores

Ramírez
p= vector columna con las raices del denominador
k= vector fila con los coeficientes del polinomio independiente.

p1( x ) r (1) r (n )
   k(x)
p2( x ) x  p(1) x  p(n )
Polinomios______________________________________
>>[p1,p2]=residue(r,p,k) hace la operación inversa

Ejemplo6:
Descomponer en fracciones simples el cociente

Edwin Chávez
Edwin
x3  x2  1
x 3  3x 2  4

Chávez Ramírez
p1=[1 1 0 1]
p2=[1 –3 0 4]
[r,p,k]=residue(p1,p2)

Ramírez
rats(r)

x3  x2  1 35 13 1
   1
x  3 x  4 9( x  2) 3( x  2)
3 2 2
9( x  1)
[pol1,pol2]=residue(r,p,k)
Ejercicio:
Descomponer en fracciones parciales

Edwin Chávez
Edwin
>> A=[4,-1,-3,-2];B=[1,2,1,0,0];
>> [R,P,Q]=residue(A,B)

Chávez Ramírez
R =
3
-4

Ramírez
1
-2
P =
-1
-1
0
0
Q =
[ ]
Polinomios______________________________________
Para calcular la derivada de un polinomio tenemos el comando,
>>polyder(p)
Ejemplo7: Dado el polinomio x3+6x2+1 su derivada es
p=[1, 6,0,1];

Edwin Chávez
Edwin
d=polyder(p)
d =

Chávez Ramírez
3 12 0 % es decir 3x2+12x
Ejercicio:
Sea el polinomio p(x) = 4x3 + 3x2 +x – 1, halle su derivada y segunda derivada

Ramírez
>> p=[4 3 1 -1]
p =
4 3 1 -1
>> dp=polyder(p)
dp =
12 6 1
>> d2p=polyder(dp)
d2p =
24 6
Polinomios______________________________________

Ejercicio3.1 Consideremos el polinomio p(x)=x-1. Calcular p(x)3 e identificar


el polinomio obtenido y calcular sus raíces

Ejercicio3.2 Según Hill y Lounasmaa, la ecuación de la curva de inversión

Edwin Chávez
Edwin
del helio es P=-21+5.44T-0.132T2 donde P viene dada en atmósferas y T en
grados Kelvin.

Chávez Ramírez
a) Calcular el valor de la presión a una temperatura de –268.25 ºC.
b) Calcular el valor de la temperatura para una presión de 3N/m2. Nota
1N/m2=9.265e-6 atm.

Ramírez
Ejercicio 3.3 Calcular la solución general de la EDO
y(5)-y(4)+2y’’’-2y’’+y’-y=0
Ejercicio3.4 Calcular al integral

x 4  2x  1
I dx
x 1
Polinomios______________________________________
Ejercicio3.1
p=[1 –1];
q=conv(p,p)
q=conv(q,p)
raices=roots(q)

Edwin Chávez
Edwin
format short
real(raices)

Chávez Ramírez
Ejercicio3.2
a) presion=[-0.132 4.55 –21.0];

Ramírez
presion0=polyval(presion,273.15-268.25)
b) presion1=3*9.265e-006;
presion(3)=presion(3)-presion1
temp=roots(presion)
Polinomios______________________________________
Ejercicio3.3
format long
p=[1 –1 2 –2 1 –1];
raices=roots(p)

Edwin Chávez
Edwin
der_p=polyder(p)
polyval(der_p,round(raices(2)))

Chávez Ramírez
La solución exacta es
y(x)=c1ex+c2sen(x)+c3cos(x)+c4xsen(x)+c5xcox(x)

Ramírez
dsolve(‘D5y-D4y+2*D3y-2*D2y+Dy-y=0’,’x’)
Polinomios______________________________________
Ejercicio3.4
numerador=[1 0 0 2 1];
denominador=[1 –1];
[cociente,resto]=deconv(numerador,denominador)

Edwin Chávez
Edwin
 3 
4 3 2
4 x x x
I    x  x2  x  3  dx     3 x  4 ln( x  1)

Chávez Ramírez
 x  1 4 3 2

Ramírez
int(‘(x^4+2*x+1)/(x-1)’)
ECUACIONES LINEALES
Dado un sistema algebraico de ecuaciones lineales de la forma Ax=b. Lo
resolveremos por métodos clásicos y con funciones propias de matlab
Algunos comandos cuyos argumentos son matrices y resultan útiles para la
resolución de sistemas.

Edwin Chávez
Edwin
>>det(A) %determinante de una matriz cuadrada
>>inv(A) %inversa de una matriz cuadrada

Chávez Ramírez
>>rank(A) %rango de una matriz el orden del mayor menor con
determinante no nulo
Ejemplo1:

Ramírez
x=ones(4,4);v=[2 2 2 2];y=x+diag(v)
y =
rank(y)
3 1 1 1
1 3 1 1
1 1 3 1
1 1 1 3

>> rank(y)
ans = 4
Ecuaciones lineales________________________________

Para ver si un sistema es compatible


Ax=b compatible

>>rank(A)-rank([A,b])

Edwin Chávez
Edwin
Número de condición de una matriz

Chávez Ramírez
>>cond(A)

Ramírez
este número indica la sensibilidad de la solución de un problema con respecto
a cambios relativos en los datos de entrada. (es la relación entre
el mayor y el menor valor singular de la matriz, debe ser próximo a 1)
Consistencia (Solubilidad)
Teorema de Rouché-Frobenius
 El sistema lineal de ecuaciones Ax=b tiene una solución, o es consistente si y solo si
Rango{A}=Rango{A|b}

Edwin Chávez
Edwin
 Un sistema es inconsistente cuando
Rango{A}<Rango{A|b}

Chávez Ramírez
Ramírez
Rank{A} es el máximo numero de columnas linealmente
independientes o filas de A. El rango puede ser encontrado usando
ERO (Elementary Row Oparations) ó ECO (Elementary column
operations).

50
Un ejemplo inconsistente

1 2  x1  4
 2 4  x   5 

Edwin Chávez
Edwin
  2   

Chávez Ramírez
>>A=[1 2; 2 4]; Aa=[1 2 4;2 4 5]

Ramírez
Rank(A)=1 Entonces
este sistema
de
ecuaciones
Rank(Aa)=2 no es soluble

51
Unicidad de las soluciones

 El sistema tiene una única solucion si y solo si

Edwin Chávez
Edwin
Rango{A}=Rango{A|b}=n

Chávez Ramírez
n es el orden del sistema

Ramírez
 Tales sistemas son llamados sistemas full-rank (rango
completo)

52
Sistemas rango completo (Full-rank)
 Si Rango{A}=n
Det{A}  0  A es nonsingular por lo tanto invertible

Edwin Chávez
Edwin
Solución Única

Chávez Ramírez
Ramírez
1 2   x1  4
1  1  x   2
  2   

53
Matrices de rango deficiente
 Si Rango{A}=m<n
Det{A} = 0  A is singular por lo tanto no es invertible

Edwin Chávez
Edwin
número infinito de soluciones (n-m variables libres)
sistema sub-determinado

Chávez Ramírez
Ramírez
1 2  x1  4
 2 4   x   8 
  2   
Rank{A}=Rank{A|b}=1
Consistente  soluble

54
Sistema de ecuaciones mal-condicionados
Sensibilidad al error de redondeo
 Una pequeña desviación en las entradas de la matriz A,
causa una gran desviación en la solución.

Edwin Chávez
Edwin
 1 2   x1   3   x1  1
0.48 0.99   x   1.47     
  2     x2  1

Chávez Ramírez
>> A=[1 2; 0.48 0.99];B=[3;1.47];
>> sol=inv(A)*B

Ramírez
sol =

1.00000
1.00000

 1 2   x1   3   x1  3
0.49 0.99   x   1.47    x   0
  2     2  
Sistema bien condicionado :
Pequeños cambios en la matriz causan pequeños cambios en la
55
solución.
Mal condicionados (continua.....)
 Un sistema lineal de

Edwin Chávez
Edwin
ecuaciones se dice a ser

Chávez Ramírez
“mal condicionado” si la
matriz de coeficientes

Ramírez
tiende a ser singular

56
Número de Condición o condicionamiento

Edwin Chávez
Edwin Chávez Ramírez
Ramírez
57
 cond mide el mal condicionamiento
cond(eye(n))=1

Edwin Chávez
Edwin
 rcond mide el buen condicionamiento

Chávez Ramírez
rcond(eye(n))=1

Ramírez
 rcond y det
Ecuaciones lineales________________________________

Ejemplos de resolución de un sistema Ax=b:

Regla de Cramer
Ejemplo2: Dado un sistema Ax=b

Edwin Chávez
Edwin
A=[1,2,3;2,3,4;4,2,5]
b=[4;5;1];

Chávez Ramírez
%comprobamos que la matriz no es singular
det(A)

Ramírez
D1=A;D1(:,1)=b
D2=A;D2(:,2)=b
D3=A;D3(:,3)=b
x=[det(D1);det(D2);det(D3)]/det(A)

x =

-1.40000
1.80000
0.60000
Ecuaciones lineales________________________________
La solución por Cramer es tediosa y poco eficaz.

Una primera posibilidad más cómoda.

Si la matriz es cuadrada y su determinante es distinto de cero.

Edwin Chávez
Edwin
Ainv=inv(A)

Chávez Ramírez
Y el sistema se resolvería como
x=Ainv*b

Ramírez
Otra solución sería utilizar la división matricial
X=A\b

A\b, produce un resultado aunque la matriz no sea cuadrada y aunque no


sea invertible.
Por ejemplo si el sistema esta sobredeterminado (más ecuaciones que
incógnitas) se calcula la solución que minimiza la norma 2 de Ax-b
(solución de mínimos cuadrados)
Ecuaciones lineales________________________________
Ejercicio4.1
Se considera la matriz A. Calcular el determinante de la matriz A. Resolver el
sistema siendo b un vector columna igual a (1 2 3)
 6 18 2 
A=  
 7  2  4

Edwin Chávez
Edwin
 4 10  6 
 
Sustituir en la matriz A el elemento de la fila 1 columna 3 por –10 y hacer lo

Chávez Ramírez
mismo.
Ejercicio 4.2 Dada la matriz M, comprobar el teorema de Cayley-Hamilton:

Ramírez
Toda matriz es raíz de su polinomio característico
M=  1 1  2
 
1  2 0 
3 1 
 0
Ecuaciones lineales________________________________
Ejercicio4.3
Se considera la matriz A. Calcular los autovectores y autovalores
A=
1 2 0 
 
 2 5  1

Edwin Chávez
Edwin
Ejercicio4.1  4 10  1
A=[6 18 2;7 –2 –4;4 10 –6];  

Chávez Ramírez
d=det(A)
b=[1;2;3];
sol=A\b

Ramírez
A(1,3)=-10
d=det(A)
sol=A\b
A*sol-b
Ecuaciones lineales________________________________
Ejercicio 4.2
M=[1 1 –2; -1 –2 0; 3 0 1];
poly(M)
M^3+4*M+13*eye(3)

Edwin Chávez
Edwin
Ejercicio 4.3
A=[1 2 0; 2 5 -1;4 10 -1];

Chávez Ramírez
[V,D]=eig(A)
diag(D)

Ramírez
RAÍCES DE FUNCIONES

fzero

Extrae las raíces de funciones lineales y no lineales, con el


único requisito de que introduzca un valor inicial.

Edwin Chávez
Edwin
>> fzero('sin(x)-cos(x)',0)

Chávez Ramírez
ans =
0.7854

Ramírez
>> fzero('sin(2*x)-2*cos(x)+x^2-3*x-
6',3)
ans =
3.9113
Gráficos en MatLab

Edwin Chávez Ramírez


Bidimensionales

Edwin Chávez Ramírez


UNMSM, 2021 - II
ANATOMIA DE UN GRAFICO

Edwin Chávez Ramírez


Se pueden hacer los gráficos de dos formas:

1. Modelo matemático de la curva.


2. Datos discretos de la curva.

Edwin Chávez Ramírez


1. Modelo matemático de la curva.
Para esto se tiene que tener la ley o modelo matemático que describe el
fenómeno, es decir

Modelo, Por una ley o modelo matemático 𝑦 = 𝑓(𝑥)

2. Datos discretos de la curva. Para esto se tiene que tener datos de los
pares ordenados (X,Y), es decir:
Datos
X = Pre imágenes
Y= Imágenes
GRÁFICOS: 2D Y 3D
Funciones gráficas 2D elementales:

MatLab dispone de 4 funciones básicas para crear gráficos 2-D. Estas se


diferencian principalmente por el tipo de escala que utilizan en los ejes.

Edwin Chávez
Edwin
Estas cuatro funciones son las siguientes:

• plot()

Chávez Ramírez
crea un gráfico a partir de vectores y/o columnas de matrices, con escalas
lineales sobre ambos ejes.
• loglog()

Ramírez
ídem con escala logarítmica en ambos ejes.
• semilogx()
ídem con escala lineal en el eje de ordenadas y logarítmica en el eje de
abscisas.
• semilogy()
ídem con escala lineal en el eje de abscisas y logarítmica en el eje de
ordenadas.
plot(X) Representa los puntos (k, X). % k posición del vector

>> x=[7,9,3,1,5,20,5]
x =
7 9 3 1 5 20 5
>> plot(x)

Edwin Chávez
Edwin Chávez Ramírez
Si X es una matriz, hace lo mismo para cada columna de la matriz.

Ramírez
>> figure(2)
>> plot(magic(3))

Si X es un vector complejo, representa Real(X) frente a Imag(X).


>> y=[1 +i, 2+3i,4-5i]
>> plot(y)
GRÁFICOS: 2D Y 3D______________________________
Existen funciones orientadas a añadir títulos al gráfico, a los
ejes, a dibujar una cuadrícula auxiliar, a introducir texto, etc.

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


• xlabel('tal') añade una etiqueta al eje de abscisas. Con

Edwin Chávez
Edwin
xlabel off desaparece
• ylabel('cual') idem al eje de ordenadas. Con ylabel off

Chávez Ramírez
desaparece
• text(x,y,'texto') introduce 'texto' en el lugar

Ramírez
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 ratón:
•legend() define rótulos para las distintas líneas o ejes
utilizados en la figura.
• grid activa una cuadrícula en el dibujo.
Con grid off desaparece la cuadrícula
GRÁFICOS: 2D Y 3D______________________________

plot es la función clave de todos los gráficos 2-D en MatLab. Ya se ha dicho


que el elemento básico de los gráficos bidimensionales es el vector.

Se utilizan también cadenas de 1, 2 ó 3 caracteres para indicar colores y


tipos de línea. La función plot(), no hace otra cosa que dibujar vectores.

Edwin Chávez
Edwin
Ejemplo1:

Chávez Ramírez
>> x=[1 3 2 4 5 3]
x =
1 3 2 4 5 3

Ramírez
>> plot(x)
>> title('Mi primer grafico')
>> xlabel('eje X')
>> ylabel('eje y')
>> text(2,3, '(2,3)')
>> gtext('AQUI')
>> legend(‘vector x’)
>> grid Figura 5.1. Gráfico del vector x=[1 3 2 4 5 3].
>> grid off
GRÁFICOS: 2D Y 3D______________________________
FUNCIÓN PLOT
Ejemplo 2: Graficar 𝑦 = cos 𝑥 , 𝑥 ∈ [0,2𝜋]

Sol: Sol:

Edwin Chávez
Edwin
x=0:pi/90:2*pi; x=0:pi/90:2*pi;
y=cos(x); y=sin(x).*cos(x);
plot(x,y) plot(x,y)

Chávez Ramírez
grid on grid on
grid off

Ramírez
grid off
xlabel(‘eje x (en radianes)’) xlabel(‘eje x (en rad)’)
ylabel(‘eje y’) ylabel(‘eje y’)
title(‘y=cos(x)’) title(‘y=sen(x)*cos(x)’)

Ejercicio: Graficar 𝑦 = 𝑠𝑒𝑛 𝑥 cos 𝑥 , 𝑥 ∈ [0,2𝜋]


GRÁFICOS: 2D Y 3D______________________________
FUNCIÓN PLOT
Es posible incluir en el título o en la etiqueta de los ejes el valor de una variable
numérica. Ya que el argumento de los comandos title, xlabel e ylabel es una
variable carácter, es preciso transformar las variables numéricas
int2str(n) convierte el valor de la variable entera n en carácter

Edwin Chávez
Edwin
num2str(x) convierte el valor de la variable real o compleja x en carácter

Ejemplo:

Chávez Ramírez
x = 1:3, plot(x), title([‘Esta es la gráfica de x = ',
num2str(x)])

Ramírez
Ejemplo:
n=3456, plot(x), title(['caso de número ' int2str(n)])
GRÁFICOS: 2D Y 3D______________________________
Texto sobre la gráfica
gtext(’texto’)
text(x,y,’texto a imprimir’)

Calcular las coordenadas de puntos sobre la curva

Edwin Chávez
Edwin
ginput(n)
[x,y]=ginput(n)

Chávez Ramírez
Elección del trazo y color de la curva

Ramírez
plot(x,y,’opcion’)

hold on
hold off
GRÁFICOS: 2D Y 3D______________________________
y yellow . point - solid
m magenta o circle : dotted
c cyan x x-mark -. dashdot
r red + plus -- dashed

Edwin Chávez
Edwin
g green * star

Chávez Ramírez
b blue s square
w white d diamond Opciones de plot

Ramírez
k black v triangle (down)
^ triangle (up)
< triangle (left)
> triangle (right)
p pentagram
h hexagram
GRÁFICOS: 2D Y 3D______________________________
FUNCION plot(x,y,S) avanzado.
Tenemos los siguientes atributos: color: color de línea. linewidth: Ancho de la línea.
markeredgeColor: color del borde de las marcas. markerfacecolor: color de la marca.
markersize: tamaño de la marca.
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).

Edwin Chávez
Edwin
>> x=linspace(-2*pi,2*pi,100); y=sin(x);
>> plot(x,y,'color',[0.9 0.1 0.3])

Chávez Ramírez
>> x=linspace(-2*pi,2*pi,100); y=sin(x);
>> plot(x,y,'linewidth',4)

Ramírez
> >x=linspace(-2*pi,2*pi,100); y=sin(x);
>> plot(x,y,'-d','markerfacecolor',[0.9 0.5 0.3])

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


>> plot(x,y,'-d','markeredgecolor','r')

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


>> plot(x,y,'-d','markersize',13,'markerfacecolor',[0.9 0.5 0.3])
GRÁFICOS: 2D Y 3D______________________________

Ejemplo3:
Calcular gráficamente las soluciones de la ecuación

2 x  cos(2 x )
 0 .4
2

Edwin Chávez
Edwin
Solución:
>>teta=0:pi/360:pi/4;

Chávez Ramírez
>>f1=(2*teta-cos(2*teta))/2;
>>f2=0.4*ones(size(f1));

Ramírez
>>figure
>>plot(teta,f1,'g--',teta,f2,'r')
>>axis square
>>xlabel('Angulo (radianes)')
>>gtext('2x-cos(2x))/2')
>>text(0.2,0.43,'y=0.4')
>>[teta0,y0]=ginput(1)
teta0 = 0.58599
y0 = 0.40281
>>title(['Raiz aproximada=',num2str(teta0)])
Plot Multiple
plot(X1,Y1,S1,X2,Y2,S2,…,Xn,Yn,Sn)

Gráfica de las n curvas superpuestas Y1 vs X1, Y2 vs X2, … , Yn vs Xn con


las opciones definidas en S1, S2, … , Sn respectivamente.

Edwin Chávez
Edwin
Ejemplo:
Graficar 𝑓 𝑥 = 𝑥 + 4𝑥 2 𝑠𝑒𝑛(𝑥) y 𝑔 𝑥 = 𝑒 𝑥 − xcos 𝑥 2 + 3 en el intervalo [0, 5]

Chávez Ramírez
Solución:

Ramírez
>> x=0:0.01:5;
>> f1=sqrt(x)+4*x.*x.*sin(x);
>> g1=exp(x)-x.*cos(x.^2)+3;
>> plot(x,f1,'r*.',x,g1,'yo:')
Ejercicio:
Graficar 𝑓 𝑥 = 𝑥 𝑥 − 𝑥𝑐𝑜𝑠(𝑥 2 ), en el intervalo [ - 3 , 3] con trazo de color rojo
etiquetas cuadradas y línea punteada, y también 𝑔 𝑥 = 3 𝑥 + sec 𝑥 + 1, con
color magenta, etiquetas de una estrella de 6 puntas y línea semisólida

Solución:

Edwin Chávez
Edwin
>> x=-3:0.4:3;

Chávez Ramírez
>> y=exp(x).^x+x.*cos(x.^2);
>> g=nthroot(x,3)+sec(x)+1;
>> plot(x,y,'rs:',x,g,'mh--')

Ramírez
GRÁFICOS: 2D Y 3D______________________________
Elección de la escala de los ejes

axis([xmin xmax ymin ymax]) Sitúa los valores máximo y mínimo para los
ejes X e Y en el gráfico corriente.
axis (‘auto’) Sitúa los ejes en la escala automática por defecto (la dada por
xmin=min(x), xmax=max(x) e y libre).

Edwin Chávez
Edwin
axis (axis) Congela el escalado de ejes en los límites corrientes, de tal forma
que al situar otro gráfico sobre los mismo ejes (con hold en on), la escala

Chávez Ramírez
no cambie.
V=axis Da el vector V de 4 elementos, conteniendo la escala de gráfico corriente.
axis(‘ij’) Sitúa coordenadas con el origen en la parte superior izquierda del

Ramírez
gráfico.
axis(‘square’) Convierte el rectángulo de graficado en un cuadrado, con lo
que las figuras se abomban.
axis(‘equal’) Sitúa el mismo factor de escala para ambos ejes.
axis (‘normal’) Elimina las opciones square y equal.
axis(‘off’) Elimina las etiquetas y marcas de los ejes y las rejillas, manteniendo
el título del gráfico y los textos situados en él con text y gtext.
axis(‘on’) Coloca de nuevo las etiquetas, marcas y rejillas de los ejes.
GRÁFICOS: 2D Y 3D______________________________
Ejercicio:

Graficar 𝑓 𝑥 = 𝑥 + 𝑥 2 𝑠𝑒𝑛(𝑥) y 𝑔 𝑥 = 𝑠𝑒𝑛 𝑥 + 𝑥 2 en el intervalo [0, 5] dentro


de una región rectangular [-2 , 7] ×[-30, 30]

Edwin Chávez
Edwin
Solución:

>> x=0:0.2:5;

Chávez Ramírez
>> y1=sqrt(x)+x.^2.*sin(x);
>> plot(x,y1)
>> hold on %superposición

Ramírez
>> y2=sin(x)+floor(x.^2);
>> plot(x,y2)
>> axis([-2 7 -30 30])
>> grid %mallado
GRÁFICOS: 2D Y 3D______________________________
LEYENDAS
Colocación
legend(string1,string2,string3, ...) Crea las leyendas de los gráficos correspondientes.
Localización
legend(...,'location',loc) Adiciona las leyendas en una ubicación específica con respecto a los
ejes.
Esta ubicación loc es de 1x4 posiciones y combinaciones de acuerdo a:

Edwin Chávez
Edwin
'North' Dentro del cuadro grafico y arriba.
'South' Dentro y abajo.
'East' Dentro y a la derecha.

Chávez Ramírez
'West' Dentro y a la izquierda.
'NorthEast' Dentro y arriba a la derecha (default)
'NorthWest Dentro y arriba a la izquierda

Ramírez
'SouthEast' Dentro y abajo a la derecha
'SouthWest' Dentro y abajo a la izquierda
'NorthOutside' Fuera del cuadro grafico y arriba
'SouthOutside' Fuera y abajo
'EastOutside' Fuera y a la derecha
'WestOutside' Fuera y a la izquierda
'NorthEastOutside' Fuera y arriba a la derecha
'NorthWestOutside' Fuera y arriba a la izquierda
'SouthEastOutside' Fuera y abajo a la derecha
'SouthWestOutside' Fuera y abajo a la izquierda
'Best' Espacio no usado dentro del cuadro grafico
'BestOutside' Espacio no usado fuera del cuadro grafico
GRÁFICOS: 2D Y 3D______________________________
Ejercicio:

Graficar y1= −𝑥𝑠𝑒𝑛 𝑥 2 + 2 ; 𝑦2 = 𝑥 + 4𝑠𝑒𝑛 𝑥 , 𝑦3 = 𝑥 + 0.3 𝑥 en el intervalo


[-3, 3] colocando titulo, descripción de ejes y leyendas.

Solución:

Edwin Chávez
Edwin
>> x=-3:0.4:3;
>> y1=-x.*sin(x.^2)+2;

Chávez Ramírez
>> y2=abs(x)+4*sin(x);
>> y3=x+0.3*floor(x);
>> plot(x,y1,x,y2,x,y3);

Ramírez
>> title('Gráfico de tres funciones');
>> xlabel('eje x');ylabel('eje y');
>> legend('-x*sen(x)', '|x|+4*sen(x)', 'x+0.3[x]')

>> legend('-x*sen(x)', '|x|+4*sen(x)',


'x+0.3[x]','Location','North')
GRÁFICOS: 2D Y 3D______________________________
Ejemplo: plot(vector,Matriz)
x=0:pi/180:2*pi;
y=sin(x);
z=cos(x);
plot(x,y,x,z)

Edwin Chávez
Edwin
A=[y' z']
plot(x,A)

Chávez Ramírez
Función eval se utiliza con funciones definidas con un carácter.

Ramírez
y=eval(’caracter’)

Ejemplo:
f=‘sin(x)-2*cos(x)’;
x=0:pi/90:2*pi;
y=eval(f);
plot(x,y)
axis([0 6 0 2.4]);gtext(‘sen(x)-2cos(x)’)
GRÁFICOS: 2D Y 3D______________________________
Función fplot se utiliza con funciones definidas con un carácter.

fplot('fun',limits) Plotea 'fun' entre limites [xmin xmax] o limites [xmin


xmax ymin ymax]. 'fun' es el nombre de una función M-file o una cadena con
variable x tal como 'sin(x)', 'diric(x,10)' o '[sin(x),cos(x),exp(x)]'.

Edwin Chávez
Edwin
fplot('fun',limits,S) Plotea 'fun' con las opciones definidas en S.

Chávez Ramírez
fplot('fun',limits,tol) Plotea 'fun' con el error relativo con tolerancia
tol (por defecto es 2*10-3).

Ramírez
fplot('fun',limits,tol,S) Plotea 'fun' con tolerancia tol y con las
opciones def. en S.

fplot('fun',limits,n) Con n≥1. Plotea 'fun' con un mínimo de n+1


puntos. El máximo tamaño de paso esta restringido por
(xmax – xmin)/n
.
[X,Y] = fplot('fun',limits) Retorna las abscisas y ordenadas para
'fun' en X e Y. No hace la gráfica.
GRÁFICOS: 2D Y 3D______________________________
fplot=(f,[0 2*pi ymin ymax])

Ejemplo:
f=‘sin(x)-2*cos(x)’;
fplot(f,[0 2*pi],’g—’)

Edwin Chávez
Edwin Chávez Ramírez
Ramírez
Llamar una nueva figura figure o referirnos a una figura ya echa figure(n)

Borrar la figura actual clf


close all borra todas las figuras close(figure(n)) la n
Función subplot
 subplot(n,m,k) subdivide una ventana gráfica se puede en m
particiones horizontales y n verticales y k es la subdivisión que se
activa. Las subdiviones se numeran consecutivamente empezando
por las de la primera fila, siguiendo por las de la segunda, etc.

Edwin Chávez
Edwin
 EJEMPLO

 Para crear 2x3 = 6 subventanas y colocar el puntero en la posición

Chávez Ramírez
4, se procede en Matlab como:
>>subplot(2,3,4)

Ramírez
>> x=0:pi/40:2*pi;plot(x,sin(x))
GRÁFICOS: 2D Y 3D______________________________
Ejemplo:

subplot(1,2,1)
f=‘sin(x)-2*cos(2*x)’;
fplot(f,[0 2*pi])

Edwin Chávez
Edwin
legend(‘sen(x)-2cos(2x)’)

subplot(1,2,2)

Chávez Ramírez
fplot(‘sin’,[0 4*pi],’r’)
legend(‘sen(x)’)

Ramírez
Gráficos en coordenadas polares
polar(ángulo,r) para graficar en polares
Matlab habilita el comando específico polar, que representa funciones en
coordenadas polares. Su sintaxis es la siguiente:

Edwin Chávez
Edwin
polar (,r) Representa la curva en coordenadas polares r = r()

Chávez Ramírez
polar (,r,S) Idem con el estilo de línea dado por S (ver la
instrucción plot)

Ramírez
EJEMPLO
Graficar el cardiode.
>> a=0:pi/40:2*pi;polar(a,1-sin(a))
EJEMPLO
Graficar
a) La rosa de 4 pétalos horizontal.

>> a=0:pi/40:2*pi;

Edwin Chávez
Edwin
>> polar(a,3*cos(2*a))

Chávez Ramírez
b) La función polar r = 1 – 2*cos(θ)

Ramírez
>> a=0:pi/40:2*pi;
>> polar(a,1-2*cos(a))

c) Graficar la rosa de 7 pétalos horizontal.


>> b=0:pi/100:2*pi;
>> polar(b,3*cos(7*b))
GRÁFICOS: 2D Y 3D______________________________
Otras funciones gráficas 2-D

• bar() crea diagramas de barras.


• barh() diagramas de barras horizontales.
• bar3() diagramas de barras con aspecto 3-D.

Edwin Chávez
Edwin
• bar3h() diagramas de barras horizontales con aspecto 3-D.
• pie() gráficos con forma de “tarta”.
• pie3() gráficos con forma de “tarta” y aspecto 3-D.

Chávez Ramírez
• area() similar plot(), pero rellenando en ordenadas de 0 a y.
• stairs() función análoga a bar() sin líneas internas.
• errorbar() representa sobre una gráfica –mediante barras– valores de

Ramírez
errores.
• compass() dibuja los elementos de un vector complejo como un
conjunto de vectores partiendo de un origen común.
• feather() dibuja los elementos de un vector complejo como un
conjunto de vectores partiendo de orígenes uniformemente espaciados
sobre el eje de abscisas.
• hist() dibuja histogramas de un vector.
EJEMPLO

>> x=[2 5 7 8 9 12];


>> y=[2 7 4 6 19 2];
>> bar(x,y)

Edwin Chávez
Edwin Chávez Ramírez
Ramírez
GRÁFICOS: 2D Y 3D______________________________
Representación de polígonos
función especial para dibujar polígonos planos, rellenándolos de un
determinado color.

La forma general es la siguiente:

Edwin Chávez
Edwin
» fill(x,y,c)

Chávez Ramírez
Si c es un carácter de color ('r','g','b','c','m','y','w','k'), o un vector de valores
[r g b], el polígono se rellena de modo uniforme con el color especificado.

Ramírez
Si c es un vector de la misma dimensión que x e y, sus elementos se
trasforman de acuerdo con un mapa de colores determinado, y el llenado
del polígono –no uniforme en este caso–se obtiene interpolando entre los
colores de los vértices. Este comando con matrices:
GRÁFICOS: 2D Y 3D______________________________

» fill(A,B,C)
donde A y B son matrices del mismo tamaño. En este caso se dibuja un
polígono por cada par de columnas de dichas matrices. C puede ser un
vector fila de colores uniformes para cada polígono, o una matriz del mismo

Edwin Chávez
Edwin
tamaño que las anteriores para obtener colores de relleno por
interpolación.

Chávez Ramírez
Ejemplo:

x=[1,2,1,0];

Ramírez
y=[0,1,2,1];
figure
fill(x,y,’r’)
title(‘rombo’)
GRÁFICOS DE RELACIONES

ezplot(f) Plotea f sobre el dominio por defecto -2 𝜋 < x < 2𝜋


.
ezplot(f, [a,b]) Plotea f sobre a < x < b

ezplot(f, [xmin,xmax,ymin,ymax])

Edwin Chávez
Edwin
Plotea f sobre xmin< x <xmax, ymin< y <ymax.

ezplot(x,y) Plotea en coordenadas paramétricas la curva plana x= x(t), y=

Chávez Ramírez
y(t) sobre el dominio por defecto -2 𝜋 < x < 2 𝜋.

ezplot(x,y, [tmin,tmax]) Plotea x = x(t) , y = y(t) over tmin < t < tmax.

Ramírez
Donde f puede ser una función estandar f = f(x) ó una función implicita f = f(x,y) =
0.

ezpolar(f) Plotea la curva polar r = f(theta) sobre el dominio por defecto


0 < theta < 2 𝜋
.
ezpolar(f,[a,b]) Plotea f sobre a < theta < b.
EJEMPLOS

>> %funciones estandar


>> ezplot('cos(x)')
>> ezplot('cos(x)', [0, pi])

Edwin Chávez
Edwin Chávez Ramírez
>> %funciones implicitas

Ramírez
>> ezplot('1/y-log(y)+log(-1+y)+x - 1')
>> ezplot('x^2 + y^2 - 1',[-1.25,1.25]);
>> axis equal
>> ezplot('x^3 + 2*x^2 - 3*x + 5 - y^2')
>> %En coordenadas paramétricas
>> ezplot('sin(t)','cos(t)')
>> ezplot('sin(3*t)*cos(t)','sin(3*t)*sin(t)',[0,pi])
>> ezplot('sin(3*t)','cos(t)',[0,2*pi])

Edwin Chávez
Edwin Chávez Ramírez
Ramírez
GRÁFICOS: 2D Y 3D______________________________
Ejercicio 1: Consideremos la ecuación de Van der Waals. Se considera el
benceno para el cual a=18.78 atml2/mol2, b=0.1208 l/mol. Representar sobre
una misma gráfica las dos subgráficas correspondientes a:
Isotermas de 100, 200, 300 y 400 ºC
Isobaras de 25, 35, 45 y 55 atm

Edwin Chávez
Edwin
Cada curva debe ir con trazo diferenciado, con el texto que indique la isolínea
que se ha representado, así como el título de la gráfica y la etiqueta de los

Chávez Ramírez
ejes. R=0.0821 y
V=[2:100];

Ramírez
a
(P  2 )(V  b )  RT
V
GRÁFICOS: 2D Y 3D______________________________
Ejercicio5.1:
a=18.78;
b=0.1208;
R=0.0821;
subplot(1,2,1)
T=[373:100:673];

Edwin Chávez
Edwin
V=[2:100];
fac1=R./(V-b);

Chávez Ramírez
fac2=a./V.^2;
P=zeros(4,length(V));

Ramírez
P(1,:)=T(1)*fac1-fac2;
P(2,:)=T(2)*fac1-fac2;
P(3,:)=T(3)*fac1-fac2;
P(4,:)=T(4)*fac1-fac2;
plot(V,P(1,:),'-',V,P(2,:),'--',V,P(3,:),':',V,P(4,:),'-.')
title('Ecuacion de Van der Waals: Isotermas')
xlabel('Volumen, ltr.')
ylabel('Presion, atm.')
axis([0, 50,0,15])
legend('T=100ºC','T=200ºC','T=300ºC','T=400ºC')
GRÁFICOS: 2D Y 3D______________________________
subplot(1,2,2)
P=[25:10:55];
T=zeros(4,length(V));
fac1=(V-b)/R;

Edwin Chávez
Edwin
T(1,:)=((P(1)+fac2).*fac1)-273.15;
T(2,:)=((P(2)+fac2).*fac1)-273.15;
T(3,:)=((P(3)+fac2).*fac1)-273.15;

Chávez Ramírez
T(4,:)=((P(4)+fac2).*fac1)-273.15;
plot(V,T(1,:),'-',V,T(2,:),'--',V,T(3,:),':',V,T(4,:),'-.')

Ramírez
title('Ecuacion de Van der Waals: Isobaras')
xlabel('Volumen, ltr.')
ylabel('Temperatura, ºC')
legend('P=25 atm.','P=35 atm.','P=45 atm.','P=55 atm.')
GRÁFICOS: 2D Y 3D______________________________

Edwin Chávez
Edwin Chávez Ramírez
Ramírez
GRÁFICOS: 2D Y 3D______________________________

Ejercicio 2 Dada la función f(x,y)=xy, obtener sobre una ventana gráfica


las representaciones siguientes:
-La superficie definida por la función sobre el dominio [-10,10]*[-10,10].
-Las líneas de contorno sobre la superficie

Edwin Chávez
Edwin
-La proyección de las líneas de contorno sobre el domino de definición
-La proyección de las líneas de contorno sobre el plano xy
correspondientes a los valores –4,-1, 1 y 4.

Chávez Ramírez
Ramírez
GRÁFICOS: 2D Y 3D______________________________
Ejercicio5.2
x=[-10:0.5:10]; y=x;
[X,Y]=meshgrid(x,y);
Z=X.*Y;
subplot(221)

Edwin Chávez
Edwin
mesh(X,Y,Z)
legend('z=xy')
xlabel('eje x')

Chávez Ramírez
ylabel('eje y')
zlabel('eje z')
title('superficie z=xy')

Ramírez
subplot(222)
contour3(Z)
grid off
xlabel('eje x')
ylabel('eje y')
GRÁFICOS: 2D Y 3D______________________________
zlabel('eje z')
title('lineas de contorno 3D')
subplot(223)
cs=contour(Z);
contour(x,y,Z)
grid off

Edwin Chávez
Edwin
clabel(cs)
xlabel('eje x')

Chávez Ramírez
ylabel('eje y')
title('Proyeccion de las lineas de contorno')
subplot(224)

Ramírez
contour(Z,[-4,-1,1,4])
grid off
xlabel('eje x')
ylabel('eje y')
title('Proyeccion de las lineas de contorno')
GRÁFICOS: 2D Y 3D______________________________

Edwin Chávez
Edwin Chávez Ramírez
Ramírez
Gráficos en MatLab

Edwin Chávez Ramírez


Tridimensionales

Edwin Chávez Ramírez


UNMSM, 2021 - II
Introducción
 El Matlab posee muchos recursos para visualización de datos en 3D, como
trazado de curvas, trazado de superficies, contornos y gráficos de densidad,
permite el control de colores, sombreados y otras características de los
gráficos, también soporta gráficos animados.

Edwin Chávez
Edwin
CURVAS 3D

Chávez Ramírez
 plot3(X,Y,Z) gráfica la terna X, Y, Z dándonos así una curva en el espacio.

Ramírez
 plot3(X,Y,Z,S) gráfica la terna X, Y, Z dándonos así una curva en el espacio
con las características S igual que plot.
 ezplot3(x,y,z) Gráfica en coordenadas paramétricas x = x(t), y = y(t), z = z(t)
sobre el dominio por defecto 0 < t < 2π
 ezplot3(x,y,z ,[tmin,tmax]) Gráfica x=x(t), y=y(t), z=z(t) sobre tmin < t < tmax.
GRAFICOS DE LINEA EN 3D______________________
Funciones gráficas 3D elementales:
La función plot3 es análoga a su homóloga bidimensional plot. Su forma más
sencilla es la siguiente:

>> plot3(x,y,z): Dibuja una línea que une los puntos (x(1), y(1), z(1)),

Edwin Chávez
Edwin
(x(2), y(2), z(2)), etc. y la proyecta sobre un plano para poderla representar
en la pantalla.

Chávez Ramírez
Ejemplo:

Ramírez
teta=0:pi/80:8*pi;
x=1+2*cos(teta);
y=1+2*sin(teta);
z=4*teta;
plot3(x,y,z)
axis([-1 3 -1 3 0 120]);
xlabel('eje x')
ylabel('eje y')
zlabel('eje z')
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

Edwin Chávez
Edwin Chávez Ramírez
Ramírez
EJEMPLO

>> ezplot3('cos(t)', 't * sin(t)', 'sqrt(t)', [0,6*pi])

Edwin Chávez
Edwin Chávez Ramírez
Ramírez
GENERACIÓN DE MALLADOS EN EL PLANO
Meshgrid
Dados dos vectores xa e ya, conteniendo las coordenadas de los ejes x e y,
retorna x e y, conteniendo la ‘Malla’ de coordenadas del mallado en el plano
en una región rectangular correspondiente a x e y.

Edwin Chávez
Edwin
>>xa=1:3,ya=4:6
xa = Explicación:
1 2 3 Como xa = [1 2 3], se tiene en el eje x

Chávez Ramírez
ya = 3 puntos y como ya =[4 5 6] en el eje
4 5 6 se tienen 3 puntos, lo que mediante
>>[x, y]=meshgrid(xa,ya) meshgrid genera un mallado de nueve

Ramírez
x = puntos los cuales se encuentran en x e y
1 2 3 generados por meshgrid.
1 2 3
1 2 3
y =
4 4 4
5 5 5
6 6 6
EJEMPLO
Generar el mallado cuadrangular indicado, usando meshgrid

Edwin Chávez
Edwin Chávez Ramírez
Ramírez
Solución:
>> xa=0:0.5:2;ya=0:0.4:2;
>> [x,y]=meshgrid(xa,ya)
SUPERFICIES

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 los correspondientes puntos del

Edwin Chávez
Edwin
plano (x,y).

Chávez Ramírez
El aspecto de un gráfico de malla es como una red de pesca,
con los puntos de la superficie sobre los nudos de la red.

Ramírez
Realmente, es un gráfico de superficie cuyo grafo tiene forma de
red.

El primer paso para representar una función de dos variables z =


f(x,y) mediante su gráfico de superficie, es utilizar el comando
meshgrid, que básicamente define la matriz de puntos (X,Y)
sobre los cuales se evalúa la función de dos variables para
hacer su presentación gráfica.
Para representar un gráfico de malla, se utiliza el comando mesh y sus
variantes, cuya sintaxis es la siguiente:

mesh(X,Y,Z) 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.

Edwin Chávez
Edwin
meshz(X,Y,Z) Representa 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

Chávez Ramírez
waterfall(X,Y,Z) Representa el gráfico de cascada de la función
z=f(x,y).

Ramírez
surf(X,Y,Z) Representa el gráfico de superficie de la función
z=f(x,y)

surfl(X,Y,Z) Representa el gráfico de superficie de la función


z=f(x,y).
GRÁFICOS: 2D Y 3D______________________________
Representación gráfica de superficies. mesh(x,y,Z),

Creación de una malla [X, Y]=meshgrid(x,y)


Gráfica de la malla construida sobre la superficie z mesh(X,Y,Z),
meshz(X,Y,Z)

Edwin Chávez
Edwin
Además hace una proyección sobre el plano z=0, meshc(X,Y,Z), líneas
de contorno en el plano z=0

Chávez Ramírez
Ejemplo:

Ramírez
x=[0:2:200];y=[0:50];
%Obtenemos la malla del dominio
[X Y]=meshgrid(x,y);
length(x),length(y)
size(X), size(Y)
Z=X.^2-Y.^2;
figure(1);mesh(X,Y,Z)
figure(2);meshz(X,Y,Z)

Edwin Chávez
Edwin Chávez Ramírez
figure(3);meshc(X,Y,Z)

Ramírez
figure(4); waterfall(X,Y,Z)

Edwin Chávez
Edwin Chávez Ramírez
figure(5); surf(X,Y,Z)

Ramírez
figure(6); surfl(X,Y,Z)

Edwin Chávez
Edwin Chávez Ramírez
Ramírez
figure(7); surfc(X,Y,Z)
Ejercicio:
Graficar el paraboloide z = x2 + y2 en el dominio [ -5, 5 ]x[ -5, 5 ]

Solución:

>> [x,y]=meshgrid(-5:0.25:5,-5:0.25:5);

Edwin Chávez
Edwin
>> z=x.^2+y.^2;
>> surf(x,y,z)

Chávez Ramírez
Ramírez
Los gráficos de contorno de curvas de nivel:

contour(Z) Dibuja el gráfico de contorno (curvas de nivel) para la


matriz Z. El número de líneas de contorno a utilizar se elige
automáticamente

contour(Z,n) Dibuja el gráfico de contorno (curvas de nivel)

Edwin Chávez
Edwin
para la matriz Z usando n líneas de contorno

Chávez Ramírez
contour(x,y,z,n) Dibuja el gráfico de contorno (curvas de
nivel) para la matriz Z usando en los ejes X e Y el escalado definido

Ramírez
por los vectores x e y (n líneas de contorno)

contour3(Z), contour3(Z,n), contour3(x,y,z,n)


Dibujan los gráficos de contorno en 3 dimensiones

pcolor(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.
EJEMPLO
Graficar usando mesh, surf, contour y contour3: z= x2 – y 2, en el dominio
[-5, 5]x[-5, 5], en una sola ventana usando subplot

Solución:
>> [x,y]=meshgrid(-5:0.25:5,-5:0.25:5);
>> z=x.^2 – y.^2;

Edwin Chávez
Edwin
>> subplot(2,2,1);
>> mesh(x,y,z)

Chávez Ramírez
>> subplot(2,2,2);
>> surf(x,y,z)
>> subplot(2,2,3);

Ramírez
>> contour(x,y,z);
>> subplot(2,2,4);
>> contour3(x,y,z);
Suele denominarse gráfico de densidad.

Combinaciones del gráfico de la superficie y las curvas de nivel:


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

Edwin Chávez
Edwin
surfc(X,Y,Z) Representa el gráfico de superficie de la función
z=f(x,y) junto sus curvas de nivel.

Chávez Ramírez
Ejemplo:
>> [x,y]=meshgrid(-5:0.25:5,-5:0.25:5);

Ramírez
>> z=x.^2 + y.^2;
>> subplot(2,1,1);
>> meshc(x,y,z)
>> subplot(2,1,2);
>> surfc(x,y,z)
SOMBREADO Y COMBINACIONES DE COLOR _______
La función surf y pcolor tiene diversas posibilidades referentes a la forma en
que son representadas las facetas o polígonos coloreados.

Shading: Diversos estilos de sombreado para la superficie.

Las tres posibilidades son las siguientes:

Edwin Chávez
Edwin
• shading flat: determina sombreado con color constante para cada

Chávez Ramírez
polígono. Este sombreado se llama plano o flat.

• shading interp: establece que el sombreado se calculará por

Ramírez
interpolación de colores entre los vértices de cada faceta. Se llama también
sombreado de Gouraud

• shading faceted: consiste en sombreado constante con líneas negras


superpuestas. Esta es la opción por defecto
Ejemplo:
[x,y]=meshgrid(-5:0.25:5,-5:0.25:5);
z=x.^2 + y.^2;
meshc(x,y,z)
shading flat

Edwin Chávez
Edwin Chávez Ramírez
Ramírez
Edwin Chávez
Edwin Chávez Ramírez
Ramírez
shading faceted
shading interp
Cuando se desea dibujar una figura con un determinado mapa de colores se establece
una correspondencia (o un mapping) entre los valores de la función y los colores del
mapa de colores.
» caxis([cmin, cmax]) %escala el mapa de colores
colormap(opcion). Distintas escalas de colores
hsv - Hue-saturation-value color map.
hot - Black-red-yellow-white color map.
colorbar(‘horiz’),
gray - Linear gray-scale color map.

Edwin Chávez
Edwin
%barra con la escala
bone - Gray-scale with tinge of blue color map.
de colores.
copper - Linear copper-tone color map. colorbar(‘vertical’)
pink - Pastel shades of pink color map.

Chávez Ramírez
%barra con la escala
white - All white color map. de colores.
flag - Alternating red, white, blue, and black color map. brighten ajusta el brillo
lines - Color map with the line colors.

Ramírez
de color del mapa de
colorcube - Enhanced color-cube color map. colores
vga - Windows colormap for 16 colors.
jet - Variant of HSV.
prism - Prism color map.
cool - Shades of cyan and magenta color map.
autumn - Shades of red and yellow color map.
spring - Shades of magenta and yellow color map.
winter - Shades of blue and green color map.
summer - Shades of green and yellow color map.
Ejemplo:
[x,y]=meshgrid(-5:0.25:5,-5:0.25:5);
z=x.^2 + y.^2;
surf(x,y,z)

colormap(hsv)

Edwin Chávez
Edwin Chávez Ramírez
colormap(hot)

Ramírez
colormap(gray)
Ejemplo:
[x,y]=meshgrid(-5:0.25:5,-5:0.25:5);
z=x.^2 - y.^2;
surf(x,y,z)
colorbar

Edwin Chávez
Edwin Chávez Ramírez
Ramírez
brighten(0.8)
COORDENADAS CILÍNDRICAS
Graficar el paraboloide z= x2 + y2 en el dominio rectangular [ -5, 5 ]x[ -5, 5 ]
es una situación donde no están tan claras las propiedades geométricas del
paraboloide, en realidad en este caso es más recomendable graficar usando
un dominio circular que por ejemplo podría ser un circulo de radio 5 centrado
en el origen de coordenadas.

Edwin Chávez
Edwin
Surge la pregunta natural, ¿cómo hacemos un mallado en el dominio
circular?, el cual nos servirá para levantar el paraboloide. La respuesta es

Chávez Ramírez
sencilla:
Solo hay que usar el cambio de coordenadas cilíndricas a cartesianas.

Ramírez
COORDENADAS CILÍNDRICAS
EJEMPLO
Graficar el paraboloide z = x2 + y2 en el dominio circular de radio 5 y
centrado en el origen de coordenadas.

Solución:

>> [r,u]=meshgrid(0:0.25:5,0:pi/20:2*pi);

Edwin Chávez
Edwin
>> x=r.*cos(u);
>> y=r.*sin(u);

Chávez Ramírez
>> z=x.^2+y.^2;
>> surf(x,y,z)

Ramírez
Edwin Chávez
Edwin Chávez Ramírez
Ramírez
COORDENADAS ESFÉRICAS
Ejemplo:

Graficar parte del hemisferio superior


indicado con radio = 5.

Edwin Chávez
Edwin
Solución:

Chávez Ramírez
>> [u,v]=meshgrid(pi/3:pi/20:7*pi/4,0:pi/20: pi/2);
>> x=5*sin(v).*cos(u);

Ramírez
>> y=5*sin(v).*sin(u);
>> z=5*cos(v);
>> mesh(x,y,z)
COORDENADAS PARAMÉTRICAS EN
SUPERFICIES

Edwin Chávez
Edwin Chávez Ramírez
Ramírez
EJEMPLO:
Graficar la siguiente curva paramétrica

Edwin Chávez
Edwin
Solución:

Chávez Ramírez
t=0:pi/20:2*pi;
x=sin(t);

Ramírez
y=cos(t);
z=cos(t);
plot3(x,y,z)
grid
CILINDROS, ESFERAS Y ELIPSOIDES
[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
default).
cylinder(R,N)

Edwin Chávez
Edwin
idem pero traza solo la grafica.
[x,y,z]= sphere(N)

Chávez Ramírez
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 default).

Ramírez
sphere(N)
idem pero traza solo la grafica.
[x,y,z]= ellipsoid(xc,yc,zc,xr,yr,zr,N)
retorna las coordenadas x, y, z necesarias para la generación de una elipsoide
centrada en (xc,yc,zc) con semiejes xr,yr,zr. El número de ternas es
(N+1)x(N+1) (N=20 por default).
ellipsoid(xc,yc,zc,xr,yr,zr,N)
idem pero traza solo la grafica.
EJEMPLO:
>>[x,y,z]=cylinder;
>>mesh(x,y,z)

>>[x,y,z]=cylinder(2,10);

Edwin Chávez
Edwin
>>mesh(x,y,z)

Chávez Ramírez
>>sphere,
>> axis equal,

Ramírez
>> [x,y,z]=sphere(30);
>>mesh(x,y,z)

>>[x,y,z]=ellipsoid(0,0,0,5,10,20);
>>mesh(x,y,z)
Edwin Chávez
Edwin Chávez Ramírez
Ramírez
Grafique el Toroide
Ejercicio:
GRÁFICOS: 2D Y 3D______________________________
Manipulación de gráficos

view: view(azimut, elev), view([xd,yd,zd]).


view(2)
view(3)

Edwin Chávez
Edwin
rotate(h,d,a) o rotate(h,d,a,o) h es el objeto, d es un vector que indica la
dirección y a un ángulo, o el origen de rotación

Chávez Ramírez
En el dibujo de funciones tridimensionales, a veces también son útiles los
NaNs. Cuando una parte de los elementos de la matriz de valores Z son

Ramírez
NaNs, esa parte de la superficie no se dibuja, permitiendo ver el resto de la
superficie.

hidden off desactiva le eliminación de líneas escondidas


hidden on situación previa
GRÁFICOS: 2D Y 3D______________________________
Transformación de coordenadas

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


[ang,rad,z]=cart2pol(x,y,z) %De cartesianas a cilindricas

Edwin Chávez
Edwin
[x,y]=pol2cart(ang,rad) %De polares a cartesianas
[x,y,z]=pol2cart(ang,rad,z) %De cilindricas a cartesianas

Chávez Ramírez
[angx,angz,rad]=cart2sph(x,y,z) %De cartesianas a esfericas

[x,y,z]=aph2cart(angx,angz,rad) %De esfericas a cartesianas

Ramírez
Ejemplo:

%cilindricas
[ang,rad,z]=cart2pol(sqrt(3),1,2)
%esfericas
[ang1,ang2,rad1]=cart2sph(sqrt(3),1,2)
Imágenes
F = imread(filename) asigna el contenido del archive imagen a la variable
matricial F. Soporta los archivos *.jpeg, *.tiff, *.gif, *.png, *.hdf, *.ico, *.bmp, etc
image(F) visualiza la matriz C como una imagen en una ventana de figura.

Edwin Chávez
Edwin
>>F=imread(‘ant.png');image(F);
>>axis off %desactiva los ejes

Chávez Ramírez
Ramírez
>> info = imfinfo('ant.png')
Visualizar el tamaño de una imagen, info =
se usa la función size() scalar structure containing the fields:

Filename = C:\Users\Mat\Desktop\ant.png
>> [f,c,r]=size(F) FileModDate = 9-Jan-2019 11:02:04
FileSize = 17981
f = 299 Format = PNG
c = 280 FormatVersion =
Width = 280
r = 3 Height = 299
BitDepth = 8

Edwin Chávez
Edwin
ColorType = truecolor
DelayTime = 0
Informacion acerca de la imagen DisposalMethod =
LoopCount = 0
info = imfinfo('ant.png')

Chávez Ramírez
ByteOrder = undefined
Gamma = 0.45455
Chromaticities =
Comment =
Quality = 75

Ramírez
Compression = undefined
Colormap = [](0x0)
Orientation = 1
ResolutionUnit = Centimeter
XResolution = 59.060
YResolution = 59.060
Software = Microsoft Office
Make =
Model =
DateTime =
ImageDescription =
Artist =
Copyright =
DigitalCamera =

scalar structure containing the fields:


GPSInfo =

scalar structure containing the fields:


Creación de películas
Para preparar pequeñas películas o movies se pueden utilizar las
funciones movie, moviein y getframe.
Una película se compone de varias imágenes, denominadas frames.
La función getframe devuelve un vector columna con la información

Edwin Chávez
Edwin
necesaria para reproducir la imagen que se acaba de representar en
la figura o ventana gráfica activa, por ejemplo con la función plot.

Chávez Ramírez
El tamaño de este vector columna depende del tamaño de la ventana,

Ramírez
pero no de la complejidad del dibujo.
La función moviein(n) reserva memoria para almacenar n frames.
Una vez creada la película se puede representar el número de veces
que se desee con el comando movie.
Ejemplo:
for j=1:10
x=0:0.01:2*pi;
plot(x,sin(j*x)/2)
M(j)=getframe;
end

Edwin Chávez
Edwin
movie(M,10)

Chávez Ramírez
Ramírez
En 3D

count=1;
[x y] = meshgrid([0 : 0.05 : pi], [0 : 0.05 : pi]);
for t=1:0.09:10,
u = 2*sin(6*x).*sin(6*t) + sin(3*x).*cos(3*t);
mesh(x,y,u);

Edwin Chávez
Edwin
Mv(:,count) = getframe;
count = count + 1;

Chávez Ramírez
end
movie(Mv,2)

Ramírez
GRÁFICOS: 2D Y 3D______________________________
Ejercicio 1: Consideremos la ecuación de Van der Waals. Se considera el
benceno para el cual a=18.78 atml2/mol2, b=0.1208 l/mol. Representar sobre
una misma gráfica las dos subgráficas correspondientes a:
Isotermas de 100, 200, 300 y 400 ºC
Isobaras de 25, 35, 45 y 55 atm

Edwin Chávez
Edwin
Cada curva debe ir con trazo diferenciado, con el texto que indique la isolínea
que se ha representado, así como el título de la gráfica y la etiqueta de los

Chávez Ramírez
ejes. R=0.0821 y
V=[2:100];

Ramírez
a
(P  2 )(V  b )  RT
V
GRÁFICOS: 2D Y 3D______________________________
Solución:
a=18.78; b=0.1208; R=0.0821;
subplot(1,2,1)
T=[373:100:673]; V=[2:100]; fac1=R./(V-b);
fac2=a./V.^2; P=zeros(4,length(V));
P(1,:)=T(1)*fac1-fac2;

Edwin Chávez
Edwin
P(2,:)=T(2)*fac1-fac2;
P(3,:)=T(3)*fac1-fac2;

Chávez Ramírez
P(4,:)=T(4)*fac1-fac2;

plot(V,P(1,:),'-',V,P(2,:),'--

Ramírez
',V,P(3,:),':',V,P(4,:),'-.')

title('Ecuacion de Van der Waals: Isotermas')


xlabel('Volumen, ltr.')
ylabel('Presion, atm.')
axis([0, 50,0,15])
legend('T=100ºC','T=200ºC','T=300ºC','T=400ºC')
GRÁFICOS: 2D Y 3D______________________________
subplot(1,2,2)
P=[25:10:55];
T=zeros(4,length(V));
fac1=(V-b)/R;

Edwin Chávez
Edwin
T(1,:)=((P(1)+fac2).*fac1)-273.15;
T(2,:)=((P(2)+fac2).*fac1)-273.15;
T(3,:)=((P(3)+fac2).*fac1)-273.15;

Chávez Ramírez
T(4,:)=((P(4)+fac2).*fac1)-273.15;

Ramírez
plot(V,T(1,:),'-',V,T(2,:),'--
',V,T(3,:),':',V,T(4,:),'-.')

title('Ecuacion de Van der Waals: Isobaras')


xlabel('Volumen, ltr.')
ylabel('Temperatura, ºC')
legend('P=25 atm.','P=35 atm.','P=45 atm.','P=55
atm.')
GRÁFICOS: 2D Y 3D______________________________

Edwin Chávez
Edwin Chávez Ramírez
Ramírez
GRÁFICOS: 2D Y 3D______________________________

Ejercicio 2

Dada la función f(x,y)=xy, obtener sobre una ventana gráfica las


representaciones siguientes:

Edwin Chávez
Edwin
-La superficie definida por la función sobre el dominio [-10,10]*[-10,10].

Chávez Ramírez
-Las líneas de contorno sobre la superficie

-La proyección de las líneas de contorno sobre el domino de definición

Ramírez
-La proyección de las líneas de contorno sobre el plano xy
correspondientes a los valores –4,-1, 1 y 4.
GRÁFICOS: 2D Y 3D______________________________
Solución:
subplot(223)
x=[-10:0.5:10]; y=x; cs=contour(Z);
[X,Y]=meshgrid(x,y); contour(x,y,Z)
Z=X.*Y; grid off

Edwin Chávez
Edwin
subplot(221) clabel(cs)
mesh(X,Y,Z) xlabel('eje x')
legend('z=xy')

Chávez Ramírez
ylabel('eje y')
xlabel('eje x') title('Proyeccion de las lineas
ylabel('eje y') de contorno')

Ramírez
zlabel('eje z') subplot(224)
title('superficie z=xy') contour(Z,[-4,-1,1,4])
subplot(222) grid off
contour3(Z) xlabel('eje x')
grid off ylabel('eje y')
xlabel('eje x') title('Proyeccion de las lineas
ylabel('eje y') de contorno')
zlabel('eje z')
title('lineas de
contorno 3D')
GRÁFICOS: 2D Y 3D______________________________

Edwin Chávez
Edwin Chávez Ramírez
Ramírez
GRÁFICOS: 2D Y 3D______________________________
Ejercicio 3 Representar la superficie de revolución obtenida al girar la
curva y=x2+1 alrededor del eje ox
x=[0:0.1:1];
Solución

Edwin Chávez
Edwin
x=[0:0.1:1]; %puntos de discretizacion del eje ox
rad=x.^2+1; %vector de radios
n=length(rad); %numero de radios

Chávez Ramírez
cylinder(rad,n) %representacion del cilindro
xlabel('eje x')
ylabel('eje y')

Ramírez
zlabel('eje z')
[X,Y,Z]=cylinder(rad,n);
h=surf(X,Y,Z); %calculo del objeto
rotate(h,[0,1,0],90)
%Al rotar desaparecen las etiquetas de los ejes
xlabel('eje x')
ylabel('eje y')
zlabel('eje z')
view(15,15) %cambiamos el punto de observacion
grid off
legend('f(x)=x^2+1')
Programación en MATLAB^

Edwin Chávez Ramírez


Edwin Chávez Ramírez
UNMSM, 2021 - II
PROGRAMACIÓN
Todos los ficheros de comandos MatLab deben de llevar la extensión .m hay
2 tipos

Ficheros de función la primera línea es ejecutable y comienza con la

Edwin Chávez
Edwin
palabra function

Chávez Ramírez
Ficheros de programa no constituyen funciones y se construye mediante
una secuencia de comandos se ejecuta tecleando el nombre sin extensión y
se le conoce como script.

Ramírez
Ejemplo1: Ejemplo1.1
function temp_c=convert(temp_f); % ESTE ES UN SCRIPT
%CREAR UNA FUNCION % PASA DE GRADOS ºF A ºC
% PASA DE GRADOS ºF A ºC temp_f=68;
temp_c=5/9*temp_f-5/9*32; temp_c=5/9*temp_f-5/9*32;
end temp_c
SCRIPTS
Un script se define mediante un archivo- m, el cual esta formado por un
conjunto de sentencias pero no tiene la cualidad de ser una función como
y = sin(x) que posee argumentos de salida.

FUNCIONES
Una función se define mediante un archivo- m, cuyo nombre coincide con

Edwin Chávez Ramírez


el de la función. La primera línea ejecutable debe tener la palabra function.
Su sintaxis es

function argumentos_salida= nombre_función (argumentos_entrada)


seguida de las instrucciones necesarias. Cuando hay más de un
argumento de salida, éstos deben ir entre corchetes y separados por
comas. Por ejemplo:
PROGRAMACIÓN________________________________
Comandos de entrada salida
input: nos permite introducir datos
variable=input(‘mensaje a pantalla’);

disp: muestra un texto por pantalla

Edwin Chávez
Edwin
disp(‘El algoritmo no ha convergido’)

Chávez Ramírez
menu: genera un menú que permite al usuario elegir entre distintas opciones
opcion=menu( ‘titulo del mensaje’,’opcion1’,...’opcionp’ )

Ramírez
error: informa de la existencia de un error y detiene la ejecución del
programa devolviendo el control al teclado
PROGRAMACIÓN________________________________
Programación de funciones
La primera línea es ejecutable y empieza por la palabra function de la forma
function arg_salida=nombre_funcion(arg_entrada)

Después cuantos comandos sean necesarios incluidos comentarios como si se

Edwin Chávez
Edwin
tratase de un fichero programa
El fichero se debe guardar con nombre_funcion.m

Chávez Ramírez
Para devolver el control al programa desde cualquier punto de una función
basta con escribir la sentencia return

Ramírez
Ejemplo2:Construir una función que defina para un gas ideal la temperatura
dependiendo de la presión y el volumen
PROGRAMACIÓN________________________________
function t=gases(p,v,n)
%t=gases(p,v,n)
%funcion que considera la ley de los gases ideales
%Argumentos de entrada:
%presion p (atmosferas)

Edwin Chávez
Edwin
%volumen v (litros)
%número de moles n

Chávez Ramírez
%Argumentos de salida:
%temperatura t (grados kelvin)
%R=0.0821 atm.litro/mol.grado

Ramírez
R=0.0821
t=p*v/(n*R);
end

Lo grabo como gases.m


>> temp=gases(20,10,10)
PROGRAMACIÓN________________________________
• El m-fichero (funciones o script) solo puede ejecutarse a continuación
del >> de MatLab o como una línea de otro fichero, una función
puede ser llamada desde cualquier expresión.
• El m-fichero no admite argumentos de entrada, simplemente trabaja

Edwin Chávez
Edwin
con datos existentes en el espacio de trabajo.
• Las variables de una función son locales de la función y las de un
script son globales.

Chávez Ramírez
• Si queremos que una variable “a” sea compartida por varias
funciones, a debe definirse en todas ellas como global.

Ramírez
global variable
echo escribe cada comando del fichero sobre la pantalla
pause detiene la ejecución hasta pulsar una tecla
keyboard idem y además permite al usuario intercalar comandos, la
ejecución retornará con return
PROGRAMACIÓN________________________________

Testear(someter a prueba) el número de argumentos

 nargin devuelve el número de argumentos de entrada


con los que el usuario ha llamado a la función

Edwin Chávez
Edwin
 nargout devuelve el número de argumentos de salida
con los que el usuario ha llamado a la función

Chávez Ramírez
 nargchk chequea si el número de argumentos de entrada
calculados con nargin esta entre el valor máximo y

Ramírez
mínimo previsto, si no da error.
nargchk(mínimo,máximo,número_entrada)
PROGRAMACIÓN________________________________
Operadores relacionales y lógicos
Menor: <
Menor o igual:<=
Mayor: >
Mayor o igual: >=

Edwin Chávez
Edwin
Igual: ==
Distinto: ~=

Chávez Ramírez
O: |
Y: &
no: ~

Ramírez
El resultado de realizar operaciones relacionales o lógicas será un 1 si
es verdadera o un 0 si es falsa
PROGRAMACIÓN________________________________
Estructuras de control condicionadas

if

Edwin Chávez
Edwin
if if
elseif
if
else elseif
else

Chávez Ramírez
end
end end
end

Ramírez
Ejemplos
Diseñe un script que permita calcular una de las operaciones entre
suma, resta multiplicación y división de dos números

% calcula la operación deseada

Edwin Chávez
Edwin
a=input('ingresa a: ');
a=input('ingresa b: ');
op=menu('Elegir','suma','resta','producto','divi

Chávez Ramírez
sion');
if op==1
fprintf('%f + %f =%f\n',a,b,a+b);

Ramírez
end
if op==2
fprintf('%f - %f =%f\n',a,b,a-b);
end
if op==3
fprintf('%f * %f =%f\n',a,b,a*b);
end
if op==4
fprintf('%f / %f =%f\n',a,b,a/b);
end
Ejemplo
Determinar si una persona es adulta o menor de edad

inicio
escribir “Ingrese edad”
leer edad
si edad>=18 entonces

Edwin Chávez
Edwin
escribir “La persona es adulta”
si_no
escribir “La persona es menor de edad”

Chávez Ramírez
fin_si
fin

Ramírez
% Identifica si es mayor de edad o menor de edad
a=input('ingresa la edad: ');
if a>=18
disp(‘La persona es mayor de edad’);
else
disp(‘La persona es menor de edad’);
end
Ejemplos
Diseñe una función que permita verificar si los valores ingresados
forman o no un triángulo rectángulo, además verificar el número y
coherencia de los argumentos
function r=triangulo(a,b,c);

Edwin Chávez
Edwin
if nargin ~= 3
error('Número de argumentos incorrecto, debe ser 3 datos');
end

Chávez Ramírez
if ~isempty(find([a b c]<0))
error('Valores inconsistentes de algún lado');

Ramírez
end
if (a^2==b^2+c^2)
disp('Es un triangulo rectangulo');
elseif (b^2==a^2+c^2)
disp('Es un triangulo rectangulo');
elseif (c^2==a^2+b^2)
disp('Es un triangulo rectangulo');
else
disp('No es un triangulo rectangulo');
end
end
PROGRAMACIÓN________________________________

MatLab se ha incorporado la estructura switch que permite realizar


bifurcaciones en un programa atendiendo al resultado de una expresión
switch expresión
case expresion_0

Edwin Chávez
Edwin
comandos_0 que deben ejecutarse
case expresion_1
comandos_1 que deben ejecutarse

Chávez Ramírez
case expresion_2
comandos_2 que deben ejecutarse

Ramírez
otherwise
comandos escoba que deben ejecutarse
end

Nótese que los conjuntos se delimitan con llaves y los elementos de


este se separan por comas tal como { a, b, c }, si el conjunto solo
tiene un elemento no necesita colocársele llaves.
EJEMPLO
El siguiente programa determina la condición y tipo de estudiante según su
promedio de acuerdo a la siguiente tabla.

Edwin Chávez
Edwin Chávez Ramírez
Ramírez
Edwin Chávez
Edwin Chávez Ramírez
Ramírez
Al ejecutarlo tenemos:

>> [cond,tipo]=reporte(14)
cond =
Aprobado NOTA
tipo = Una variante donde es posible entrar
Bueno notas decimales y que el programa lo
redondee y por ejemplo si Ud.

Edwin Chávez
Edwin
Introduce 10.5 daría de resultado
>> [cond,tipo]=reporte(7)
Aprobado – Regular, diseñe la
cond =

Chávez Ramírez
variante, como un ejercicio.
Desaprobado
tipo =
Malo

Ramírez
>> [cond,tipo]=reporte(10.7)
??? Error using ==> reporte
Incorrecto, debe ser un numero entero
>> [cond,tipo]=reporte(24)
??? Error using ==> reporte
Nota incorrecta, debe ser de 0 .. 20
Ejercicio
 Desarrollar un script que solicite un valor del día entre 1 y 7 y se muestre el
nombre del día, tenemos el siguiente algoritmo:

inicio

Edwin Chávez
Edwin
escribir “Ingrese un valor entre 1 y 7”
leer día

Chávez Ramírez
según_sea día hacer
caso 1: escribir “Lunes”
caso 2: escribir “Martes”

Ramírez
caso 3: escribir “Miércoles”
caso 4: escribir “Jueves”
caso 5: escribir “Viernes”
caso 6: escribir “Sábado”
caso 7: escribir “Domingo”
en_otro_caso: escribir “Error”

fin_según
fin

También podría gustarte