Você está na página 1de 39

Introducción a MATLAB

Víctor Manuel Ulloa Arellano - Mayra Lorena Díaz Sosa

Índice general

Introducción

Los métodos numéricos se usan para obtener aproximaciones cuantitativas a soluciones


de problemas matemáticos1[1]. Cuando el problema que se desea resolver tiene una
solución analítica complicada, es conveniente hacer uso de métodos numéricos que
provean una solución suficientemente cercana a la analítica. La importancia de los
métodos numéricos ha crecido en la medida en que han surgido y evolucionado los
lenguajes de programación y herramientas de cálculos matemáticos como MATLAB,
Mathematica, MATHCAD y Maple, por mencionar algunos.
En un principio, el software de MATLAB se desarrolló como un “Laboratorio de matrices”.
Ahora, MATLAB tiene capacidades que superan por mucho a las del original al ser un
sistema interactivo y lenguaje de programación para cómputo científico y técnico
general2[2]. Esto se traduce en una poderosa herramienta que permite realizar numerosos
y complicados cálculos así como diversas representaciones gráficas.
El objetivo de este material es otorgar al alumno de la carrera de Actuaría elementos
básicos para el manejo de MATLAB que le permitan comprobar los resultados de sus
tareas en la asignatura Métodos numéricos, así como reforzar sus conocimientos.

1[1]
Akai, Terrence J., Métodos numéricos aplicados a la ingeniería. México, Limusa, 2004.
ò f (x )dx = F (x ) + c
2[2]
Etter, Dolores M., Solucion de problemas de ingeniería con MATLAB. 2ª. Ed., México, 1997.
ò f (x )dx = F (x ) + c
Cálculo numérico en MATLAB

La jerarquía de los operadores aritméticos en MATLAB es la misma que en el lenguaje de


alto nivel C y se resume en la siguiente tabla:

Prioridad Nombre Operador aritmético MATLAB


1º Potencia ^ x ^ y

2º Producto * x * y
/ x / y
Cociente
3º Adicción + x + y
– x – y
Sustracción
4º Asignación = x = 2 + 3

Tabla 1: Jerarquía de los operadores aritméticos de MATLAB

Como es de esperarse, el uso de paréntesis puede modificar la jerarquía de operadores


aritméticos.
Ejemplo. Al introducir 2+3 y ENTER en la ventana principal de MATLAB obtenemos:
>> 2+3
ans =
5

Ejemplo. En cambio, si introducimos 2+3; y ENTER tendremos solamente:


>> 2+3;

Es decir, MATLAB hará la evaluación directa y no arrojará el valor o resultado de la misma.


MATLAB también realiza evaluaciones por asignación:
Ejemplo. Si tecleamos x=2+3 y ENTER tendremos:
>> x=2+3
x =
5

Si deseamos limpiar la pantalla de los cálculos que hemos hecho, escribiremos clc.

Constantes especiales

Algunas constantes que MATLAB reconoce son:


 pi 3.1416
 i Unidad imaginaria 1
 inf Infinito ∞

Es importante observar que estas constantes se escriben con minúsculas.

Funciones matemáticas comunes

 abs(x) Valor absoluto de x, │x│.

 sqrt(x) Raíz cuadrada de x, .


 round(x) Redondeo de x al entero más cercano.

Cada vez que tecleemos ENTER aparecerá >>.


Ejemplo.
>> round(3.5)
ans =
4
>> round(-3.5)
ans =
-4
>> round(3.1)
ans =
3

 fix(x) Redondea (o trunca) x al entero más cercano a cero.


Ejemplo.
>> fix(3.9)
ans =
3

 floor(x) Redondea x al entero más cercano a -∞.


 ceil(x) Redondea x al entero más cercano a +∞.
 sign(x) Devuelve el valor de –1 si x es menor que 0, un valor de 0 si x es
igual a
0 y un valor de 1, si x es mayor que 0.
Ejemplo.
>> floor(-3.5)
ans =
-4
>> ceil(-3.5)
ans =
-3
>> sign(3.5)
ans =
1.

 rem(x1,x2) División módulo, donde x1 es el dividendo y x2 es el divisor.


Ejemplo.
>> rem(7,3)
ans =
1
x
 exp(x) Calcula e donde e, es la base de los logaritmos naturales
(2.718282...)
 log(x) Calcula ln(x), el logaritmo natural de x.
log10 ( x) , el logaritmo común de x con base 10.
 log10(x) Calcula

Operaciones aritméticas de arreglos elemento por elemento

En MATLAB, para definir un vector pueden emplearse un espacio en blanco o bien una
coma como separadores.
Ejemplo. Para introducir los vectores A y B donde A=(2,5,6) y B=(2,3,5), escribimos
>> A = [ 2 5 6];
>> B = [ 2, 3, 5];

En el caso de las matrices, para indicar que se desea pasar al siguiente renglón se escribe
el punto y coma.
Ejemplo. Para introducir las matrices C y D donde
 2 5 7  0 6 1
  D   2 8 7 
C   0 1 0  
 1 2 3   1 1 0 
 y  

escribimos:
>> C = [ 2 5 7; 0 1 0; -1 2 3];
>> D = [ 0 6 1; -2 8 7; -1 1 0];
Sobre los arreglos se definen las operaciones aritméticas:
 Adición.
 Sustracción.
 Producto por un escalar.
 Suma escalar.
 Producto de matriz por matriz.
 Potencia.
Obviamente, para realizar el producto entre vectores es necesario que la dimensión de los
mismos sea la adecuada, mientras que para la operación potencia es necesario que las
matrices sean cuadradas.
Ejemplo.
>> A = [ 2 5 6];
>> B = [ 2, 3, 5];
>> A+B
ans =
4 8 11
>> A-B
ans =
0 2 1
>> 3*A
ans =
6 15 18
>> 1+A
ans =
3 6 7

Y las operaciones aritméticas elemento por elemento, para las cuales es necesario escribir
punto antes del operador aritmético en cuestión.
Ejemplo. Evalúe las siguientes operaciones en MATLAB, donde A=(2,5,6) y B=(2,3,5).
1. A*B=[2(2),5(3),6(5)]
>> A.*B
ans =
4 15 30

2. A2=[22,52,62]
>> A.^2
ans =
4 25 36
3.
1
A
= ( 21 , 15 , 61 )
>> 1./A
ans =
0.5000 0.2000 0.1667

4.
A
B
= ( 22 , 53 , 65 )
>> A./B
ans =
1.0000 1.6667 1.2000

5.
A
2
= ( 22 , 25 , 62 )
>> A/2
ans =
1.0000 2.5000 3.0000

Funciones trigonométricas

Las siguientes funciones operan sobre ángulos expresados en radianes:

ángulo_grados = ángulo_radianes * (180/pi);


ángulo_radianes = ángulo_grados * (pi/180);

 sin(x) Seno de x.
 cos(x) Coseno de x.
 tan(x) Tangente de x.
 asin(x) Arco seno de x, -1 ≤ x ≤ 1, devuelve un ángulo en radianes entre -π/2
y
π/2.
 acos(x) Arco coseno de x. Devuelve un ángulo en radianes entre 0 y π.
 atan(x) Arco tangente de x. Devuelve un ángulo en radianes entre -π/2 y π/2.

Las demás funciones trigonométricas pueden calcularse empleando las siguientes


ecuaciones:

1 1 1
sec(x ) = csc(x ) = cot (x ) =
cos(x ) sen (x ) t an(x )

arc sec(x ) = arccos ( x1 ) para x ³ 1


arc csc(x ) = arc sen ( x1 ) para x ³ 1

æ x ö÷
arc cot (x ) = arccos çç ÷
çè 1 + x 2 ø÷

Ecuaciones hiperbólicas

x
Las funciones hiperbólicas son funciones de la función exponencial natural, e ; las
funciones hiperbólicas inversas son funciones de la función de logaritmo natural. A
continuación se describen brevemente las funciones hiperbólicas de MATLAB.

 sinh(x) Seno hiperbólico de x, su fórmula es:


e x - e- x
2
 cosh(x) Coseno hiperbólico de x, su fórmula es:
e x + e- x
2
 tanh(x) Tangente hiperbólica de x, su fórmula es:
senh (x )
cosh(x )
 asinh(x) Arco seno hiperbólico de x, (seno hiperbólico inverso), igual
a:
ln(x + x 2 + 1)
 acosh(x) Arco coseno hiperbólico de x (coseno hiperbólico inverso),
igual
a:
ln(x + x 2 - 1)
 atanh(x) Arco tangente hiperbólico de x (tangente hiperbólico inverso),
igual a:
æ 1+ x ÷
ö
ln ççç ÷
è 1- x ÷
ø para x £ 1

Las demás funciones hiperbólicas e hiperbólicas inversas se pueden calcular con las
siguientes ecuaciones:

cosh(x )
cot h(x ) =
senh (x )
para x ¹ 0

1
sech(x ) =
cos h (x )
1
csch(x ) =
senh(x )

x + 1
a cot h(x ) = ln
x - 1 para x ³ 1

æ1 + 1 - x2 ö
÷
a sech(x ) = ln ççç ÷
÷
çè x ÷
ø para 0 £ x £ 1

æ1 1 + x 2 ö÷
a csc h(x ) = ln ççç + ÷
÷
çè x x ø÷

Operaciones con números complejos

Un número complejo puede expresarse de la forma z = a + ib , donde i es 1 , a es la


parte real del número y b es la parte imaginaria. Sean z1 y z 1 dos números complejas, es
decir, z 1 = a1 + ib1 y z 2 = a 2 + ib2 . Sobre los complejos se definen las siguientes
operaciones:

Suma: z 1 + z 2 = ( a1 + a2 ) + i ( b1 + b2 )

Resta: z1 - z 2 = ( a1 - a2 ) + i ( b1 - b2 )

Producto: z 1 ×z 2 = ( a1a2 - b1b2 ) + i ( a1b2 + a 2b1 )

z1 æa a + b1b2 ÷
ö æa b - b2a1 ÷ö
= çç 1 22 + i çç 2 21
z2 çè a2 + b22 ÷
÷
ø
÷
èç a 2 + b22 ÷
ø
División:

Magnitud o valor absoluto de z 1 : z1 = a12 + b12

Conjugado de z 1 : z 1* = a1 - ib1

En MATLAB un número complejo se almacena en dos variables (la real y la imaginaria), y


los comandos de MATLAB suponen que i representa 1 a menos que se haya dado a i un
valor distinto.
Ejemplo. La variable compleja z = 1 - i 0.5 puede definirse a través del siguiente comando:
>> z = 1 - i * 0.5;

Las operaciones aritméticas con números complejos pueden realizarse a través de los
siguientes comandos:
 conj(j) Calcula el conjugado de z.
 real(z) Calcula la parte real de z.
 imag(z) Calcula la parte imaginaria de z.
 abs(z) Calcula el valor absoluto o magnitud de z.

Funciones polinómicas

Un polinomio puede expresarse de manera general como sigue:


f (x ) = a 0x n + a1x n - 1 + ... + an - 2x 2 + an - 1x + an
4 3
En MATLAB, el polinomio f (x ) = 3x - 7x + x - 9 se define de la siguiente manera:
>>f = 3 * x ^ 4 - 7 * x ^ 3 + x -9;

Evaluación de polinomios
Los polinomios pueden evaluarse con la función polyval(a, x), donde a es la lista de
coeficientes de polinomio x.
4 3
Ejemplo. Defina el vector de coeficientes del polinomio f (x ) = 3x - 7x + x - 9 .
>>a = [ 3, -7, 0, 1, -9]

Para evaluar polinomios con la función polyval(a,x) es necesario indicar además de la


lista de coeficientes, el dominio de x y los incrementos en el intervalo sobre los que se
evaluará el polinomio. Para ello, escribimos:
x= inicio_intervalo:incremento:fin_intervalo;
4 3 2
Ejemplo. Evaluar el polinomio g(x ) = - x + 3x - 2.5x - 2.5 en el intervalo [0,5] con
incrementos de 0.1
>> a = [-1, 3, -2.5, 0, -2.5];
>> x =0:0.1:5;
>> polyval(a,x)
ans =
Columns 1 through 13
-2.5000 -2.5221 -2.5776 -2.6521 -2.7336 -2.8125 -2.8816 -2.9361
-2.9736 -2.9941 -3.0000 -2.9961 -2.9896
Columns 14 through 26
-2.9901 -3.0096 -3.0625 -3.1656 -3.3381 -3.6016 -3.9801 -4.5000
-5.1901 -6.0816 -7.2081 -8.6056 -10.3125
Columns 27 through 39
-12.3696 -14.8201 -17.7096 -21.0861 -25.0000 -29.5041 -34.6536 -40.5061
-47.1216 -54.5625 -62.8936 -72.1821 -82.4976
Columns 40 through 51
-93.9121 -106.5000 -120.3381 -135.5056 -152.0841 -170.1576 -189.8125 -211.1376
-234.2241 -259.1656 -286.0581 -315.0000

MATLAB arroja 51 evaluaciones debido a que el intervalo incluye al cero.


Si hacemos la asignación g=polyval(a,x), g guardará la evaluación de cada x y, por
supuesto, x=0:0.1:5 almacena en x los valores en el dominio sobre los cuales se evaluó el
polinomio. En otras palabras, g almacena el codominio y x el dominio. Conviene recordar
esto para graficar polinomios, tema en que se ahondará en siguientes secciones.

Operaciones con polinomios


Las operaciones con polinomios se realizan con la misma lógica que hemos seguido hasta
ahora:

Ejemplo. Sean g(x ) = x 4 - 3x 2 - x + 2.4 y h (x ) = 4x 3 - 2x 2 + 5x - 16 . Realice las


operaciones s(x ) = g(x ) + h (x ) , t (x ) = g(x ) - h(x ) y u (x ) = 3g(x ) .
>>g = [ 1, 0, -3, -1, 2.4];
>>h = [ 0, 4, -2, 5, -16];
>> g+h
ans =
1.0000 4.0000 -5.0000 4.0000 -13.6000
>> g-h
ans =
1.0000 -4.0000 -1.0000 -6.0000 18.4000
>> 3*g
ans =
3.0000 0 -9.0000 -3.0000 7.2000

A su vez, s, t, y u son vectores que pueden ser evaluados para x.


Para el producto de polinomios se emplea el comando conv(a, b) donde a y b son
vectores de coeficientes.
4 2 3 2
Ejemplo. Sean g(x ) = x - 3x - x + 2.4 y h (x ) = 4x - 2x + 5x - 16 . Calcule p(x ) = g(x )h (x ) .
>> p=conv(g,h)
p =
0 4.0000 -2.0000 -7.0000 -14.0000 -3.4000 38.2000 28.0000
-38.4000

Para el cociente se usa la función o comando [q,r]=deconv(n,d), la cual devuelve dos


vectores de coeficientes, el primero contiene los coeficientes del cociente y el segundo los
coeficientes del residuo.
h (x )
q(x ) =
Ejemplo. Sean g(x ) = x 4 - 3x 2 - x + 2.4 y h (x ) = 4x 3 - 2x 2 + 5x - 16 . Calcule g(x )
.
>> [q,r]=deconv(h,g)
q =
0
r =
0 4 -2 5 -16

Raíces de polinomios

Sea y = f (x ) los valores de x que hacen f (x ) se denominan raíces. Las raíces de un


polinomio pueden ser reales o complejas. Si un polinomio tiene coeficientes
a 0 , a1, a2 ,...an - 1, an reales, entonces todas las raíces complejas siempre ocurrirán en pares
conjugados complejos. Por ejemplo, un polinomio cúbico tiene la siguiente forma general:
f (x ) = a 0x 3 + a1x 2 + a 2x + a 3

El teorema fundamental del álgebra indica que un polinomio de grado n, tiene n raíces. En
el caso del polinomio cúbico pueden darse los siguientes casos:
 Tres raíces reales distintas.
 Una raíz real con multiplicidad 3.
 Una raíz real simple y una raíz real con multiplicidad 2.
 Una raíz real y un par conjugado complejo.
Ejemplo. Las raíces de los siguientes polinomios se resumen a continuación.
1. Tres raíces reales distintas:
f1 (x ) = x 3 - 3x 2 - x + 3
= (x - 3)(x + 1)(x - 1)

x 1 = 3, x 2 = - 1, x 3 = 1

2. Una raíz real con multiplicidad 3:


f2 (x ) = x 3 - 6x 2 + 12x - 8
= (x - 2)3

x 1 = 2, x 2 = 2, x 3 = 2

3. Una raíz real simple y una raíz real con multiplicidad dos:
f3 (x ) = x 3 - 12x + 16
= (x + 4)(x - 2)2

x 1 = - 4, x 2 = 2, x 3 = 2
4. Una raíz real y un par conjugado complejo:
f4 (x ) = x 3 - 2x 2 - 3x + 10
= (x + 2)(x - (2 + i ))(x - (2 - i ))

x 1 = - 2, x 2 = 2 + i, x 3 = 2 - i

Las gráficas correspondientes al ejemplo anterior se incluyen a continuación:


La función de MATLAB para determinar las raíces de un polinomio es roots(a) donde a, es
el vector de coeficientes del polinomio.
3 2
Ejemplo. Sea f (x ) = x - 2x - 3x + 10 . Obtenga sus raíces.
Puede hacerse:
>> p=[ 1, -2, -3, 10 ];
>> roots(p)
ans =
-2.0000
2.0000 + 1.0000i
2.0000 - 1.0000i

O directamente:
>> roots([ 1, -2, -3, 10 ])
ans =
-2.0000
2.0000 + 1.0000i
2.0000 - 1.0000i

Para comprobar que estas son las raíces del polinomio, se sustituyen en el comando
polyval(p,r).

Gráficas de polinomios
En general, para graficar un polinomio es necesario realizar los siguientes pasos:
1. Definir el polinomio a través de un vector de coeficientes.
2. Generar en un arreglo los valores del dominio.
3. Generar el contradominio y guardarlo en un arreglo.
4. Graficar el dominio x contra el contradominio y usando el comando plot(x,y).
4 3
Ejemplo. Graficar f (x ) = - x + 7x + 6x - 12 .
>> a=[ -1, 7, 0, 6,-12 ];
>> x=-5:0.1:5;
>> y=polyval(a,x);
>> plot(x,y);
>> title('Gráfica de un polinomio')
>> xlabel ('Dominio')
>> ylabel ('Codominio')
>> grid

Los comandos title('Gráfica de un polinomio'), xlabel('Dominio'),


ylabel('Codominio') arrojan el título, la etiqueta del eje x y la etiqueta del eje y,
respectivamente. La instrucción grid genera las líneas punteadas que se aprecian en la
gráfica.
Gráficas de funciones

Anteriormente a un polinomio se le ha definido a través de un valor de coeficientes. Por


2
ejemplo, en el polinomio f (x ) = 2x - 3x el vector de coeficientes es a = [2, - 3, 0] . Para
graficar este polinomio y tomando considerando x Î [0, 5] con incrementos de 0.1,
escribimos en MATLAB los siguientes comandos:
>> a = [2, -3, 0] ;
>> x = 0: 0.1: 5 ;
>> y=polyval(a,x);
>> plot(x,y);
>> title('Gráfica de función una variable')
>> xlabel('Dominio')
>> ylabel('Codominio')
>> grid
Otra manera es introducir directamente la función, lo cual se muestra a continuación:
>> x = 0:0.1: 5 ;
>> f=2*x.^2-3*x;
>> plot(x,f);
>> title('Gráfica de función de una variable')
>> xlabel('Dominio')
>> ylabel('Codominio')
>> grid

con lo cual se obtiene la misma gráfica.

Gráficas de coordenadas polares


El comando MATLAB que genera una gráfica polar partiendo de los vectores theta y r es
polar(theta,r), el cual genera una gráfica usando los índices del vector r como los valores
de q .
Ejemplo. Genere la gráfica polar donde los valores del ángulo van de 0 a 2 p y el radio
aumenta de 0 a 1.
>> theta=0:2*pi/100:2*pi;
>> r=theta/(2*pi);
>> polar(theta,r);
>> title('Gráfica polar')
Gráficas en tres dimensiones
Para evaluar una función de dos variables f(x,y), es necesario definir primero una retícula
bidimensional en el plano xy. A continuación se evalúa la función en los puntos de la
retícula para determinar los puntos de una superficie tridimensional.
Para definir una retícula bidimensional en el plano xy en MATLAB se utilizan dos matrices,
una con las coordenadas x de todos los puntos de la retícula y otra con todas las
coordenadas de y.
Por ejemplo, supongamos que queremos definir una retícula bidimensional en donde x
varía de -2 a 2 en incrementos de 1 e y varía de -1 a 2 en incrementos de 1.
La matriz correspondiente de valores x de la retícula es la siguiente:
-2 -1 0 1 2
-2 -1 0 1 2
-2 -1 0 1 2
-2 -1 0 1 2
y para y se tiene:
-1 -1 -1 -1 -1
0 0 0 0 0
1 1 1 1 1
2 2 2 2 2
La combinación de ambas matrices genera los puntos de la retícula xy:
(-2,-1) (2,-1)
(-2, 2) (2, 2)
que son las esquinas de la retícula.
La instrucción [x_grid,y_grid]=meshgrid(x,y) genera dos matrices x, y para conformar
la retícula bidimensional. Las matrices son de tamaño m x n, con base en los valores de los
vectores x e y que contienen m-valores y n-valores respectivamente. La matriz x_grid
contiene los valores de x repetidos en cada fila, y la matriz y_grid contiene los valores de
y repetidos en cada columna.
Los comandos para generar gráficas en tercera dimension de MATLAB son los siguientes:
 mesh(x,y,z) Gráfica de malla.
 surf(x,y,z) Gráfica de superficie.
 contour(x,y,z) Gráfica de contorno. Es aquella que contiene un grupo de
líneas
que conectan elevaciones iguales, de manera tal que
podemos identificar dónde están las montañas y los valles.
 meshc(x,y,z) Gráfica de malla/contorno.
Ejemplo. Elabore las correspondientes gráficas de la función de dos variables
1
z = f (x , y ) =
1 + x2 + y2 considerando los intervalos x Î [- 2, 2] y y Î [- 1, 2] en incrementos
de 0.1
1. Gráfica de malla.
>> x=-2:0.1:2;
>> y=-1:0.1:2;
>> [x_grid,y_grid]=meshgrid(x,y);
>> z = 1./(1 + x_grid.^2 + y_grid.^2);
>> mesh(x,y,z);
>> title('Gráfica de malla');
>> xlabel('X');
>> ylabel('Y');
>> zlabel('Z');

2. Gráfica de superficie.
>> x=-2:0.1:2;
>> y=-1:0.1:2;
>> [x_grid,y_grid]=meshgrid(x,y);
>> z = 1./(1 + x_grid.^2 + y_grid.^2);
>> surf(x,y,z);
>> title('Gráfica de superficie');
>> xlabel('X');
>> ylabel('Y');
>> zlabel('Z');

3. Gráfica de contorno.
>> x=-2:0.1:2;
>> y=-1:0.1:2;
>> [x_grid,y_grid]=meshgrid(x,y);
>> z = 1./(1 + x_grid.^2 + y_grid.^2);
>> contour(x,y,z);
>> title('Gráfica de contorno');
>> xlabel('X');
>> ylabel('Y');
>> grid

4. Gráfica de malla/contorno.
>> x=-2:0.1:2;
>> y=-1:0.1:2;
>> [x_grid,y_grid]=meshgrid(x,y);
>> z = 1./(1 + x_grid.^2 + y_grid.^2);
>> meshc(x,y,z);
>> title('Gráfica de malla/contorno');
>> xlabel('X');
>> ylabel('Y');
>> zlabel('Z');
Fracciones parciales

Sea G el cociente de dos polinomios de la variable v. Puesto que G podría representar una
a
(
fracción impropia b
,a > b )
, G puede expresarse como una fracción mixta
N (v ) üïï
N
B (v )
G (v ) =
A (v )
= å K nV n + ý
D (v ) ïïþ
n= 0
Fracción propia
Esta última puede expresarse como el cociente de dos polinomios en v. El polinomio del
denominador se puede escribir como un producto de factores lineales con raíces p1, p2 , p3
(las raíces del numerador se denominan ceros y las del denominador polos de la función).
Cada raíz del denominador puede representar una raíz única o una raíz múltiple, como el
caso
N (v ) b v n - 1 + b2v n - 2 + ... + bn - 1v + bn
= 1
D (v ) ( v - p1 ) m 1 ( v - p2 ) m 2 ... ( v - pr ) mr

Esta fracción propia puede escribirse como una suma de fracciones parciales. Las raíces
únicas corresponden a un término de la fracción parcial; una raíz con multiplicidad k
corresponderá a k términos de la expansión de fracciones parciales, la expansión puede
denotarse por:
N (v ) C 11 C 12 C 1m 1
= + + ... +
D (v ) v - p1 ( v - p1 ) 2 ( v - p1 ) m 1
C 21 C 22 C 2m 2
+ + + ... +
v - p2 ( v - p2 ) 2 ( v - p2 ) m 2
+ ...
C r1 Cr2 C rmr
+ + + ... +
v - pr ( v - pr ) 2 ( v - pr ) mr

La función residue(B,A) realiza una expansión en fracciones parciales:

 [r, p, k] = residue (B, A)

Realiza una expansión en fracciones parciales de un cociente de dos polinomios, B / A . Los


vectores B y A contienen los coeficientes de los polinomios B y A, respectivamente. El
C
vector r contiene los coeficientes ij , el vector p contiene los valores de los polos pn y el
vector k contiene los valores de kn .
z2
f (z ) =
Ejemplo. Realice la expansión en fracciones parciales de z 2 - 1.5z + 0.5

>> B=[1,0,0];
>> A=[1,-1.5,0.5];
>> [r,p,k]=residue(B,A)
r =
2.0000
-0.5000
p =
1.0000
0.5000
k =
1

Esto es:
z2 2 0.5
f (z ) = 2
= 1+ -
z - 1.5z + 0.5 z - 1.0 z - 0.5

Funciones de análisis de datos

Sea x un arreglo tipo vector. Para evaluar un conjunto de datos recabados de un


experimento, se tienen las siguientes funciones en MATLAB.

 sort(x) Ordena ascendentemente los elementos del arreglo x.


 max(x) Determina el valor más grande contenido en x.
 min(x) Determina el valor menor contenido en x.
 sum(x) Determina la suma de los elementos de x:
n

å Xi
i= 1

 prod(x) Determina el producto de los elementos de x:


n

Õ Xi
i= 1

 mean(x) Determina la media del arreglo x:


n
1

X = Xi
i= 1

 median(x) Determina la mediana del arreglo x.


 std(x) Determina la desviación estándar de x:
n
2
å ( Xi - X )
i= 1
n- 1

La varianza de un arreglo puede calcularse como std(x)^2.

Ejemplo. Sea x = (2.2, 5, 8.8, 4.3, 7.3) .


1. Ordene ascendentemente los elementos del arreglo y determine los valores
máximo y mínimo.
>> x=[2.2,5,8.8,4.3,7.3];
>> sort(x)
ans =
2.2000 4.3000 5.0000 7.3000 8.8000
>> max(x)
ans =
8.8000
>> min(x)
ans =
2.2000
>> sum(x)
ans =
27.6000
>> prod(x)
ans =
3.0386e+003

2. Determine la suma y el producto de los elementos del vector.


>> x=[2.2,5,8.8,4.3,7.3];
>> sum(x)
ans =
27.6000
>> prod(x)
ans =
3.0386e+003

Ejemplo. Determine la media, la mediana, la desviación estándar y la varianza del vector


x = (3.5, 6.1, 9.8, 4.6, 3.5, 8.9, 3.1, 3.5) .

>> x=[3.5, 6.1, 9.8, 4.6, 3.5, 8.9, 3.1, 3.5];


>> mean(x)
ans =
5.3750
>> median(x)
ans =
4.0500
>> std(x)
ans =
2.6418
>> std(x)^2
ans =
6.9793

Histogramas
En MATLAB, el histograma calcula el número de valores que caen en 10 intervalos
espaciados equitativamente entre los valores mínimo y máximo de un conjunto de
valores, a menos que se le indique otra cosa. El histograma muestra no sólo los valores
mismos sino además permite observar la forma en que están distribuidos. Los comandos
para generar histogramas en MATLAB son:
 hist(x) Genera un histograma de los valores de x usando 10 intervalos.
 hist(x,n) Genera un histograma de los valores de x usando n intervalos.
Ejemplo. Obtenga el histograma en 10 y en 8 intervalos del siguiente conjunto de valores:
1.85 1.86 2.02 2.10 1.96 1.90 1.96 1.97 1.87 1.90
1.95 1.96 1.85 2.13 2.01 2.17 2.06 2.09 1.98 1.89
1.90 1.86 1.96 2.08 2.02 2.13 2.15 2.20 2.09 2.04
2.07 1.87 1.90 1.93 1.86 2.15 2.17 2.01 2.04 2.06
1.89 1.87 1.90 1.97 1.94 1.97 2.00 2.09 2.08 1.87
Para el histograma de 10 intevalos:
>> x=[ 1.85 1.86 2.02 2.10 1.96 1.90 1.96 1.97 1.87 1.90 1.95 1.96 1.85 2.13 2.01
2.17 2.06 2.09 1.98 1.89 1.90 1.86 1.96 2.08 2.02 2.13 2.15 2.20 2.09 2.04 2.07
1.87 1.90 1.93 1.86 2.15 2.17 2.01 2.04 2.06 1.89 1.87 1.90 1.97 1.94 1.97 2.00
2.09 2.08 1.87];
>> hist(x)
>> title('Histograma con 10 intervalos')
>> xlabel('Valor')
>> ylabel('Frecuencia')

Y para el histograma de 8 intervalos:


>> x=[ 1.85 1.86 2.02 2.10 1.96 1.90 1.96 1.97 1.87 1.90 1.95 1.96 1.85 2.13 2.01
2.17 2.06 2.09 1.98 1.89 1.90 1.86 1.96 2.08 2.02 2.13 2.15 2.20 2.09 2.04 2.07
1.87 1.90 1.93 1.86 2.15 2.17 2.01 2.04 2.06 1.89 1.87 1.90 1.97 1.94 1.97 2.00
2.09 2.08 1.87];
>> hist(x,8)
>> title('Histograma con 8 intervalos')
>> xlabel('Valor')
>> ylabel('Frecuencia')

Operaciones de álgebra lineal

Las siguientes son algunas de las funciones de MATLAB que realizan operaciones de
álgebra lineal:
 A' Devuelve la matriz transpuesta de la matriz A.
 dot(A,B) Calcula el producto punto de los vectores A y B. Si A y B son
matrices,
el producto punto es un vector de fila que contiene los productos
punto de las columnas correspondientes a A y B.
 A^n Eleva una matriz a la n-ésima potencia.
 rank(A) Calcula el rango de la matriz A. Si el rango es igual al número de filas
de A, la matriz no es singular y existe su inversa.
 inv(A) Calcula la inversa de la matriz A, si existe.
 det(A) Calcula el determinante de la matriz cuadrada A.

Ejemplo. Calcule el producto punto de los vectores A=(2,5,6) y B=(2,3,5).


>> A = [ 2 5 6];
>> B = [ 2, 3, 5];
>> dot(A,B)
ans =
49

Ejemplo. Sean
 2 5 7  0 6 1
  D   2 8 7 
C   0 1 0  
 1 2 3   1 1 0 
 y  

1. Calcule la transpuesta, el rango, la inversa y el determinante de la matriz C.


>> C = [ 2 5 7; 0 1 0; -1 2 3];
>> C'
ans =
2 0 -1
5 1 2
7 0 3
>> rank(C)
ans =
3
>> inv(C)
ans =
0.2308 -0.0769 -0.5385
0 1.0000 0
0.0769 -0.6923 0.1538
>> det(C)
ans =
13

2. Eleve la matriz D al cubo y realice el producto de C y D.


>> D = [ 0 6 1; -2 8 7; -1 1 0];
>> D^3
ans =
-140 356 330
-172 388 390
-10 10 12
>> C*D
ans =
-17 59 37
-2 8 7
-7 13 13

Cálculo simbólico

Una expresión simbólica se almacena en MATLAB como una cadena de caracteres, por lo
que se emplean apóstrofos para definirlas. Las variables simbólicas de una expresión
deben definirse con la instrucción syms:
>> syms x, y;
>> y=x^2;

o a través de apóstrofos:
>> y='x^2';

MATLAB también puede generar la gráfica de una expresión simbólica, donde la variable
independiente generada adopta valores dentro del intervalo [- 2p, 2p ] , a menos que el
intervalo contenga un punto para el cual la expresión no esté definida.
 ezplot(s) Genera una gráfica de s, donde s es una función de
una
variable. Por omisión la variable independiente corre
en el intervalo [- 2p, 2p ] .
 ezplot(s,[xmin,xmax]) Genera una gráfica de s, donde s es una función de
una
variable. La variable independiente corre desde xmin
hasta xmax.
 ezpolar(s) Genera una gráfica de s, donde s es una función
expresada en coordenadas polares.
 ezsurf(s) Genera una traza de superficies de s, donde s es una
función de dos variables.
Ejemplo. Grafique
3
1. y = x - 6x + 1 en [- 3, 2].
>> y='x^3-6*x+1';
>> ezplot(y,[-3,2]);
>> ylabel('y');
>> grid
2. y = 3sen (x ) cos(x ) en [- 3p, p ] .
>> y='3*sin(x)*cos(x)';
>> ezplot(y,[-3*pi,pi]);
>> ylabel('y');
>> grid
3. r = 1 + cos(t ) en [0, 2p ] .
>> ezpolar('1+cos(t)')

2 2
4. z = x - y .
>> ezsurf('x^2-y^2')
Simplificación de expresiones simbólicas
Al introducir expresiones como: syms x

a) x * x * x b) 2 * x – 3 * x c) x * x + x + 3 * x * x

MATLAB realiza automáticamente su simplificación:


a) x ^ 3 b) –x c) 4 * x ^ 2 + x

Adicionalmente, se dispone de las siguientes operaciones algebraicas:


 collect(s) Agrupa términos semejantes de s.
 collect(s,'v') Agrupa términos semejantes de s respecto a la variable
independiente v.
 expand(s) Realiza una expansión (desarrollo) de s.
 factor(s) Intenta factorizar s (sólo si los factores son racionales).
 simple(s) Simplifica la forma de s a una forma más corta si es posible.

Ejemplo. Considere que se ha definido en MATLAB:


>> syms x y a b;
>> s1=x^3–1;
>> s2=(x–3)^2+(y–4)^2;
>> s3=sqrt(a^4*b^7);
>> s4=14*x^2/(22*x*y);

OPERACIÓN RESULTADO
factor(s1) (x-1)*(x^2+x+1)
expand(s2) x^2-6*x+25+y^2-8*y
collect(s2) x^2-6*x+9+(y-4)^2
collect(s2,'y') y^2-8*y+(x-3)^2+16
simple(s3) a^2*b^(7/2)
simple(s4) 7/11*x/y

Operaciones simbólicas
MATLAB puede realizar las siguientes operaciones simbólicas. Para A y B expresiones
simbólicas:
 symadd (A,B) Realiza una suma simbólica, A+B.
 symdiv (A,B) Realiza una división simbólica A/B.
 symmul (A,B) Realiza una multiplicación simbólica A*B.
 symsub (A,B) Realiza una resta simbólica A-B.
 sympow (S,p) Realiza una elevación a potencia simbólica S^p.
Ejemplo. Considere que hemos definido en MATLAB las siguientes expresiones:
>> p1='1/(y-3)';
>> p2='3*y/(y+2)';
>> p3='(y+4)+(y-3)*y';

OPERACIÓN RESULTADO
symmul (p1, p3) 1/(y–3)*(y+4+(y-3)*y) sólo la representa, no la
evalúa. (para evaluarla se usa simplemente p1* p3).
sympow (p2,p3) 27*y^3/(y+2)^3. MATLAB simplifica expresiones como
x^3/x^2 à x. En este caso el numerador es un monomio
y se simplifica automáticamente, no así el denominador
que sólo se eleva simbólicamente.

symadd (p1, p2) 1/(y–3)+3*y/(y+2) sólo representa simbólicamente


la
expresión, no la evalúa.
A partir de la versión 7 de MATLAB los comandos se sustituyen por el símbolo que se
muestra a su derecha:
 symadd (A,B) +
 symdiv (A,B) /
 symmul (A,B) *
 symsub (A,B) -
 sympow (S,p) ^

Solución de ecuaciones y sistemas de ecuaciones

Las funciones de MATLAB para resolver una ecuación o sistema de ecuaciones son:
 solve(f) Resuelve una ecuación simbólica f despejando su variable
simbólica. Si f es una expresión simbólica, resuelve la
ecuación f=0 despejando su variable simbólica.
 solve(f1,f2,…,fn) Resuelve el sistema de ecuaciones representado por f1,f2,
…,fn.

Ejemplo. Suponga que se definieron en MATLAB las siguientes ecuaciones:


>> ec1='x–3=4';
>> ec2='x^2–x–6=0';
>> ec3='x^2+2*x+4=0';
>> ec4='3*x+2*y–z=10';
>> ec5='-x+3*y+2*z=5';
>> ec6='x–y–z=-1';
>> ec7='3*x*a= b';

OPERACIÓN RESULTADO
solve(ec1) 7
solve(ec2) [-2],[3]
solve(ec3) [-1+i*3^(1/2)],[-1-i*3^(1/2)]
[x,y,z]=solve(ec4,ec5,ec6) x=-2, y=5, z=-6
solve(ec7) 1/3*b/a

Cálculo diferencial e integral

Límites
La siguiente tabla muestra los comandos de MATLAB para calcular límites.

Límite MATLAB
lim f (x ) limit(f)
x® 0
lim f (x ) limit(f,x,a) o limit(f,a)
x®a
lim f (x ) limit(f,x,a,'right')
x ® a+
lim f (x ) limit(f,x,a,'left')
x ® a-
Tabla 2. Cálculo de límites en MATLAB
Ejemplo. Calcule los siguientes límites en MATLAB.

sen (x )
lim
1. x® 0 x >> syms x;
>> f=sin(x)/x;
>> limit(f)
ans =
1

1
lim
2. x ® 0+ x >> syms x;
>> f=1/x;
>> limit(f,x,0,'right')
ans =
Inf

1
lim
3. x ® 0- x >> syms x;
>> f=1/x;
>> limit(f,x,0,'left')
ans =
-Inf

x2 - x
lim
4. x® 1 x - 1 >> syms x;
>> f=(x^2-x^(1/2))/(x^(1/2)-1);
>> limit(f,x,1)
ans =
3

1
lim
5. x® ¥ x >> syms x;
>> f=1/x;
>> limit(f,x,Inf)
ans =
0

Derivadas
Para determinar la derivada simbólica de una expresión simbólica se usa la función diff,
la cual tiene cuatro variantes:
 diff(f) Derivada ordinaria: Devuelve la derivada de la expresión f
respecto de la variable independiente por omisión.
 diff(f,n) Derivada de orden superior n: Devuelve la n-ésima derivada
de
la expresión f respecto de la variable independiente por
omisión.
 diff(f,'t') Derivada parcial ordinaria: Devuelve la derivada de la
expresión f respecto a la variable t.
 diff(f,'t',n) Derivada parcial de orden superior n: Devuelve la n-
ésima
derivada de la expresión f respecto a la variable t.

Ejemplo. Calcule las siguientes derivadas en MATLAB.


Derivadas ordinarias
d
6x 3 - 4x 2 + bx - 5
1. dx >> syms b x;
>> f=6*x^3-4*x^2+b*x-5;
>> diff(f)
ans =
18*x^2-8*x+b

d
cos(a )
2. dx >> syms a;
>> f=cos(a);
>> diff(f)
ans =
-sin(a)

d
cos(ax )x
3. dx >> syms a x;
>> f=cos(a*x)*x;
>> diff(f)
ans =
-sin(x*a)*a*x+cos(x*a)

Derivadas de orden
superior
4.
d >> syms b x;
6x 3 - 4x 2 + bx - 5
d 2x >> f=6*x^3-4*x^2+b*x-5;
>> diff(f,2)
ans =
36*x-8

Derivadas parciales
ordinarias
Sea
f (x , y ) = ln(x + x2 + y2)

¶f
5. ¶x >> syms x y;
>> f=log(x+sqrt(x^2+y^2));
>> diff(f,'x')
ans =
(1+1/(x^2+y^2)^(1/2)*x)/(x+(x^2+y^2)^(1/2))

¶f
6. ¶y >> syms x y;
>> f=log(x+sqrt(x^2+y^2));
>> diff(f,'y')
ans =
1/(x^2+y^2)^(1/2)*y/(x+(x^2+y^2)^(1/2))

Derivadas parciales de
orden superior
¶f
2
7. x
¶ >> syms x y;
>> f=log(x+sqrt(x^2+y^2));
>> diff(f,'x',2)
ans =
(-1/(x^2+y^2)^(3/2)*x^2+1/(x^2+y^2)^(1/2))/(x+
(x^2+y^2)^(1/2))-(1+1/(x^2+y^2)^(1/2)*x)^2/(x+
(x^2+y^2)^(1/2))^2

Integrales
Para integrar una función simbólica f en MATLAB se utiliza la función int, la cual busca una
expresión simbólica F tal que diff(F)=f. Sin embargo, es posible que dicha integral no
exista o bien que MATLAB no pueda obtener la integral, en cuyo caso la función devuelve
la expresión sin evaluarla.
La función int tiene cinco variantes:
 int(f) Devuelve la integral de la expresión f respecto a la variable
independiente por omisión.
 int(f,'t') Devuelve la integral de la expresión f respecto a la variable t.
 int(f,a,b) Devuelve la integral de la expresión f respecto a la variable
independiente por omisión evaluada en el intervalo [a,b],
donde a y b son expresiones numéricas.
 int(f,'t',a,b) Devuelve la integral de la expresión f respecto a la variable t
evaluada en el intervalo [a,b], donde a y b son expresiones
numéricas.
 int(f,'m','n') Devuelve la integral de la expresión f respecto a la variable
independiente por omisión evaluada en el intervalo [m,n],
donde m y n son expresiones simbólicas.

Ejemplo. Evalúe las siguientes integrales en MATLAB 3[3].


Integral indefinida
3[3]
Note que además del resultado que MATLAB arroja se debe considerar la constante de integración c, pues
ò f (x )dx = F (x ) + c
1
ò 2
1. x + x + 1
dx
>> syms x;
>> f=1/(x^2+x+1);
>> int(f)
ans =
2/3*3^(1/2)*atan(1/3*(2*x+1)*3^(1/2))

2. ò x n dx >> syms x n;
>> f=x^n;
>> int(f)
ans =
x^(n+1)/(n+1)

Integral definida
p
2
>> syms x;
ò sen (2x )dx
3. 0 >> f=sin(2*x);
>> int(f,0,pi/2)
ans =
1
¥
1
ò 2
x + 6x + 11
dx >> syms x;
4. - ¥
>> f=1/(x^2+6*x+11);
>> int(f,-inf,inf)
ans =
1/2*pi*2^(1/2)
b

ò xdx >> syms x;


5. a
>> f=sqrt(x);
>> int(f,'a','b')
ans =
2/3*b^(3/2)-2/3*a^(3/2)

Se tiene que

y
d b d éb ù
ê f (x , y )dx údy
ò ò f (x , y )dxdy = ò êò
êë a
ú
ú
c a c û
Considerando lo anterior se pueden evaluar integrales dobles en MATLAB a través de
integrales iteradas.
2 é 2x ù
ê y ú
ò êê ò x 2 + y 2dy úúdx
0 ëx û
Ejemplo. Evalúe en MATLAB la integral doble .
>> syms x y;
>> f=y/(x^2+y^2);
>> int(int(f,'y',x,sqrt(2)*x),x,0,2)
ans =
log(3)-log(2)

A continuación se explica la integral iterada:


>> int ( int ( f , 'y' , x , sqrt(2) * x ), x, 0, 2)

2x
F = ò f (x , y )dy
Respecto a la
x
variable x

ò Fdx
0

Un método alternativo es el uso de una asignación:


>> syms x y;
>> f=y/(x^2+y^2);
>> F=int(f,'y',x,sqrt(2)*x);
>> int(F,0,2)
ans =
log(3)-log(2)
Series y sumas

Para evaluar series y sumas en MATLAB se utiliza la función symsum(s,a,b):


 symsum(s,t,a,b) Evalúa la serie s donde t es el parámetro sobre el que se
evalúa la
serie, a es la cota inferior y b la cota superior.
Ejemplo. Evalúe las siguientes series.
¥
1 1 1 1
å k 2
= 2 + 2 + 2 + ...
1 2 3
1. k= 1
>> syms x k;
>> s1 = symsum (1/k^2,k,1,inf)
s1 =
1/6*pi^2

å x k = x 0 + x 1 + x 2 + ...
2. k= 0
>> syms x k;
>> s1 = symsum (x^k,k,0,inf)
s1 =
-1/(x-1)

Bibliografía

 Etter, Dolores M., Solución de problemas de ingeniería con MATLAB. 2ª. Ed.,
México, 1997.

Você também pode gostar