Escolar Documentos
Profissional Documentos
Cultura Documentos
Índice general
Introducción
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
2º Producto * x * y
/ x / y
Cociente
3º Adicción + x + y
– x – y
Sustracción
4º Asignación = x = 2 + 3
Si deseamos limpiar la pantalla de los cálculos que hemos hecho, escribiremos clc.
Constantes especiales
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
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.
1 1 1
sec(x ) = csc(x ) = cot (x ) =
cos(x ) sen (x ) t an(x )
æ 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.
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 ø÷
Suma: z 1 + z 2 = ( a1 + a2 ) + i ( b1 + b2 )
Resta: z1 - z 2 = ( a1 - a2 ) + i ( b1 - b2 )
z1 æa a + b1b2 ÷
ö æa b - b2a1 ÷ö
= çç 1 22 + i çç 2 21
z2 çè a2 + b22 ÷
÷
ø
÷
èç a 2 + b22 ÷
ø
División:
Conjugado de z 1 : z 1* = a1 - ib1
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
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]
Raíces de polinomios
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
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
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
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
>> 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
å Xi
i= 1
Õ Xi
i= 1
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')
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. Sean
2 5 7 0 6 1
D 2 8 7
C 0 1 0
1 2 3 1 1 0
y
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
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.
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.
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
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.
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.
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
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)
2x
F = ò f (x , y )dy
Respecto a la
x
variable x
ò Fdx
0
å 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.