Académique Documents
Professionnel Documents
Culture Documents
Versin 1.2.0
Enero del 2016
1. FUNDAMENTOS 1
1.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2. Caractersticas Bsicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2.1. Entrada y Salida de Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2.2. Ayuda (help, lookfor y doc ) . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2.3. Espacio de Trabajo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.4. Guardar y Recuperar Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.5. Formatos de Visualizacin de Nmeros . . . . . . . . . . . . . . . . . . . . . 4
1.3. Instruccin o Sentencia en Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3.1. Constantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3.2. Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3.3. Operaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3.4. Expresiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3.5. Funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.4. Archivos script o Archivos-m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.5. Proposicin de Asignacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.6. Lectura y Escritura de Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.7. Estructuras de Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2. CLCULO NUMRICO 17
2.1. Vectores y Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2. Operaciones con Vectores/Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.3. Texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.4. Operaciones Relacionales y Lgicos . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.4.1. Operadores Relacionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
I
NDICE GENERAL II
FUNDAMENTOS
1.1. Introduccin
Hoy en da existen muchas herramientas para el clculo matemtico y cientfico como son: Matlab,
Derive, Mathematica, Maple, Hercule, Octave, Scilab, Euler, Gauss, Geogebra, Mxima, etc. Uno
de los ms comnes de todos estos programas es Matlab (privativo) por su versatilidad para resolver
problemas.
Matlab es un programa interactivo para la computacin numrica y la visualizacin de datos. Es un
potente software para realizar cculos matemticos y de ingeniera. Es un lenguaje de programacin
con caractersticas ms avanzadas y mucho ms fcil de usar que los lenguajes de programacin
tradicionales, tales como C, Pascal, Basic, etc.
Matlab proporciona un ambiente o plataforma de desarrollo de aplicacio nes amigable en la mayora
de las reas del conocimiento humano.
Las interesantes y extraordinarias capacidades de Matlab han hecho cambiar el concepto de
programacin para el anlisis numrico y matemtico en los campos de la Ciencia y las Ingenieras.
Puede ser considerado como un Lenguaje de Programacin, como C o Fortran.
1
1. FUNDAMENTOS 2
En Matlab, las variables pueden contener valores de cualquier tipo sin necesidad de una declaracin
especial. De aqu el concepto de que los nmeros en Matlab estn conectados continuamente. Esto
hace que la programacin sea mucho ms veloz y efectiva.
Nota: Despus de digitar cada comando, debe presionar la tecla ENTER para que se ejecute.
Example
Put the following lines of code in your FINISH.M file to
display a dialog that allows you to cancel quitting.
La orden load es el inverso de save y carga todas las variables almacenadas por save.
Si se desea almacenar todas las variables en un archivo particular, slo debe escribir
save nombre_archivo
y todas las variables se guardan en el archivo nombre_archivo.mat
Para recuperar las variables, slo tiene que teclear
load nombre_archivo
Por ejemplo para almacenar las variables x, y, z en un archivo llamado nombre_archivo, escribimos
save nombre_archivo x y z
Observe que no hay comas entre las variables.
Si deseamos borrar todas las variables del espacio de trabajo, slo tenemos que teclear el comando
clear
y si slo queremos borrar las variables x, y, z, ejecutamos el comando
clear x y z
Si deseamos guardar en forma de texto toda la actividad realizada en una seccin de Matlab,
ejecutamos el comando
diary on o diary nombre_archivo
Si no se utiliza nombre de archivo, la actividad se guarda en un archivo de nombre diary.
En los ejemplos que hemos visto hasta ahora observamos que Matlab siempre visualiza el resultado
del comando ejecutado. Si queremos que Matlab suprima la impresin de resultados, colocamos
un punto y coma (;) al final del comando.
Por ejemplo, si introducimos la orden
x = 5
se visualiza el resultado
x =
5
pero si se introduce el comando
x = 5;
se suprime la visualizacin.
Es importante hacer notar que aunque el resultado no se visualice la operacin se realiz.
Si el comando es muy largo, escriba tres puntos (...) seguido de Enter o Return para continuar el
comando de Matlab en la lnea siguiente.
Todo texto seguido del smbolo de tanto porciento ( %) es considerado como un comentario. Matlab
no toma en cuenta los comentarios. Estos slo sirven a los humanos para fines de documentacin.
Para borrar la ventana de comandos se utiliza la orden
clc
>> date
ans =
08-Dic-2015
Las instrucciones en Matlab estn formadas por: Constantes, Variables, Operaciones, Expresiones y
Funciones
1.3.1. Constantes
Una constante es cualquier cantidad que aparezca en forma explcita en una sentencia. Ejemplo:
En la instruccin
k + 5. El 5 es una constante.
Las Constantes pueden ser:
Enteras: que son aquellas que no poseen punto decimal. Ejemplos:
539
-1049
35632
-439.23
734.7854
0.78564
2.3e 03
3.4 + 2.5i
-2.5 - 7.96i
Cadenas: que son secuencias de caracteres (smbolos) encerrados entre comillas simples.
Ejemplo:
Bienvenido a Matlab
1.3.2. Variables
Una variable es una cantidad a la que se le da un nombre y que puede tomar muchos valores durante
la ejecucin de un programa. Es el nombre de una posicin de memoria. Los nombres de variables
pueden constar de una cantidad de caracteres que depende de la versin de Matlab ( letras, dgitos
y _ ), debiendo ser el primer carcter una letra, seguido por cualquier nmero de letras, dgitos o
guiones de subrayado. No se permiten espacios en blanco en el medio.
Ejemplos:
Manzana
Salario_por_nomina
pera
Angel
costo_promedio
k2000
juan_23
mango_2000
Variable Descripcin
ans Nombre por defecto variable de resultados
pi El nmero
eps Nmero ms pequeo que puede modificar un
valor cuando se le suma.
inf Infinito. Por ejemplo 1/0
i y j i = j = 1
NaN Magnitud no numrica
1.3.3. Operaciones
Las Operaciones aritmticas bsicas que usa Matlab son las siguientes:
En Matlab las operaciones tienen el mismo orden de precedencia que en matemtica. Es decir,
primero se ejecutan las exponenciaciones, luego las multiplicaciones y/o divisiones, y finalmente
las sumas y/o restas. Se pueden usar los parntesis para cambiar este orden de prioridad cuando
sea necesario.
1.3.4. Expresiones
Una Expresin es una regla para calcular un valor. Matlab evala las expresiones de izquierda a
derecha, si el orden de importancia de las operaciones no est completamente especificado por el
uso de parntesis.
Los parntesis pueden ser usados para indicar agrupamiento, al igual que en matemtica, por lo
que pueden ser utilizados en cualquier momento si con ello evita confusin.
Evaluemos las siguientes expresiones:
Los ejemplos anteriores nos dice que el programa Matlab posee tambin las caractersticas de una
calculadora normal y como tal puede ser utilizado.
1.3.5. Funciones
Matlab viene con una gran cantidad de funciones internas que se pueden usar con slo invocar su
nombre y darle el argumento adecuado. Algunas de las funciones ms usadas son:
>> sqrt(8)
ans =
2.8284
>> log(243)
ans =
5.4931
>> exp(2.5)
ans =
12.182
Proposicin Proposicin
x=3 y=x+5
p=x2 expr1 = 5 2 - 4 * 2 / 3
w = y 3 - 100.75 B=4
C=3*B-5*x r=7
longitud = 2 * pi * r area = pi * r 2
vol = (4/3) * pi * r 3 x = ( C/5.7 + 3.5 ) + 3 * B - 9.5
Y = X\R
Matlab tiene una gran capacidad de recordar cosas, porque almacena en su memoria los ltimos
valores de las variables que se han definido. Si usted no recuerda y quiere saber el valor de alguna
variable, slo tiene que teclear el nombre de la variable y visualizar su valor.
Se visualiza el mensaje
Entre el valor de w:
Se visualiza el mensaje
Aqu usted debe introducir una cadena, pero sin las comillas simples.
Es posible imprimir mensajes y nmeros con formato, utilizando el comando fprintf. Por ejemplo,
fprintf(El valor de w es %9.4f. \n, w)
La orden
fprintf(El valor es: %13.5e\n,45637.9)
imprimir
El valor es: 4.56379e+04
Para visualizar resultados en Matlab podemos utilizar la funcin disp. Esta funcin tiene el formato
disp(Mensaje) o disp(v)
donde Mensaje es un mensaje que se visualiza en la pantalla y v es un vector/matriz cuyo valor
se quiere visualizar. Por ejemplo,
>> disp(Hola Santo Domingo)
Hola Santo Domingo
>> disp([-5 12 9])
-5 12 9
Si se ejecuta el script:
A = rand (3 ,4) ;
disp ( ' col1 col2 col3 col4 ') ;
disp ( ' ') ;
disp ( A ) ;
se obtiene el resultado
A = rand (3 ,4) ;
disp ( ' col1 col2 col3 col4 ') ;
fprintf ( ' %6.4 f %6.4 f %6.4 f %6.4 f \ n ' , A ') ;
A = rand (3 ,4) ;
disp ( ' col1 col2 col3 col4 ') ;
X = sprintf ( ' %6.4 f %6.4 f %6.4 f %6.4 f \ n ' , A ') ;
disp ( X ) ;
x =
a: [2x3 double]
>> x.a
ans =
2 3 1
5 4 7
>> x.b = 12
x =
a: [2x3 double]
b: 12
x =
a: [2x3 double]
b: 12
c: cadena
>> x
x =
a: [2x3 double]
b: 12
c: cadena
Las estructuras se pueden asignar a otras estructuras, por ejemplo podemos escribir el comando
>> y = x
y obtener
y =
a: [2x3 double]
b: 12
c: cadena
x =
a: [2x3 double]
b: [1x1 struct]
c: cadena
function y = fs(x)
y.pr = mean (x);
y.sd = std(x);
>> x =[ 3 2 1 0 4 3 8 3 4 5]
x =
3 2 1 0 4 3 8 3 4 5
>> fs(x)
ans =
pr: 3.3000
sd: 2.2136
>> y=fs(x)
y =
pr: 3.3000
sd: 2.2136
>> y.pr
ans =
3.3000
>> y.sd
ans =
2.2136
Ejercicios 1.1
1. Entre a Matlab y ejecute el comando date( Recuede dar enter despus del comando).
Observe la salida.
a. 12 + 34
b. 15 3/7
c. 8 43 + 5/3
d. (9 + 4)/(5 8)
e. 9 + 4/(5 8)
6. Escriba y = 15.
7. Ejecute z = x y.
9. Escriba z y enter.
12. Escriba x y escriba y. Observe que dice que no estn definidas. El comando anteriror las
borr.
(x y 2 ) (x + z)1/2 |a b|
d. e. f.
x + 2.5 (z + y 1/3 1 + sen(x) cos(y)
3+
2 + x2
xyz x2 + z y
g. h. i. xe2 +
x + 1.5
p
2.5 z + y 3 ln y + z
1.2 + 2
x 1
CLCULO NUMRICO
Ejemplos:
>> d = [4, 5, 3] o d = [4 5 3]
d =
4 5 3
Para referirnos al elemento 2 del arreglo d y al elemento 3 del arreglo e, escribimos d(2) y e(3),
respectivamente.
Un vector columna en Matlab es un arreglo lineal de elementos, encerrados entre corchetes y
separados por punto y coma (;).
17
2. CLCULO NUMRICO 18
Ejemplos:
x = vi : ic : vf , donde
vi = Valor Inicial
ic = Incremento/Decremento
vf = Valor Final
donde el ltimo elemento del arreglo toma el mayor valor que sea menor o igual a vf.
Ejemplos:
Si ejecutamos el comando:
>> a = 1:0.5:3
visualizamos
a =
1.0000 1.5000 2.0000 2.5000 3.0000
a(2) = 1.5000
a(3) = 2.0000
a(4) = 2.5000
a(5) = 3.0000
l =
5
Una matriz es un arreglo rectangular de vectores filas separados por punto y coma y encerrados
entre corchetes.
Ejemplo:
Si digitamos el comando
>> A = [2, -1, 3; -2, 0, 1; -1, 4, 2]
visualizamos
A =
2 -1 3
-2 0 1
-1 4 2
B =
5 -3 4
-3 -1 0
B(2,1) =
-3
x=
4
5
-2
>> A./B
ans =
-1.0000 1.6667
-0.2500 0.5000
>> A.^2
ans =
4 25
1 9
Recordemos que para borrar todas las variables que se han definido, slo necesitamos ejecutar el
comando clear.
Consideremos los siguientes vectores:
>> x = [-2, 1, 3]
x =
-2 1 3
>> y = [ 4, -1, 2]
y =
4 -1 2
>> z = x + y
z =
2 0 5
>> r = x - y
r =
-6 2 1
>> w = x*y
w =
-4
>> t = 3 * x - 2 * y
t =
-14 5 5
>> a = x - 3
a =
-5 -2 0
>> b = y + 5
b =
9 4 7
>> C = A
C =
4 -3 5
-3 -1 -2
2 1 3
Suma:
>> D = A + B
D =
2 -1 5
-2 -4 6
4 -1 -1
Resta:
>> E = A - B
E =
6 -5 -1
-4 2 -4
6 -3 7
Multiplicacin:
>> F = A * B
F =
-13 19 -11
4 -2 -18
-15 19 -7
Determinante:
>> d = det(A)
d = -24.0000
Inversa:
>> I = inv(B) o I = B^(-1)
I =
-0.31818 -0.50000 -0.86364
0.04545 -0.50000 -0.59091
0.09091 0.00000 -0.18182
En Matlab existen funciones que nos permiten crear matrices especiales. Algunas de ellas son:
eye(3) Crea matriz identidad de orden 3
zeros(4) Crea matriz de ceros de orden 4
ones(3) Crea matriz de unos de orden 3
rand(3) Crea matriz de elementos aleatorios orden 3
hilb(3) Crea matriz de Hilbert de orden 3
Estas matrices no tienen que ser cuadradas. Es decir pueden ser de orden m x n.
Las funciones:
size(A) Visualiza la dimensin de la matriz A
sum(A) Suma las columnas de la matriz A
2.3. Texto
Realmente, el poder de Matlab est en la capacidad para trabajar con nmeros. Sin embargo, a
veces se desea trabajar con texto, tal como en las grficas. En Matlab, a los textos se les llama
cadenas de caracteres o cadenas simplemente. Las cadenas de caracteres se manipulan como vectores
filas. Consideremos la cadena
>> b = Matlab es un gran Software
Es decir, una cadena es simplemente un conjunto de caracteres entre comillas simples. Como las
cadenas son vectores filas, se pueden manipular al igual que stos. Por ejemplo, si escribimos el
comando
>> c = b(14:17) se visualizar
c=
gran
Al igual que las matrices, las cadenas pueden tener mltiples filas, con la condicin de que las filas
tengan la misma cantidad de columnas.
De la misma manera se pueden realizar las operaciones aritmticas, pero despus de aplicar una
operacin aritmtica a una cadena, ya esta no se visualiza como una cadena. En su lugar se ve
un arreglo de nmeros ASCII. Para ver la representacin ASCII de una cadena, slo tenemos que
tomar su valor absoluto o sumar cero a la cadena. Por ejemplo, ejecutemos el comando
>> c = MATLAB y se tendr
c = MATLAB.
Ahora ejecutemos
>> a = abs(c) y se visualizar
a=
77 65 84 76 65 66 se puede ejecutar
>> a = c + 0 para producir el mismo resultado
a=
77 65 84 76 65 66
Si queremos ejecutar la operacin inversa, es decir convertir
una representacin ASCII en caracteres, ejecutamos el comando
>> setstr(a)
ans = MATLAB
Ejercicios 2.1
1. Defina los vectores a = (1, 3, 5, 2, 7), b = (3, 2, 7, 1, 5).
6. Calcule la transpuesta de a y B.
8. Obtenga el vector cuyas componentes son los cuadrados de las componentes del vector b.
9. Obtenga el vector s = a2 3a + 7
a. a + b
b. a b2
c. A + B
d. 2A 3B
e. 3A2 B
f. AB 0
20. Obtenga la sub-matriz de B formada por las tres ltimas filas y las dos ltimas columnas de
B
25. Combine la matriz x1 con la matriz c para crear la matriz bidimensional x2, de cinco filas y
dos columnas.
Operador Descripcin
< Menor que
<= Menor o igual que
== Igual a
> Mayor que
>= Mayor o igual que
= No igual a
Con los operadores relacionales de Matlab se puede comparar dos arreglos del mismo tamao o
comparar un arreglo con un escalar. En este ltimo caso se compara el escalar con cada elemento
del arreglo y el resultado tendr el mismo tamao del arreglo.
Suponga que tenemos
>> a = [2, 3, 4, 5, 6]
a=
2 3 4 5 6
>> b = [5, 6, 7, 4, 8]
b=
5 6 7 4 8
Si ejecutamos el comando
>> r = a <= 5 , se producir el resultado
r=
1 1 1 1 0
lo cual significa que la comparacin en los primeros 4 elementos fue verdadera y en el quinto fue
falsa.
De la misma manera, si tecleamos la orden
>> a == b se producir el resultado
0 0 0 0 0
lo que significa que los vectores a y b son distintos en todos sus elementos.
Operador Descripcin
& and
| or
not
. .
* / \ .* ./ .\
+ - +(unario) -(unario)
: > < >= <= == =
| &
donde la prioridad mayor la tienen los smbolos de la primera fila y as sucesivamente, de arriba
hacia abajo.
son programas (scripts) o funciones como ya hemos dicho. Los archivos-m son archivos de texto
plano.
Recordemos que los archivos-m, como programas, son un conjunto de instrucciones tal como si las
estuviramos escribiendo en la lnea de comandos y luego se guarda con un nombre que debe tener
extensin .m.
Para ejecutar este programa slo tenemos que teclear su nombre en la lnea de comandos, sin
escribir la extensin .m.
Dentro del contexto de la programacin juegan un papel muy importante las instrucciones de
control de flujo.
2.5.1. Instruccin if
La proposicin if tiene la forma:
if cond
sentencias;
........
else
sentencias;
........
end
donde cond es una expresin lgica. Las expresiones lgicas ms usadas son las expresiones de
relacin, que estn formadas por los operadores de relacin y/o lgicos que vimos anteriormente
en las pginas 26 y 26.
La forma como trabaja esta instruccin es la siguiente: si al momento de hacer la pregunta, cond
es verdadera se ejecutan las sentencias que siguen a continuacin. En caso contrario, si cond es
falsa, se ejecutan las sentencias que siguen al else.
Por ejemplo, consideremos el siguiente segmento
x=input(Introduzca un valor:);
if x >= 0 a = 1;
else a = -1;
end
En este segmento de programa se pide un valor por teclado y luego se pregunta si este valor es
mayor o igual a 0, en cuyo caso se hace a = 1. En caso contrario se hace a = -1.
Es importante hacer notar que el else no es obligatorio en la instruccin if.
Veamos este otro ejemplo:
a=input(Introduzca el valor de a:);
b=input(Introduzca el valor de b:);
c=input(Introduzca el valor de c:);
s=0;
for l = 1:10
s = s + l;
end
fact=1;
for k = 1:10
fact = k *fact;
end
Calculemos el producto de los naturales pares que sean menores o igual a 13.
p=1;
for l = 2: 2: 13
p = p * l;
end
Dentro del recorrido de un for, al cual se le llama for exterior se permite tener a otros for a los
cuales se les llama for interiores.
El ndice del for se puede decrementar, si la variable ic es negativa. Por ejemplo:
for k = 5:-1:1
...
...
end
A=[3,-2,5;4,6,1];
suma = 0;
for l = 1: 2
for k = 1: 3
suma = suma + A(l,k);
end
end
k = 1;
while k <= 10
fact = k * fact;
k = k + 1;
end
Las sentencias entre while y end se ejecutarn mientras k sea menor o igual a 10.
Veamos este otro ejemplo que calcula y exhibe el rea de varios crculos
r = 1;
while r <= 5
area = pi * r2;
disp([r,area])
r = r + 1;
end
La orden break se utiliza para terminar la ejecucin de un ciclo for o while.
Por ejemplo, consideremos el segmento
l=3;
for k = 2:2:7
l = l + k;
if l >8 break, end
end
En este caso cuando l sea mayor que 8 termina el ciclo for y continuan las instrucciones que siguen
al end.
La orden continue como su nombre lo indica lo que hace es pasar el control a la prxima iteracin
dentro del ciclo for o while en la cual se encuentra, saltando todas la instrucciones restantes
dentro del recorrido del ciclo.
Nota:
Evite usar i y j como ndices, puesto que estas variables tienen valores prefijados ( 1 = Unidad
Imaginaria) dentro de Matlab.
case valor2
sentencias
.
.
.
otherwise
sentencias
end
donde expr es la variable o expresin que tomar los valores especificados en los cases; y sentencias,
son instrucciones vlidas de Matlab.
Por ejemplo, tomemos el siguiente segmento
var = input(Entre un entero)
switch var
case -1
disp(Es menos 1);
case 0
disp(Es cero);
case 1
disp(Es mas 1);
otherwise
disp(Otros valores);
end
En el segmento anterior, dependiendo del valor que tenga la variable var, se imprimir un mensaje.
La instruccin switch puede manejar mltiples condiciones en un simple case siempre que los
valores estn encerrados entre llaves y separados por coma.
Por ejemplo, veamos el siguiente segmento
var = input(Entre un entero)
switch var
case 1
disp( Es 1);
case {2,3,4}
disp(2 o 3 o 4);
otherwise
disp(Otros valores);
end
Observemos que en el segundo case hay mltiples valores, lo cual quiere decir que cualquiera de
los valores que estn encerrados satisface al case.
Ejercicios 2.2
1. Suponga que i=10 y j = 5. Encuentre el valor de j despus de ejecutar los segmentos de
programa siguientes:
c) if i > j, j = i;
j = j + i;
else
j = j + 1;
j = j + i;
end
a) k = 0; b) k = 0;
for i = 1 : 10 for i = 1 : 8
if i == 4, k = k + 5; if i == 4 continue;
k = k + i; k = k + i;
end end
end end
c) k = 0; d) k = 3; m = 2;
for i = 1 : 2 : 12 for j = 3 : m : 7
k = k + 2 * i; k = j + m;
end end
k = 3 * k;
e) f)
k = 2; k = 2;
for i = 3 : 8 : 2 for i = 3 : 8 : 2
k = k + i; k = k + i;
end if k > 6 break;
k = 2 * k; end
end
k = 2 * k;
a) k = 0; b) k = 0;
i = 1; i = 1;
c) k = 0; d) k = 3; m = 2;
j = 1; j = 3;
while j ~= 5 while j <= 7
k = k + 2 * j; k = j + 3 * m;
j = j + 1; j = j + m;
end end
k = 3 * k;
a) for k = 1 : 2 : 7 b) x = -2;
switch k for i = 5 : -1 : 1
case 1 switch i
disp(Lunes); case 1
case 2 p = 2 * x + 1;
disp(Martes); disp(p);
case 3 case 2
disp(Miercoles); p = 5 - 3 * x^2;
case 4 disp(p);
disp(Jueves); case 3
case 5 p = x^3 - 1;
disp(Viernes); disp(p);
case 6 otherwise
disp(Sabado); disp(Otros valores);
case 7 end
disp(Domingo); end
otherwise
disp(Otros Nombres);
end
end
a. Leer un entero positivo N . Sumar los enteros positivos menores o igual a N . Luego,
imprima el resultado.
b. Leer un entero positivo N . Sumar los enteros positivos impares menores o igual a N .
Luego, imprima el resultado.
c. Leer un entero positivo N . Sumar los cuadrados de los enteros positivos pares menores
o igual a N . Luego, imprima el resultado.
d. Considere el vector a = (1, 2, 4, 5, 0, 3, 9, 2, 1, 3). Sume los elementos del vector
a y luego, imprima la suma.
e. Considere el vector a = (1, 2, 5, 5, 7, 3, 8, 4, 7, 3). Sume los elementos de ndice
par del vector a y luego, imprima la suma.
7. Codifique un programa Matlab que calcule e imprima los trminos de la sucesin de Fibonacci
que sean menores o iguales a 1037.
2.6. Polinomios
Los polinomios en Matlab se representan a travs de vectores, cuyos componentes son los coeficientes
del polinomio. La primera componente del vector es el coeficiente del trmino de mayor grado y
as sucesivamente.
El vector
P= [2, 3, -1, 5]
representa el polinomio:
2x3 + 3x2 x + 5
En otras palabras, los polinomios se representan por medio de sus coeficientes en trminos de
vectores. As el polinomio de segundo grado
3x2 + 4x 1
tiene como vector de coeficientes a
[3, 4, -1]
Evaluacin
>> polyval(c,4.5)
ans =
216.8750
Clculo de Raices
Es importante notar que los coeficientes aparecen normalizados. Es decir, el coeficiente del trmino
de mayor grado es 1 (polinomio mnico).
Si queremos encontrar las raices del polinomio
y = x2 + 4x + 5
escribimos:
>> c = [1, 4, 5]
c=
1 4 5
>> q = roots(c)
q=
2.0000 + 1.0000i
2.0000 1.0000i
Suma y Resta
La suma y resta de polinomios se reduce a la simple suma y resta de los vectores que representan
los coeficientes de los polinomios dados. Recuerde que los vectores deben tener la misma longitud,
por lo que las potencias ausentes en los polinomios deben ser sustituidos por cero en los vectores
coeficientes.
Producto
Divisin
q =
1.50000 -0.25000
r =
Por ejemplo:
Suponga que deseamos dividir los polinomios, cuyos coeficientes son
>> a = [5, 2, -3, 4]
a=
5 2 -3 4
>> b = [2, -1, 3]
b=
2 -1 3
Ejecutemos el comando
>> [q,r] = deconv(a,b)
q =
2.5000 2.2500
r =
y se observa que
q es el vector de coeficientes del polinomio Cociente
r es el vector de coeficientes del polinomio Resduo
Suponga que deseamos encontrar la recta que mejor ajuste los datos
xi 18.6 29.7 50.5 72.4 90.2
yi 678.2 745.6 780.5 875.2 988.5
xi =
yi =
>> y=polyfit(xi,yi,1)
y =
4.0189 603.4944
ry =
1000
950
900
850
800
750
700
650
10 20 30 40 50 60 70 80 90 100
obtenemos la recta ajustada, que puede observarse en la figura 2.1. Los valores 15 y 95 fueron
agregados con el objetivo de extender la recta un poco nica y exclusivamente.
Ejemplo
xi 0.15 0.33 0.45 0.93 1.38 1.56 2.10 2.22 2.46 2.94 3.51
yi 2.87 2.67 2.50 2.15 1.71 1.62 1.13 1.11 0.92 0.73 0.31
>> xi =[0.15 0.33 0.45 0.93 1.38 1.56 2.10 2.22 2.46 2.94 3.51]
xi =
2.9400 3.5100
>> yi=[2.87 2.67 2.50 2.15 1.71 1.62 1.13 1.11 0.92 0.73 0.31]
yi =
2.5
1.5
0.5
0
0 0.5 1 1.5 2 2.5 3 3.5 4
0.7300 0.3100
>> yc=polyfit(xi,yi,2)
yc =
pc_ajustado =
Columns 1 through 10
2.8946 2.8445 2.6675 2.5521 2.1124 1.7318 1.5880 1.1861 1.1028 0.9426
Columns 11 through 13
Ejemplo:
Suponga que deseamos encontrar el polinomio de grado 3 que ajuste los puntos
(1.0, 0.2), (1.1, 0.4), (1.2, 0.4), (1.3, 0.3)
Ejecutemos los siguientes comandos
>> x = [1.0, 1.1, 1.2, 1.3];
>> y = [0.2, 0.4, 0.4, 0.3];
>> p = polyfit(x, y, length(x) - 1)
p=
16.667 -65.000 83.333 -34.800
El vector p contiene los coeficientes del polinomio resultante.
2.6.3. Interpolacin
En este mtodo se supone que los datos son correctos y lo que se busca es describir de alguna
manera qu sucede entre ellos.
En Matlab hay una funcin que nos permite obtener el valor funcional de una abscisa xi interpolndola
(por defecto interpolacin lineal ) a partir de una tabla de funcin. Esta funcin es
interp1
La forma de esta funcin es:
yi = interp1(x, y, xi, linear)
donde x e y son vectores filas/columnas del mismo tamao, aunque y puede tener ms de una
fila/columna. EL vector x debe ser montono creciente o decreciente estrictamente.
Por ejemplo:
Suponga que tenemos una relacin funcional dada por la tabla
x y
0.00 0.92
0.25 0.81
0.50 0.69
0.75 0.56
1.00 0.41
0.15 0.8540
0.45 0.7140
0.62 0.6276
0.94 0.4460
Ejercicios 2.3
1. Considere los polinomios
P (x) = 6x5 2x4 + 3x2 x 7, Q(x) = x3 + 3x+ 2, R(x) = 3x4 5x3 + 2x2 x + 6.
a. P (x) + Q(x)
b. R(x) Q(x)
c. P (x) Q(x)
d. P (x)/Q(x)
e. Calcule las raices de R(x)
3. Evale el polinomio P (x) del punto 1 en x = 2.5 y en el vector v = [1.5, 2.3, 1.5].
xi 6 8 10 12 14 16 18 20 22 24
yi 3.76 3.85 3.94 4.03 4.12 4.21 4.30 4.39 4.48 4.57
xi 6 8 10 12 14 16 18 20 22 24
yi 3.73 3.84 3.94 4.04 4.13 4.22 4.31 4.39 4.46 4.53
xi 6 8 10 12 14 16 18 20 22 24
yi 3.73 3.84 3.94 4.04 4.13 4.22 4.31 4.39 4.46 4.53
5. Codifique un programa Matlab que lea un arreglo lineal real de N elementos. Calcule la
media aritmtica e imprima los elementos que sean mayores o igual a la media aritmtica y
termine.
6. Codifique un programa Matlab que lea un arreglo lineal entero de 25 elementos( asuma que
los elementos son positivos). Imprima cada par de enteros, cuya suma sea 75 y termine.
8. Codifique un programa Matlab que lea una matriz real de orden M M . Calcule e imprima
la suma de los elementos que no pertenecen a alguna de las diagonales y termine.
9. Codifique un programa Matlab que lea una matriz real de orden M M . Intercambie los
elementos de la misma fila que pertenecen a ambas diagonales y termine.
10. Codifique un programa Matlab que lea un arreglo lineal real de N elementos. Calcular el
elemento mximo en valor absoluto del arreglo e imprimirlo y terminar.
11. Codifique un programa Matlab que lea dos arreglos lineales reales de N elementos. Calcular
el producto escalar de ambos arreglos e imprimir el resultado y terminar.
12. Codifique un programa Matlab que lea un arreglo lineal real de N elementos. Ordene ascendentemente
el arreglo e imprmalo y termine.
13. Codifique un programa Matlab que lea un arreglo lineal real de N elementos. Calcule la
media aritmtica de los elementos del arreglo e imprmala y termine.
14. Codifique un programa Matlab que lea un arreglo lineal real de N elementos. Calcule la
norma Eucldea e imprmala y termine.
15. Codifique un programa Matlab que lea un arreglo lineal real de N elementos. Calcule la
desviacin estndar e imprmala y termine.
16. Codifique un programa Matlab que lea los primeros 9 elementos de un arreglo lineal real de
10 elementos. Tambin lea una cantidad real X. Inserte la cantidad X en la posicin 5 del
arreglo. Luego, imprima el arreglo completo.
17. Codifique un programa Matlab que lea una matriz real de orden 5 6. Intercambie la fila 2
por la 4 y luego imprima la matriz leda.
18. Codifique un programa Matlab que lea una matriz real de orden M M . Calcule la suma
de los elementos de la diagonal secundaria e imprmala y termine.
19. Codifique un programa Matlab que lea una matriz real de orden M M . Calcule la suma
de los elementos que estn por debajo de la diagonal principal e imprmala y termine.
20. Codifique un programa Matlab que lea una matriz real de orden M M . Calcule la suma
de los elementos que estn por encima de la diagonal principal e imprmala y termine.
21. Codifique un programa Matlab que lea una matriz real de orden M M . Calcule la suma
de los elementos que estn por encima de la diagonal secundaria e imprmala y termine.
22. Codifique un programa Matlab que lea una matriz real de orden M M . Calcule la suma
de los elementos que estn por debajo de la diagonal secundaria e imprmala y termine.
23. Codifique un programa Matlab que lea una matriz real de orden M N . Calcule la suma de
los elementos que estn comprendidos en el intervalo [2.5, 4.7] e imprmala y termine.
En esta seccin presentaremos comandos, funciones y operaciones adicionales para el trabajo comn
dentro del algebra lineal.
Ejercicios 2.4
1. Utilice los datos de la siguiente tabla para calcular las funciones anteriores
xi 65 63 67 64 68 62 70 66 68 67 69 71
yi 68 66 68 65 69 66 68 65 71 67 68 70
2. Considere la matriz
68 85 92 74 80
55 76 84 66 58
A=
63
75 65 72 83
86 95 90 82 78
donde aij son coeficientes conocidos, xi son las incgnitas y las bi son trminos conocidos, llamados
no homogneos.
El sistema anterior se puede escribir de forma compacta como
Ax = b
donde A, x y b estn definidos respectivamente por
a11 a12 . . . a1n x1 b1
a21 a22 . . . a2n x2 b2
A = .. .. .. .. x = .. b= ..
. . . . . .
am1 am2 . . . amn xn bm
Suponga que m = n, que es el caso ms comn. En este caso, A es una matriz cuadrada. Para
obtener la solucin escribimos
x = A\b x = inv(A)*b
Recuerde que en lugar de inv podemos escribir
A (-1)
Ejemplo:
Suponga que queremos resolver el sistema
3x1 2x2 = 1
2x1 + x2 = 10
A =
3 -2
2 1
Ejercicios 2.5
Resuelva los sistemas:
1. 2x1 + 3x2 x3 = 5
x1 2x2 + 5x3 = 12
3x1 + x2 2x3 = 1
2. 5x1 + 2x2 x3 = 1
x1 + 3x3 = 5
3x1 + x2 + 6x3 = 17
3. x1 + x2 6x3 = 7
x1 + 2x2 + 9x3 = 2
x1 2x2 + 3x3 = 10
f () se convierte en det(A - I) = 2 3 + 5.
Las soluciones de f () = 0 se les llama Valores Caractersticos o Valores Propios o Autovalores de
A.
En Matlab, los coeficientes del polinomio Caracterstico se calculan con la funcin
c = poly(A)
donde A es la matriz y c es un arreglo de coeficientes polinmicos.
Los valores caractersticos se calculan con
roots(c)
Tambin podemos calcular de forma ms directa los valores propios de A utilizando la funcin
eig(A)
Es evidente que los valores de roots(c) y eig(A) son idnticos.
Por ejemplo:
trace(A)
Del lgebra lineal sabemos que toda matriz simtrica A Rnn puede ser descompuesta como
A = P DP T , donde P es una matriz ortogonal (P T = P 1 ) y D es la matriz diagonal de valores
propios de A. Si A Rnn es diagonalizable (simtrica o no), existe una descomposicin de
A = SDS 1 , donde S es no singular ( no necesariamente ortogonal ).
Toda matriz A Rmn , m n se puede factorizar en sus valores singulares (raz cuadrada de los
valores propios de AT A, que es simtrica, de orden nn y por tanto, diagonalizable ortogonalmente.
Es claro que sus valores propios son reales y no negativos) como
A = U SV T ,
donde U Rmm , cuyas columnas son ortogonales; S una matriz diagonal de orden m n de los
valores singulares, colocados en orden decrecientes y V Rnn una matriz ortogonal.
Nota: Es importante saber que Matlab tiene algoritmos diferentes para el clculo de las matrices
U, S Y V .
Para factorizar una matriz A en sus valores singulares, ejecutamos el comando
[U S V] = svd(A)
Por ejemplo, digitemos en matlab los comandos:
A =
2 -1 3
5 2 1
3 -2 2
4 1 3
>> [U S V] =svd(A)
U =
S =
8.4652 0 0
0 3.5891 0
0 0 1.5681
0 0 0
V =
>> U*S*V
ans =
>> [ U S V] = svd(A,0)
U =
S =
8.4652 0 0
0 3.5891 0
0 0 1.5681
V =
Si se ejecuta el comando
>> S = svd(A)
se obtiene el vector de valores singulares. Por ejemplo,
>> S = svd(A)
S =
8.4652
3.5891
1.5681
Se ejecuta el comando
>> [V J] = jordan(A)
y produce el resultado
V =
J =
ans =
ans =
>> real(ans) % Para tomar la parte real. Toda la parte imaginaria es cero
ans =
ans =
3 4 -2
3 -1 1
2 0 5
En el ltimo comando, utilic dos funciones: fix y round. La funcin round redondea al entero
ms prximo. Es posible que producto de todas las operaciones realizadas por el computador, los
resultados visualizados no sean en realidad exactos, sino aproximados. Al ejecutar la funcin fix
despus de la funcn round, se asegura tomar la parte entera del valor ya redondeado.
ans =
24.000
Como el determinante es distinto de cero, el conjunto de vectores es linealmente independiente.
Si la matriz de los vectores no es cuadrada, entonces se puede usar el concepto de rango para saber,
si es LI o LD.
Por ejemplo, si se quiere saber si el conjunto de vectores
ans =
3
Esto indica que el conjunto es LI. Si el rango es menor de 3, indica que el conjunto de vectores es
LD.
La dimensin del espacio vectorial generado por un conjunto de vectores, viene dada por el rango
de la matriz formada por los componentes de los vectores.
Por ejemplo, la dimensin del espacio vectorial generado por el conjunto de vectores
ans =
3
lo cual nos indica que la dimensin es 3.
ans =
2.61538
0.92308
-1.00000
Ejemplo:
Sea A = {(1, 1, 0, 0), (2, 0, 1, 0), (0, 1, 2, 1), (0, 1, 1, 0)} una base de R4 . Obtener las coordenadas
del vector v = (1, 2, 6, 2) con repecto a la base A.
Solucin
A =
1 1 0 0
2 0 1 0
0 1 2 -1
0 1 -1 0
v =
1 2 -6 2
>> C=A\v
C =
3.0000
-1.0000
-2.0000
1.0000
Ejemplo:
Sean A = {v1 , v2 , v3 } y B = {w1 , w2 , w3 } dos bases de R3 , donde
y
w1 = (6, 3, 3)0 , v2 = (4, 1, 3)0 , v3 = (5, 5, 2)0 .
Calcular la matriz de transicin de A a B.
Solucin
Calculamos las coordenadas de cada uno de los vectores de la base A con respecto a la base B.
Debemos resolver los sistemas:
[w1 w2 w3 ]T1 = v1 , donde T1 es el vector de coordenadas de v1 .
[w1 w2 w3 ]T2 = v2 , donde T2 es el vector de coordenadas de v2 .
[w1 w2 w3 ]T3 = v3 , donde T3 es el vector de coordenadas de v3 .
V =
2 1 1
0 2 1
1 0 1
>> v1=V(:,1)
v1 =
2
0
1
>> v2=V(:,2)
v2 =
2
0
>> v3=V(:,3)
v3 =
1
1
1
W =
6 4 5
3 -1 5
3 3 2
T1 =
1.5000
-0.5000
-1.0000
T2 =
0.5000
-0.5000
0
T3 =
-2.5000
1.5000
2.0000
>> T =[ T1 T2 T3]
T =
>> v= [5;-3;4]
v =
5
-3
4
>> V1=V\v
V1 =
3
-2
1
>> T*V1
ans =
1.0000
1.0000
-1.0000
Observe que para calcular el vector de coordenadas de v = (5, 3, 4)0 respecto a la base B utilizamos
la matriz de transicin. El vector
w = (1, 1, 1)0
es el vector de coordenadas buscado.
>> V2 = W\v
V2 =
1
1
-1
Efectivamente, tal como se esperaba. El mismo resultado. Es decir, las coordenadas del vector v
en la base B, se puede obtener multiplicando la matriz de transicin por el vector de coordenadas
del vector v respecto a la base A.
>> T = inv(B) * A, si los vectores estn en forma de filas. Veamos el resultado del comando
>> MT=inv(W)*V
MT =
Matlab tambin cuenta con la funcin rref que toma como argumento una matriz y la escalona
reducida por filas. Podemos utilizar este comando para encontrar la matriz de transicin. Basta
con ejecutar el comando
ans =
La submatriz formada por las ltimas tres columnas de la matriz anterior es la matriz de transicin.
Si ahora queremos obtener las componentes del vector v = (2, 3, 5) en la base B, ejecutamos el
comando
>> C * [-2 3 5]
para obtener el vector
ans =
0.33334
1.14283
1.90477
Recuerde que se debe buscar las coordenadas del vector v respecto a la base A. En este caso no
fue necesario porque la base A es la usual y produce las mismas coordenadas del vector v.
a. T (u + v) = T (u) + T (v), u, v E
b. T (ku) = kT (u), u E, k K
T (x) = Ax Rm .
Ejemplo
1
ejecutamos los comandos
>> A = [1, 2, 3, 2; 2, 3, 1, 1; 3, 2, 2, 1]
>> x = [2; 3; 5; 1]
>> A x
y el resultado es
ans =
21
1
9
Ejemplo
Consideremos la tranformacin lineal T : R5 R4 , definida por T (x) = Bx, donde
1 8 2 25 12
1 3 1 7 3
B= 2 1 1 4 3
1 2 0 11 6
Si ejecutamos el comando
>> rref(B 0 )
obtenemos la matriz
ans =
1 0 1 1
0 1 3 2
0 0 0 0 ,
0 0 0 0
0 0 0 0
que es una matriz escalonada reducida por filas. Las transpuestas de las filas no nulas de esta
matriz forman una base del subespacio imagen de la transformacin T . Es decir, el conjunto de
vectores
{(1, 0, 1, 1)0 , (0, 1, 3, 2)0 }
representa una base del subespacio imagen. Otra forma de obtener una base del subespacio imagen
es ejecutando el comando
>> rref(B)
T (x) = Bx = 0.
Ejemplo
Para obtener una base del ncleo de la transformacin lineal T del ejemplo anterior, se procede
ejecutando el comando
>> rref(B)
Ejemplo
donde
.. .. ..
1 0 0
. . .
1 1 0
A = T (e1 ) T (e2 ) T (e3 ) =
0 1 1
.. .. ..
. . . 0 0 1
>> A = [1, 0, 0; 1, 1, 0; 0, 1, 1; 0, 0, 1]
A=
1 0 0
1 1 0
0 1 1
0 0 1
>> A [1; 2; 3]
ans =
1
1
1
3
Ejemplo
>> A3
ans =
2 3 3
3 2 3
3 3 2
>> expm(A)
ans =
Hasta ahora hemos construido las matrices de las transformaciones lineales utilizando las bases
usuales de Rn . Sin embargo, cuando las bases no son las usuales, el procedimiento es el siguiente:
Se dice que la matriz A representa a la transformacin lineal T : E F con respecto a las bases
V y W.
Ejemplo
Solucin
Empecemos definiendo la transformacin lineal
>> T=@(x)[x(1)-x(2)+x(3)+x(4);x(1)+2*x(3)-x(4);x(1)+x(2)+3*x(3)-3*x(4)]
T =
@(x)[x(1)-x(2)+x(3)+x(4);x(1)+2*x(3)-x(4);x(1)+x(2)+3*x(3)-3*x(4)]
>> v1 = [1;1;0;-1]
v1 =
1
1
0
-1
>> v2=[1;2;3;3]
v2 =
1
2
3
3
>> v3=[2;3;1;-1]
v3 =
2
3
1
-1
>> v4=[-1;3;1;2]
v4 =
-1
3
1
2
>> tv1=T(v1)
tv1 =
-1
2
5
>> tv2=T(v2)
tv2 =
5
4
3
>> tv3=T(v3)
tv3 =
-1
5
11
>> tv4=T(v4)
tv4 =
-1
-1
-1
Calculamos las coordenadas de cada una de las imgenes de los vectores de la base V con respecto
a la base W . En este clculo, note que utilizo la transpuesta de W, porque los vectores de la base
W deben ser considerados como columnas.
>> a1 = W\tv1
a1 =
-1.2000
-1.8000
1.0000
>> a2 = W\tv2
a2 =
1.8000
-0.8000
2.0000
>> a3 = W\tv3
a3 =
-2.1000
-3.9000
2.5000
>> a4 = W\tv4
a4 =
-0.3000
0.3000
-0.5000
A =
V =
1 1 0 -1
1 2 3 3
2 3 1 -1
-1 3 1 2
>> x = [2;-1;3;1]
x =
2
-1
3
1
>> cx=V\x
cx =
-10.0000
-0.0000
5.0000
-2.0000
Si multiplicamos la matriz A por el vector cx, obtenemos las coordenadas de la imagen del vector
x con respecto a la base W . Entonces las coordenadas son:
>> cxw=A*cx
cxw =
2.1000
-2.1000
3.5000
Si calculamos directamente las coordenadas de la imagen del vector x con respecto a la base W ,
se debe producir el mismo resultado. Calculamos la imagen de x y luego, las coordenadas respecto
a la base W y se obtiene el mismo resultado, como se espera.
>> cw = T(x)
cw =
7
7
7
cixw =
2.1000
-2.1000
3.5000
2.10.3. Ortonormalizacin
El algoritmo de ortonormalizacin que se trata en esta seccin nos permite Factorizar una matriz.
Sea A una matriz de orden m n con un conjunto de columnas LI. Entonces A se puede factorizar
como A = QR, donde Q es una matriz de orden mm, cuyas columnas forman una base ortonormal
del espacio generado por las columnas de A, y R una matriz triangular superior de orden m n.
La base ortonormal del espacio generado por las columnas de A forman las columnas de Q y se
obtienen por medio del procedimiento de Gram-Schmidt.
Si las columnas de la matriz A, se representan por ak , k = 1, 2, . . . , n y las columnas de Q se
representan por qj , j = 1, 2, . . . , m, la matriz R tiene la forma
hq1 , a1 i hq1 , a2 i hq1 , a3 i
0 hq2 , a2 i hq2 , a3 i
R= 0 ,
0 hq3 , a3
.. .. .. ..
. . . .
donde hqj , ak i = 0, si j > k y QQT = I.
Nota: El algoritmo que utiliza Matlab por defecto para factorizar una matriz A por el mtodo
qr es ligeramente diferente al tratado por la mayora de los libros de textos, donde la matriz Q es
de orden m n y la matriz R es de orden n n.
Ejemplo
>> A = [1, 2, 0; 0, 1, 0; 1, 0, 2; 0, 1, 1]
A=
1 2 0
0 1 0
1 0 2
0 1 1
>> [Q R] = qr(A)
Q=
se obtiene
Q1 =
R1 =
2.10.4. Diagonalizacin
Hay varias formas de diagonalizar una matriz. Ya lo habamos hecho a travs del comando jordan.
Ahora lo hacemos por medio de otro procedimiento, utilizando el comando eig.
Ejecutemos los comandos
>> A= [1, 1, 1; 1, 0, 1; 2, 1, 1]
A=
1 1 1
1 0 1
2 1 1
>> eig(A)
ans =
1.6511
2.3772
1.2739
Para calcular los eigenvectores asociados a los eigenvalores, ejecutamos los comandos
>> v1 = null(ans(1)*eye(3) - A)
v1 =
0.4704
0.6478
0.5992
>> v2 = null(ans(2)*eye(3) - A)
v2 =
0.5129
0.1405
0.8469
>> v3 = null(ans(3)*eye(3) - A)
v3 =
0.2704
0.7168
0.6427
S=
>> inv(S)*A*S
ans =
1.6511 0.0000 0.0000
0.0000 2.3772 0.0000
0.0000 0.0000 1.2739
Esto quiere decir que A es diagonalizable ya que existe una matriz S, tal que
S 1 AS
[V D] = eig(A)
>> [V D] = eig(A)
se produce el resultado
V=
D=
1.6511 0 0
0 2.3772 0
0 0 1.2739
Para calcular las matrices triangulares superior e inferior, Matlab posee las funciones triu y tril,
respectivamente.
Otro comando Matlab que permite la descomposicin (factorizacin) de una matriz A de orden
n n en dos matrices triangulares es la funcin lu.
>> A = [3, 2, 3; 1, 4, 2; 5, 3, 4]
A=
3 2 3
1 4 2
5 3 4
>> triu(A)
ans =
3 2 3
0 4 2
0 0 4
>> tril(A)
ans =
3 0 0
1 4 0
5 3 4
>> [L U P] = lu(A)
L=
U=
P=
0 0 1
1 0 0
0 1 0
A P se le llama matriz de permutaciones, y representa los intercambios de filas que tuvo que hacer
el algoritmo para obtener la factorizacin. Esta matriz cumple con la propiedad de que
A = P U.
>> P\L*U
ans =
Ejercicios 2.6
1. Determine si el conjunto de vectores es LI o LD.
4. Determine una base de los espacios generados por los vectores de los conjuntos del punto 1.
6. Encuentre la base y el espacio nulo para cada una de las matrices siguientes:
1 2 4 3
1 3 4 1 1 2 3
2 5 6 8
A= 0 1 14 14 ,
B = 4 2 6 6 , C = 0 0 4
3 5 8 1 0 0 6
3 6 12 9
7. Verifique que el conjunto de vectores {(1, 2, 1, 0), (2, 5, 3, 2), (3, 5, 3, 2), (4, 8, 9, 1)} es una
base de R4 .
8. Verifique que el conjunto de vectores {(1, 1, 1), (2, 3, 3), (3, 2, 3)} es una base de R3 .
10. Encuentre la matriz de bloques de Jordan si es posible, utilizando el comando Jordan en las
matrices siguientes:
1 2 1 1
2 1 0 1 1 1 6 1 18 7
A = 2 1 1 , B= , C = 1 13 4
2 3 2 1
1 1 2 1 25 8
5 1 1 3
11. Encuentre manualmente la representacin matricial para cada una de las transformaciones
lineales siguientes:
x x 2y
a. T1 : R R tal que T1
2 2
=
y x + y
x+y
x
b. T2 : R2 R3 tal que T2 = xy
y
2x + 3y
x
x y + z
c. T3 : R R tal que T3 y =
3 2
2x + 2y 2z
z
x x y + 2z
d. T4 : R3 R3 tal que T4 y = 3x + y + 4z
z 5x y + 8z
12. Utilice las representaciones matriciales de las transformaciones del punto 11 para encontrar
las imgenes de
1
1
2 1 1
T1 , T2 , T3 2 , T4
1 2 3
2
1
1 2 3 2 2 4 1 10
16. Utilice mtodos diferentes en Matlab para determinar si las siguientes matrices A son diagonalizabes.
En caso de que lo sea, encuentre una matriz no singular P tal que P 1 AP sea diagonal.
0 0 4
0 2 1 3
A= , A= , A = 5 3 6
1 3 3 5
6 0 5
18. Determine si los siguientes sistemas de ecuaciones son consistentes o inconsistentes. En caso
de que lo sean, encuentre las soluciones
a. x1 + x2 + 2x3 = 1 b. x1 + 2x2 4x3 = 3
x1 2x2 + x3 = 5 x1 2x2 + 3x3 = 1
3x1 + x2 + x3 = 3 2x1 + 3x2 x3 = 5
4x1 + 3x2 2x3 = 7
5x1 + 2x2 6x3 = 7
c. x1 + x2 + 3x3 + 2x4 = 7
2x1 x2 + 4x3 = 8
3x2 + x3 = 8
d. x1 + x2 + x3 = 0 e. x1 + 2x2 + 3x3 = 0
x1 + 2x2 = 3 x1 + x2 + x3 = 0
x2 + x3 = 1 5x1 + 7x2 + 9x3 = 0
h. x1 + x2 + 4x3 + x4 + 2x5 = 0
x2 + 2x3 + x4 + x5 = 0
x4 + 2x5 = 0
x1 x2 2x5 = 0
2x1 + x2 + 6x3 x5 = 0
i. x1 + 2x2 3x4 + x5 = 0
x1 + 2x2 + x3 3x4 + x5 + 2x6 = 3
x1 + 2x2 3x4 + 2x5 + x6 = 4
3x1 + 6x2 + x3 9x4 + 4x5 + 3x6 = 9
function y = func4(x)
y = 2 * x -log10 (x) -7;
func4.m
Observe que func4 fue el nombre que se se di a la funcin en la primera instruccin del archivo
despus del signo =.
>> r = fzero(func4,[3,4])
r=
3.7892
En Matlab existe la funcin inline que permite definir una expresin de cadena como parte de
los comandos que se dan en la consola o dentro de un script. Con esta funcin podemos definir
funciones como cadena, evitando as, tener que crear un archivo-M. Esto es vlido si la funcin
est limitada a una sola proposicin. Tambin la funcin puede ser definida como function handle,
para lo cual se utiliza el smbolo @.
Por ejemplo, si queremos definir la funcin
f (x) = 3 x2 + 5 x 1
podemos escribir
>> f = inline(3*x2+5*x-1)
Ahora la funcin f (x) puede ser usada como cadena donde se necesite. As, si deseamos encontrar
la raz de la ecuacin f que se encuentra en el intervalo [0, 1], ejecutamos el comando
>> fzero(f, [0, 1])
ans =
0.1805
Si queremos encontrar la raz de f que se encuentra en el intervalo [2, 1], ejecutamos el comando
>> fzero(f, [2, 1])
ans =
-1.8471
La funcin f tambin puede ser definida como function handle. Ejecutemos los comandos
f =
@(x)3*x^2+5*x-1
ans =
-1.8471
Ejemplo
Resolver el sistema
2x 3xy + 2z 2 = 1
x + 7y + 2yz = 2, X0 = (1, 1, 1)
3x + xy + 8z = 3
function y = sist_01 ( x )
y (1) = 2* x (1) -3* x (1) * x (2) +2* x (3) ^2 -1;
y (2) = x (1) +7* x (2) +2* x (2) * x (3) -2;
y (3) = 3* x (1) + x (1) * x (2) +8* x (3) -3;
end
>> X0 = [1 1 1]
X0 =
1 1 1
>> X = fsolve(sist_01,X0)
X =
sist_01 =
Inline function:
sist_01(x) = [2*x(1)-3*x(1)*x(2)+2*x(3)^2-1;x(1)+7*x(2)+2*x(2)*x(3)-2;3*x(1)+x(1)*x(2)
>> X = fsolve(sist_01,X0)
X =
De igual forma el sistema se puede definir como una funcin function handle y el resultado debe
ser el mismo.
Ejercicios 2.7
1. Resuelva los sistemas tomando como aproximacin inicial el punto X0 . Defina los sistemas
como script, inline o function handle.
7x5 3x2 4x + 7
f (x) =
2x3 5x + xex
function y = func20(x)
y = 7*x.^5 - 3*x.^2 - 4*x + 7) ./ (2*x.^3 - 5 * x + x.*exp(-x));
>> x0 = 3.5;
y se obtiene el resultado
ans =
53.1453
Observe las operaciones punto en el archivo-m que hacen posible el hecho de que x0 sea un vector.
ans =
53.1453
-2.6595 3.5496
Nota: Tambin puede usarse la forma tradicional en matemtica para evaluar funciones. Es decir,
como
f (x0 ).
f =
@(x)5*x.^3-3*x+7
>> f(-2)
ans =
-27
ans =
5 41
Ejercicios 2.8
a. Resuelva las siguientes ecuaciones.
1. ex + 2x + 5 = 0, [3, 2]
2. x3 + 5ex + 3 = 0, [2, 1]
3. xex 1 = 0, [0, 1]
4. 3x + sen x ex = 0, [0, 1]
5. ex 3x2 = 0, [0, 1]
6. tan x x 1 = 0, [0.47, 0.43]
7. 2ex sen x = 0, [0.91, 0.93]
8. ex = cos x, [1.29, 1.31]
9. cos(ex 2) ex = 0, [0.5, 1.5]
x
10. e 3 = 2 sen x, [0.6, 0.7]
5x
1. f (x) = x0 = 2.5
x3 + x
3x2 + 5x 3
2. f (x) = x0 = 2
7x3 + 2x + 3
3. f (x) = sen(x)ex x5 + tan(3x) x0 = 1.3
x2 + 2
4. f (x) = x0 = [1, 0]
x2 + 2x 3
5. f (x) = x3 3e2x ln(x) x0 = [2, 3]
>> clear
>> P = [1 0 1]
P =
1 0 1
>> Q = [1 -6 11 -6]
Q =
1 -6 11 -6
>> [ p r ] = residue (P , Q )
p =
5.0000
-5.0000
1.0000
r =
3.0000
2.0000
1.0000
Entonces
x2 + 1 5 5 1
3 2
= + .
x 6x + 11x 6 x3 x2 x1
Complejas y diferentes
Si ri es una raz compleja, su compleja conjugada ri , tambin lo es. El resduo pi de la raz ri es
el conjugado del resduo pi .
Ejemplo
Expresar en fracciones parciales
x2 + 3x + 2
.
x3 2x2 + x 2
Ejecutemos los comandos
>> P = [1 3 2]
P =
1 3 2
>> [1 -2 1 -2]
ans =
1 -2 1 -2
>> [ p r ] = residue (P , Q )
p =
3.0000 + 0.0000 i
-1.0000 - 0.5000 i
-1.0000 + 0.5000 i
r =
1.0000 + 0.0000 i
-0.0000 + 1.0000 i
-0.0000 - 1.0000 i
Entonces
x2 + 3x + 2 3 1 0.5i 1 + 0.5i
= + + .
x3 2x2 + x 2 x1 xi x+i
Para eliminar los nmeros complejos de las fracciones parciales, sumamos las fracciones complejas
y obtenemos
1 0.5i 1 + 0.5i 2x + 1
+ = 2 .
xi x+i x +1
Luego,
x2 + 3x + 2 3 2x + 1
3 2
= + 2 .
x 2x + x 2 x1 x +1
Races reales repetidas
Supongamos que la raz r1 se repite k veces y que rk+1 , rk+2 , . . . , rn son las dems races. Entonces
P (x) p1 p2 pk pk+1 pn
= + + + + + + .
Q(x) (x r1 ) (x r1 )2 (x r1 )k (x rk+1 ) (x rn )
Ejemplo
Escribir como fracciones parciales
4x
.
x 3 x2 x + 1
Ejecutamos los comandos
>> P = [ 4 0]
P =
4 0
>> Q = [1 -1 -1 1]
Q =
1 -1 -1 1
>> [ p r ] = residue (P , Q )
p =
1.0000
2.0000
-1.0000
r =
1.0000
1.0000
-1.0000
y se obtiene
4x 1 2 1
= + .
x3 x2
x+1 (x 1) (x 1)2 (x + 1)
Fracciones impropias: (m n).
Ejemplo
3x3 4x2 x 5
.
x2 2x 3
>> P = [3 -4 -1 - 5]
P =
3 -4 -1 -5
>> Q = [1 -2 -3]
Q =
1 -2 -3
>> [ p r c ]= residue (P , Q )
p =
9.2500
2.7500
r =
3.0000
-1.0000
c =
3 2
Entonces la fraccin se escribe como
>> [ P Q ]= residue (p , r , c )
P =
Q =
Ejercicios 2.9
1. Exprese en fracciones parciales
5x 7 t2 + 8 2x + 1 x3
a. b. c. d.
x2 3x + 2 t2 5t + 6 x2 7x + 12 x2 + 2x + 1
y4 + y2 1
i.
y3 + y
20
3*x-1.5
15
10
0
y
-5
-10
-15
-20
-5 -4 -3 -2 -1 0 1 2 3 4 5 6
x
25
2*x**2-x-3
20
15
10
y
-5
-3 -2 -1 0 1 2 3 4
x
1
sin(x)
0.8
0.6
0.4
0.2
0
y
-0.2
-0.4
-0.6
-0.8
-1
0 1 2 3 4 5 6
x
30
sin(x)*exp(-0.4*x)
20
10
0
y
-10
-20
-30
-10 -5 0 5 10
x
Por ejemplo:
Suponga que deseamos graficar la funcin
y = sen x
en el intervalo [0,2] con marca de * solamente.
Ejecutemos los camandos siguientes:
y = ex
1
sen(x)
0.8
0.6
0.4
0.2
0
y
0.2
0.4
0.6
0.8
1
0 1 2 3 4 5 6 7
x
Adems de la funcin plot, exite la funcin fplot para graficar funciones que se han definido
como archivo-M o simblicamente. El formato es
fplot(nombre,[a b])
donde nombre es el nombre de la funcin y [a b] es el intervalo donde se quiere graficar.
Por ejemplo, si queremos graficar la funcin
y = sen2 x/x
creamos el archivo func10.m con los comandos
function y = func10(x)
y = sin(x).^2./x;
25
exp(x)
20
15
y
10
0
3 2 1 0 1 2 3
x
En Matlab existe una funcin para graficar en coordenadas polares, por ejemplo, si ejecutamos los
comandos
0.8
0.6
0.4
0.2
0
y
-0.2
-0.4
-0.6
-0.8
-6 -4 -2 0 2 4 6
x
Suponga que queremos representar en el plano una curva dada en forma paramtrica. Es decir,una
curva dada en forma
r(t) = (x(t), y(t)), t [a, b].
Por ejemplo, asuma que se desea graficar la curva
2
t(t 1) 2(t2 1)
r(t) = , 2 , t [5, 5].
t2 + 1 t +1
0.5
0.4
0.3
0.2
0.1
0
r
-0.5 -0.4 -0.3 -0.2 -0.1 0 0.1 0.2 0.3 0.4 0.5
-0.1
-0.2
-0.3
-0.4
-0.5 t
0.5
0
r
-1 -0.5 0 0.5 1
-0.5
-1 t
1.5
0.5
0.5
1.5
2
5 0 5
t(t2 1) 2(t2 1)
Figura 2.12: Grfica en forma paramtrica de r = , 2
t2 + 1 t +1
.
>> t = linspace(-5,5,1000);
>> x = t.*(t.^2 - 1)./(t.^2 + 1);
>> y = 2.*(t.^2 - 1)./(t.^2 + 1);
>> plot(x,y)
quiver(r(t), r0 (t)).
>> t = linspace(0,2*pi,25);
>> quiver(cos(t),sin(t),-sin(t),cos(t)), axis square
1.5
0.5
0.5
1.5
1.5 1 0.5 0 0.5 1 1.5
Antes de proceder con la grfica necesitamos utilizar operaciones lgicas con los operadores relacionales(
<, <=, ==, >, >=, =) y lgicos (&, |, ). Por ejemplo, si tenemos el vector x = [1 2 3 4 5] y
ejecutamos el comando
>> x 3
se produce el resultado
1 1 1 0 0.
Es decir, se produce un vector con la misma longitud del vector original, cuyos elementos son 1
para aquellos elementos del vector que satisfacen la condicin y 0 para los que no satisfacen la
condicin.
Ahora ejecutamos los comandos
>> x = linspace(-2,3,3000);
>> y = (x.^2).*(x < 0) + 1.*((0 <= x) & (x < 1)) + (-x+2).*(1 <= x);
>> plot(x,y,.)
3.5
2.5
1.5
0.5
0.5
1
2 1 0 1 2 3
y se genera la grfica de la figura 2.14. El punto que aparece en la funcin plot hace que se
muestren las discontinuidades en la grfica.
Grficas de Lnea
La funcin equivalente a plot en tres(3) dimensiones es la funcin plot3 que conserva todas las
reglas que hemos explicado para plot. Por ejemplo, ejecutemos los comandos
sin(u), cos(u), u
35
30
25
t 20
15
10
5
0
1
0.8
0.6
0.4
1 0.8 0.2
0
0.6 0.4 0.2 cos(t)
0.2 0 0.4
0.2 0.4 0.6
sin(t) 0.6 0.8 0.8
11
Una recta en el espacio R3 se define por medio de un punto P0 (x0 , y0 , z0 ) y un vector director, U .
Si P (x, y, z) es un punto sobre la recta que tiene la misma direccin de U y V es el vector con
origen en P0 y estremo P , se tiene que
x = x0 + rux
y = y0 + ruy
z = z0 + ruz
Por ejemplo, si L es la recta que pasa por el punto P0 (1, 1, 2) y tiene como vector director a
U (2, 1, 3), sus ecuaciones paramtricas son
x = 1 + 2r
y =1r
z = 2 + 3r
r = -2:0.01:3;
plot3 ( -1 + 2* r , 1 - r , 2 + 3* r , 'k ')
grid on
xlabel ( 'x ')
Linea recta
15
10
5
z
0
5
5
2 0
1
0
1
2 5
3 x
y
r = -2:0.01:3;
hold on
plot3 ( -1 + 2* r , 1 - r , 2 + 3* r , 'k ')
plot3 (2 ,1 , -3 , ' bo ' , ' markersize ' ,4 , ' markerfacecolor ' , 'b ') ;
plot3 ( -3 ,2 , -1 , ' ko ' , ' markersize ' ,4 , ' markerfacecolor ' , 'k ') ;
grid on
xlabel ( 'x ')
ylabel ( 'y ')
zlabel ( 'z ')
title ( ' Linea recta ')
hold off
view (120 ,30)
Linea recta
15
10
5
z
0
5
5
2 0
1
0
1
2 5
3 x
y
uy (x x0 ) = ux (y y0 ) = uy x ux y = uy x0 ux y0
uz (x x0 ) = ux (z z0 ) = uz x ux z = uz x0 ux z0
a1 x + b 1 y + c 1 z = d 1
a2 x + b 2 y + c 2 z = d 2
donde el rango de la matriz de coeficientes es 2. En el caso del ejemplo anterior, las ecuaciones
resultantes de la recta son
x + 2y = 1
3x 2z = 7
Se puede comprobar que el rango de la matriz de coeficientes es 2. Basta con ejecutar los comandos
ans =
Si ejecutamos el script
x = -5:0.01:5;
y =0.5*(1 - x ) ;
z = -0.5*( -7 -3* x ) ;
plot3 (x ,y ,z , 'k ')
grid on
xlabel ( 'x ')
ylabel ( 'y ')
zlabel ( 'z ')
title ( ' Linea Recta ')
view (120 ,30)
se produce la figura 2.18 que es exactamente la misma figura 2.16, por que lo nico que se ha hecho
es utilizar otra forma de describir la recta.
La ecuacin de la recta que pasa por los puntos P0 (3, 1, 2) y P1 (5, 2, 3), viene dada por el vector
director U = P0 P1 = P1 P0 = (2, 3, 1) y el punto P0 . De modo que las ecuaciones vienen dadas
por
x=3+2r
y =13r
z =2+r
Matlab produce grficos de malla y superficie a travs de las coordenadas z generadas por las
coordenadas de una rejilla rectangular en el plano xy. Luego, la malla se genera uniendo los puntos
adyacentes por medio de lneas rectas.
Linea Recta
15
10
5
z
0
5
5
2 0
1
0
1
2 5
3 x
y
x = 3+2 r, y = 13 r, z = 2+r
3
z
1
5
0 0
10
5 5
0
5
10 10 x
y
Las grficas de malla son muy importantes porque nos permiten representar matrices grandes,
as como visualizar de manera aproximada dnde se encuentran los mximos y mnimos de una
funcin de dos variables.
Antes de generar un grfico de malla, debemos utilizar la funcin meshgrid para generar matrices,
cuyas coordenadas se utilizarn para producir las coordenadas Z. El formato de la funcin meshgrid
es
[X,Y ] = meshgrid(x,y)
donde X es una matriz, cuyas filas estn representadas por el vector x y Y es una matriz cuyas
columnas estn representadas por el vector y.
La funcin que se utiliza para graficar la malla es mesh, cuyo formato es
mesh(X,Y,Z)
x = x0 + rux + svx
y = y0 + ruy + svy
z = z0 + ruz + svz
Por ejemplo, las ecuaciones paramtricas del plano que pasa por el punto P0 (3, 1, 2) y tiene como
vectores directores a U (1, 2, 3) y V (2, 3, 1) son
x= 3 + r + 2s
y = 1 + 2r + 3s
z= 2 + 3r s
r1 = -1:0.2:2;
s1 = -1:0.2:2;
[r , s ]= meshgrid ( r1 , s1 ) ;
colormap ([0.4 0.4 0.4]) ;
mesh (3+ r +2* s , -1+2* r +3* s ,2+3* r - s )
grid on
xlabel ( 'x ')
ylabel ( 'y ')
zlabel ( 'z ')
title ( ' Grafica de un plano ')
view (120 ,30)
Grafica de un plano
10
5
z
0
2
5
10 4
5 6
0 8
5
10 10 x
y
r1 = -1:0.2:2;
s1 = -1:0.2:2;
hold on
[r , s ]= meshgrid ( r1 , s1 ) ;
colormap ([0.4 0.4 0.4])
mesh (3+ r +2* s , -1+2* r +3* s ,2+3* r - s )
plot3 (6 ,4 ,4 , ' bo ' , ' markersize ' ,4 , ' markerfacecolor ' , 'b ') ;
plot3 (5 , -2 ,3 , ' ko ' , ' markersize ' ,4 , ' markerfacecolor ' , 'k ') ;
grid on
xlabel ( 'x ')
ylabel ( 'y ')
zlabel ( 'z ')
title ( ' Grafica plano ')
hold off
view (120 ,30)
Grafica plano
10
5
z
0
2
5
10 4
5 6
0 8
5
10 10 x
y
ax + by + cz = d. (2.2)
>> [X Y] = meshgrid(0:0.2:3);
>> Z = 2 - X + Y
>> mesh (X,Y,Z)
>> colormap([0.4 0.4 0.4])
>> xlabel(x);ylabel(y);zlabel(z)
>> view(120,30)
Decimos que un punto P (x, y, z) est en el plano, si el determinante de la matriz ampliada (2.3)
es cero. Si se desarrolla el determinante y se iguala a cero, se obtiene la ecuacin del plano (2.2).
2
z
0 0
1 1
0
0.5
1 2
1.5
2
2.5 3
3 x
y
Un punto P (x, y, z) est fuera del plano, si el rango de la matriz de coeficientes, que es igual a 2,
es diferente al rango de la matriz ampliada.
A1 =
3 -2 1
-3 2 -1
>> rank(A1)
ans =
A2 =
3 -2 1 5
-3 2 -1 -5
>> rank(A2)
ans =
Los planos son Paralelos si el rango de la matriz de coeficientes (rango = 1) es diferente del rango
de la matriz ampliada (rango = 2). Por ejemplo, los planos x 3y + 2z = 1 y 2x 6y + 4z = 3
son paralelos. Ejecutemos los comandos
A =
1 -3 2
2 -6 4
>> rank(A)
ans =
>> B =[ 1 -3 2 -1;2 -6 4 3]
B =
1 -3 2 -1
2 -6 4 3
>> rank(B)
ans =
x = -2:0.2:3;
y = -2:0.2:3;
Planos paralelos
10
5
z
5 0
2
1
0 2
1
2 4
3 x
y
[ xx yy ]= meshgrid (x , y ) ;
z1 =0.5*( -1 - xx +3* yy ) ;
mesh ( xx , yy , z1 )
grid on
hold on
z2 =0.25*(3 -2* xx +6* yy ) ;
mesh ( xx , yy , z2 )
colormap ([0.4 0.4 0.4])
xlabel ( 'x ')
ylabel ( 'y ')
zlabel ( 'z ')
title ( ' Planos paralelos ')
view (120 ,30)
hold off
Planos paralelos
2
z
2 2
1
2 0
1 1
0
1 2
2 3
3 x
y
x 3y + z = 1
2x 5y + z = 2
[ X Y ] = meshgrid (0:0.2:3) ;
Z = 1 -X +3* Y ;
hold on
mesh (X ,Y , Z )
Z =2 - 2* X + 5* Y ;
mesh (X ,Y , Z )
Interseccion de planos
20
15
10
z
0
0
5 1
1
0 2
1
2
3 3 x
y
Una recta y un plano se llaman Incidentes si tienen en comn un punto P (x, y, z). Para verificarlo,
se considera la matriz de coeficientes formada por las dos ecuaciones de la recta y la ecuacin del
plano. Si el determinante de esta matriz es distinto de cero, son incidentes y el punto en comn se
obtiene resolviendo el sistema que resulta de las ecuaciones. Por ejemplo, consideremos la recta
2x y = 1
x + 5z = 2
y el plano 5x 2y + z = 1.
Ahora, verifiquemos si son incidentes, ejecutando los comandos
>> A = [2 -1 0;1 0 5]
A =
2 -1 0
1 0 5
>> rank(A)
ans =
>> A1 = [A;5 -2 1]
A1 =
2 -1 0
1 0 5
5 -2 1
>> det(A1)
ans =
-4.0000
EL hecho de que el determinante sea distinto de cero, dice que son incidentes. Calculamos el punto
en comn con los comandos
>> P = A1\[1;-2;-1]
P =
-3.2500
-7.5000
0.2500
Si graficamos de nuevo la funcin anterior, pero ahora con la funcin surf, tenemos
30
20
10
0
z
10
20 10
30 5
15
10 0
5
0
5 5 x
y
0.7
0.6
0.5
0.4
z 0.3
0.2
0.1
02
1.5
1 2
0.5 1.5
0 1
0.5
y -0.5 0
-1 -0.5
-1.5 -1 x
-2 -2 -1.5
0.8
0.6
0.4
0.2
0
2
1 2
0 1
0
1 1
2 2
0.4
0.3
0.2
0.1
0
z
-0.1
-0.2
-0.3
-0.4
2
1.5
1 2
0.5 1.5
0 1
0.5
y -0.5 0
-1 -0.5
-1.5 -1 x
-2 -2 -1.5
La funcin surf es similar a mesh, excepto que surf colorea el interior de cada rejilla de la malla.
Ejecutemos los comandos
0.5
0
z
-0.5
-1 3
2
3
1 2
0 1
y -1 0
-2 -1 x
-2
-3 -3
0.5
0
z
-0.5
-1
0.6
0.4
0.2 0.6
0 0.4
0.2
y
-0.2 0
-0.4 -0.2
-0.6 -0.4 x
-0.6
-0.8 -0.8
8
7
6
5
4
z
3
2
1
02
1.5
1 2
0.5 1.5
0 1
0.5
y -0.5 0
-1 -0.5
-1.5 -1 x
-2 -2 -1.5
4
3.5
3
2.5
2
z
1.5
1
0.5
02
1.5
1 2
0.5 1.5
0 1
0.5
y -0.5 0
-1 -0.5
-1.5 -1 x
-2 -2 -1.5
0.4 0.4
0.3 0.3
0.2 0.2
0.1 0.1
0 0
z z
-0.1 -0.1
-0.2 -0.2
-0.3 -0.3
-0.4 -0.4
2 2
1.5 1.5
1 2 1 2
0.5 1.5 0.5 1.5
1 1
0 0.5 0 0.5
y -0.5 0 y -0.5 0
-1 -0.5 -1 -0.5
-1 x -1 x
-1.5 -1.5 -1.5 -1.5
-2-2 -2-2
Ejercicios 2.10
Grafique las siguientes funciones.
1. y = 2x + 3, x [2, 3]
2. y = x3 2, x [3, 3]
3. y = cos 2x, x [0, 2]
4. y = x sen x, x [0, 2]
2 y 2 )
5. z = 0.2 cos x + ye(x , x [3, 3], y [3, 3]
6. z = y 2 x2 , x [3, 3], y [3, 3]
7. y = tan x/x0.3 , x [0, 5]
ex
8. y= , x [0, 1]
1 x2
9. y = xx , x [0, 2]
10. y = (sen 3t)e0.3t , t [0, ]
11. y = 1 cos(t), x = sen(t) + t t [0, 4]
p
12. z = x2 + y 2 1, x, y [3, 2/2] [ 2/2, 3]
ln x
16. f (x) = , x [1, 5]
x
x(x 2)
17. f (x) = , x [5, 5]
(x + 1)(x 2)
1
18. f (x) = sen , xR
x
x
19. f (x) = , xR
e|x1|
(
x2 , x < 0
20. f (x) = , x [2, 3]
1, x 0
x, x < 1
21. f (x) = 1, 0<x<2, x [3, 5]
2
x , x > 2
1 x, x < 1
22. f (x) = 1 x2 , 1 < x < 1 , x [2, 3]
x 1, x > 1
2 0.3y 2
23. f (x, y) = 80y 2 ex , 2.1 x 2.1, 6 x 6, x = y = 0.15
(
3x 2y + 3z = 1
25. , x [0, 3]
x + 3y z = 3
Z
2 cos x dx
0
function y = func1(x)
y = x.^2 + 1;
Luego, guardamos este archivo. Es importante hacer notar que el archivo debe tener extensin .m.
Ahora, podemos integrar ejecutando los comandos
>> I = quad(func1,2,3)
I=
7.3333
Si queremos calcular la integral
Z 1
x2 ex dx
0
function y = func2(x)
y = x.^2.*exp(-x);
Matlab permite sustituir los apstrofes en la llamada a quad por @. Por ejemplo, en lugar del
argumento func2 en el ejemplo anterior se puede escribir @func2.
Las funciones definidas como archivos.m tambin se pueden definir como funciones annimas (handle
functions). De manera que la integral
Z
2
cos xdx
0
se puede resolver, ejecutando el comando
>> quad(@cos,0,pi/2)
La integral Z 3
(x2 + 1)dx
2
se resuelve ejecutando el comando
>> quad(@(x)x.2+1,2,3)
La funcin annima se puede definir en forma separada como por ejemplo
>> f=@(x)x.^2+1
>> quad(f,2,3)
Otra funcin que tiene Matlab para resolver una integral es integral. Su formato es
integral(func,a,b,par1,v1,par2,v2,...),
donde func es una funcin annima (handle function). a, b son los lmites de integracin y los
dems son parmetros opcionales.
Ejemplo
Resolver la integral Z 1
(10x3 cos(50x)e2x + 1) dx
0
Solucin
Ejecutamos los comandos
>> f=@(x)10*x.^3.*cos(50*x).*exp(-2*x)+1
f =
@(x)10*x.^3.*cos(50*x).*exp(-2*x)+1
>> integral(f,0,1)
ans =
0.9934
Ejemplo
Resolver la integral Z 0.15
(log(x + 1) sec(10x)) dx
0
Solucin
Ejecutamos los comandos
>> f=@(x)log10(x+1).*sec(10*x)
f =
@(x)log10(x+1).*sec(10*x)
>> integral(f,0,0.15)
ans =
0.0143
Cuando la funcin viene dada en forma tabular, podemos usar la funcin trapz, cuyo formato es
trapz(x,y),
donde x y y son dos vectores.
Ejemplo
Integrar la funcin dada por medio de la siguiente tabla
x 0 1 2 3 4 5 6 7 8 9 10 11 12 13
f (x) 1 4 7 1 9 3 7 2 12 34 21 67 8 0
Solucin
>> x=0:13
x =
0 1 2 3 4 5 6 7 8 9 10 11 12 13
>> y=[1 4 7 1 9 3 7 2 12 34 21 67 8 0]
y =
1 4 7 1 9 3 7 2 12 34 21 67 8 0
>> trapz(x,y)
ans =
175.5000
Otras funciones que posee Matlab para el clculo de una integral simple numricamente son: quadl,
quadv y quadgk.
Ejemplo
Z 1 Z 1x2
Resolver la integral
3xdy dx
0 1x2
Solucin
Ejecutamos los comandos
>> f=@(x,y)3*x
f =
@(x,y)3*x
>> c=@(x)-sqrt(1-x.^2)
c =
@(x)-sqrt(1-x.^2)
>> d=@(x)sqrt(1-x.^2)
d =
@(x)sqrt(1-x.^2)
>> integral2(f,0,1,c,d)
ans =
2.0000
Ejemplo
Z Z /2
sen y
Resolver la integral dy dx
0 x y
Solucin
Ejecutamos los comandos
>> f=@(x,y)sin(y)./y
f =
@(x,y)sin(y)./y
>> c=@(x)x
c =
@(x)x
>> integral2(f,0,pi,c,pi/2)
ans =
0.4883
Ejemplo
Z 1 Z 1
Resolver la integral x2 exy dx dy
0 y
Solucin
Z 1 Z 1
Para resolver esta integral, debemos expresarla como y 2 exy dy dx.
0 x
Ahora ejecutamos los comandos
>> f=@(x,y)y.^2.*exp(x.*y)
f =
@(x,y)y.^2.*exp(x.*y)
>> c=@(x)x
c =
@(x)x
>> integral2(f,0,1,c,1)
ans =
0.3591 o (e - 2)/2
integral3(func, xmin, xmax, ymin, ymax, zmin, zmax, par1, v1, par2, v2,...),
donde func es una funcin f (x, y, z) definida en forma annima, xmin y xmax, son escalares y ymin,
ymax, zmin, zmax pueden ser escalares o funciones definidas en forma annima (function handle).
Ejemplo
Z 1 Z 1x2 Z 4x2 y
Resolver la integral x dz dy dx
0 0 3
Solucin
Ejecutamos los comandos
>> f=@(x,y,z)x
f =
@(x,y,z)x
>> ymax=@(x)1-x.^2
ymax =
@(x)1-x.^2
>> zmax=@(x,y)4-x.^2-y
zmax =
@(x,y)4-x.^2-y
>> integral3(f,0,1,0,ymax,3,zmax)
ans =
0.0833
Ejemplo
Z Z Z
Resolver la integral cos(x + y + z) dz dy dx
0 0 0
Solucin
Ejecutamos los comandos
>> f=@(x,y,z)cos(x+y+z)
f =
@(x,y,z)cos(x+y+z)
>> integral3(f,0,pi,0,pi,0,pi)
ans =
-1.7764e-15
Ejemplo
Solucin
Ejecutamos los comandos
>> f=@(x,y,z)x.^0.*y.^0.*z.^0
f =
@(x,y,z)x.^2.*y.^0.*z.^0
>> ymin=@(x)-sqrt((4-x.^2)/2)
ymin =
@(x)-sqrt((4-x.^2)/2)
>> ymax=@(x)sqrt((4-x.^2)/2)
ymax =
@(x)sqrt((4-x.^2)/2)
>> zmin=@(x,y)x.^2+3*y.^2
zmin =
@(x,y)x.^2+3*y.^2
>> zmax=@(x,y)8-x.^2-y.^2
zmax =
@(x,y)8-x.^2-y.^2
>> integral3(f,-2,2,ymin,ymax,zmin,zmax)
ans =
35.5431
Ejemplo
Z /4 Z ln sec y Z 2x
Resolver la integral ez dz dx dy
0 0
Solucin
Z /4 Z ln sec x Z 2y
Esta integral debe ser expresada como ez dz dy dx
0 0
Ahora ejecutamos los comandos
>> f=@(x,y,z)exp(z)
f =
@(x,y,z)exp(z)
>> ymax=@(x)log(sec(x))
ymax =
@(x)log(sec(x))
>> zmax=@(x,y)2*y
zmax =
@(x,y)2*y
>> integral3(f,0,pi/4,0,ymax,-inf,zmax)
ans =
0.1073
Ejercicios 2.11
1. Otenga el valor de las siguientes integrales:
Z 1 Z 1.5 Z
4
4 2
a. x dx b. x log xdx c. x sen xdx
0.5 1 0
Z
4
Z 2 Z 1
3x x2
d. e sen 2xdx e. e dx f. sen(ex )dx
0 0 0
Z Z 2 Z 2
g. cos(3 cos x)dx h. tanh(x )dx 3
i. (2x5 cos(23x)e1.28x + 3)dx
0 0 0
Z 2 Z 1 Z 1 Z 2 Z 2 Z 1
2
j. (4 x y) dy dx k. (1 6x y) dx dy l. (1 6x2 y) dy dx
0 0 1 0 0 1
Z /4 Z 1 Z 1 Z x Z 1 Z 0
m. x cos y dx dy n. (3 x y) dy dx o. (3 x y) dx dy
/4 0 0 0 0 y
Z 1 Z x Z 1 Z 1y2 Z ln 8 Z ln y
sen x
p. dy dx q. 3y dx dy r. ex+y dx dy
0 0 x 0 1y 2 0 0
1 1x2 8 2 2 4x2
xe2y
Z Z Z Z Z Z
dy dx
s. dy dx t.
u. dy dx
0 1x 0 3 x y4 + 1 0 0 4y
Z 1 Z 1 Z 2 Z 8 Z 1 Z 1x2
(x2 +y 2 ) 1 p
v. e dy dx w. p dx dy x. 3 1 x2 y 2 dy dx
0 0 1 y3 x2 + y 2 1 0
Z 1 Z 1y2 Z 0 Z 0
2 2 2
e. ln(x + y + 1) dx dy f.
p dy dx
1 1y 2 1 1x2 1 + x2 + y 2
Z 1 Z 1x Z 1 Z 1 Z 2 Z 1y
c. dy dz dx d. dz dx dy
0 0 x+z 0 0 0
Z 3 Z
9x2 Z
9x2 Z 2 Z 4y2 Z 2x+y
e. dz dy dx f. dz dx dy
0 0 0 0 4y 2 0
1 1x2 4x2 y 4 1 2
4 cos(x2 )
Z Z Z Z Z Z
g. x dz dy dx h. dx dy dz
0 0 3 0 0 2y 2 z
Z 1 Z 1 Z 1 Z 2 Z 4x2 Z x
zy 2 sen 2x
i. 12xze x dy dx dz j. dy dz dx
0 0 x2 0 0 0 4z
Z 1 Z z Z 2 Z 2 Z 4r2 Z 2
2 2 2
c. (r cos + z )r d dr dz d. (r sen + 1)r d dz dr
0 0 0 0 r2 0
7. Integre sobre el intervalo [0, 1.4], la funcin dada por medio de la siguiente tabla
x 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3 1.4
f (x) 1 3 6 8 9 12 65 76 13 56 75 76 12 67 92
8. Integre sobre el intervalo [0, 18], la funcin dada por medio de la siguiente tabla
x 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
f (x) 6 1 8 3 9 1 2 7 8 4 8 2 5 8 3 4 6 8 1
9. Integre sobre el intervalo [0, 84], la funcin dada por medio de la siguiente tabla
x 0 6 12 18 24 30 36 42 48 54 60 66 72 78 84
f (x) 124 134 148 156 147 133 121 109 99 85 78 89 104 116 123
10. Integre sobre el intervalo [1, 5], la funcin dada por medio de la siguiente tabla
x 1 2 3 4 5
f (x) 2.41 2.67 2.90 3.10 3.28
11. Integre sobre el intervalo [0, 1], la funcin dada por medio de la siguiente tabla
2.17. Derivadas
donde z es una variable compleja. C es una curva cerrada en el plano complejo, dentro de la cual
f(z) es analtica y contiene a z0 .
Construyamos una funcin en Matlab, que le llamaremos cauchy.m
function y = func3(x)
y = 1./ (x.^2 + 1);
Utilizando la funcin diff de Matlab podemos obtener la derivada de una funcin numricamente
sobre un intervalo [a, b].
Ejemplo
Suponga que deseamos calcular la derivada de la funcin f (x) = sen x sobre el intervalo [0, 2].
Solucin
Ejecutamos los comandos matlab
>> h=0.001;
>> x=0:h:2*pi;
>> f=sin(x);
>> derf=diff(f)/h;
>> plot(x,f,k,x(1:length(x)-1),derf,k:) % Grafica la funcion y su derivada
El vector contenido en la variable derf es la derivada de la funcin f (x) = sen x, que es la funcin
cos x. La figura 2.35a muestra la grfica de la funcin sen x en lnea continua y la grfica de la
funcin cosx en lnea punteada.
>> x=0:0.001:2*pi;
>> f=sin(x);
>> derf=diff(f)./diff(x);
>> plot(x,f,k,x(1:length(x)-1),derf,k:)
1 4
0.8
3.5
0.6
3
0.4
2.5
0.2
0 2
0.2
1.5
0.4
1
0.6
0.5
0.8
1 0
0 1 2 3 4 5 6 7 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
Ejemplo
>> h=0.001;
>> x=0:h:2;
>> y=x.^2;
>> dy=diff(y)/h;
>> plot(x,y,k,x(1:length(x)-1),dy,k:)
Para conseguir esta derivada tambin se puede ejecutar los comandos siguientes:
>> x=0:0.001:2;
>> y=x.^2;
>> dy=diff(y)./diff(x);
>> plot(x,f,k,x(1:length(x)-1),derf,k:)
Ejemplo
Derivemos numricamente la funcin f (x) = 5x sen x2x cos x sobre el intervalo [0, /4].
Solucin
Para producir la derivada, ejecutamos los comandos Matlab
7
primitiva
derivada
6
0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8
>> x=0:0.001:pi/4;
>> y=5*x.*sin(x)+x.^2.*cos(x);
>> dydx=diff(y)./diff(x);
>> plot(x,y,k,x(1:length(x)-1),dydx,k:)
>> legend(primitiva,derivada);
Nota: El comando plot en cada uno de los ejemplos anteriores no es necesario. Simplemente, lo
hago para mostrar las grficas de la primitiva y su derivada.
Ejercicios 2.12
1. Derive los polinomios siguientes:
a. p(x) = 5x3 4x + 3
b. f (x) = 7x6 + 3x4 2x + 5
c. q(x) = 6x5 + 3x3 7x2 + 3x 1
a. f (x) = x2 + 1, z0 = 1, k=3
4x
b. f (x) = 3 , z0 = 1.5, k=2
5x 1
c. f (x) = x2 senx, z0 = 1.2, k=3
ans =
ti y
0 1.0000
0.5000 0.8363
1.0000 0.8195
1.5000 0.9169
2.0000 1.1035
2.5000 1.3594
3.0000 1.6692
Esta secuencia de comandos producen una tabla de dos columnas con los resultados de la ecuacin
diferencial.
La solucion analtica es
t
y(t) = 3e 2 +t2
La funcin edo1 puede definirse tambin en forma annima para obtener el mismo resultado.
Si ejecutamos los comandos siguientes para resolver el ejemplo anterior, se producen los mismos
resultados:
>> edo1=@(t,y)(t-y)/2;
>> ti=0:0.5:3;
>> y0=1;
>> [t y]=ode23(edo1,ti,y0);
>> [t y]
ans =
ti y
0 1.0000
0.5000 0.8363
1.0000 0.8195
1.5000 0.9169
2.0000 1.1035
2.5000 1.3594
3.0000 1.6692
La funcin tambin puede definirse por medio del comando inline como se muestra en los
comandos que siguen:
>> edo1=inline((t-y)/2,t,y)
edo1 =
Inline function:
edo1(t,y) = (t-y)/2
>> ti=0:0.5:3;
>> y0=1;
>> [t y]=ode23(edo1,ti,y0);
>> [t y]
ans =
ti y
0 1.0000
0.5000 0.8363
1.0000 0.8195
1.5000 0.9169
2.0000 1.1035
2.5000 1.3594
3.0000 1.6692
Ejercicios 2.13
Resuelva las siguientes ecuaciones diferenciales:
1. y 0 = t2 y , y(0) = 1 , [0, 2]
2. y 0 = 3y + 3t , y(0) = 1 , [0, 1]
3. y 0 = e2t 2y , y(0) = 1
10
, [0, 1]
u = u + 2v
, u(0) = 6, v(0) = 4, [0, 1]
v = 3u - 2v
ans =
ti u v
0 6.0000 4.0000
0.1000 7.5831 5.1197
0.2000 9.5962 6.5249
0.3000 12.1526 8.2960
0.4000 15.3964 10.5338
0.5000 19.5105 13.3654
0.6000 24.7272 16.9509
0.7000 31.3410 21.4934
0.8000 39.7255 27.2494
0.9000 50.3542 34.5445
1.0000 63.8317 43.7936
Al igual que dar solucin a una ecuacin diferencial, el sistema de ecuaciones se puede definir en
forma annima como se muestra a continuacin:
>> edo5=@(t,y)[y(1)+2*y(2);3*y(1)-2*y(2)]
edo5 =
@(t,y)[y(1)+2*y(2);3*y(1)-2*y(2)]
>> ti=0:0.1:1;
>> y0=[6;4];
>> [t y] = ode23(edo5,ti,y0);
>> [t y]
ans =
ti u v
0 6.0000 4.0000
0.1000 7.5831 5.1197
0.2000 9.5962 6.5249
0.3000 12.1526 8.2960
0.4000 15.3964 10.5338
0.5000 19.5105 13.3654
0.6000 24.7272 16.9509
0.7000 31.3410 21.4934
0.8000 39.7255 27.2494
0.9000 50.3542 34.5445
1.0000 63.8317 43.7936
>> edo5=inline([y(1)+2*y(2);3*y(1)-2*y(2)],t,y)
edo5 =
Inline function:
edo5(t,y) = [y(1)+2*y(2);3*y(1)-2*y(2)]
>> ti=0:0.1:1;
>> y0=[6;4];
>> [t y] = ode23(edo5,ti,y0);
>> [t y]
ans =
ti u v
0 6.0000 4.0000
0.1000 7.5831 5.1197
0.2000 9.5962 6.5249
0.3000 12.1526 8.2960
Ejercicios 2.14
Resuelva los siguientes sistemas de ecuaciones diferenciales:
1. u0 = 3u v , u(0) = 0.2
v0 = 4u v , v(0) = 0.5 [0, 2]
2. u0 = u 4v , u(0) = 2
v0 = u+v , v(0) = 3 [0, 2]
3. u0 = v 4u , u(0) = 1
v0 = u+v , v(0) = 1 [0, 1.2]
5. u0 = v , u(0) = 1
v 0 = u 2et + 1 , v(0) = 0 [0, 2]
w0 = u et + 1 , w(0) = 1
6. u0 = 2u + 3v , u(0) = 2.7
v0 = 2u + v , v(0) = 2.8 [0, 1]
7. u0 = 3u v , u(0) = 0.2
v0 = 4u v , v(0) = 0.5 [0, 2]
Solucin:
Escribimos la ecuacin diferencial como un sistema de dos ecuaciones diferenciales de primer orden
u0 = v , u(0) = 1
v 0 = (10/0.5)v (100/0.5)u , v(0) = 0
u0 = v , u(0) = 1
v 0 = 20v 200u , v(0) = 0
>> ti = (0:0.1:1);
>> y0 = [1;0];
>> [t,y] = ode23(edo2, ti, y0);
>> [t,y]
Se visualizar una tabla con tres columnas, representando los resultados de la solucin
ans =
ti u u
0 1.0000 0
0.1000 0.5087 -6.1951
0.2000 0.0670 -2.4690
0.3000 -0.0424 -0.1417
0.4000 -0.0259 0.2783
0.5000 -0.0046 0.1301
0.6000 0.0017 0.0140
0.7000 0.0013 -0.0121
0.8000 0.0003 -0.0067
0.9000 -0.0001 -0.0010
1.0000 -0.0001 0.0005
>> edo2=@(t,y)[y(2);-20*y(2)-200*y(1)]
edo2 =
@(t,y)[y(2);-20*y(2)-200*y(1)]
>> ti=0:0.1:1;
>> y0=[1;0];
>> [t y]=ode23(edo2,ti,y0);
>> [t y]
ans =
ti u u
0 1.0000 0
0.1000 0.5087 -6.1951
Recuerde que el sistema se puede definir tambin por medio de la funcin inline.
Ejercicios 2.15
Resuelva las siguientes ecuaciones diferenciales:
2. 2u00 (t) 5u0 (t) 3u(t) = 45e2t , u(0) = 2, u0 (0) = 1, [0, 0.5]
CLCULO SIMBLICO
3.1. Introduccin
Por defecto, Matlab realiza los clculos en formato numrico. Si ejecutamos la operacin 7 +
3/4, recibimos como resultado un valor aproximado en lugar del valor exacto 31/4. Matlab tiene
una gran capacidad para resolver problemas de ciencias e ingeniera simblicamente, mediante un
conjunto de funciones diseadas y desarrolladas para tales fines.
Con frecuencia necesitamos realizar clculo en matemtica que no se pueden llevar a cabo con las
herramientas de Matlab que conocemos hasta este momento, como por ejemplo, obtener la solucn
analtica de la integral de una funcin.
Para resolver este tipo de problemas existe el paquete de clculo simblico de Matlab. Una
Expresin simblica es una expresin matemtica formada por uno o ms objetos simblicos y
sobre los cuales se efecta el clculo simblico. Los objetos simblicos que componen las expresiones
simblicas pueden ser: nmeros, variables, operaciones y funciones. Es posible utilizar expresiones
simblicas en operaciones numricas, si es necesario.
La funcin syms es utilizada para declarar variables que an no tienen asignados valores concretos.
Su formato es
syms v1 v2 v3 vn ,
donde las vi , i = 1, 2, . . . , n representan las variables. Con este comando se pueden crear una o ms
variables al mismo tiempo. Note que las variables estn separadas por espacios y no por comas.
Por ejemplo,
>> syms x y z
155
3. CLCULO SIMBLICO 156
La funcin sym nos permite crear variables simblicas o convertir variables numricas a simblicas.
Este comando slo nos permite crear o convertir un objeto a la vez. Su formato es
nombre_objeto = sym(objeto_simbolico),
donde el objeto_simbolico puede ser una cadena.
>> w = sym(w)
w =
>> s = sym(abb)
s =
abb
>> e = sym(exp(1))
e =
3060513257434037/1125899906842624
>> p = sym(sqrt(3))
p =
3^(1/2)
>> a=double(e)
a =
2.7183
>> q = double(p)
q =
1.7321
A =
>> B =sym(A)
B =
>> double(B)
ans =
Toda expresin que contenga variables simblicas es tambin simblica, por ejemplo en
>> syms a b c x
>> g = a*x^2 + b*x + c
g =
a*x^2 + b*x + c
Una expresin simblica tambin se puede definir por medio de una cadena, aunque no se hayan
declarado previamente sus variables como simblicas. Por ejemplo,
h =
3*y^4 + 2*y^2 - 5
Es importante hacer notar que cuando se necesite usar a y, debe estar entre comillas simples.
>> clear
>> x = sym(3) % Define variable simbolica x
x =
y =
z =
w =
17/6 % Resultado
>> t = sym(1/2)
t =
1/2
s =
(43*3^(1/2))/6
r =
cos(3)^2 + sin(3)^2
>> simplify(r)
ans =
>> a=3
a =
>> b=4
b =
c =
2.4821
La expresin puede ser creada con objetos simblicos y numricos. Ahora bien, si la expresin
incluye objetos simblicos todas las operaciones matemticas se efectan en forma simblicas(
exactas ) sin producir un valor numrico final. Por ejemplo,
f =
63/20
En esta expresin hay variables simblicas y numricas y el resultado es exacto. Cuando hay
variables numricas includas en expresiones simblicas, se considera su valor exacto, an cuando
estn dadas como valores aproximados. Por ejemplo,
>> clear
>> x= 2.2500
x =
2.2500
>> a= sym(3)
a =
>> b = sym(4)
b =
c =
33/2
>> clear
>> syms x
>> f = x^2 - x + 5
f =
x^2 - x + 5
g =
x^3 + 3*x^2 - x - 2
>> h = f + g
h =
>> p = f - g
p =
- x^3 - 2*x^2 + 7
>> q = g/f
q =
>> r = f * g
r =
>> s = f^2
s =
(x^2 - x + 5)^2
El comando subs es utilizado para sustituir una variable por otra o por una constante en una
expresin simblica. Su formato es
subs(E,objeto_actual,objeto_nuevo),
donde el resultado es sustituir en objeto_actual por objeto_nuevo en la expresin E. Por ejemplo,
para sustituir a x por y en la f anterior, ejecutamos
>> syms y
>> subs(f,x,y)
ans =
y^2 - y + 5
>> subs(f,x,5)
ans =
25
Ahora suponga que se desea sustituir una coleccin de variables en una expresin simblica. Por
ejemplo, ejecutemos
>> clear
>> syms a b c x
>> f = a * x^2 + b * x + c
f =
a*x^2 + b*x + c
>> subs(f,{a,b,c},{2,-3,5})
ans =
2*x^2 - 3*x + 5
El comando subs anterior lo que hizo fue sustituir a a,b,c por 2, -3, 5, respectivamente en f. Para
sustituir a sf x por t, ejecutamos
>> syms t
>> subs(f,x,t)
ans =
a*t^2 + b*t + c
Ahora ejecutemos
>> g = subs(f,{a,b,c},{2,-3,5})
g =
2*x^2 - 3*x + 5
>> subs(g,x,[1:5])
ans =
El comando sym2poly permite obtener el vector de coeficientes de una expresin simblica polinmica.
Su formato es
sym2poly(E),
donde E es la expresin simblica. Por ejemplo,
>> sym2poly(g)
ans =
2 -3 5
El comando poly2sym se utiliza para obtener el polinomio simblico a partir del vector de coeficientes
de un polinomio numrico. Su formato es
poly2sym(c),
donde c es el vector de coeficientes del polinomio. Por ejemplo,
c =
2 -3 5
>> poly2sym(c)
ans =
2*x^2 - 3*x + 5
La variable por defecto es x. Sin embargo, el polinomio simblico se puede construir con otra
variable, utilizando el formato
poly2sym(c,v),
donde v es la variable a utilizar. Por ejemplo, utilicemos como variable de salida a t, ejecutando
>> poly2sym(c,t)
ans =
2*t^2 - 3*t + 5
>> syms x y z
>> f = (x + y)^2
f =
(x + y)^2
>> expand(f)
ans =
>> g = (x - y)*(5*z^2 + z - 3)
g =
(x - y)*(5*z^2 + z - 3)
>> expand(g)
ans =
>> h = (x + y + z)^3
h =
(x + y + z)^3
>> expand(h)
ans =
s =
>> expand(s)
ans =
ans =
cos(x)*sin(y) + cos(y)*sin(x)
>> expand(tan(x-y))
ans =
(tan(x) - tan(y))/(tan(x)*tan(y) + 1)
El comando factor se utiliza para factorizar expresiones simblicas polinmicas, dando como
resultado otra expresin simblica formada por un producto de polinomios de grado menor. Su
formato es
factor(E),
donde E es una expresin simblica. Por ejemplo,
>> clear
>> syms a b c x y z
>> f = x^2 - 1
f =
x^2 - 1
>> factor(f)
ans =
(x - 1)*(x + 1)
f =
2*x^2 - 12*x + 10
>> factor(f)
ans =
2*(x - 1)*(x - 5)
>> factor(280)
ans =
2 2 2 5 7
>> factor(x^3 + 8)
ans =
(x + 2)*(x^2 - 2*x + 4)
f =
>> factor(f)
ans =
20*y*(5*x + y - 2*z)
f =
>> factor(f)
ans =
(6*x + 7*y)^2*x^2
El comando pretty se utiliza cuando queremos que las expresiones simbicas se visualicen en forma
muy parecida a como se escriben normalmente. Su formato es
pretty(E),
donde E es una expresin simblica. Por ejemplo,
>> clear
>> syms a b c x y z
>> f = a*x^2 - b*y^3 + 5
f =
a*x^2 - b*y^3 + 5
>> pretty(f)
2 3
a x - b y + 5
f =
>> pretty(f)
3 2
(a x - b x + c)
f =
>> pretty(f)
2
sqrt(a x + b x + c)
>> clear
>> syms a b c x y z
>> f = sin(x)^2 + cos(x)^2
f =
cos(x)^2 + sin(x)^2
>> simplify(f)
ans =
f =
cos(a)*sin(b) + cos(b)*sin(a)
>> simplify(f)
ans =
sin(a + b)
f =
>> simplify(f)
ans =
(a + b)^3
f =
>> simplify(f)
ans =
x^3 - y^3
La variable por defecto en las expresiones simblicas es la x. Si no existe x, entonces se toma como
preferente la variable minscula ms cercana a sta, segn el orden alfabtico. En caso de que haya
dos variables que estn a la misma distancia de x, se toma como preferente la posterior en el orden
del alfabeto.
Para multiplicar polinomios simblicamente, ejecutamos los comandos
>> p = 2* x ^3 - 3* x ^2 - 5* x + 1
p =
2* x ^3 - 3* x ^2 - 5* x + 1
>> q = 5* x ^2 + 3* x - 2
q =
5* x ^2 + 3* x - 2
>> p * q
ans =
-(5* x ^2 + 3* x - 2) *( - 2* x ^3 + 3* x ^2 + 5* x - 1)
ans =
Si se desea dividir dos polinomios simblicamente, se utiliza la funcin quorem, cuyo formato es
[q r]= quorem(p1,p2,v),
donde p1 es el polinomio dividendo, p2 es el divisor y v es la variable con respecto a la cual de
efecta la divisin. q es el polinomio cociente y r es el polinomio resduo.
Ejemplo
>> clear
>> syms x y z
>> p1 = 5* x ^3 - 2* x ^2 + 3* x + 4
p1 =
5* x ^3 - 2* x ^2 + 3* x + 4
>> p2 = 3* x ^2 - 2* x + 5
p2 =
3* x ^2 - 2* x + 5
>> [ q r ] = quorem ( p1 , p2 )
q =
(5* x ) /3 + 4/9
r =
16/9 - (40* x ) /9
Si ahora ejecutamos
>> [ q r ] = quorem ( p2 , p1 )
q =
r =
3* x ^2 - 2* x + 5
Observe que en este caso el cociente es el polinomio cero (0), porque el dividendo es de grado
menor que el divisor.
Ejemplo
Consideremos ahora los comandos
p1 =
- 4* x ^4* y ^3 + 2* x ^3* y ^2 + x * y ^4
>> p2 = 2* x ^2* y ^2
p2 =
2* x ^2* y ^2
>> [ q r ]= quorem ( p1 , p2 , x )
q =
- 2* y * x ^2 + x
r =
x * y ^4
En este ejemplo, la divisin se llev a cabo con respecto a la variable x. Si queremos la divisin
con respecto a y, ejecutamos
>> [ q r ]= quorem ( p1 , p2 , y )
q =
x + y ^2/(2* x ) - 2* x ^2* y
r =
Ejemplo
a =
5784
b =
162
>> [ q r ] = quorem (a , b )
q =
35
r =
114
Ejercicios 3.1
1. Efecte las operaciones exactas siguientes:
a. (1 + x + x2 )(1 x + x2 )
b. 5(3t 4) (t2 + 2) 2t(t 3)
c. (3x + 4)2 (x 2)
a. [3, 5, 1, 2] en la variable t
b. [5, 1, 3] en la variable x
c. [2, 3, 2, 5, 4] en la variable s
a. 2 (x 3) 3 (x 3)2 + 2 (x 3)3 .
b. sen(2x)
c. (tan x + 1)2
d. (x + y z)2
e. (x2 x y + y 2 ) (x y)
a. x3 + x2 + 4x + 4.
b. y 3 2y 2 3y + 6
c. (x 1)(x + 2)2 (x 1)2 (x + 2)
d. y 4 (y + 2)3 + y 5 (y + 2)4
e. 8a3 125)
f. x3 3x2 y + 3xy 2 y 3
g. (a4 b4 )
9. Sean p1 = 7x5 2x3 +3x2 5x+2, p2 = 3x5 6x4 +5x2 +x7 y p3 = 5x4 y 3 3x2 y 2 +2xy2y 5
tres polinomios simblicos. Efecte las operaciones indicadas:
a. p1 p2
b. p2 p3
c. p1/p2
d. p1/p3 con respecto a x
7324
c. .
860
3.3. Lmites
Matlab posee la funcin
limit(E, v, b)
para calcular el lmite de una expresin simblica E, cuando la variable v tiende a b.
Exiten otras formas de la funcin limit que se pueden revisar en la documentacin de Matlab (
teclee el comando help limit en lnea de comandos).
Ejemplos:
Calculemos los siguientes lmites:
>> clear
>> syms x y z t
>> f = (x^ - 9)/(x - 3)
f =
1/(x^9*(x - 3))
f =
(x^2 - 9)/(x - 3)
>> limit(f,x,3)
ans =
Ejemplo
>> f = (x - 1)/(x^3 - 1)
f =
(x - 1)/(x^3 - 1)
>> limit(f,x,1)
ans =
1/3
Ejemplo
f =
sin(1/x - 1/2)
>> limit(f,x,2)
ans =
Ejemplo
f =
-tan(sin(t)/t - 1)
>> limit(f,t,0)
ans =
Ejemplo
f =
(2*x^2 + 3)/(5*x^2 + 7)
>> limit(f,x,inf)
ans =
2/5
Ejemplo
>> f = sin(t)/sin(sqrt(t))
f =
sin(t)/sin(t^(1/2))
>> limit(f,t,0,right)
ans =
Ejemplo
>> f = (1 - sqrt(x))/(x - 1)
f =
-(x^(1/2) - 1)/(x - 1)
>> limit(f,x,1)
ans =
-1/2
Ejercicios 3.2
Calcule los lmites siguientes:
cos x + 1 x1
1. lm (5x2 2x + 3) 2. lm 3. lm +
x4 x3 x 3 x2 x2 (x + 2)
(x2 + x 6) 1 1
4. lm 5. lm 6. lm+
x2 (x 2) x1 x3 1 x1 x3 +1
sen(cos ) cos x 1 |x + 4|
7. lm 8. lm 9. lm
0 sec x0 sen x x4 x+4
1 1 1 1 sen 7x
10. lm 11. lm 12. lm
x0 x |x| x0+ x |x| x0 4x
t2 + 9 3 (t 5)2 25 x3 1
13. lm 14. lm 15. lm
t0 t2 t0 t x1 x2 1
(2 + h)2 8 |x 2| 2x2 3x
16. lm 17. lm 18. lm
h0 h x2 x 2 x1.5 |2x 3|
x2 1
1 1 x 2x2 + 1
19. lm sen 20. lm 21. lm
x1 1x x x2 1 x 3x 5
3.4. Derivadas
Matlab permite derivar funciones simblicamente, tal como lo hacemos en el calculo elemental. La
funcin de Matlab que realiza esta tarea tiene una de las siguientes formas:
diff(E)
diff(E, v)
diff(E, n)
diff(E, v, n)
donde E es la expresin que se quiere derivar; v representa la variable con respecto a la cual se va
a derivar y n representa el nmero de veces que se quiere derivar.
Ejemplos:
Derivemos las funciones
>> clear
>> syms x y z
>> f = sin(x^2)
f =
sin(x^2)
>> diff(f)
ans =
2*x*cos(x^2)
Ejemplo
>> f = sin(x^2)
f =
sin(x^2)
>> diff(f,x)
ans =
2*x*cos(x^2)
Observemos que se obtiene el mismo resultado anterior, puesto que estamos indicando que derive
con respecto a x que es la variable independiente por defecto en este caso.
Ejemplo
f =
>> diff(f,x)
ans =
Ejemplo
f =
>> diff(f,x,2)
ans =
60*x^3 - 12*x + 2
Ejemplo
>> f = (3 - x^2)*(x^3 - x + 1)
f =
-(x^2 - 3)*(x^3 - x + 1)
>> diff(f)
ans =
Ejemplo
f =
(t^2 - 1)/(t^2 + t - 2)
>> diff(f,t)
ans =
Ejemplo
>> f = tan(3*x)
f =
tan(3*x)
>> diff(f,x)
ans =
3*tan(3*x)^2 + 3
Ejemplo
>> syms x y z t
>> f = x ^2 + 3* x * y ^2
f =
x ^2 + 3* x * y ^2
ans =
6* x
ans =
Ejemplo
f =
sin ( x * y ) * cos ( z )
>> diff (f , z )
ans =
- sin ( x * y ) * sin ( z )
Ejemplo
f =
3* cos ( x * z ) + 5* y * z ^5 + 2* x ^3* y * z
ans =
6* x ^2* z
ans =
Ejercicios 3.3
1. Derive las siguientes expresiones:
a. b. c.
5
y = sen x cos x y = 3x + 2ex y =x+ x2
1 x2 + 4x + 3
d. e. f.
2
y = ex y= x y=
x x
1 sen x
g. y = x2 cos 2x h. y = x x + 2 i. y=
x x x2
1 x
j. y = x 3x 3 k. y = xe l. y = (1 + x)(x x3 )
x1 ex
m. y= n. y= o. y = tan x2
x+1 x + ex
p. y = ln(x2 + 1) q. y = tan1 x
2. Obtenga la segunda y tercera derivada de los ejercicios del item 1.
3. Obtenga fxy , fyx , fxyx para las siguientes funciones
a. f (x, y) = x2 + y 2
p
b. f (x, y) = ex+y+1
c. f (x, y) = ln(x + y)
d. f (x, y) = sen2 (x 3y)
e. f (x, y) = xy
f. f (x, y) = ex sen(x + y)
g. f (x, y) = tan1 (y/x)
4. Obtenga fxxxy , fyyzzz , fzxxyyy de cada una de las funciones siguientes
a. f (x, y, z) = 1 + xy 2 2z 2
b. f (x, y, z) = x5 y 2 + z 2
p
e. f (x, y, z) = senh(xy z 2 )
3.5. Series
Con Matlab podemos estudiar la convergencia o divergencia de algunas series, utilizando la funcin
symsum, cuyo formato es
symsum(s,v,a,b),
donde s representa el trmino general de la serie; v es la variable que representa el ndice en el
trmino general; a y b representan los lmites inferior y superior de v, respectivamente.
Ejemplo
Obtener el valor de
25
X 1
.
n=1
n
>> syms n
>> symsum (1/ n ,n ,1 ,25)
ans =
34052522467/8923714800
Ejemplo
Evaluar
X 1
.
n=1
n
ans =
Inf
Ejemplo
Evaluar la suma n
X
k2.
k=1
>> syms k n
>> symsum ( k ^2 ,1 , n )
ans =
( n *(2* n + 1) *( n + 1) ) /6
Ejemplo
Evaluar la expresin
n1
X 2 1
.
n=1
5 3
ans =
3/5
Ejemplo
Evaluar la expresin
X x2n+1
(1)n .
n=0
(2n + 1)!
>> syms x n
>> symsum (( -1) ^ n * x ^(2* n +1) / factorial (2* n +1) ,n ,0 , inf )
ans =
sin ( x )
Desarrollemos la funcin
f (x) = ex .
alrededor del punto x = 0 (serie de Maclaurin).
Ejecutemos los comandos
>> clear
>> syms x y z t
>> f = exp ( x )
f =
exp ( x )
>> taylor ( f )
ans =
El orden (grado del polinomio) por defecto es 5. Si no se especifica el punto, se asume que es
alrededor de x = 0 (serie de Maclaurin).
Para expandir la funcin f alrededor de x = 1, ejecutamos los comandos
ans =
Si ahora se quiere expandir la funcin alrededor del punto x = 1 y obtener un polinomio truncado
a grado 3, ejecutamos los comandos
ans =
Ejemplo
Desarrollemos la funcin
f (x, y) = sen xy
alrededor del vector [1 1] por un polinomio de grado 2.
Ejecutemos los comandos
>> clear
>> syms x y z
>> f = sin ( x * y )
f =
sin ( x * y )
ans =
sin (1) ) *( x - 1) *( y + 1)
>>
Ejemplo
Desarrollemos la funcin
f (x, y) = ex+y .
alrededor del vector [2 1] por un polinomio de grado 3.
Ejecutemos los comandos
>> clear
>> syms x y z
>> f = exp ( x + y )
f =
exp ( x + y )
ans =
Ejercicios 3.4
1. Evale las siguientes sumas
X X (3/2)n (3/4)n X 1
a. (n + 1)(1/2)n b. c. (1)n+1
n=1 n=1
n+1 n=1
n2
X x2n2 X 2n xn X xn
d. e. f.
n=1
(2n 2)! n=1
n2 + 1 n=1
2n (n 1)
X nxn1 X (x)n X
n1 x
n
g. h. i. (1)
n=1
2n1 3n n=0
n! n=1
n
X X x2n X x2n+1
j. (1)n xn k. (1) n
l. (1) n
n=0 n=0
(2n)! n=0
2n + 1
X x(2n+1)
m.
n=0
(2n + 1)
a. f (x) = ln x, a = 1, n=5
b. f (x) = 3 x, a = 1, n=4
c. f (x) = ln(1 + x), a = 0, n=6
d. f (x) = cos x, a = /4, n=5
e. f (x) = ex/2 , a = 0, n=4
f. f (x) = sinh x, a = 0, n = 5
1+x
g. f (x) = ln , a = 0, n = 4
1x
x2/(x + x2 12)
2.5
1.5
y 0.5
0.5
25 20 15 10 5 0 5 10 15 20 25
x
>> clear
>> syms x
>> f = x ^2/( x ^2 + x - 12)
f =
x ^2/( x ^2 + x - 12)
>> solve ( f )
ans =
0
0
Estos son los valores de x que hacen cero a f . Es decir, (0, 0) es el punto de interseccin con el eje
x.
Para Interceptos con eje y
ans =
3
-4
ejecutando
ans =
Intervalos de crecimiento/decrecimiento de f
>> df = diff ( f )
df =
>> solve ( df )
ans =
0
24
ans =
25/144
ans =
-23/100
ans =
25/407044
d2f =
ans =
ans =
-1/6
ans =
1/14406
ans =
ans =
36.1104 + 0.0000 i
-0.0552 + 1.9962 i
-0.0552 - 1.9962 i
raz real.
Para que p sea un punto de inflexin, f 00 debe cambiar de signo antes y despus de p. Entonces
evalo a f 00 antes y despus con los comandos
ans =
1/7986000
ans =
-1845125/18573016335948
Al evaluar se obtiene que f 00 > 0 (cncava hacia arriba) antes de p y f 00 < 0 (cncava hacia abajo)
despus de p. Por tanto, p es un punto de inflexin.
Ejemplo
Estudiemos la funcin
f (x) = x 16 x2 .
Para determinar el dominio, encuentro los valores que hacen cero el radicando.
>> clear
>> syms x
>> f = x * sqrt (16 - x ^2)
f =
>> s = 16 - x ^2
s =
16 - x ^2
>> solve ( s )
ans =
4
-4
ans =
-9
ans =
16
ans =
-9
>> solve ( f )
ans =
0
4
-4
Luego, los puntos de interseccin con el eje x son: (0, 0), (4, 0), (4, 0).
ans =
>> diff ( f )
ans =
df =
ans =
d2f =
>> solve ( df )
ans =
8^(1/2)
-8^(1/2)
ans =
-(2*7^(1/2) ) /7
ans =
(2*12^(1/2) ) /3
ans =
-(2*7^(1/2) ) /7
En el intervalo [4, 8), f 0 < 0, por tanto, f es decreciente en dicho intervalo.
En el intervalo ( 8, 8), f 0 > 0, por tanto, f es creciente..
En el intervalo ( 8, 4], f 0 < 0, por tanto, f es decreciente en dicho intervalo.
Observe que con esta informacin podemos determinar mximos y mnimos locales. Sin embargo,
lo haremos con la segunda derivada.
Mximos, mnimos locales y concavidad
ans =
2^(1/2) *8^(1/2)
ans =
-2^(1/2) *8^(1/2)
Como f 00 > 0 en x = 8, hay un mnimo local en este nmero crtico.
Como f 00 < 0 en x = 8, hay un mximo local en este nmero crtico.
Para analizar la concavidad, ejecutemos
ans =
0
24^(1/2)
-24^(1/2)
ans =
(5*12^(1/2) ) /9
ans =
-(5*12^(1/2) ) /9
Observamos que:
f 00 > 0 antes del 0. Por tanto, f es cncava hacia arriba.
f 00 < 0 despus del 0. Por tanto, cncava hacia abajo.
Esto quiere decir que el 0 es un punto de inflexin, puesto que f 00 cambia de concavidad en 0.
Ejemplo
Estudiemos la funcin
f (x) = x x2 9.
Para determinar el dominio, encuentro los valores que hacen cero el radicando.
>> clear
>> syms x
>> f = x * sqrt ( x ^2 - 9)
f =
x *( x ^2 - 9) ^(1/2)
>> s = x ^2 - 9
s =
x ^2 - 9
>> solve ( s )
ans =
3
-3
Para conocer el signo del radicando, se evala en un punto dentro de cada intervalo, ejecutando
ans =
ans =
-9
ans =
D = (, 3] [3, +).
>> solve ( f )
ans =
0
3
-3
Luego, los puntos de interseccin con el eje x son: (0, 0), (3, 0), (3, 0).
ans =
>> df = diff ( f )
df =
d2f =
>> solve ( df )
ans =
(3*2^(1/2) ) /2
-(3*2^(1/2) ) /2
Note que los nmeros crticos no pertenecen al dominio D, lo que indica que la funcin no tiene
mximos ni mnimos locales.
Observe que la funcin no est definida en (3 2/2, 3 2/2).
Esto lo hacemos evaluando f 0 en un punto dentro de cada intervalo. Ejecutemos
ans =
(23*7^(1/2) ) /7
ans =
(23*7^(1/2) ) /7
En el intervalo (, 3 2/2), f 0 > 0, por tanto, f es creciente en dicho intervalo.
En el intervalo (3 2/2, +), f 0 > 0, por tanto, f es creciente en dicho intervalo.
ans =
ans =
4* i
ans =
-4* i
El hecho de que f 00 no produzca valores reales en los nmeros crticos, nos dice que la funcin no
tiene mximo ni mnimo locales, como haba comentado antes.
Para analizar la concavidad, ejecutemos
ans =
0
(3*6^(1/2) ) /2
-(3*6^(1/2) ) /2
El 0 no est dentro del dominio D, por lo que no se considera. Analicemos el signo de f 00 antes y
despus de los dems puntos.
Ejecutemos
ans =
-(20*7^(1/2) ) /49
ans =
(70*13^(1/2) ) /169
ans =
-(70*13^(1/2) ) /169
ans =
(20*7^(1/2) ) /49
Observamos que:
f 00 < 0 antes de 3 6/2. Por tanto, cncava hacia abajo.
f 00 > 0 despus de 3 6/2. Por tanto, cncava hacia arriba.
f 00 < 0 antes de 3 6/2. Por tanto, cncava hacia abajo.
f 00 > 0 despus de 3 6/2. Por tanto, cncava hacia arriba.
Esto quiere decir que los puntos: 3 6/2 y 3 6/2 son de inflexin, puesto que f 00 cambia de
concavidad en ellos.
>> clear
>> syms a b c d
>> A = sym ( '[ a b ; c d ] ')
A =
[ a, b]
[ c, d]
>> det ( A )
ans =
a*d - b*c
Independencia/dependencia de vectores
Determinemos si el conjunto de vectores {(1, 2, 3), (5, 3, 1), (2, 1, 4)} es LI o LD.
Ejecutemos los comandos
>> syms a b x y z
>> v1 = sym ( ' [1; -2;3] ')
v1 =
1
-2
3
v2 =
5
3
-1
v3 =
-2
1
4
>> A1 = [ v1 v2 v3 ]
A1 =
[ 1, 5 , -2]
[ -2 , 3 , 1]
[ 3 , -1 , 4]
>> det ( A1 )
ans =
82
Determinemos si el conjunto de vectores {(5 3, 2, 3), (2, 3, 7, 1), (7, 5, 4, 2)} es LI o LD.
Ejecutemos los comandos
v2 =
2
-3
7
1
v1 =
5
3
2
3
v3 =
7
-5
4
2
>> A2 =[ v1 v2 v3 ]
A2 =
[ 5 , 2 , 7]
[ 3 , -3 , -5]
[ 2, 7, 4]
[ 3, 1, 2]
>> rank ( A2 )
ans =
>> inv ( A )
ans =
[ d /( a * d - b * c ) , -b /( a * d - b * c ) ]
[ -c /( a * d - b * c ) , a /( a * d - b * c ) ]
Veamos paso a paso como obtener el polinomio caracterstico de una matriz A. Recordemos que el
polinomio caracterstico se define como
det(A - I)
>> clear
>> syms a b c t
>> A = sym ( '[2 , 2 , 3;1 , 2 , 1;2 , -2 , 1] ')
A =
[ 2 , 2 , 3]
[ 1 , 2 , 1]
[ 2 , -2 , 1]
D =
[ 2 - t, 2, 3]
[ 1, 2 - t, 1]
[ 2, -2 , 1 - t ]
>> d = det ( D )
d =
- t ^3 + 5* t ^2 - 2* t - 8
>> charpoly ( A )
ans =
[ 1 , -5 , 2 , 8]
>> charpoly (A , t )
ans =
t ^3 - 5* t ^2 + 2* t + 8
B =
[ 1 , 1/2 , 1/3]
[ 1/2 , 1/3 , 1/4]
[ 1/3 , 1/4 , 1/5]
>> inv ( B )
ans =
[ 9 , -36 , 30]
[ -36 , 192 , -180]
[ 30 , -180 , 180]
>> charpoly (B , t )
ans =
Consideremos la matriz
>> clear
>> syms a b c d
>> A = sym ( '[d , 2 , 1; -1 , d , -2; 1 , 2 , d ] ')
A =
[ d , 2 , 1]
[ -1 , d , -2]
[ 1, 2, d]
Si queremos encontrar los valores de d que hacen singular a A, ejecutamos los comandos
>> det ( A )
ans =
d ^3 + 5* d - 6
ans =
1
(23^(1/2) * i ) /2 - 1/2
- (23^(1/2) * i ) /2 - 1/2
>> rank ( A )
ans =
>> rref ( A )
ans =
[ 1 , 0 , 0]
[ 0 , 1 , 0]
[ 0 , 0 , 1]
Consideremos la matriz
>> clear
>> syms x y z a b c d
>> A = sym ( '[d , 3 , 3;3 , d , 3;3 , 3 , d ] ')
A =
[ d , 3 , 3]
[ 3 , d , 3]
[ 3, 3, d]
>> det ( A )
ans =
d ^3 - 27* d + 54
ans =
3
3
-6
B =
[ 2 , 3 , 3]
[ 3 , 2 , 3]
[ 3 , 3 , 2]
>> P = charpoly (B , x )
P =
x ^3 - 6* x ^2 - 15* x - 8
>> solve ( P )
ans =
-1
-1
8
Otra forma de obtener el mismo resultado es
>> eig ( B )
ans =
-1
-1
8
Para hallar los valores y vectores propios de una matriz paso a paso, ejecutemos los comandos
>> clear
>> syms a b c t
>> A = sym ( '[2 , 2 , 3;1 , 2 , 1;2 , -2 , 1] ')
A =
[ 2 , 2 , 3]
[ 1 , 2 , 1]
[ 2 , -2 , 1]
D =
[ 2 - t, 2, 3]
[ 1, 2 - t, 1]
[ 2, -2 , 1 - t ]
>> d = det ( D )
d =
- t ^3 + 5* t ^2 - 2* t - 8
>> r = solve ( d )
r =
2
4
-1
Las componenetes del vector r representan los valores propios de la matriz. Ahora, encontremos
un vector propio para cada uno de estos valores.
d1 =
[ 0 , 2 , 3]
[ 1 , 0 , 1]
[ 2 , -2 , -1]
>> s1 = rref ( d1 )
s1 =
[ 1, 0, 1]
[ 0 , 1 , 3/2]
[ 0, 0, 0]
x + z = 0 x = z
y + 3/2z = 0 y = 3/2z
d2 =
[ -2 , 2 , 3]
[ 1 , -2 , 1]
[ 2 , -2 , -3]
>> s2 = rref ( d2 )
s2 =
[ 1, 0, -4]
[ 0 , 1 , -5/2]
[ 0, 0, 0]
x 4z = 0 x = 4z
y 5/2z = 0 y = 5/2z
d3 =
[ 3 , 2 , 3]
[ 1 , 3 , 1]
[ 2 , -2 , 2]
>> s3 = rref ( d3 )
s3 =
[ 1 , 0 , 1]
[ 0 , 1 , 0]
[ 0 , 0 , 0]
x + z = 0 x = z
y = 0 y=0
(z, 0, z).
v3 = (1, 0, 1).
Si consideramos la matriz formada por los vectores columnas que se obtienen de v1, v2 y v3, y la
matriz diagonal formmada por r, tenemos
v1 =
[ -1 , -3/2 , 1]
v2 =
[ 4 , 5/2 , 1]
v3 =
[ -1 , 0 , 1]
V =
[ -1 , 4 , -1]
[ -3/2 , 5/2 , 0]
[ 1, 1 , 1]
>> Di = diag ( r )
Di =
[ 2 , 0 , 0]
[ 0 , 4 , 0]
[ 0 , 0 , -1]
Diagonalizacin
B =
[ 2 , 3 , 3]
[ 3 , 2 , 3]
[ 3 , 3 , 2]
>> [ V D ]= eig ( B )
V =
[ 1 , -1 , -1]
[ 1 , 1 , 0]
[ 1 , 0 , 1]
D =
[ 8 , 0 , 0]
[ 0 , -1 , 0]
[ 0 , 0 , -1]
>> inv ( V ) * B * V
ans =
[ 8 , 0 , 0]
[ 0 , -1 , 0]
[ 0 , 0 , -1]
C =
[ 1 , 2 , 0]
[ 3 , 2 , -2]
[ -3 , -1 , 3]
>> [ V D ]= eig ( C )
V =
D =
[ 1, 0, 0]
[ 0 , 5/2 - 33^(1/2) /2 , 0]
[ 0, 0 , 33^(1/2) /2 + 5/2]
ans =
[ 1, 0, 0]
[ 0 , 5/2 - 33^(1/2) /2 , 0]
[ 0, 0 , 33^(1/2) /2 + 5/2]
Consideremos el sistema
dx + y + z = d
x + dy + z = d2
x + y + dz = d3
>> clear
>> syms x y z a b c d
>> A = sym ( '[ d 1 1;1 d 1;1 1 d ] ')
A =
[ d , 1 , 1]
[ 1 , d , 1]
[ 1, 1, d]
>> de = det ( A )
de =
d ^3 - 3* d + 2
>> solve ( de )
ans =
1
1
-2
Ahora sustituimos a d por cada uno de estos valores y comprobamos si el sistema es compatible o
incompatible.
Si d = 1, ejecutamos los comandos
>> clear
>> syms d x y z
>> A = sym ( '[ d 1 1;1 d 1;1 1 d ] ')
A =
[ d , 1 , 1]
[ 1 , d , 1]
[ 1, 1, d]
b =
d
d ^2
d ^3
A1 =
[ 1 , 1 , 1]
[ 1 , 1 , 1]
[ 1 , 1 , 1]
b1 =
1
1
1
>> Ab1 = [ A1 b1 ]
Ab1 =
[ 1 , 1 , 1 , 1]
[ 1 , 1 , 1 , 1]
[ 1 , 1 , 1 , 1]
>> rank ( A1 )
ans =
ans =
Como los rangos de la matriz de coeficientes y ampliada son iguales 1, el sistema es compatible
con infinitas soluciones porque el rango es menor que el nmero de incognitas. La solucin viene
dada por
x = 1 r s, r, s R.
A2 =
[ -2 , 1, 1]
[ 1 , -2 , 1]
[ 1 , 1 , -2]
b2 =
-2
4
-8
>> rank ( A2 )
ans =
>> Ab2 = [ A2 b2 ]
Ab2 =
[ -2 , 1 , 1 , -2]
[ 1 , -2 , 1 , 4]
[ 1 , 1 , -2 , -8]
ans =
Como los rangos de las matrices de coeficientes y ampliada son diferentes, el sistema es incompatible.
Luego, podemos concluir que el sistema es compatible para todo d 6= 2. Observe que para d = 0,
el sistema es homogneo con la solucin trivial (0,0,0) como nica solucin.
>> x = A \ b
x =
-( d ^2 + d ) /( d + 2)
d /( d + 2)
(( d ^2 + d ) *( d + 1) ) /( d + 2)
Ejemplo
3x 7y = a
x + y = b
5x 13y = 5a 2b
x + 2y = a + b 1
Ahora dividimos la matriz en dos submatrices y resolvemos el sistema que resulta de igualar a cero
sus sus determinantes.
3 7 a 3 7 a
A1 = 1 + 1 b , A2 = 1 + 1 b
5 13 5a 2b 1 + 2 a+b1
>> clear
>> syms a b x y z
>> A1 = sym ( '[3 , -7 , a ;1 , 1 , b ;5 , -13 , 5* a - 2* b ] ')
A1 =
[ 3 , -7 , a]
[ 1, 1, b]
[ 5 , -13 , 5* a - 2* b ]
A2 =
[ 3 , -7 , a]
[ 1, 1, b]
[ 1 , 2 , a + b - 1]
>> d1 = det ( A1 )
d1 =
32* a - 16* b
>> d2 = det ( A2 )
d2 =
11* a - 3* b - 10
>> [ a b ] = solve ( d1 , d2 )
a =
b =
B =
[ 1 , -2 , -1]
[ 8 , -9 , -4]
[ -12 , 12 , 5]
>> [ V J ] = jordan ( B )
V =
[ 2 , 1 , 1/2]
[ 8, 0, 0]
[ -12 , 0 , 1]
J =
[ -1 , 1 , 0]
[ 0 , -1 , 0]
[ 0 , 0 , -1]
Factorizacin o descomposicin
En Matlab hay varias formas de factorizar una matriz. El comando qr produce la factorizacin de
una matriz y su formato es
[Q R] = qr(A),
donde A es una matriz de orden m n, cuyas columnas forman un conjunto de vectores linealmente
independiente. Q es una matriz de orden m m, cuyas columnas forman una base ortonormal de
las columnas de A, obtenida a travs del proceso de Gram-Schmidt y R es una matriz triangular
superior de orden m n. De modo que
A = Q * R
Ejemplo
>> clear
>> A = sym ( '[1 , 0 , -1;2 , -3 , 3; -1 , 2 , 4] ')
A =
[ 1 , 0 , -1]
[ 2 , -3 , 3]
[ -1 , 2 , 4]
>> [ Q R ]= qr ( A )
Q =
R =
Otra forma de factorizar o descomponer una matriz es con el comando lu, cuyo formato es
[L U] = lu(A),
donde A es una matriz de orden m m; L es una matriz triangular inferior y U es una matriz
triangular superior.
Ejemplo
A =
[ 8 , -1 , 2]
[ 3 , 7 , 2]
[ 1 , 1 , 5]
>> [ L U ] = lu ( A )
L =
[ 1, 0 , 0]
[ 3/8 , 1 , 0]
[ 1/8 , 9/59 , 1]
U =
[ 8, -1 , 2]
[ 0 , 59/8 , 5/4]
[ 0, 0 , 269/59]
Ejercicios 3.5
1. Encuentre asntotas; intervalos donde crece o decrece; valores mximos y mnimos locales;
intervalos de concavidad y puntos de inflexin.
x x2 x
a. f (x) = 2
b. f (x) = c. f (x) =
x 1 x2 1 x2 +1
x3
d. f (x) = x2 6x + 8 e. f (x) = f. f (x) = 3x x3
(x 1)2
x4 = 1 x2 3x + 2
g. f (x) = x4 2x2 8 h. f (x) = i. f (x) =
x2 x2 = 1
j. f (x) = x + x k. f (x) = e1/x l. f (x) = (x 1)ex
ln x ex
m. f (x) = n. f (x) = x2 1 x o. f (x) =
x ex + 1
2. Encuentre los intervalos donde crece o decrece; valores mximos y mnimos locales de f ;
intervalos de concavidad y puntos de inflexin.
a. f (x) = 2x3 + 3x2 36x b. f (x) = 4x3 + 3x2 6x + 1 c. f (x) = x4 2x2 + 3
x2
d. f (x) = 2 e. f (x) = sen x + cos x f. f (x) = e2x + ex
x +3
g. f (x) = x2 ln x h. f (x) = x4 (x 1)3 i. f (x) = x 8 x2
x2 3
j. f (x) = , x 6= 2 k. f (x) = x1/3 (x + 8) l. f (x) = x2/3 (x2 4)
x2
x3 (x + 3)2
m. f (x) = n. f (x) =
3x2 + 1 x2 + 3
a. Enncuentre det(A).
b. Enncuentre inv(A).
c. Enncuentre el polinomio caracterstico de A paso a paso y luego en forma directa.
d. Para qu valores de a, la matriz A es no singular?
e. Tome un valor de a para el cual encontrar valores y vectores propios.
4. Encuentre el valor de a para que el conjunto de vectores {(a, 1 a, 0), (0, a, 1 a), (1
a, 0, a)} sea LI.
5. Considere la matriz simlica
1 0 3 1
1 0 5 2
B=
1
1 1 1
1 1 3 2
a. Determine el rango de B.
b. Escalone la matriz B.
c. Encuentre los valores y vectores propios de B paso a paso y luego en forma directa.
d. Encuentre la inversa de B.
6. Determine si el conjunto de vectores {(1, 1, 6, 1), (1, 0, 7, 2), (1, 1, 2, 1), (0, 1, 2, 1)} es
LI o LD.
7. Determine si el conjunto de vectores {(2, 3, 1, 1), (5, 2, 1, 3), (1, 4, 1, 1)} es LI o LD.
8. Resuelva simblicamente los sistemas
4x y 4z + 3t = 0 x 2y 3z + 2t = 0
3x + y + 8z 6t = 2 3x + y + 2t = 1
,
2x + 4y + 15z 13t = 4 3x + y z + 3t = 4
3x + 3y z t = 2 4x 4y + 4z 3t = 2
9. Diagonalice simblicamente las matrices paso a paso y luego en forma directa.
133 56 201 125
1 16 11 38 20 48 28
A = 6
29 18 , B =
476 212 692 425
8 36 22
606 272 876 537
10. Encuentre los valores de a y b para los cuales es diagonalizable la matriz
ab2 a + 3b + 5 a + 2b + 3
A= ab5 a + 3b + 12 a + 2b + 7
a + b + 7 a 3b 17 a 2b 10
30 20 27 14 2 0 0 0
57 37 53 28 8 4 7 4
A= , B=
63 40 60 32 7 6 12 7
106 68 100 53 7 6 12 7
3.7. Integrales
Matlab puede integrar expresiones simblicamente, tal como se suele hacer en el clculo elemental.
La funcin en Matlab que realiza esta tarea puede escribirse en una de las siguientes formas:
int(E)
int(E, v)
int(E, a, b)
int(E, v, a, b)
donde E es la expresin que se desea integrar.
La primera forma devuelve la integral indefinida de la expresin.
La segunda devuelve la integral indefinida con respecto a la variable v. La tercera devuelve como
resultado a la integral definida de la expresin E entre los lmites a y b. La cuarta devuelve la
integral definida con respecto a la variable v, entre los lmites a y b.
>> clear
>> syms x y z t
>> f = exp (2* x )
f =
exp (2* x )
>> int ( f )
ans =
exp (2* x ) /2
Ejemplo
f =
exp (2* x * y )
>> int (f , x )
ans =
Ejemplo
>> syms x y z
>> f = 1/( x ^2 + 1)
f =
1/( x ^2 + 1)
>> int ( f )
ans =
atan ( x )
ans =
pi /4
Ejemplo
>> syms x y z
>> f = 1/( x ^2 + y )
f =
1/( x ^2 + y )
>> int (f , y )
ans =
log ( x ^2 + y )
ans =
>> f = exp ( x + y + z )
f =
exp ( x + y + z )
>> int (f , x )
ans =
>> int (f , y )
ans =
>> int (f , z )
ans =
ans =
>> f = 4 - y ^2
f =
4 - y ^2
ans =
16
Ejemplo
>> f = x * sin ( y )
f =
x * sin ( y )
ans =
pi ^2/2 + 2
Ejemplo
f =
ans =
1/6
Ejercicios 3.6
1. Resuelva simblicamente las siguientes integrales:
Z Z Z
3x2 sen x
a. xe dx b. dx c. x sen x cos xdx
1 + cos x
Z 3 Z 0 Z 2
d. x sen x dx 2
e. (1 + 9 x2 )dx f. (1 |x|)dx
2 3 2
2 2
x2 + x + 1
Z Z Z
g. dx h. sen x cos xdx i. (x 2|x|)dx
1 x 1
1 + cos2 x
Z Z Z
2 4 cos(/x)
j. csc x cot xdx k. dx l. dx
3
0 cos2 x x2
x2
Z Z Z
sen x x
m. dx n. dx o. dx
1 + cos2 x 1x 4
x+2
Z 13 Z 1 Z e4
dx x2 dx
p. p q. xe dx r.
0
3
(1 + 2x)2 0 e x ln x
Z /4 Z 1 Z 1 Z x Z 1 Z 0
d. x cos y dx dy e. (3 x y) dy dx f. (3 x y) dx dy
/4 0 0 0 0 y
Z 1 Z x Z 1 Z 1y2 Z ln 8 Z ln y
sen x
g. dy dx h. 3y dx dy i. ex+y dx dy
0 0 x 0 1y 2 0 0
1 1x2 8 2 2 4x2
xe2y
Z Z Z Z Z Z
dy dx
j. dy dx k.
l. dy dx
0 1x 0 3 x y4 + 1 0 0 4y
Z 1 Z 1 Z 2 Z 8 Z 1 Z 1x2
(x2 +y 2 ) 1 p
m. e dy dx n. p dx dy o. 3 1 x2 y 2 dy dx
0 0 1 y3 x2 + y 2 1 0
Z 1 Z 1x Z 1 Z 1 Z 2 Z 1y
c. dy dz dx d. dz dx dy
0 0 x+z 0 0 0
Z 3 Z
9x2 Z
9x2 Z 2 Z 4y2 Z 2x+y
e. dz dy dx f. dz dx dy
0 0 0 0 4y 2 0
1 1x2 4x2 y 4 1 2
4 cos(x2 )
Z Z Z Z Z Z
g. x dz dy dx h. dx dy dz
0 0 3 0 0 2y 2 z
Z 1 Z 1 Z 1 Z 2 Z 4x2 Z x
zy 2 sen 2x
i. 12xze x dy dx dz j. dy dz dx
0 0 x2 0 0 0 4z
f =
>> g1 = ezplot ( f ) ;
>> set ( g1 , ' color ' ,[0 0 0])
>> xlabel ( 'x ')
>> ylabel ( 'y ')
produce la grfica que se muestra en la figura 3.2. Si no se especifica intervalo, el intervalo por
defecto es [2, 2].
y
2
6 4 2 0 2 4 6
x
Ejemplo
Para graficar la funcin e0.3x cos(4x), x [05], ejecutamos los comandos
f =
>> f = x ^3 + x * y + y ^2 - 36
f =
x ^3 + x * y + y ^2 - 36
0.4
0.3
0.2
0.1
0
y
0.1
0.2
0.3
0.4
0.5
0 5 10 15
x
>> clear
>> syms t
>> x = 6* cos ( t ) +5* cos (3* t )
x =
y =
x y + x3 + y2 36
10
0
y
2
10
6 4 2 0 2 4 6
x
10
y(t)
0
10
10 5 0 5 10
x(t)
Graficar la superficie
z = f (x, y) = sen x + 2 sen y.
Si ejecutamos los comandos
>> clear
>> f = ' sin ( x ) + 2* sin ( y ) '
f =
sin ( x ) + 2* sin ( y )
>> ezmesh ( f )
>> view (120 ,30)
>> ezmesh ( f )
>> view (120 ,30)
>> xlabel ( 'x ')
>> ylabel ( 'y ')
>> zlabel ( 'z ')
>> colormap ([0.4 0.4 0.4])
>> clear
>> syms x y
>> f = sin ( x ) + 2* sin ( y )
sin(x) + 2 sin(y)
z 1
2
5
6 0
4
2
0
2 5
4
6 x
y
f =
sin ( x ) + 2* sin ( y )
>> ezmesh ( f )
>> view (120 ,30)
>> colormap ([0.4 0.4 0.4])
>> xlabel ( 'x ')
>> ylabel ( 'y ')
>> zlabel ( 'z ')
Ejemplo
Graficar la superficie
z = f (x, y) = ey cos x.
Si ejecutemos los comandos
>> clear
>> syms x y
>> f = exp ( - y ) * cos ( x )
f =
exp ( - y ) * cos ( x )
>> ezmesh ( f )
>> view (120 ,30)
>> xlabel ( 'x ')
exp(y) cos(x)
500
0
z
5
500
6 0
5
4
3
2
1 5
0
1 x
y
Grafica la superficie
x = x(s, t) = cos s cos t, y = y(s, t) = sen s cos t, z = z(s, t) = sen t, 0 < s < 2, < t < .
>> clear
>> syms s t
>> x = cos ( s ) * cos ( t )
x =
cos ( s ) * cos ( t )
y =
cos ( t ) * sin ( s )
>> z = sin ( t )
0.5
z(t)
0
0.5
1
1 0.5
1 0
0.5
0 0.5
0.5
1 1 x(t)
y(t)
z =
sin ( t )
>> clear
>> syms x y
>> f = (6 - 3* x - 2 * y ) /6
f =
1 - y /3 - x /2
1 y/3 x/2
z 0
1 2
1
2 0
1 1
0
1 2
2 3
3 x
y
>> clear
>> syms s t
>> x = 2 + s - t
x =
s - t + 2
>> y = 1 - s + 2* t
y =
2* t - s + 1
x = s t + 2, y = 2 t s + 1, z = 2 s + t 1
z
2
0
4 1
2 2
0
2 3
4
6 4 x
y
>> z = -1 + 2* s + t
z =
2* s + t - 1
Ejercicios 3.7
1. Grafique las expresiones simblicas siguientes:
1
a. f (x) = , x (3, 3)
9 x2
b. f (x) = 1 2x x2 , x [3, 4]
x3 x2 1
c. f (x) = 2x + , x [2, 4]
3 2 3
d. f (x) = (x 2) (x + 1) (x 1), x [1, 3]
2 3
La funcin digits permite alterar la cantidad de dgitos por defecto (16). Slo hay que ejecutar
el comando
digits(a)
donde a representa la cantidad de dgitos a usar.
La funcin vpa nos permite alterar temporalmente la cantidad de dgitos que queremos en el
resultado. Por ejemplo, si escribimos
vpa(sqrt(2),20)
le estamos diciendo a Matlab que nos devuelva el resultado de raiz de 2 con 20 dgitos. Observe que
el primer argumento es una expresin simblica. La cantidad de dgitos por defecto sigue intacto.
As que si ejecutando el comando anterior, se obtiene
ans =
1.4142135623730950488
Otro ejemplo
ans =
3.141592653589793238462643
s = solve ( ' ec1 ' , ' ec2 ' ,... , ' ecn ')
o
s = solve ( ' ec1 ' , ' ec2 ' ,... , ' ecn ' , 'v1 , v2 ,... , vn ')
donde ec1, ec2, ... , ecn son ecuaciones y v1, v2 ,..., vn son las variables.
Ejemplos:
Resolvamos algunas ecuaciones
>> clear
>> syms x y z t
>> ec1 = ' 5* x - 3 = 7 '
ec1 =
5* x - 3 = 7
s =
2
Otra forma de resolver la ecuacin
>> ec1 = 5* x - 10
ec1 =
5* x - 10
s =
2
Otra forma
ans =
2
Ejemplo
Resolver para x
>> clear
>> syms a b c x y t
>> ec1 = 'a * x + b = c '
ec1 =
a*x + b = c
s =
-( b - c ) / a
Resolvamos para a.
s =
-( b - c ) / x
Ejemplo
Resolver para x.
>> ec1 = a * x ^2 + b * x + c
ec1 =
a * x ^2 + b * x + c
s =
-( b + ( b ^2 - 4* a * c ) ^(1/2) ) /(2* a )
-( b - ( b ^2 - 4* a * c ) ^(1/2) ) /(2* a )
Ejemplo
Resolver para y
ec2 =
exp (3* y ) - 5
s =
log (5) /3
Ejemplo
Resolver para t.
ec3 =
s =
pi /2
pi /6
(5* pi ) /6
Cuando tratamos de resolver un sistema de ecuaciones y este tiene el mismo nmero de ecuaciones
que de incgnitas, la solucin es numrica. En caso de que el sistema tenga menos ecuaciones que
de variables, la solucin es simbica para las variables buscadas en funcin de las dems.
Ejemplos:
Resolvamos algunos sistemas
>> ec1 = 3* x - 2* y
ec1 =
3* x - 2* y
>> ec2 = x + 4* y - 14
ec2 =
x + 4* y - 14
x =
y =
Ejemplo
Resolver para x y y.
>> clear
>> syms a b c x y t
>> ec1 = 10* x + 12* y + 16* t
ec1 =
ec2 =
5* x - 13* t - y
x1 =
2* t
x2 =
-3* t
Ejemplo
Resolver para x y y.
>> clear
>> syms a b c x y t r
>> ec1 = ( x - 3) ^2 + ( y - 4) ^2 - r ^2
ec1 =
( x - 3) ^2 + ( y - 4) ^2 - r ^2
>> ec2 = y - x /2 -1
ec2 =
y - x /2 - 1
x1 =
x2 =
Ejercicios 3.8
1. Resuelva las siguientes ecuaciones y sistemas de ecuaciones:
b. 5x + y = 19
a. x2 + 3x + 2 = 0
3x 2y = 1
c. x2 + y 2 = 1
d. x2 3x + ex 2 = 0
xy = 0
e. 3x cos(yz) 0.5 = 0
f. x2 10x + y 2 + 8 = 0
x2 81(y + 0.1)2 + sen z + 1.06 = 0
xy 2 + x 10y + 8 = 0
103
exy + 20z + 3
= 0
g. 5x2 y 2 = 0 h. x2 + y 2 x = 0
y 0.25(sen x + cos y) = 0 x2 y 2 y = 0
i. 3x2 y 2 = 0 j. x2 + y 37 = 0
3xy 2 x3 1 = 0 x y2 5 = 0
k. x2 3x + ex 2 = 0 l. tan x = 3.5
x
m. 0.5e 3 sen x = 0 n. ln(1 + x) x2 = 0
o. ex 5x2 = 0 p. x+2x = 0
q. sen x 0.3ex = 0
c. 2x + 3y + z = 19
d. sen x + 2 cos y = 2
x 2y + 5z = 16
3 sen x cos y = 5/2
3x + 2y 4z = 23
s = dsolve ( ' ec1 ' , ' ec2 ' , ' ec3 ' ,... , ' ecn ')
o
s = dsolve ( ' ec1 ' , ' ec2 ' , ' ec3 ' ,... , ' ecn ' , ' c1 ' , ' c2 ' , ' c3 ' ,... , ' cn ')
o
s = dsolve ( ' ec1 ' , ' ec2 ' , ' ec3 ' ,... , ' ecn ' , ' c1 ' , ' c2 ' , ' c3 ' ,... , ' cn ' , 'v ')
donde ec1, ec2, ec3,... son las ecuaciones diferenciales; c1, c2,... son condiciones iniciales
y v es la variable independiente.
Ejemplos:
Resolvamos la ecuacin diferencial
dy
= y 2 + 1.
dx
>> clear
>> syms x y t
>> s = dsolve ( ' Dy = y ^2 + 1 ')
s =
tan ( C6 + t )
i
-i
s =
tan ( C3 + x )
i
-i
s =
tan ( pi /4 + t )
s =
tan ( pi /4 + x )
Ejemplo
Resolver la ecuacin diferencial
x0 = (t x)/2, x(0) = 1.
s =
t + 3* exp ( - t /2) - 2
Ejemplo
Resolver la ecuacin diferencial
x0 + 3x = 4tet , x(0) = 0.1.
>> s = dsolve ( ' Dx = -3* x + 4* t * exp ( - t ) ' , 'x (0) =0.1 ')
s =
Ejemplo
Resolver la ecuacin diferencial
x00 + 6x0 + 9x = 0, x(0) = 4, x0 (0) = 4.
>> x = dsolve ( ' D2x = -6* Dx - 9* x ' , 'x (0) =4 ' , ' Dx (0) = -4 ')
x =
Ejemplo
Resolver la ecuacin diferencial
x000 6x00 + 11x0 6x = 3t.
x =
Ejemplo
Resolver la ecuacin diferencial
xiv + x000 = 1 t2 et .
x =
Si se desea graficar la solucin simblica de una ecuacin diferencial, definimos el vector independiente
y luego vectorizamos la solucin simlica para su evaluacin y as se obtiene el vector dependiente.
La vectorizacin se logra con el comando
v = vectorize(E),
donde E es la expresin simblica a vectorizar en funcin de la variable independiente, que debe
ser definida previamente. Luego, se aplica el comando eval (v).
Veamos el siguiente ejemplo:
Resolver la ecuacin diferencial
y graficar su solucin.
Ejecutamos los comandos
>> clear
>> x = dsolve ( ' D2x + t * Dx + x = 3* t ^2 + 2 ' , 'x (0) =0 ' , ' Dx (0) =1 ')
x =
exp ( - t ^2/2) *( t ^2* exp ( t ^2/2) + (2^(1/2) * pi ^(1/2) * erfi ((2^(1/2) * t ) /2) ) /2)
1.8
1.6
1.4
1.2
x
0.8
0.6
0.4
0.2
0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
t
y grafique su solucin.
Ejecutemos los comandos
>> clear
>> x = dsolve ( ' D2x + Dx + 4* x = 0 ' , 'x (0) =0 ' , ' Dx (0) =10 ')
x =
x
0
2
0 1 2 3 4 5 6 7 8 9 10
t
du
=3u+4v
dx
dv
= 4 u + 3 v
dx
entonces ejecutamos los comandos
u =
C14 * cos (4* t ) * exp (3* t ) + C13 * sin (4* t ) * exp (3* t )
v =
C13 * cos (4* t ) * exp (3* t ) - C14 * sin (4* t ) * exp (3* t )
Ejemplo
Resolver el sistema de ecuaciones diferenciales
x0 = x 4y, x(0) = 2
y 0 = x + y, y(0) = 3
>> [ x y ] = dsolve ( ' Dx = x - 4* y ' , ' Dy = x + y ' , 'x (0) =2 ' , 'y (0) =3 ')
x =
y =
Ejercicios 3.9
1. Resuelva los ejercicios de las pginas. 148, 151 y 154.
a. 2x00 5x0 3x = 0
b. x00 10x0 + 25x = 0
c. x00 + 4x0 + 7x = 0
d. 4x00 + 4x0 + 17x = 0, x(0) = 1, x0 (0) = 2
e. x00 + 4x = 0, x() = 3, x0 () = 4
f. x00 4x = 0
g. x000 + 3x00 4x = 0
h. xiv + 2x00 + x = 0
i. x00 8x0 + 25x = 5t3 et 7et
Ejemplo
f (x, y, z) = x2 y + z 3 .
Definicin
>> clear
>> syms x y z
>> f = 3* x ^2* y - y ^3* z ^2
f =
3* x ^2* y - y ^3* z ^2
gradf =
ans =
[ -12 , -9 , -16]
En Matlab disponemos de una funcin gradient para calcular el gradiente de un campo escalar
f : R3 R, pero en forma numrica, no simblica. Su formato es
[fx fy fz ] = gradient(f ),
donde f es el campo escalar.
Definicin
Un Campo vectorial es una funcin de la forma
V : R3 R3 .
Ejemplos
Definicin
La Matriz Jacobiana de un campo vectorial F (x, y, z) = F1 i + F2 j + F3 k, donde F1 , F2 , F3 son
derivables en una regin D, se define como
F1 F1 F1
x y z
F2 F2 F3
J(F ) = x
y z
F3 F3 F3
x y z
f =
3* x ^2* y - y ^3* z ^2
grad =
Ejemplo
Ejecutemos los comandos
F =
>> J = jacobian (F ,[ x y z ])
J =
[ 2* x *z , 0, x ^2]
[ 0 , -6* y ^2* z ^2 , -4* y ^3* z ]
[ y ^2* z , 2* x * y *z , x * y ^2]
Definicin
La Divergencia de un campo vectorial F (x, y, z) = F1 i+F2 j+F3 k, donde F1 , F2 , F3 son derivables
en una regin D, se define como
F1 F2 F3
F = div F = i+ j + k (F1 i + F2 j + F3 k) = + + .
x y z x y z
>> clear
>> syms x y z
>> u = 3* x ^2* y
u =
3* x ^2* y
>> v = x * z ^2 -2* y
v =
x * z ^2 - 2* y
div =
6* x * y - 2
Ejemplo
Calculemos la divergencia de F (x, y, z) = (y + yz cos xyz)i + (x2 + xz cos xyz)j + (z + xy cos xyz)k.
Ejecutamos los comandos
>> F1 = y + y * z * cos ( x * y * z )
F1 =
y + y * z * cos ( x * y * z )
>> F2 = x ^2 + x * z * cos ( x * y * z )
F2 =
x ^2 + x * z * cos ( x * y * z )
>> F3 = z + x * y * cos ( x * y * z )
F3 =
z + x * y * cos ( x * y * z )
div =
Ejemplo
Calculemos el rotacional del campo vectorial F (x, y, z) = (y + yz cos xyz)i + (x2 + xz cos xyz)j +
(z + xy cos xyz)k.
Ejecutemos los comandos
>> F1 = y + y * z * cos ( x * y * z )
F1 =
y + y * z * cos ( x * y * z )
>> F2 = x ^2 + x * z * cos ( x * y * z )
F2 =
x ^2 + x * z * cos ( x * y * z )
>> F3 = z + x * y * cos ( x * y * z )
F3 =
z + x * y * cos ( x * y * z )
r1 =
r2 =
r3 =
2* x - 1
>> rot = [ r1 , r2 , r3 ]
rot =
[ 0 , 0 , 2* x - 1]
Ejemplo
>> F1 = 2* x * y
F1 =
2* x * y
>> F2 = -y ^2
F2 =
-y ^2
>> F3 = z * exp ( x )
F3 =
z * exp ( x )
r1 =
r2 =
-z * exp ( x )
r3 =
-2* x
>> rot = [ r1 , r2 , r3 ]
rot =
[ 0 , -z * exp ( x ) , -2* x ]
La matriz jacobiana puede ser utilizada tambin para encontrar el rotacional de un campo vectorial.
Por ejemplo, tomemos el campo vectorial anterior y ejecutemos los comandos
>> F = [ F1 , F2 , F3 ]
F =
[ 2* x *y , -y ^2 , z * exp ( x ) ]
>> J = jacobian (F ,[ x y z ])
J =
[ 2* y , 2* x , 0]
[ 0 , -2*y , 0]
[ z * exp ( x ) , 0 , exp ( x ) ]
rot =
[ 0 , -z * exp ( x ) , -2* x ]
Transformada de Laplace
Sea F (t) una funcin cualquiera integrable sobre el intervalo [0, ). La Transformada de Laplace
de F (t) se define como Z
L{F (t)} = est F (t) dt = f (s).
0
Matlab cuenta con el comando laplace para obtener la transformada de Laplace de una funcin
F (t). Su formato es
laplace(F),
donde F es la funcin, cuya transformada se busca.
Ejemplo
>> clear
>> syms k s t
>> F = exp ( k * t )
F =
exp ( k * t )
>> f = laplace ( F )
f =
-1/( k - s )
1
Luego, L{F (t)} = .
ks
>> syms k s t
>> F = sin ( k * t )
F =
sin ( k * t )
>> f = laplace ( F )
f =
k /( k ^2 + s ^2)
k
Luego, L{F (t)} = .
k2 + s2
>> syms k s t
>> F = t ^5
F =
t ^5
>> f = laplace ( F )
f =
120/ s ^6
120
Luego, L{F (t)} = .
s6
>> syms k s t
>> F = t ^3 - 5* t ^2 + 2* t + 3
F =
t ^3 - 5* t ^2 + 2* t + 3
>> f = laplace ( F )
f =
3/ s + 2/ s ^2 - 10/ s ^3 + 6/ s ^4
3 2 10 6
Luego, L{F (t)} = + 2 3 + 4.
s s s s
La transformada de F (t) = t sen 2t se obtiene ejecutando los comandos.
3
>> syms k s t
F =
>> f = laplace ( F )
f =
96 s3 48 s
Luego, L{F (t)} = 2 4
2 .
(s + 4) (s + 4)3
Definicin
La Funcin de Heaviside o funcin escaln unitario se define como
(
0, si t < a
H(t a) =
1, si t a
Sea t 0. Si consideramos la funcin F (t) = et H(t 2), entonces podemos escribir a F (t) como
(
0, si 0 t < 2
F (t) =
et , si t 2
La funcin
P (t), si 0 t < a
F (t) = Q(t), si a t < b
R(t), si t b
Ejemplo
>> clear
>> syms k s t a ' positive '
>> h = sym ( ' heaviside (t - a ) ')
h =
heaviside ( t - a )
>> laplace ( h )
ans =
exp ( - a * s ) / s
eas
Luego, L{H(t a)} = .
s
Ejemplo
Calcular la transformada de
2
t ,
si 0 t < 1
F (t) = 1 t, si 1 t < 2
si 2 t < 3
0,
Solucin
Lo primero que debemos hacer es redefinir la funcin F (t) como
>> clear
>> syms s t
>> h = sym ( 't ^2+(1 - t - t ^2) * heaviside (t -1) +( t -1) * heaviside (t -2) ')
h =
heaviside ( t - 2) *( t - 1) - heaviside ( t - 1) *( t ^2 + t - 1) + t ^2
>> laplace ( h )
ans =
Definicin
La funcin Delta de Dirac (Impulso) se define como
(
, si t = 0
(t) =
0, si t 6= 0
La palabra funcin entre comillas se debe a que la Delta de Dirac no es realmente una funcin en
el sentido matemtico, aunque con regularidad se le llame funcin.
La derivada de la funcin escaln unitaria es (t).
Ejecutemos los comandos
>> clear
>> syms k s t
>> h = sym ( ' heaviside ( t ) ')
h =
heaviside ( t )
>> diff ( h )
ans =
dirac ( t )
dh
Luego, = (t).
dt
d =
dirac ( t )
>> laplace ( d )
ans =
Luego, L{(t)} = 1.
>> syms k s t
>> f = s /( s ^2 + k ^2)
f =
s /( k ^2 + s ^2)
>> F = ilaplace ( f )
F =
cos ( k * t )
7
Si deseamos obtener la antitransformada de f (s) = , ejecutamos los comandos
s2 + 4s + 5
>> syms k s t
>> f = 7/( s ^2 + 4* s + 5)
f =
7/( s ^2 + 4* s + 5)
>> F = ilaplace ( f )
F =
Ejercicios 3.10
1. Encuentre el gradiente de los campos dados
a. f (x, y) = (x + y 2 ) 1 + x2
b. f (x, y) = ln(x2 + y 2 + 1)
c. f (x, y) = ex
2y
d. f (x, y, z) = x y 3z 2
e. f (x, y, z) = x y 3z 2
f. f (x, y) = y 3 (2x y)e(2xy)
2
g. f (x, y, z) = 2xz 4 x2 y
h. f (x, y, z) = x2 z + ey/x
i. f (x, y, z) = (x2 + y 2 + z 2 )e x2 +y 2 +z 2
0, 0 < t < 1
h. F (t) = t, 1 < t < 2
0, t > 2
(
sen 2t, 0 < t <
i. F (t) =
0, t>
1,
0t<1
j. F (t) = 1 t, 1 t < 2
0, 2t<3
(
1 t, 0 t < 1
k. F (t) =
t 1, 1 t < 2
INTRODUCCIN A LATEX
Si tenemos tiempo haremos una introduccin al sistema de composicin de textos LATEX, cuyo
objetivo es crear documentos escritos de gran calidad. Es usado en muchas partes del mundo
para generar artculos, revistas, libros cientficos y no cientficos, etc.. De hecho, hay revistas
internacionales que no aceptan trabajos/artculos si no son editados en Latex.
267