Sunteți pe pagina 1din 126

`

DEPARTAMENT DE MATEMATIQUES

UNIVERSITAT JAUME I

FUNDAMENTOS

MATEMATICOS
DE LA INGENIERIA

Practicas de Laboratorio con Mathematica

Cristina Chiralt
Fernando Casas
Jorge Galindo
Sergio Macario
Manuel Sanchis
Prefacio
El presente manual est a destinado a la realizacion de las practicas de laboratorio
correspondientes a las asignaturas de Fundamentos Matem aticos de la Ingeniera I
y II de la Ingeniera Industrial en la Universitat Jaume I. Cada una de ellas tiene
asignado 1 credito (equivalente a 10 horas lectivas) dedicado a la realizacion de
practicas con el ordenador. Esas 10 horas se reparten en cuatro sesiones de 2.5 horas
cada una, a raz on de dos sesiones en cada cuatrimestre. Las practicas se desarrollan
utilizando el programa Mathematica, y el objetivo de las mismas es doble. Por una
parte, se trata de afianzar e ilustrar la materia impartida en el aula (clases de
teora y de problemas) y por otra de cubrir aquellos aspectos del programa que
difcilmente pueden desarrollarse durante dichas clases, como es todo lo relativo al
calculo numerico. En este sentido, se ha considerado importante dedicar una sesion
entera a los aspectos gr aficos que el programa Mathematica ofrece.
El manual se ha dividido en ocho captulos o practicas, cada uno de los cuales
corresponde aproximadamente al material impartido en cada sesion de 2.5 horas.
Como complemento, se ha incluido un apendice con material relativo a ecuaciones
diferenciales no lineales, haciendo especial hincapie en los aspectos cualitativos de la
teora. Este captulo adicional se incluye por completitud y tambien porque puede
darse el caso de que la primera pr actica (una introduccion generica a Mathematica)
pueda reducirse al mnimo si los estudiantes ya disponen de conocimientos previos
sobre el programa.
Cada pr actica dispone de una peque na introduccion teorica, siendo esta mas
amplia cuando el material tratado en la misma no se ha impartido previamente
en el aula de teora. Esto es especialmente relevante en el caso de la practica 4
(interpolacion y aproximaci on de funciones) y la practica 5 (integracion numerica).
Se ha intentado que el desarrollo de cada practica este suficientemente detallado
en los calculos y pasos intermedios, puesto que el objetivo es que el estudiante en-
tienda cabalmente todo el proceso, as como representar graficamente los resultados,
para que la asimilaci on de los conceptos sea mas sencilla.
Esperamos que este manual sea una herramienta u til para nuestros estudiantes
en su proceso de aprendizaje de los Fundamentos Matem aticos de la Ingeniera.

Los autores
Indice general

1. Introducci on a Mathematica 1
1.1. Convenios sobre notaci on . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2. El Front End y el N ucleo . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3. Notaci on matem atica de Mathematica . . . . . . . . . . . . . . . . . 3
1.4. Corchetes, parentesis y llaves . . . . . . . . . . . . . . . . . . . . . . 6
1.5. Funciones incorporadas . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.6. Definiendo funciones no incorporadas . . . . . . . . . . . . . . . . . . 8
1.7. Listas y matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.8. Resoluci on de ecuaciones . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.9. Reglas de sustitucion . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.10. Ayudas incorporadas . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.11. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15


2. Algebra Lineal 16
2.1. Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.1.1. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2. Conicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

3. Graficas en dos y tres dimensiones 28


3.1. Graficas en dos dimensiones . . . . . . . . . . . . . . . . . . . . . . . 28
3.1.1. Gr aficas en coordenadas cartesianas . . . . . . . . . . . . . . 28
3.1.2. Gr aficas en coordenadas polares . . . . . . . . . . . . . . . . 32
3.1.3. Gr aficas de funciones implcitas . . . . . . . . . . . . . . . . . 33
3.2. Graficas en tres dimensiones . . . . . . . . . . . . . . . . . . . . . . . 35
3.2.1. Gr aficas 3D en coordenadas cartesianas . . . . . . . . . . . . 35
3.3. Animaci on de graficos . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.4. Graficas bidimensionales en coordenadas parametricas . . . . . . . . 38

4. Interpolaci on y aproximaci on de funciones 42


4.1. Polinomio interpolador de Lagrange . . . . . . . . . . . . . . . . . . 42
4.2. Polinomio interpolador de Newton . . . . . . . . . . . . . . . . . . . 44
4.3. Cota de error en la interpolacion . . . . . . . . . . . . . . . . . . . . 45
4.3.1. El efecto Runge . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.4. Interpolaci
on con un splin c ubico . . . . . . . . . . . . . . . . . . . . 46
4.5. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

i
Fundamentos Matem
aticos de la Ingeniera II ii

5. Integracion num erica 50


5.1. Reglas de cuadratura . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.2. Obtencion de reglas de cuadratura . . . . . . . . . . . . . . . . . . . 52
5.2.1. El metodo interpolatorio . . . . . . . . . . . . . . . . . . . . . 52
5.2.2. El metodo de coeficientes indeterminados . . . . . . . . . . . 53
5.3. Error de cuadratura . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5.4. Reglas compuestas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
5.4.1. Errores en las reglas compuestas . . . . . . . . . . . . . . . . 55
5.5. Algoritmo de los metodos en Mathematica . . . . . . . . . . . . . . . 56
5.6. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

6. Sucesiones y series 60
6.1. Sucesiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
6.2. Series de n
umeros reales . . . . . . . . . . . . . . . . . . . . . . . . . 64
6.3. Series de Taylor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

7. Ecuaciones diferenciales con Mathematica 74


7.1. Tratamiento analtico . . . . . . . . . . . . . . . . . . . . . . . . . . 74
7.1.1. Ecuaciones diferenciales de primer orden . . . . . . . . . . . . 74
7.1.2. Ecuaciones diferenciales lineales de segundo orden . . . . . . 79
7.1.3. Sistemas de ecuaciones diferenciales . . . . . . . . . . . . . . 82
7.2. Metodos numericos para la resolucion de ecuaciones diferenciales . . 86
7.2.1. Resolucion numerica con Mathematica . . . . . . . . . . . . . 88
7.2.2. Algoritmo de los metodos numericos en Mathematica . . . . . 89
7.2.3. Sistemas de ecuaciones diferenciales . . . . . . . . . . . . . . 91
7.3. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

8. Derivadas parciales. Extremos en funciones de varias variables 95


8.1. Derivadas parciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
8.2. Extremos libres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
8.3. Extremos condicionados. Multiplicadores de Lagrange . . . . . . . . 100

A. Sistemas de ecuaciones diferenciales no lineales 101


A.1. Estudio geometrico: campos de direcciones . . . . . . . . . . . . . . . 102
A.2. Estudio cualitativo. Retrato de fases . . . . . . . . . . . . . . . . . . 105
A.3. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Pr
actica 1

Introducci
on a Mathematica

Mathematica es un sistema general de software usado para llevar a cabo calculos


tecnicos en ciencia, ingeniera, matematicas y areas computacionales. La primera
version fue anunciada en 1988, y la m as reciente hasta la fecha (la version 7) fue lan-
zada el 18 de noviembre de 2008, encontrandose disponible para una gran variedad
de sistemas operativos. Aunque se considera com unmente como un sistema de alge-
bra computacional, Mathematica es tambien un poderoso lenguaje de programacion
de proposito general.
El lenguaje de programaci on de Mathematica esta basado en re-escritura de
terminos (que se identifica tambien como computacion simbolica), y soporta el uso
de programaci on funcional y de procedimientos (aunque en general, la programa-
cion funcional es m
as eficiente). Est
a implementado en una variante del lenguaje de
programaci on C orientado a objetos, pero el grueso del extenso codigo de libreras
esta en realidad escrito en el lenguaje Mathematica, que puede ser usado para ex-
tender el sistema algebraico. Usualmente, tambien es posible a nadir nuevo codigo
en forma de paquetes de Mathematica.
Mathematica es un lenguaje interpretado, es decir, lee expresiones, eval ua el
resultado y luego lo muestra en pantalla. Al ser interactivo, es mas facil de usar que
los lenguajes compilados como C o FORTRAN.
Mathematica dispone de una gran cantidad de funciones ya definidas (funciones
incorporadas) con las que se pueden cubrir los aspectos mas generales de las inge-
nieras. Ademas, como hemos comentado, Mathematica es programable; cualquier
funcion no disponible la puede escribir uno mismo.

1.1. Convenios sobre notaci


on
Para introducirnos en el lenguaje de Mathematica, en cada practica veremos
algunos ejemplos que muestran las posibilidades de este programa. Para comenzar
con Mathematica es conveniente probar con los ejemplos propuestos.
Las expresiones escritas en letra mecanografiada corresponden al input y se
deben escribir tal y como aparecen en los ejemplos; las correspondientes al output
no se tienen que escribir: es la respuesta de Mathematica. Las palabras y smbolos
escritos en cursiva se deben reemplazar por expresiones introducidas por el usuario.

1
En el siguiente ejemplo la expresion 2 + 2 corresponde al input, y por tanto se
debe escribir tal y como aparece, mientras que la expresion 4 (de color mas claro)
corresponde al output, y no se debe escribir en pantalla.
2+2

En este otro ejemplo la expresi


on ?+ corresponde al input y la respuesta de Mat-
hematica no va precedida por Out[n] , puesto que es informacion y no un resultado
propiamente dicho.
?+

x + y + z represents a sum of terms.

En el apartado 1.10 se explicar a el significado del smbolo ?


Hay que poner atenci on en la diferencia entre may usculas y min
usculas, el tipo
de parentesis o llaves, la cantidad de espacios y la puntuacion (comas, puntos y
comas).

Mathematica diferencia entre may


usculas y min
usculas y, por tanto, Sin[x]
es distinto de sin[x].

Los nombres de todas las funciones incorporadas empiezan con may


uscula y
tienen sus argumentos (variables) entre corchetes.

Cada tipo de parentesis tiene su propio significado.

No se deben poner espacios en los nombres de las funciones y s entre dos


variables que deben ser multiplicadas. En los demas casos, los espacios no se
tienen en cuenta.

Al igual que con los tipos de parentesis, cada signo de puntuacion tiene tambien
su propio significado.

1.2. El Front End y el N


ucleo
Mathematica consta de dos partes: el Kernel (n ucleo) y el Front End (fachada).
El Kernel realiza los c alculos y el Front End interacciona con el usuario. El Kernel
trabaja de la misma forma sobre todo tipo de ordenadores que dispongan de la misma
version de Mathematica. El Front End, en cambio, es especfico de cada ordenador.
El Kernel es un programa C muy extenso que lee los inputs y devuelve los outputs
por medio de dos procesos: llama al codigo C para hacer los calculos y usa reglas de
reescritura para dar los resultados en pantalla, cuando proceda.
Sobre muchos ordenadores, el Front End para Mathematica dispone de documen-
tos interactivos sofisticados llamados notebooks. Todos ellos presentan esencialmente
la misma apariencia para el usuario. Estos documentos proporcionan facilidades pa-
ra editar texto y para enviar los inputs al Kernel para su evaluacion. Ademas, en

2
ellos se pueden incluir gr aficos. Los documentos realizados en un Front End tipo
notebook se pueden imprimir tal y como aparecen en pantalla.
El Front End y el Kernel est an separados. El Front End solo enva un calculo al
Kernel solo cuando as se le ordena. Tal peticion se efect
ua mediante la combinacion
de teclas Shift-Return (may usculas y retorno de carro)o mediante la tecla Intro
del teclado numerico.
No es necesario que el Front End y el Kernel se encuentren instalados en el mismo
ordenador. Por ejemplo, se puede utilizar la manejabilidad de un ordenador personal
para editar los comandos en un Front End tipo notebook, y mandar a realizar los
calculos a un Kernel instalado en una estacion de trabajo (kernel remoto). Por
supuesto, los outputs aparecen en el ordenador personal de la misma forma que si
el calculo lo hubiese realizado el Kernel instalado en dicho ordenador (kernel local).
Para ello es preciso que los dos ordenadores esten conectados por medio de una red.

1.3. Notaci
on matem
atica de Mathematica
Mathematica es un programa interactivo. En las versiones de Mathematica que
utilizaremos con Front End tipo Notebook, cuando introducimos una expresion, co-
mo por ejemplo una operaci on matematica, no ocurre nada. Al ejecutar esta expre-
sion (cosa que en las versiones actuales puede hacerse presionando simultaneamente
Intro+ May usculas o la tecla de Intro del teclado numerico) Mathematica la proce-
sa, inserta In[n]:= despues de que Mathematica haya calculado el resultado y, si
corresponde, muestra el resultado, con una etiqueta de la forma Out[n]= . A con-
tinuacion Mathematica muestra un nuevo indicador de input, y el ciclo comienza
otra vez. El numero comprendido entre corchetes se va incrementando al introducir
nuevas expresiones. En ning un caso hay que introducir los indicadores In[n]:= y
Out[n]= . En la primera expresi on a evaluar n = 1 . Es posible referirse a expresiones
ya introducidas o a resultados ya obtenidos gracias a estos indicadores.
Mathematica tiene incorporados la mayora de los smbolos matematicos con los
que se trabaja habitualmente. Entre ellos estan las operaciones basicas: suma (+),
diferencia (-), producto (*), divisi
on (/) y potencia (^). Como se ha indicado en el
apartado 1.1, los nombres de todas las funciones incorporadas de Mathematica em-
piezan con may uscula. Los nombres de las funciones incorporadas correspondientes
a los smbolos anteriores los podemos ver en la siguiente tabla.

Smbolo matem
atico Funcion incorporada
+ Plus
- Minus, Subtract
* Times
/ Divide
^ Power

Los smbolos matem


aticos y las funciones incorporadas asociadas, evidentemente,
consiguen el mismo resultado; por ejemplo,

3
2+4

Plus@2, 4D

on sencilla que podemos efectuar es 237 .


Una primera operaci
23 ^ 7

3 404 825 447

Para referirnos a este u


ltimo resultado se utiliza el caracter %. As, %^2 nos de-
14
volvera 23 .
%^2

11 592 836 324 538 749 809

Utilizaci
on de resultados obtenidos previamente ( %n): Se puede hacer
referencia a un resultado anterior mediante uno o mas signos de porcentaje; es
decir, % se refiere al u
ltimo resultado, % % al pen
ultimo, y as sucesivamente. Tambien
nos podemos referir a un resultado concreto mediante %n, donde n es el n umero de
la lnea de output.
Conservaci on y p erdida de datos del Kernel: Mathematica conserva todos
los datos de entrada y salida as como el valor de todas las variables definidas en
algun momento de la sesi on. Si se escribe por ejemplo x = 2, en un Notebook, a
partir de ese momento Mathematica identificara x con 2 (y producira errores si por
ejemplo escribimos Solve[x+1==7,x]). Cuando se cierra el Kernel (lo que ocurre
siempre al salir del programa, pero tambien se puede hacer sin salir utilizando Quit
Kernel en la pesta na Kernel ), se pierden los valores de las variables y ya no es
posible referirse a los resultados anteriores mediante %n.
Al combinar varios smbolos matematicos en un mismo input se deben tener en
cuenta los criterios de prioridad habituales entre ellos, que determinan el orden de
evaluacion de la expresi on.
2 ^ 3 * 6 + H9 - 1L 4

50

2 ^ H3 * 6L + H9 - 1L 4

262 146

2^3 6 + 9 - 1 4

227
4

En este u ltimo ejemplo hemos utilizado las dos formas alternativas de indicar
una multiplicaci on en Mathematica(mediante o bien dejando un espacio en blanco
entre ellos1 ).
1
Mathematica 6 a
nade, entonces, el aspa.

4
En algunas ocasiones puede ser conveniente asignar un nombre a un resultado
para ser utilizado despues. Esta asignacion permite trabajar con mayor comodidad
que refiriendonos al resultado mediante el numero de la lnea de output. La expre-
sion velocidadDeLaLuz = 300000 hace que Mathematica asocie el valor 300000 al
nombre velocidadDeLaLuz (se entiende que las unidades son Km/s en el vaco).
velocidadDeLaLuz = 300 000

300 000

Una vez realizada la asignacion, podemos referirnos al valor 300000 por su nom-
bre y podemos, incluso, realizar operaciones usando la variable definida.
velocidadDeLaLuz - 269 000

31 000

Una manera m as correcta de expresar este resultado con las unidades correspon-
dientes puede ser la siguiente:
velocidadDeLaLuz "Kms" - 269 000 "Kms"

31 000 Kms

Lneas y Celdas: Cada vez que llamamos al n ucleo para que procese las ordenes
introducidas, Mathematica ejecuta todas las instrucciones agrupadas en la misma
celda (el corchete que se ve en el extremo derecho del Notebook). Para a
nadir ordenes
dentro de una celda (cuando se tiene un input demasiado largo, o se desea que ejecute
varias ordenes sucesivamente) se puede continuar en sucesivas lneas, basta pulsar
Enter para descender una lnea sin cambiar de celda. Para cambiar de celda se
utiliza la flecha del cursor. Hay que poner atencion en lo siguiente: si queremos
truncar una lnea de input en una operacion matematica, por ejemplo una suma,
debemos comenzar una nueva lnea despues del signo +, o bien, encerrar el input
entre parentesis.
De esta forma obtenemos el resultado correcto:
7+4+
5
16

De esta otra, Mathematica entiende que hemos introducido dos inputs:


7+4
+5
11

Abrir un parentesis en la primera lnea y cerrarlo en la u


ltima es una manera
conveniente para realizar esa operaci
on.
H7 + 4
+ 5L
16

5
1.4. Corchetes, par
entesis y llaves
Hay varias clases de parentesis que se usan en Mathematica; algunos de ellos
los hemos utilizado en los apartados anteriores. Cada clase de parentesis tiene un
significado diferente.
Los parentesis ( ) se usan para agrupar expresiones tal y como sucede en la nota-
cion matem atica. Como se ha senalado en el apartado 1.3, los parentesis determinan
el orden de prioridad al evaluar una expresion.
1 + 2*3

H1 + 2L * 3

Los corchetes [ ] se usan para especificar los argumentos de una funcion. En el


apartado 1.10 pedamos informaci
on acerca de la funcion Sin; esta funcion requiere
un u
nico argumento: un n umero. El concepto de argumento sera aclarado en el
apartado 1.5.
Sin@Pi 2D

Sin@ID

Sinh@1D

En este u
ltimo ejemplo I representa el n
umero imaginario 1.
Las llaves se utilizan para definir conjuntos de elementos de forma similar a la
utilizada en la notacion matem atica para definir un conjunto por extension. En no-
tacion matem atica, el conjunto formado por los cinco primeros n umeros naturales
se puede representar por {1, 2, 3, 4, 5}. En el lenguaje de Mathematica estas entida-
des (conjuntos de elementos definidos por extension) se llaman listas y tambien se
utilizan para definir vectores y matrices.
Por u
ltimo, el texto entre (* y *) no se eval ua. Estos parentesis se utilizan para
hacer comentarios en el notebook.
v = 87, 3, -1< H* Aqui v es un vector *L

87, 3, -1<

1.5. Funciones incorporadas


El Kernel de Mathematica reconoce mas de 1100 funciones. Estas funciones se
llaman funciones incorporadas (built-in functions). En los apartados anteriores he-
mos usado algunas de ellas: Sin, Plus, Pi, y otras han aparecido en el output: Sqrt,
I, Sinh. Con el nombre generico de funciones incorporadas se consideran: funciones,
variables, constantes y opciones. Dentro del primer grupo estaran Sin, Plus, Sqrt y
Sinh; por una variable se entiende una funcion como velocidadDeLaLuz (apartado

6
1.3); dentro de las constantes est
an las funciones Pi y I; ejemplos de opciones los
daremos m as adelante.
Los nombres de las funciones incorporadas consisten en palabras inglesas com-
pletas o abreviaciones matem aticas estandar, de forma que la primera letra de cada
palabra se escribe con mayuscula. Por ejemplo, para utilizar la funcion arco-seno de-
bemos escribir ArcSin, de modo que si queremos obtener arc sen 1/2, introducimos:
ArcSin@1 2D

6

Las funciones propiamente dichas son el equivalente a las funciones que emplea-
mos en matem aticas, en el sentido de que no tienen por que tomar siempre un valor
constante. La funci on trigonometrica sin(x) es una funcion no constante; la letra x
decimos que es su variable. En la notacion de Mathematica la funcion seno hemos
visto que se representa por Sin, de forma que cuando queremos calcular sin(/2)
escribimos Sin[Pi/2]. El concepto analogo al concepto matematico de variable en
la terminologa de Mathematica es el termino argumento.
Evidentemente, no todas las funciones requieren un u nico argumento. Cuando
una funcion requiere m as de un argumento, estos van separados por comas. Aqu cal-
culamos la derivada de x2 :
D@x ^ 2, xD

2x

Hay funciones que no requieren ning un argumento. La funcion TimeUsed da el


n
umero total de segundos de tiempo de CPU usados hasta ese momento en la sesion
de Mathematica. Hay que tener en cuenta que el resultado puede variar dependiendo
en que maquina se este usando Mathematica.
TimeUsed@D

0.23

Si una funci
on es invocada con mas, o menos, argumentos de los requeridos
Mathematica devuelve un mensaje de error y como output la expresion sin evaluar.
Sin@2, 3D

Sin::argx : Sin called with 2 arguments; 1 argument is expected.


Sin@2, 3D

Otras funciones, en cambio, pueden tener un n


umero variable de argumentos.
Plus@2, 5, -3, 7D

11

Existen funciones que pueden tomar un n umero de argumentos opcionales. Por


ejemplo, la funci
on Expand requiere un u
nico argumento: una expresion.
Expand@Hx ^ 2 + x + 1L ^ 2D

1 + 2 x + 3 x2 + 2 x3 + x4

7
En cambio la siguiente expresi
on no puede expandirla:
Expand@Sin@2 xDD

Sin@2 xD

Esta funci
on admite un argumento opcional, Trig -> True, que permite tratar
las funciones trigonometricas como funciones racionales de exponenciales, y expan-
dirlas de acuerdo con esto.
Expand@Sin@2 xD, Trig TrueD

2 Cos@xD Sin@xD

La funcion incorporada Trig es un ejemplo de funcion de las catalogadas como


opciones.
Las funciones de Mathematica tienen tambien una series de propiedades, al igual
que sucede con las funciones matem aticas. Estas propiedades se denominan atribu-
tos. Al pedir informacion adicional respecto a la funcion Sin, ademas de obtener
informacion acerca de para que sirve esta funcion, Mathematica indica que propie-
dades posee esa funcion. Se puede saber que atributos tiene una funcion a partir de
la funcion Attributes.
Attributes@SinD

8Listable, NumericFunction, Protected<

Una funci
on con el atributo Listable aplica la funcion a cada elemento de una
lista.
Sin@80, Pi 6, Pi 4, Pi 3, Pi 2<D

:0,
1 1 3
, , , 1>
2 2 2

El atributo Protected previene que sea modificada esa funcion.


Sin = 1

Set::wrsym : Symbol Sin is Protected.


1

1.6. Definiendo funciones no incorporadas


Como se ha indicado en la introduccion, Mathematica es programable y, por
tanto, podemos anadir funciones a Mathematica. Un ejemplo muy sencillo es definir
una funcion que eleve al cuadrado su argumento.
f@x_D = x ^ 2;

El caracter _ (referido como blanco) en la parte de la izquierda es muy impor-


tante. No hay que poner un blanco en la parte de la derecha de la definicion.
Ahora, basta substituir la variable por un valor para obtener el resultado

8
f@2D

Una funcion puede tener m


as de un argumento. Aqu definimos la funcion g(x, y) =
xy y la evaluamos en (2, 3):
g@x_, y_D = x y;

g@2, 3D

Definici
on aplazada de funciones: En ocasiones deseamos definir una funcion
o asignar un valor a una variable, pero no deseamos que la definicion se procese de
inmediato, sino cuando vaya a ser usada. En este caso el signo igual (=) debe ir
precedido por dos puntos (:=). Veamos por ejemplo la diferencia entre la definicion
inmediata y aplazada de una funci on como f (x) = x2 , cuando previamente hemos
definido x = 4. Con definici
on inmediata:
x = 8;
f@x_D = x ^ 2;
f@5D
64

Con definici
on aplazada:
x = 8;
f@x_D := x ^ 2;
f@5D
25

Son muchas las situaciones en las que podemos necesitar una definicion aplazada.
Por ejemplo, cuando definimos la funcion factorial.
factorial@0D = 1;
factorial@x_D := x Factorial@x - 1D
factorial@4D

24

1.7. Listas y matrices


Una lista es un conjunto de datos (constantes, funciones, otras listas, etc.) dis-
puesto en la forma:
{dato1, dato2, . . . ...}
Las listas contituyen una de las estructuras mas importantes de Mathematica.
Hay que senalar que el concepto de lista en Mathematica es mas extenso que el
concepto matem atico de conjunto. Una lista puede tener elementos repetidos.
81, 2, 1, 3, 1, 4, 1, 5<

81, 2, 1, 3, 1, 4, 1, 5<

9
Como se ha se
nalado antes, los elementos de una lista no tienen por que ser
n
umeros reales.
82, x + 1, 2 x ^ 2 + 3 x + 7<

92, 1 + x, 7 + 3 x + 2 x2 =

Los vectores y las matrices tambien se representan mediante listas. En el ejemplo


anterior se ha dado un vector cuyas componentes son polinomios.
Con una lista se pueden efectuar operaciones aritmeticas basicas (elemento a
elemento) o bien utilizarlas como argumento de una funcion para obtener una lista
de valores:
81, 2, 3< ^ 4

81, 16, 81<

Sin@80, Pi 6, Pi 4, Pi 3, Pi 2<D

:0,
1 1 3
, , , 1>
2 2 2

Una matriz es una lista de listas. Cada uno de los elementos de esta lista es otra
lista que representa los vectores fila de la matriz. As, la matriz
 
0 1 3
a=
7 2 4

en el lenguaje de Mathematica se representa como


a = 880, -1, 3<, 87, 2, -4<<

880, -1, 3<, 87, 2, -4<<

Extraccion de datos de una lista: Los dobles corchetes se utilizan para extraer
un elemento de una lista. Por ejemplo, dado el vector v = {7, 3, -1} el primer
elemento de esta lista es 7.
v = 87, 3, -1<

87, 3, -1<

v@@1DD

En general, el elemento i-esimo de una lista v es v[[i]].


Tambien podemos extraer los elementos de una matriz.
a@@1DD@@2DD

-1

Una forma alternativa m


as c
omoda es:
a@@1, 2DD

-1

10
Generaci
on de listas: Una forma de generar listas es mediante la funcion Table.
Table@i, 8i, 1, 5<D

81, 2, 3, 4, 5<

Mediante esta funci


on tambien se puede generar una matriz.
Table@i * j, 8i, 1, 3<, 8j, 1, 4<D

881, 2, 3, 4<, 82, 4, 6, 8<, 83, 6, 9, 12<<

Las operaciones b
asicas con matrices son:

A+B: Suma de las matrices A y B.

A-B: Diferencia de las matrices A y B.

c A: Producto de las matriz A por el escalar c.

A.B: Producto de las matrices A y B.

Det[A]: Determinante de la matriz A.

Inverse[A]: Inversa de la matriz A (si existe).

MatrixPower[A,n]: Potencia n-esima de A, An .

Transpose[A]: Traspuesta de la matriz A.

IdentityMatrix[n]: Matriz identidad de orden n.

DiagonalMatrix[lista]: Matriz diagonal con los elementos de lista en la diago-


nal.

Minors[A,k]: Sub-matrices de orden k k de la matriz A.

Producto de matrices: Es importante observar que para multiplicar matrices no


se utiliza el asterisco . El smbolo (o la yuxtaposicion de matrices) es utilizado para
obtener el producto aritmetico (elemento a elemento). Para obtener el producto
matricial se utiliza el punto .
p = 881, 3<, 80, -1<<;
q = IdentityMatrix@2D;

El producto matricial debe dar la matriz p. As,


p.q

881, 3<, 80, -1<<

Mientras que pq proporciona el producto elemento a elemento:


p*q

881, 0<, 80, -1<<

11
1.8. Resoluci
on de ecuaciones
Una funcion que se requiere en muchas ocasiones es la de resolver ecuaciones. El
comando Solve intenta resolver la ecuacion que se le plantea. Debemos indicar la
ecuacion o ecuaciones a resolver y cu
ales son las incognitas. Salvo que le indiquemos
lo contrario, Mathematica puede utilizar funciones inversas cuando las ecuaciones
no son polinomicas. En estos casos alguna solucion (o quiza una cantidad infinita de
ellas) pueden no aparecer explcitamente.
Solve@Sin@x + y - x ^ 2D 1 2, yD

Solve::ifun : Inverse functions are being used by Solve, so


some solutions may not be found; use Reduce for complete solution information.

::y - x + x2 >>

6

Observemos que otras soluciones son posibles, como por ejemplo y = 2 + 6


x + x2 . Observemos que el resultado del comando Solve es una tabla y como tal
podemos usarlo, as por ejemplo podemos definir una lista con las soluciones de una
ecuacion para utilizarlas m
as adelante.
Si una ecuacion o sistema de ecuaciones no tiene solucion la respuesta es {}.
En el ejemplo que sigue se define una ecuacion con una incognita y un parametro;
utilizamos la definici
on aplazada porque solo nos interesa resolver la ecuacion para
algunos parametros.

Ejemplo 1.1. Encontrar alg on x3 + x + b = 0


un b > 0, b Z, tal que la ecuaci
on con parte real menor que 2,5. Hallar esta soluci
tenga soluci on.

Antes de resolver el problema definimos la ecuacion (recordemos que el resultado


es una lista con tres entradas) y hacemos algunas pruebas con b = 0 para ver la forma
que tiene la lista formada por las soluciones. Extraemos a continuacion diversas
partes de la solucion:
ecu@b_D := Solve@x ^ 3 + x + b 0, xD;
ecu@0D
ecu@0D@@1DD H*Nos dar la primera solucin que ser tambin una lista*L
ecu@0D@@2DD
ecu@0D@@1DD@@1DD
ecu@0D@@2DD@@1DD@@2DD
88x 0<, 8x -<, 8x <<

8x 0<

8x -<

x0

Ahora ya estamos preparados para comprender lo que sigue.


Utilizaremos el comando While para ir rastreando las soluciones de la ecuacion,
While[test,cuerpo;b++] va ejecutando cuerpo(en este caso no hace mas que

12
almacenar el valor de b sin hacer nada), mientras test sea verdadero. Cada vez b
aumenta en una unidad y cuando test es falso, para. En este momento b tendra el
valor deseado:
ecu@b_D := Solve@x ^ 3 + x + b 0, xD;

b = 0;
While@Min@Re@ecu@bD@@1DD@@1DD@@2DDD,
Re@ecu@bD@@2DD@@1DD@@2DDD, Re@ecu@bD@@3DD@@1DD@@2DDDD > -2.5, b; b ++D
Print@"La primera solucin con parte real mayor que -2.5 se obtiene con b igual a: ", bD
Print@"Esta parte real es: ", N@
Min@Re@ecu@bD@@1DD@@1DD@@2DDD, Re@ecu@bD@@2DD@@1DD@@2DDD, Re@ecu@bD@@3DD@@1DD@@2DDDDDD
Print@"que corresponde a la solucin: ", N@ecu@bDDD
La primera solucin con parte real mayor que -2.5 se obtiene con b igual a: 19

Esta parte real es: -2.54358

88x -2.54358<, 8x 1.27179 - 2.41916 <, 8x 1.27179 + 2.41916 <<


que corresponde a la solucin:

1.9. Reglas de sustituci


on
En muchas situaciones realizamos manipulaciones simbolicas que posteriormente
deseamos concretar para valores determinados, o queremos sustituir determinadas
expresiones por otras. Se utiliza entonces el comando /. que aplica una regla o una
lista de reglas de sustituci
on. En el ejemplo siguiente resolvemos la ecuacion x+t = 0
con t como par ametro y a continuaci on le asignamos el valor 2 al parametro:
Solve@x + t 0, xD

88x -t<<

% . t 2

88x -2<<

Tambien podemos usar las reglas de sustitucion con fines simbolicos. A conti-
nuacion por ejemplo las utilizamos para escribir una funcion en coordenadas polares
(englobamos todo el c alculo con el comando Simplify para obtener un resultado
simplificado); conviene observar que al ejecutar mas de una sustitucion es necesario
agrupar la lista de sustituciones con unas llaves.
Simplify@x Hx ^ 2 + y ^ 2L Hx ^ 4 + y ^ 4 - 2 x ^ 2 y ^ 2L . 8x r Cos@tD, y r Sin@tD<D

Cos@tD Sec@2 tD2


r

1.10. Ayudas incorporadas


Mathematica proporciona varios mecanismos para obtener ayuda e informacion
sobre las m
as de 800 funciones incorporadas, as como de las introducidas por el
usuario.
Esto da informaci
on acerca de la funcion incorporada Sin.

13
? Sin

Sin@zD gives the sine of z.

As, ahora sabemos c


omo calcular el seno de /4
Sin@Pi 4D

Mediante ?? obtenemos informacion adicional acerca de sus argumentos y atri-


butos.
?? Sin

Sin@zD gives the sine of z.

Attributes@SinD = 8Listable, NumericFunction, Protected<

En el apartado 1.5 se explica el significado de Attributes.


En otras ocasiones podemos estar interesados en saber que funciones incorpora-
das comienzan por Si. Para ello utilizamos el caracter .
? Si*

System`

SiegelTheta SingleLetterStyle

Sign SingularValueDecomposition

Signature SingularValueList

SignPadding SingularValues

Simplify Sinh

Sin SinhIntegral

Sinc SinIntegral

SingleEvaluation SixJSymbol

SingleLetterItalics

El caracter puede ir en cualquier lugar despues del signo ? Por ejemplo, ?Sin
nos dara informaci
on acerca de todas las funciones que terminen en Sin.
? *Sin

System`

ArcSin Sin

Tambien se puede pedir informacion de un smbolo concreto. Por ejemplo el


smbolo

14
?

x y or Divide@x, yD is equivalent to x y^-1.

Hay que poner atencion al pedir informacion acerca del smbolo , ya que en-
trando ? obtendremos como salida el nombre de todas las funciones incorporadas,
as como los nombres de las funciones definidas por el usuario. Para solventar este
problema hemos de entrar ?\*. La informacion solicitada acerca del operador nos
da una forma alternativa de indicar la multiplicacion en Mathematica: dejando un
espacio en blanco entre los factores.

1.11. Ejercicios

on gam tal que gam( 21 ) =
Ejercicio 1.1. Definir una funci , gam(0) = 1 y

x x2 x4x6 1
gam( ) = ,
2 2 2 2 2
si x es impar y tal que gam(n) = (n 1)!, si n es entero. Podremos obtener
gam[1/3]? Si x Z?. Que ocurre si definimos gam sin utilizar definiciones apla-
zadas?.

Ejercicio 1.2. Plantear y resolver cuatro ecuaciones de modo que haya alguna con:

una soluci
on.

doce soluciones.

ninguna soluci
on.

infinitas soluciones.

Ejercicio 1.3. Obtener una lista con todos los valores sin(k 2 ) para k {1, . . . , 50}.
x3 + x
Ejercicio 1.4. Definir la expresi
on p = . A continuaci
on
(x + a)(x3 3x2 + x 3)
resolver la ecuaci
on Denominadordep = 0, cuando a = 2. Obtener el valor numerico
de p cuando x = 2, a = 2. Descomponer p como suma de fracciones simples. A con-
tinuaci
on hacer denominador com un en la suma de fraccciones obtenida; comparar
con p (simplificar p puede ayudar). Escribir una lista con las races del denominador
de p cuando a = {0, 1, 2, . . . , 20}2 , utilizar la ayuda (F1) para conocer su sintaxis.

Ejercicio 1.5. Calcular numericamente el determinante de la matriz A = (aij ), de


no, 5 5 cuyas entradas son aij = sin(ij).
tama

Ejercicio 1.6. Encontrar el primer n on x2 + 12x + a = 0


umero x tal que la ecuaci
tenga soluciones con parte real mayor que 3.

2
Aqu ser
a necesario utilizar algunos comandos que no hemos introducido a
un como: Apart,
Together, Denominator.

15
Pr
actica 2

Algebra Lineal

En esta practica analizaremos algunas de las posibilidades que ofrece Mathema-


tica para resolver problemas de algebra lineal. Comenzaremos en la primera seccion
por proporcionar los comandos b asicos necesarios y mostraremos ejemplos que ilus-
tren su utilizaci
on. Con los comandos que se estudian en esta seccion se estara en con-
diciones de resolver la mayora de los problemas elementales que se pueden plantear
en un primer curso de algebra lineal. En la segunda seccion daremos una aplicacion
al estudio de las conicas.

2.1. Matrices
Como ya hemos visto, en Mathematica los vectores se representan mediante
listas, y las matrices, como listas de listas. Por ejemplo, la lista de listas {{a,b},
{c,d}} representa la matriz 2 2 cuyas filas corresponden a cada una de las filas de
la matriz: (a, b) y (c, d).

Algunas de las funciones incorporadas que Mathematica utiliza para construir


matrices son las siguientes:

DiagonalMatrix[lista]

genera una matriz diagonal con los elementos de lista en la diagonal;

IdentityMatrix[n]

genera la matriz identidad n n.

El comando

MatrixForm[matriz]

imprime la matriz en forma de tablero bidimensional, haciendo as mas clara su


estructura. Por otra parte, Mathematica dispone de algunas ordenes para hacer
referencia a los elementos de la matriz:

16
m[[i, j]] proporciona el elemento i, j de la matriz m;
m[[i]] o Part[m, i] da la fila i-esima de m.

Como ya se ha dicho, una matriz es una lista de vectores, representando cada


una de sus filas. Para que se tenga una matriz v
alida, todas las filas han de tener la
misma longitud, de manera que los elementos de la matriz formen efectivamente un
tablero rectangular.

Operaciones con matrices y vectores.


La suma de dos vectores se lleva a cabo elemento a elemento, siempre que ambos
tengan la misma longitud. De hecho, Mathematica admite las operaciones del algebra
matricial (suma, producto, producto por escalar) siempre que las dimensiones sean
las correctas. As, si m1 y m2 son dos matrices dadas y c es un escalar, tiene sentido
escribir

m1+m2, c m1, m1.m2

De igual modo, si v denota un cierto vector, tienen sentido las operaciones

v.v, v.m1, m1.v

debiendo tener cuidado con estas dos u


ltimas operaciones, pues aunque se represen-
tan de igual forma, proporcionan resultados muy diferentes.

El comando Inverse[m] calcula la inversa de la matriz cuadrada m. Observese


que Mathematica supone implcitamente que el determinante es no nulo. Cuando
se introduce una matriz cuyos elementos son n umeros enteros o smbolos, el pro-
grama proporciona la inversa exacta. Ahora bien, si en la matriz de entrada algu-
nos elementos son numeros reales aproximados, Mathematica obtiene un resultado
numerico aproximado; en ese caso, como en cualquier otro calculo numerico, se puede
controlar el n
umero de cifras significativas a manejar.

Otros comandos que se utilizan habitualmente al trabajar con matrices son:

Transpose[m]

para calcular la traspuesta de la matriz m,

MatrixPower[m, k]

para calcular la potencia k-esima de m y, para calcular el determinante de una matriz


cuadrada se utiliza
Det[m].

17
Sistemas de ecuaciones lineales
Para resolver un sistema de ecuaciones lineales dado, varias son las alternativas
que Mathematica ofrece. En primer lugar, puede ser conveniente escribir todas y
cada una de las ecuaciones explcitamente, y despues resolverlas usando el comando
Solve. En muchos casos, sin embargo, puede resultar mas adecuado convertir el
sistema en una ecuaci on matricial, y aplicar despues operaciones matriciales para
resolverlo, sobre todo si el n
umero de ecuaciones y de incognitas es elevado.

Un sistema de ecuaciones lineales se puede escribir en forma matricial como

m x = b,

donde x es el vector incognita, m es la matriz de coeficientes y b es la matriz de


los terminos independientes. Como el estudiante ya esta familiarizado con la teora
general de los sistemas de ecuaciones lineales, procederemos directamente con los
comandos involucrados y analizaremos en detalle algunos ejemplos.

Las funciones incorporadas que Mathematica ofrece para resolver este tipo de
sistemas de ecuaciones son los siguientes:

LinearSolve[m,b]

on de la ecuacion matricial m x = b;
da un vector x que es soluci

NullSpace[m]

proporciona un conjunto de vectores cuyas combinaciones lineales satisfacen la ecua-


cion matricial m x = 0, esto es, proporciona una base del n
ucleo de la apliccion
lineal cuya matriz asociada en las bases canonicas es m;

RowReduce[m]

transforma la matriz m en otra reducida por filas, mediante combinaciones lineales


de las filas, coincidiendo, por tanto, el rango de la matriz con el n
umero de filas no
nulas de esta matriz.

Se puede obtener tambien el n


umero de ecuaciones redundantes correspondientes
a una matriz particular calculando

Length[NullSpace[m]]

Con los comandos anteriores y el teorema de RoucheFrobenius, estamos en


disposicion de analizar (y resolver en su caso) sistema de ecuaciones lineales.

18
Valores y vectores propios
Como es bien sabido, los valores propios de una matriz m son los valores i para
los cuales existen vectores xi no nulos, llamados vectores propios, tales que m xi =
i xi . El calculo de los valores propios de una matriz n n supone, en principio,
resolver una ecuaci on polinomica de grado n. Si n 5 no es posible obtener, en
general, soluciones algebraicas explcitas de una ecuacion tal; Mathematica dispone
de los siguientes comandos para abordar este problema:

Eigenvalues[m]

proporciona una lista de los valores propios de la matriz m;

Eigenvectors[m]

proporciona una base de cada subespacio propio;

Eigensystems[m]

calcula al mismo tiempo los valores y los vectores propios y proporciona una lista
de valores propios y de vectores propios asociados. Por otra parte,

Eigenvalues[N[m]]

proporciona una aproximaci


on numerica de los valores propios. Por tanto, Mathe-
matica nos puede proporcionar una aproximacion numerica de los valores propios.

La funcion Eigenvalues da siempre una lista de n valores propios para una


matriz n n, pudiendo estar alguno de ellos repetidos, mientras que Eigenvectors
da una lista de vectores propios linealmente independientes; si el n umero de tales
vectores propios es menor que n, entonces Eigenvectors a nade vectores nulos a la
lista hasta completarla con n vectores. Como es bien sabido, los valores y vectores
propios de una matriz juegan un papel muy importante a la hora de analizar si es,
o no, diagonalizable. En el caso general, dada una matriz m, siempre sera posible
encontrar una matriz c tal que c1 mc = j, donde j es la llamada forma canonica de
Jordan (que en el caso de ser m diagonalizable no es mas que una matriz diagonal tal
que los elementos de su diagonal principal son los valores propios de m). La funcion
que lleva a cabo esta descomposicion es JordanDecomposition, la cual proporciona
una lista con las matrices c y j.

2.1.1. Ejercicios
Ejercicio 2.1. (1) Dadas las matrices

3 4 5 10 6 9
A= 8 0 3 , B= 6 5 7
5 2 1 10 9 12

calcula A + B, B 4A, (AB)1 , ((A B)B)T , A2 , det(B 3 ) y las races del


polinomio caracterstico de A.

19
(2) Resolver el sistema 
x + 5y = a
2x + y = b
dependiente de dos par
ametros. El metodo m
as eficiente es usar LinearSolve.

(3) Que ocurre si intentas resolver el sistema



x + 2y = a
x + 2y = b

con Mathematica ?

(4) Estudia y resuelve el sistema




x + 2y + 3z = 6
x + 3y + 8z = 19


2x + 3y + z = 1
5x + 6y + 4z = 5

(5) Estudia y resuelve, seg


un los valores de a, el sistema formado por las ecuacio-
nes
ax + y + z = 1
x + ay + z = a
x + y + az = a2

(6) Forma una matriz cuyas filas sean los vectores

(1, 1, 2, 0, 1), (2, 2, 0, 0, 2), (2, 1, 1, 0, 1),


(1, 1, 1, 2, 2), (1, 2, 2, 2, 0)

y otra con

(2, 3, 1, 3, 0), (1, 2, 1, 2, 1), (2, 1, 7, 17, 4),

hallando sus rangos y una base de su n


ucleo.

(7) Dado el conjunto de vectores

{(2, 3, 4, 1, 1), (3, 4, 7, 2, 1), (1, 3, 1, 1, 8), (0, 5, 5, 1, 4)},

obten la dimensi
on y una base del subespacio lineal que engendran.

(8) Dado el conjunto de vectores

{(1, 0, 0), (1, 0, 1), (1, 1, p)}

estudia si forman una base de R3 para cualquier valor de p.

20
(9) Dada la aplicaci
on lineal cuya matriz asociada en unas ciertas bases viene
dada por
0 3 1 3 1
A = 3 3 3 3 1
2 2 1 1 2
encuentra una base de su n ucleo. Halla tambien la imagen de los vectores
(4, 2, 0, 0, 6) y (1, 2, 1, 2, 3).

(10) Consideremos la aplicacion lineal f en R3 dada por f (a, b, c) = (a+b, b+c, a+


onica. Idem a f 5 .
c). Halla la matriz asociada a f en la base can

(11) Diagonaliza la matriz simetrica cuyas filas son los vectores

(3, 1, 0), (1, 2, 1), (0, 1, 3) .

Halla la matriz de paso P , comprueba el resultado y verifica que los valores


propios de la matriz de partida son los elementos de la diagonal de la matriz
semejante a la dada.

(12) Diagonaliza la matriz cuyas filas vienen dadas por los vectores

(7, 2, 1), (2, 10, 2), (1, 2, 7) .

2.2. C
onicas
La circunferencia, la elipse y la parabola son curvas planas de todos conocidas.
Estas curvas aparecan ya en la geometra griega y fueron denominadas secciones
c
onicas ya que los griegos de la epoca de Platon consideraban que tales curvas
procedan de la intersecci
on de un cono con un plano tal como muestra la figura:

21
Cuando los matem aticos de los siglos XVI y XVII estudiaron los trabajos griegos,
empezaron a comprobar la falta de generalidad de los metodos de demostracion, lo
que llevo a sustituir la visi
on puramente geometrica de las secciones conicas por otra
que incorporaba la nociones de coordenadas y distancia. Esto llevo a la definicion de
estas curvas como lugares geometricos que verifican ciertas propiedades en terminos
de distancia. Finalmente se establecio una teora algebraica general que engloba
todas estas curvas y las describe como curvas cuadraticas. En esta teora esta basada
la presente practica.

Curvas cuadr
aticas
Una conica es el lugar geometrico de los puntos del plano que satisfacen una
ecuacion de segundo grado en dos variables:

a11 x2 + a22 y 2 + 2a12 xy + 2a01 x + 2a02 y + a00 = 0

que podemos expresar en forma matricial

X t AX + BX + a00 = 0 (EG)

donde
!
a11 a12
 
 x
A= , B = 2a01 2a02 , X= .
a12 a22 y

A partir de la ecuacion general (EG) de una conica vamos a estudiar tres pro-
blemas: (1) Obtener su ecuaci on reducida, (2) obtener sus elementos geometricos, y
(3) analizar sus invariantes metricos.

22
Ecuaci
on reducida de una c
onica
Diremos que la ecuaci
on de una conica

X t AX + BX + a00 = 0 ,

es una ecuaci
on reducida si

1. La matriz A es diagonal.

2. Si 0 no es valor propio de A, entonces B = 0.

3. Si 0 es valor propio de A, entonces de entre los elementos a0i hay a lo mas uno
no nulo.

El problema que tratamos de resolver a continaucion es el de obtener, a partir


de una ecuacion general de una c
onica, una ecuacion reducida realizando un cambio
de sistema de referencia mediante un movimiento rgido en el plano que equivale a
un giro mas una traslaci
on.

Puesto que el primer requisito para tener una ecuacion reducida es que la matriz
de la conica sea diagonal, dada una ecuacion

X t AX + BX + a00 = 0

trataremos de sustituir A por una matriz diagonal. Puesto que A es simetrica, en-
tonces es diagonalizable por semejanza ortogonal, es decir, existen D diagonal y P
ortogonal (que puede elegirse con det P = 1) tales que P t AP = D. Entonces, la
expresion

X = PZ con Z = (u, v)

representa una rotaci on en el plano en la que el origen queda fijo. Sustituyendo en


la ecuacion de la c
onica queda

(Z)t D (Z) + BP (Z) + a00 = 0 (E)

con lo que la primera condici


on de ecuacion reducida se verifica.

Una vez la matriz de la c onica ya es diagonal, el siguiente paso es eleminar los


terminos u e v (si los dos valores propios son no nulos) o al menos uno de ellos (si
algun valor propio es nulo); para ello realizaremos un nuevo cambio de sistema de
referencia en el que solo cambia el origen (es decir, una traslacion). El metodo que
utilizaremos consiste en completar cuadrados, esto es, si tenemos terminos en u2 y
u sustituirlos por un cuadrado m as un termino independiente:

23
u2 + 2b1 u = (u + b1 )2 b21

y de forma similar

v 2 + 2b2 v = (v + b2 )2 b22 .

Mediante la sustituci
on
(
t = u + b1
s = v + b2

quedan eleminados los terminos de grado 1 de la ecuacion. En el caso de ser uno


de los valores propios 0, s
olo puede realizarse la completacion de cuadrados para
una de las variables. Despues, la otra variable puede ser modificada para obtener un
termino independiente nulo.

Tenemos as un proceso que nos permite pasar de una ecuacion cualquiera de


una conica a una ecuaci on reducida mediante la composicion de dos movimientos
rgidos: una rotaci
on y una traslaci
on. Es un cambio de sistema de referencia en el
que no varan las propiedades geometricas, solo lo hace la ecuacion.

Ejercicio 2.2. Calcular la ecuaci


on reducida de la c
onica

x2 6xy 7y 2 + 10x + 2y + 9 = 0 .

Para realizar el Ejercicio 2.2 realizaremos los siguientes pasos utilizando algunos
de los comandos de Mathematica estudiados en la Practica 1:

PASO 1: Hallar los valores propios de la matriz de la conica.

PASO 2: Hallar una base ortonormal de vectores propios.

PASO 3: Escribir la ecuaci


on P de paso a la matriz diagonal.

PASO 4: Escribir la ecuaci


on (E) de la conica.

PASO 5: Realizar el producto de las matrices que aparecen en la ecuacion (E) para
obtener una nueva ecuaci
on cuadr
atica de la conica.

Si todos los pasos han sido realizados correctamente se debe haber obtenido la
ecuacion:

16 28
8u2 + 2v 2 + u v + 9 = 0
10 10

24
donde u y v son las nuevas coordenadas tras realizar el giro.

Tenemos ya una ecuaci on de la c


onica que satisface la condicion 1 de la ecuacion
reducida, es decir, hemos realizado un giro. Ahora vamos a obtener la ecuacion
reducida realizando una traslaci
on.

PASO 6: Realizar una traslaci


on para eleminar los terminos de grado 1:
 
2
8 u u = 8 u ??? )2 ???
2

10

 
14
2
2 v v = 2 v ??? )2 ???

10

Tras los c
alculos anteriores, las nuevas coordenadas tras realizar la traslacion
son:
1

t = u 10

7
s=v .


10

PASO 7: Escribir la ecuaci


on reducida de la conica.

El comando ImplicitPlot permite dibujar la grafica de funciones expresadas


en forma implcita. Busca en Help de Mathematica este comando y analiza como se
usa. Utilzalo para realizar el siguiente ejercicio:

Ejercicio 2.3. Dibujar la c onica del ejercicio anterior, primero utilizando la ecua-
on x2 6xy 7y 2 + 10x + 2y + 9 = 0, luego la ecuaci
ci on (E) y luego la ecuaci on
reducida. Compara las gr aficas obtenidas.

Ejercicio
2.4. Hallar la ecuaci on reducida de la conica x2 + y 2 + 2xy + 6 2 x
2 2 y + 26 = 0. Dibujar la gr afica de esta conica, primero usando la ecuaci on
anterior, luego la ecuaci
on (E) y luego la ecuacion reducida, comparando las gr aficas
obtenidas.

C
alculo de los elementos geom
etricos
Una ecuaci on reducida X 00 = C + P t X de una elipse, hiperbola o parabola
significa que el nuevo sistema de referencia R00 tiene como origen el centro de la
conica (si es una elipse o una hiperbola) o el vertice (si se trata de una parabola)
y como ejes de coordenadas los ejes de la conica (en el caso de una elipse o de una
parabola) o el eje y la tangente en el vertice (en el caso de una parabola).

25
Puesto que las coordenadas del origen de R00 respecto de R00 son (0, 0), entonces
el centro (en el caso de la elipse o de la hiperbola) o el vertice (en el caso de la
parabola) es la soluci
on del sistema:

0 = C + P tX

Para calcular los ejes basta con recordar que la nueva base esta formada por los
vectores propios de la matriz de la c onica y, por tanto, estos vectores son los vectores
directores de los ejes de la c
onica. En el caso de la parabola, el vector propio asociado
a = 0 nos da la direcci on del eje y el otro vector propio proporciona la direccion
de la tangente en el vertice.

De forma similar al calculo del centro se pueden obtener los focos de la conica,
la directriz de la par
abola, las asntotas de la hiperbola, etc.

Ejercicio 2.5. Calcular el centro y los ejes de la c


onica

2xy 2x + 6y + 5 = 0

Representar gr
aficamente la c
onica e identifica su centro y sus ejes.

Ejercicio 2.6. Calcular el vertice, el eje y la tangente en el vertice de la c


onica

x2 + y 2 + 2xy + 6 2 x 2 2 y + 26 = 0.

Representar gr
aficamente la c
onica.

Invariantes m
etricos de las c
onicas
A la ecuaci
on de una c
onica

a11 x2 + a22 y 2 + 2a12 xy + 2a01 x + 2a02 y + a00 = 0

le asociamos las matrices



a00 a01 a02  
a11 a12
A = a01 a11 a12 A=
a12 a22
a02 a12 a22

y consideramos los n
umeros

I3 = det A , I2 = det A , I1 = tr A = a11 + a22

26
Los n
umeros I1 , I2 y I3 no varan cuando la conica es afectada por un movimiento
rgido y se denominan invariantes metricos. Los invariantes metricos nos permiten
identificar el tipo de conica seg
un se refleja en la tabla 2.2:

I2 > 0 Elipse I1 I3 < 0 Real


I1 I3 > 0 Imaginaria
I3 6= 0 I2 <0 Hiperbola
(no degeneradas) I2 =0 Parabola
I2 >0 Un punto
I3 = 0 I2 <0 Dos rectas secantes
(degeneradas) I2 =0 Dos rectas paralelas

Cuadro 2.1: Clasificaci


on de las conicas por invariantes

Ejercicio 2.7. Clasificar la c


onica de ecuaci
on

2x2 4xy y 2 4x 8y + 14 = 0 .

Podemos utilizar los invariantes metricos para obtener la ecuacion reducida de


una conica. El metodo de basa en el hecho de que puesto que I1 , I2 y I3 son inva-
riantes por movimientos rgidos, han de coincidir los valores obtenidos a partir de la
ecuacion de partida y a partir de la correspondiente ecuacion reducida.

En el caso en que I2 6= 0, la c
onica dada tendra una ecuacion reducida del tipo

ax2 + by 2 + d = 0

de donde se deduce que I3 = abd, I2 = ab e I1 = a + b. De estas igualdades se deduce


I3
rapidamente que d = , mientras que a y b pueden ser obtenidos como las races
I2
on 2 I1 + I2 = 0.
de la ecuaci
Para el caso de la par
abola, c
alculos similares nos proporcionan una ecuacion
2
reducida y = 2px, donde el coeficiente p se obtiene por la formula
r
I3
p= .
I1
Ejercicio 2.8. Hallar la ecuaci onica 3x2 8xy12y 2 30x64 =
on reducida de la c
0 y clasificarla.
Ejercicio 2.9. Hallar la ecuaci onica 21x2 + 13y 2 + 6xy 114x +
on reducida de la c
34y + 73 = 0 y clasificarla.
Ejercicio 2.10. Hallar la ecuaci onica 4x2 + 25y 2 20xy 15x
on reducida de la c
6y = 0 y clasificarla.

27
Pr
actica 3

Gr
aficas en dos y tres
dimensiones

El programa Mathematica dispone de un amplio repertorio de funciones que nos


permiten dibujar graficas en dos y tres dimensiones. Los comandos basicos son Plot
y Plot3D, con los cuales podemos obtener la representacion grafica de funciones
reales de una o dos variables reales.

3.1. Gr
aficas en dos dimensiones
3.1.1. Gr
aficas en coordenadas cartesianas
El comando

Plot[f(x), {x, a, b}]

representa la curva en coordenadas cartesianas y = f (x) en el intervalo cerrado [a, b].


Por ejemplo,

In[12]:= Plot@Sin@xD, 8x, 0, 2 Pi<D


1.0

0.5

Out[12]=
1 2 3 4 5 6

-0.5

-1.0

Si queremos trabajar con varias graficas a la vez tenemos varias opciones. Una
de ellas es:

Plot[{f(x), g(x),h(x),...}, {x, a, b}];

28
Ejemplo 3.1. Representa gr aficamente las funciones f (x) = sin x, f (x) = sin(2x),
f (x) = sin(3x) en el intervalo [0, 2].

El comando Show tambien permite combinar varias graficas de una vez tal y
como vemos a continuaci on.
Ademas podemos obtener cada grafica por separado en una tabla de graficos;
para ello utilizaremos la opci
on que detallamos en el siguiente ejemplo.

Ejemplo 3.2. Representamos cuatro polinomios en una tabla.

g1 = Plot@x ^ 2 + 2 x - 3, 8x, -3, 3<, DisplayFunction -> IdentityD;


g2 = Plot@x ^ 3 + 3 x ^ 2 - x - 3, 8x, -3, 3<, DisplayFunction -> IdentityD;
In[13]:=

g3 = Plot@x - 1, 8x, -3, 3<, DisplayFunction -> IdentityD;


g4 = Plot@Hx - 1L ^ 4, 8x, -3, 3<, DisplayFunction -> IdentityD;
Show@GraphicsArray@88g1, g2<, 8g3, g4<<DD

10 25
20
5 15
10
5
-3 -2 -1 1 2 3
-3 -2 -1 1 2 3
Out[17]=
2 140
1 120
100
-3 -2 -1 1 2 3 80
-1 60
-2 40
20
-3
-4 -3 -2 -1 1 2 3

Utilizamos "DisplayFunction->Identity"; esta opcion hace que no visualice-


mos la grafica en la sentencia en la que la introducimos. En ocasiones utilizamos
diversas opciones de Plot y solo nos interesa ver la grafica final. En la sentencia que
queramos que se visualice la gr
afica basta a
nadir DisplayFunction->$DisplayFunction
tal y como aparece en los ejemplos siguientes.
g1 = Plot@Sin@xD, 8x, 0, 2 Pi<, PlotStyle -> Red, DisplayFunction IdentityD;
g2 = Plot@Cos@xD, 8x, 0, 2 Pi<, PlotStyle -> Green, DisplayFunction IdentityD;
In[37]:=

Show@g1, g2, DisplayFunction $DisplayFunction, AspectRatio -> AutomaticD

1.0

0.5

Out[39]=
1 2 3 4 5 6
-0.5

-1.0

Si queremos comparar dos o m


as graficas, una posibilidad es usar con el comando
Show la opcion AspectRatio->Automatic, la cual establece las misma proporcion
en los dos ejes coordenados,

29
Tambien podemos obtener lo mismo con la sentencia siguiente, en la que no
consideramos la opci
on AspectRatio:
In[36]:= Plot@8Sin@xD, Cos@xD<, 8x, 0, 2 Pi<, PlotStyle 8Red, Green<D

1.0

0.5

Out[36]=
1 2 3 4 5 6

-0.5

-1.0

Las opciones del comando Plot son muchas y enumerarlas resultara demasiado
extenso. Resulta muy util utilizar el Help que aparece en el men
u del programa o
bien el comando Options[Plot]. Algunas de ellas son:

AspectRatio: establece la raz on entre la altura y la anchura de la grafica de


la pantalla. En particular, AspectRatio->Automatic escala la misma unidad
de medida en el eje x e y.

Thicknes: grosor del trazo de la grafica.

Dashing: opci
on para hacer el dibujo con puntos o rayas en vez de un trazo
continuo.

AxesLabel->{etiqueta 1, etiqueta 2}: pone las etiquetas que queramos a


los ejes coordenados.

PlotRange: presenta en pantalla todos los puntos de la curva en el intervalo


pedido.

FilledPlot: rellena el espacio limitado por las graficas de las funciones y las
ordenadas extremas consideradas.

PlotStyle->{}: nos proporciona opciones del dibujo tales como el grosor, color
y otros.

Si queremos distinguir las diversas graficas que aparecen en un mismo dibujo


podemos hacerlo dandole colores a cada una de ellas. Podemos identificar los colores
con su nombre, en ingles, si previamente cargamos el paquete <<GraphicsColors.
Representamos las gr aficas del seno de varios angulos en colores diferentes; cada
color corresponde a una de las gr aficas en el orden escrito.

30
Plot@8Sin@xD, Sin@2 xD, Sin@3 xD<, 8x, 0, 2 Pi<, PlotStyle 8Red, Blue, Green<D;

1.0

0.5

Out[1]=
1 2 3 4 5 6

-0.5

-1.0

Es importante observar que si no ponemos un punto y coma al final del comando


aparece en pantalla, despues de la correspondiente grafica, -Graphics-; esta guarda
la informacion empleada por Plot para representar graficamente la funcion.
Una opcion que resulta u
til en el calculo de areas de figuras planas es sombrear la
region que queda entre dos graficas dadas. Para ello tenemos que cargar el paquete

In[3]:= << Graphics`FilledPlot`

Dibujamos las gr
aficas y sombreamos la zona entre ambas:
In[13]:= graf1 = FilledPlot@8Sin@x + 1D, x ^ 3 - 3 x + 1<, 8x, -4, 4<D

2
Out[13]=

-4 -2 2 4
-2

-4

-6

Se puede observar que el programa sombrea tambien zonas que no corresponden,


ello es debido al rango de valores de x que le damos y esto nos puede conducir a
errores. Si queremos que sombree solo la zona real podemos hacerlo de la forma que
aparece a continuacion:

31
FindRoot@Sin@x + 1D == x ^ 3 - 3 x + 1, 8x, -2<D
FindRoot@Sin@x + 1D == x ^ 3 - 3 x + 1, 8x, 2<D
In[2]:=

Out[2]= 8x -1.98099<

Out[3]= 8x 1.6383<

In[4]:= r1 = -1.980987201443789;
r2 = 1.6382951511934907;

graf1 = FilledPlot@8Sin@x + 1D, x ^ 3 - 3 x + 1<, 8x, r1, r2<, PlotRange AllD;


graf2 = Plot@8Sin@x + 1D, x ^ 3 - 3 x + 1<, 8x, -4, 4<D;
In[18]:=

Show@graf1, graf2D
8

2
Out[20]=

-4 -2 2 4
-2

-4

-6

Ejercicio 3.1. Dibuja la funci


on f (x) = sin x + cos 3x en el intervalo [4, 4].

(a) Modifica AspectRatio haciendo que la altura sea dos veces el ancho.

(b) Pon una etiqueta a los ejes x y y utilizando la opci


on AxesLabel.

(c) Cambia las marcas correspondientes al eje de abcisas, Ticks, sobre el gr


afico
de manera que aparezcan s
olo m
ultiplos de .

(d) Pon nombre al dibujo con la opci


on PlotLabel.

Ejercicio 3.2. Dibuja las grficas de las funciones f (x) = x2 y g(x) = x y sombrea
la regi
on comprendida entre ambas.

3.1.2. Gr
aficas en coordenadas polares
Para dibujar gr
aficas en coordenadas polares se requiere el cargar previamente
el paquete <<GraphicsGraphics. El comando para dibujar este tipo de graficas
es:

PolarPlot[funcion,{variable angular, valor minimo, valor maximo}]

Muchas de las opciones que se pueden utilizar en las graficas en cartesianas


tambien las podemos utilizar en polares:

Ejemplo 3.3. Dibujamos una cardiode con bucle interior.

32
In[49]:= PolarPlot@2 Cos@tD - 1, 8t, 0, 2 Pi<, AspectRatio AutomaticD

1.5

1.0

0.5

Out[49]=
0.5 1.0 1.5 2.0 2.5 3.0

-0.5

-1.0

-1.5

Ejercicio 3.3. Dibuja una tabla con 4 gr aficas, en diversos colores, en las que apa-
rezcan una rosa de tres petalos de varios tamanos y en varias posiciones diferentes.
Para sombrear las zonas requeridas hay que cargar el paquete
<<GraphicsFilledPlot y los comandos son:
FilledPlot[expr,{x,xmin,xmax}]:sombrea el espacio entre la curva y el eje
x.

FilledPlot[{expr1,expr2,...},{x,xmin,xmax}]: sombrea el espacio entre


las curvas.

3.1.3. Gr
aficas de funciones implcitas
Recordemos que la representaci on grafica de una curva en el plano dada de forma
implcita viene dada por la relaci
on F (x, y) = 0. Si se verifica el teorema de la funci
on
implcita, la variable dependiente y es una funcion de x pero no la tenemos despejada.
Esto puede ser porque no podemos, como en el caso de y sin y + x3 cos x = 0; o
bien porque la expresi on que obtenemos al tratar de despejarla resulta complicada de
manejar, por ejemplo x y 2 7x y +cos x8 = 0. En estos casos Mathematica dispone
de la funci on ImplicitPlot incluida en el paquete GraphicsImplicitPlot que
nos permite dibujar funciones definidas de forma implcita. Veamos un ejemplo:
cargamos primero el paquete anterior (basta con hacerlo una vez en la sesion de
Mathematica) y luego dibujamos el Folium de Descartes:

In[54]:= << Graphics`ImplicitPlot`

33
In[56]:= ImplicitPlot@x ^ 3 + y ^ 3 - 3 x y 0, 8x, -2, 2<, PlotLabel "Folium de Descartes"D

Folium de Descartes

-2 -1 1 2

Out[56]=

-1

-2

-3

La funci
on ImplicitPlot tiene las mismas opciones que las de Plot salvo Compiled,
MaxBend y PlotDivision. Precisemos que para la funcion ImplicitPlot, la opcion
AspectRatio toma el valor Automatic por defecto.

Ejercicio 3.4. Dibuja la elipse x2 + 4y 2 = 4, pon etiqueta a los ejes coordenados,


en color azul y con un grosor 0.01.

En la figura siguiente dibujamos con el comando ImplicitPlot una circunfe-


rencia en coordenadas cartesianas dada por x2 + y 2 = 9 (no volvemos a cargar el
paquete GraphicsImplicitPlot porque lo hemos hecho anteriormente).
Notemos que para dibujarlacon el comando Plot
tendramos que combinar las
graficas de las funciones y = 9 x y y = 9 x2 . Comprueba que ocurre
2

cuando se procede de esta forma.

34
In[58]:= ImplicitPlot@x ^ 2 + y ^ 2 9, 8x, -3, 3<, PlotStyle RedD

Out[58]=
-3 -2 -1 1 2 3

-1

-2

-3

3.2. Gr
aficas en tres dimensiones
3.2.1. Gr
aficas 3D en coordenadas cartesianas
El programa Mathematica tiene varias opciones para representar graficamente
superficies; si viene dada en la forma z = f (x, y), el comando que utilizamos es:

Plot3D[f(x,y),{x,a,b},{y,c,d}].

Ejemplo 3.4. Dibujamos la superficie dada por la funci


on de dos variables z =
sin xy

Plot3D[Sin[x y], {x, 0, 5}, {y, 0, 5}];

35
cuya gr
afica es la que aparece en el siguiente dibujo:

1
0.5 5
0
4
-0.5
-1 3
0
1 2
2
3 1
4
5 0

La funci
on Plot3D, igual que la funcion Plot, tiene asociado un conjunto de
opciones gr
aficas, especificadas por reglas que nos proporcionan diversas formas
de presentar la grafica. Estas opciones las podemos obtener mediante la funcion
Options,
In[65]:= Options@Plot3DD

Out[65]= :AlignmentPoint Center, AspectRatio Automatic, Axes True, AxesEdge Automatic,


AxesLabel None, AxesStyle 8<, Background None, BaselinePosition Automatic,
BaseStyle 8<, BoundaryStyle Automatic, Boxed True, BoxRatios 81, 1, 0.4<,
BoxStyle 8<, ClippingStyle Automatic, ColorFunction Automatic,
ColorFunctionScaling True, ColorOutput Automatic, ContentSelectable Automatic,
ControllerLinking Automatic, ControllerMethod Automatic, ControllerPath Automatic,
DisplayFunction $DisplayFunction, Epilog 8<, Evaluated Automatic,
EvaluationMonitor None, Exclusions Automatic, ExclusionsStyle None,
FaceGrids None, FaceGridsStyle 8<, Filling None, FillingStyle Opacity@0.5D,
FormatType TraditionalForm, ImageMargins 0., ImagePadding All, ImageSize Automatic,
LabelStyle 8<, Lighting Automatic, MaxRecursion Automatic, Mesh Automatic,
MeshFunctions 81 &, 2 &<, MeshShading None, MeshStyle Automatic, Method Automatic,
NormalsFunction Automatic, PerformanceGoal $PerformanceGoal, PlotLabel None,
PlotPoints Automatic, PlotRange 8Full, Full, Automatic<, PlotRangePadding Automatic,
PlotRegion Automatic, PlotStyle Automatic, PreserveImageOptions Automatic,
Prolog 8<, RegionFunction HTrue &L, RotationAction Fit, SphericalRegion False,

Ticks Automatic, TicksStyle 8<, ViewAngle Automatic, ViewCenter : , , >,


1 1 1

ViewMatrix Automatic, ViewPoint 81.3, -2.4, 2.<, ViewRange All,


2 2 2

ViewVector Automatic, ViewVertical 80, 0, 1<, WorkingPrecision MachinePrecision>

Una de estas opciones es ViewPoint que permite cambiar el punto de vista desde
el que vemos la superficie. Este punto de vista se define con relacion a un cubo de
lado unidad centrado en el origen de coordenadas, siendo (1.3,-2.4,2) las coordenadas
del punto de vista por defecto. En el menu Input aparece 3DViewPoint Selector,
el cual permite mover el cubo hasta que tengamos el punto de vista que queremos. A
continuacion vamos al comando Plot3D y pondremos al final una coma, volvemos al

36
3DViewPoint Selector y apretamos el comando Paste y aparecen las coordenadas
adecuadas en nuestro comando para que nos dibuje la grafica desde el punto de vista
deseado. Esto es,
In[67]:= Plot3D@Sin@x yD, 8x, 0, 5<, 8y, 0, 5<, ViewPoint 8-1.814, -2.855, -0.093<D
0
2
4
1.0

0.5
Out[67]=
0.0

-0.5

-1.0
0 2 4

Puede ocurrir que al dibujar una superficie dada por z = f (x, y) el dibujo ob-
tenido no nos de una buena perspectiva de como es su grafica. Por ejemplo, el caso
del paraboloide z = x2 + y 2 ,
8x, -15, 15<, 8y, -15, 15<, ViewPoint -> 83.650, 1.655, 1.023< D;
Plot3D@x ^ 2 + y ^ 2, -10
0
10

400
300
200
100
0
-10
0
10

Para evitarlo tenemos otra opcion: utilizar la funcion CountourPlot3D que dibuja
superficies de nivel. En primer lugar hay que cargar el paquete
<< Graphics`ContourPlot3D`

y escribir la orden
Ejercicio 3.5. Dibuja el cono z 2 = 3x2 + 3y 2 y elimina la malla del gr
afico con la
opci
on Mesh->False.
Ejercicio 3.6. Dibuja una esfera con centro en el origen y radio 4.
p
Ejercicio 3.7. Representa en 3D la superficie z = 10 sin (10 x2 + y 2 ) con x
[1, 1], y [1, 1] y 30 puntos a evaluar, adem
as que no aparezca la caja de los
ejes, ni los cuadrados del dibujo.

3.3. Animaci
on de gr
aficos
El programa Mathematica tiene una opcion para obtener una animacion de grafi-
cos. Para ello seguimos los pasos siguientes:

37
1 0
-1
ContourPlot3D@x ^ 2 + y ^ 2 - z, 8x, -4, 4<, 8y, -4, 4<,
8z,
3 -3, 3<, ViewPoint -> 83.159, 0.980, 0.713<, Axes TrueD;

0
-1 0
1

creamos una tabla de gr


aficos con la funcion que queremos dibujar,

In[1]:= Table@Plot@Sin@n * xD, 8x, 0, 4 Pi<D, 8n, 1, 7<D

Seleccionamos la celda de cualquiera de los graficos que obtenemos, vamos


al menu Cell y seleccionamos Animate Selected Graphics o bien, si selec-
cionamos uno de los dibujos, dandole dos veces a la tecla del raton tambien
obtenemos el mismo resultado.

Esto mismo sirve para gr


aficos en tres dimensiones.

3.4. Graficas bidimensionales en coordenadas param


etri-
cas
Estudiamos ahora la representaci
on grafica de funciones en las cuales las variables
x e y dependen de una tercera variable t a la que llamamos par ametro. La ecuacion

r(t) = (x(t), y(t)), t [a, b]

recibe el nombre de ecuaci


on parametrica. Por ejemplo, la ecuacion

r(t) = (2 cos t, 2 sin t), t [0, 2]

define una circunferencia con centro en el origen y radio 2. Con Mathematica pode-
mos dibujarlas mediante la sentencia

ParametricPlot[{x(t),y(t)}, {t,a,b}]

siendo x(t) y y(t) las componentes primera y segunda de la funcion parametrica


definida. Tambien podemos dibujar varias graficas en parametricas mediante

ParametricPlot[ { {x(t),y(t)}, {u(t),v(t)}...}, {t,a,b}]

Una sentencia similar nos permite dibujar graficas de curvas en tres dimensiones
en parametricas,

38
ParametricPlot3D[{x(t),y(t),z(t)}, {t,a,b}]

Ejemplo 3.5. Dibujamos una circunferencia con centro en (0, 0) y radio 1.


In[59]:= ParametricPlot@8Cos@tD, Sin@tD<, 8t, 0, 2 Pi<D

1.0

0.5

Out[59]=
-1.0 -0.5 0.5 1.0

-0.5

-1.0

t2
 
t
Ejemplo 3.6. Representamos la funci
on parametrica r(t) = , en
1 + t 1 + t3
3
[0, 4]

In[62]:= ParametricPlot@8t H1 + t ^ 3L, t ^ 2 H1 + t ^ 3L<, 8t, 0, 4 Pi<, PlotStyle GreenD

0.5

0.4

0.3

Out[62]=

0.2

0.1

0.1 0.2 0.3 0.4 0.5

39
Ejemplo 3.7. Representaci on gr
afica de la circunferencia de radio 1 y centrada en
x2
(0, 0) y la elipse + y 2 = 1, ambas en coordenadas parametricas.
4
ParametricPlot@88Cos@tD, Sin@tD<, 82 Cos@tD, Sin@tD<<,
8t, 0, 2 Pi<, AspectRatio Automatic, PlotStyle 8Red, Blue<D
In[63]:=

1.0

0.5

Out[63]=
-2 -1 1 2

-0.5

-1.0

Las opciones para dibujar una gr


afica en estas coordenadas son las mismas que
las de Plot.

Gr
aficas 3D en forma param
etrica
La funci
on ParametricPlot3D nos permite representar superficies dadas en for-
ma parametrica. En primer lugar hemos de cargar el paquete
<<GraphicsParametricPlot3D
Por ejemplo, el tronco de cono cuyas coordenadas parametricas son (u, v) =
(v cos u, v sin u, v) donde 0 u 2, 0 v 4. Buscaremos el punto de vista
adecuado,
ParametricPlot3D@8u Cos@vD, u Sin@vD, u<,
8v, 0, 2 Pi<, 8u, 0, 40<, ViewPoint -> 8-2.711, -1.975, 0.447<D
In[2]:=

0 20 40
-40 -20
40

30

20
Out[2]=

10

0
40
20
0
-20
-40

Ejercicio 3.8. Haz la representaci


on gr
afica del cono del apartado anterior y asigna
etiqueta a los ejes.
Ejercicio 3.9. Haz la representaci
on gr
afica del cilindro con eje de simetra z, de
radio 6 y z [2, 2].

40
Representaci
on gr
afica de curvas en el espacio
La funci on ParametricPlot3D nos permite tambien representar graficamente
curvas en el espacio, definidas por sus ecuaciones parametricas ~ (t) = (x(t), y(t), z(t))
donde a t b. Por ejemplo, hacemos la representacion grafica de una espiral de
ecuaciones parametricas ~ (t) = (2 cos t, 2 sin t, t), t [0, 6],

In[2]:= ParametricPlot3D@82 Cos@tD, 2 Sin@tD, t, Blue<, 8t, 0, 6 Pi<D

Ejercicio 3.10. Representa en un mismo gr afico y en distinto color la curva de


Viviani de ecuaciones parametricas ~ (t) = (cos2 t, sin t cos t, sin t), t [2, 2] y la
~ (t) = (cos t, sin t, 0), t [0, 2]. Pon etiqueta a los ejes coordenados.
circunferencia

41
Pr
actica 4

Interpolaci
on y aproximaci
on de
funciones

La interpolacion, que es el c
alculo de valores para una funcion tabulada en puntos
que no aparecen en la tabla, es, hist oricamente, una tarea fundamental. Los nom-
bres de muchos matem aticos famosos estan asociados con metodos de interpolacion:
Newton, Gauss, Bessel, Stirling, Chebyshev, etc.
Aunque hoy en da, los estudiantes rara vez tiene que interpolar para valores de
senos, logaritmos y dem as funciones no algebraicas a partir de tablas, sus calculado-
ras y computadoras usan estas tecnicas para calcular esos valores y creemos que es
importante que los estudiantes entiendan como funcionan las calculadoras. Ademas,
estos metodos resultan interesantes ya que constituyen la base para muchos proce-
dimientos que estudiar an, como los de derivacion e integracion numerica, resolucion
de ecuaciones diferenciales, etc. Por otro lado, la interpolacion con polinomios sirve
como una excelente introducci on para ciertas tecnicas de aproximacion de curvas
suaves, tecnicas que resultan muy u tiles a los alumnos de ingeniera.

4.1. Polinomio interpolador de Lagrange


En general, dados un entero positivo n, los n + 1 puntos x0 , x1 , ..., xn (llama-
dos nodos), distintos dos a dos, en la recta real y los valores correspondientes
f (x0 ), f (x1 ), ..., f (xn ) de una funci
on, el problema de interpolacion polinomial con-
siste en encontrar un polinomio de grado n, tal que

pn (xi ) = f (xi ), i = 0, 1, ..., n

Este problema tiene soluci on u


nica; el polinomio que satisface estos requisitos se
conoce como polinomio interpolador o interpolante de Lagrange de la funcion f en
los puntos x0 , x1 , ..., xn .
Ejemplo 4.1. Calcular el polinomio de interpolaci
on que pasa por (1, 1), (2, 0),
(4, 0), (5, 1), (6, 1.5).
Soluci
on: Un polinomio que pasa por cinco puntos debe ser de grado cuatro,
luego se han de encontrar los valores de ai en el polinomio:

42
y = a0 + a1 x + a2 x2 + a3 x3 + a4 x4
para que pase por los puntos exigidos. Esto es equivalente a resolver un sistema
de ecuaciones lineales, donde ai son las incognitas.
datos = 881, 1<, 82, 0<, 84, 0<, 85, 1<, 86, 1.5<<;
x = 81, 2, 4, 5, 6<;
y = 81, 0, 0, 1, 1.5<;
sol = Solve@Table@y@@iDD a0 + a1 * x@@iDD + a2 * Hx@@iDDL ^ 2
+ a3 * Hx@@iDDL ^ 3 + a4 * Hx@@iDDL ^ 4, 8i, 1, 5<D, 8a0, a1, a2, a3, a4<D;
pol@t_D = Sum@sol@@1DD@@iDD@@2DD * t ^ Hi - 1L, 8i, 1, 5<D

1.5 + 0.275 t - 1.09583 t2 + 0.35 t3 - 0.0291667 t4

Se pueden dibujar los puntos y el polinomio interpolador, observando que el


polinomio pasa por todos los puntos.
plot1 =
ListPlot@datos, PlotStyle 8Hue@0.0D, PointSize@0.01D<, DisplayFunction IdentityD;
plot2 = Plot@pol@tD, 8t, 1, 6<, DisplayFunction IdentityD;
Show@plot1, plot2, PlotRange AllD
1.5

1.0

0.5

2 3 4 5 6

El metodo anterior es laborioso. Se puede encontrar el polinomio interpolador P


mas facilmente si en vez de buscarse en potencias de x, se busca como una combi-
nacion lineal P (x) = b0 `0 (x) + b1 `1 (x) + + bn `n (x), donde `j (x) son polinomios
de grado n definidos como
(x x0 ) . . . (x xj1 )(x xj+1 ) . . . (x xn )
`j (x) = .
(xj x0 ) . . . (xj xj1 )(xj xj+1 ) . . . (xj xn )
Se cumple, obviamente, que

`j (xj ) = 1 y `j (xk ) = 0, si j 6= k

de donde se obtiene que bi = f (xi ), para todo i = 0, 1, . . . n. Y as,

P (x) = f (x0 )`0 (x) + f (x1 )`1 (x) + + f (xn )`n (x).

Notar que esta construcci


on no precisa de la resolucion de sistemas lineales. Resol-
vemos el ejemplo anterior con este metodo:

43
datos = 881, 1<, 82, 0<, 84, 0<, 85, 1<, 86, 1.5<<;
x = 81, 2, 4, 5, 6<;
y = 81, 0, 0, 1, 1.5<;
l@j_, t_D :=
Product@Ht - x@@iDDL Hx@@jDD - x@@iDDL, 8i, Complement@Range@Length@xDD, 8j<D<D
polLagrange@t_D := Sum@y@@jDD * l@j, tD, 8j, 1, Length@xD<D
Print@polLagrange@tDD

H2 - tL H4 - tL H5 - tL H6 - tL +
1
60

H6 - tL H-4 + tL H-2 + tL H-1 + tL + 0.0375 H-5 + tL H-4 + tL H-2 + tL H-1 + tL


1
12
Evidentemente, este polinomio coincide con el calculado anteriormente lo cual se
observa si lo expresamos en potencias de t

Expand@polLagrange@tDD

1.5 + 0.275 t - 1.09583 t2 + 0.35 t3 - 0.0291667 t4

Ejercicio 4.1. La tensi


on de vapor (en kilopascales) del helio lquido a varias tem-
peraturas (en grados Kelvin) es
T P
3.0 24.0
3.1 27.8
3.2 32.0
3.3 36.5
Aproxima la tensi on para 3.4 K usando interpolaci
on cuadr
atica (
ultimos 3 no-
dos) y c
ubica. El valor verdadero es 41.5.

Ejercicio 4.2. Usa la siguiente tabla de valores de la funci on de Euler para


hallar una aproximacion al valor de (1,23) mediante interpolaci
on c
ubica. El valor
verdadero es 0.91075.

x (x)
1.0 1.00000
1.1 0.95135
1.2 0.91817
1.3 0.89747

4.2. Polinomio interpolador de Newton


Otra forma de calcular el polinomio interpolador es debida a Newton. La idea
basica es construirlo por recurrencia. Primero se construye el polinomio de grado
6 0 que interpola a la funcion en el nodo x0 ; a continuacion el polinomio de grado
6 1 que interpola en x0 y x1 ; y as sucesivamente. La forma final del polinomio se
expresara

P (x) = c0 + c1 (x x0 ) + c2 (x x0 )(x x1 ) + + cn (x x0 )(x x1 ) (x xn1 ),

44
donde los coeficientes ci se calcular
an mediante las llamadas diferencias divididas,
definidas por recurrencia como sigue:
f [x1 , . . . , xi ] f [x0 , . . . , xi1 ]
ci = f [x0 , . . . , xi ] , i = 0, 1, . . . , n.
xi x0
La ventaja del polinomio interpolador de Newton es la sencillez de su formu-
lacion, junto con el hecho de que al a
nadir un nodo mas, pueden aprovecharse los
calculos realizados. El comando InterpolatingPolynomial[] utiliza el algoritmo
de diferencias divididas para calcular el polinomio interpolador. As, con los datos
del ejemplo anterior, se obtiene
polNewton@t_D = InterpolatingPolynomial@datos, tD

1.5 + H0.1 + H0.216667 + H-0.0291667 - 0.0291667 H-2 + tLL H-4 + tLL H-1 + tLL H-6 + tL

que al expresarlo en potencias de t coincide con los anteriores.

Ejercicio 4.3. Dada la tabla siguiente para la funci on f (x) = ex , encuentra los

valores aproximados de 3 e por interpolaci
on lineal y c
ubica.

x 0,0 0,2 0,4 0,6


f (x) 1,0000 1,2214 1,4918 1,8221
Ejercicio 4.4. Dados los puntos

x 0,5 0,2 0,7 0,1 0,0


f (x) 1,1518 0,7028 1,4845 0,1494 0,1353

1. Interpolar con un polinomio c ubico que pase por los cuatro primeros puntos y
utilizarlo para calcular f (0,2).

2. Repite el paso anterior, pero utilizando ahora los u


ltimos cuatro nodos. Co-
menta la diferencia.

4.3. Cota de error en la interpolaci


on
Un aspecto importante a considerar es la calidad de nuestra interpolacion, es
decir el error que se comete cuando se aproxima un punto distinto de los nodos.

Teorema 4.3.1. Si f Cn+1 (a, b) y xi (a, b) para i = 0, 1, ..., n, entonces, para


todo x (a, b) se verifica

f n+1 (x )
f (x) pn (x) = (x x0 ) (x x1 ) ... (x xn ) , x (a, b)
(n + 1)!

otesis del teorema anterior, si es |f n+1 (t) | 6 K, para todo


Corolario 1. Con las hip
t [a, b], entonces
K
|f (x) pn (x)| 6 |x x0 | |x x1 | . . . |x xn |
(n + 1)!

45
De la f
ormula anterior no se puede deducir que los polinomios de mayor grado
correspondan a una interpolaci on mejor. De hecho, esta interpolacion es peor al
aumentar el grado debido al caracter oscilatorio de los polinomios de grado alto. El
error tiene una dependencia directa de la derivada de orden n + 1 y de la proximidad
de los puntos a los nodos.

Ejercicio 4.5. Hacer una estimaci


on del error cometido en las aproximaciones de
los ejercicios 4.3 y 4.4.

4.3.1. El efecto Runge


on {pn (x)} de polinomios de interpolacion obtenida au-
Si se considera la sucesi
mentando indefinidamente la cantidad de nodos de interpolacion, se observa que al
crecer n, ademas de aumentar el grado del polinomio y el n umero de operaciones que
se han de realizar, se acent
ua la perdida de la precision en los extremos del intervalo
donde se interpola.
1
Ejercicio 4.6. La funci
on f (x) = , se conoce como funci on de Runge y
1 + x2
fue la utilizada por Runge para demostrar el efecto que lleva su nombre. Calcula
los polinomios interpoladores de grados 4,6 y 10, de dicha funci on en el intervalo
[5, 5], con puntos equiespaciados. Dibuja las gr
aficas de la funci
on y sus polinomios
interpoladores y comenta el resultado.

4.4. Interpolaci
on con un splin c
ubico
Una solucion al problema de la oscilacion de los polinomios de grado alto consiste
en subdividir el intervalo en intervalos mas peque nos e interpolar un numero menor
de nodos con polinomios de grado menor, se suele utilizar la interpolacion mediante
polinomios cubicos. Pero este metodo tambien es problematico porque las uniones
de los polinomios no tienen una pendiente continua. Para impedir este problema son
de utilidad los tipos especiales de polinomios denominados splines.
Por otro lado, el estudio de los splines conduce a algunas otras formas especiales
de polinomios (curvas de Bezier y splines-B) que no se interpolan, es decir, no pasan
exactamente por todos los puntos de la funcion, pero que son de mucha utilidad para
trazar curvas suaves. Aunque los splines pueden ser de cualquier grado, usaremos
los de grado tres por ser los m as conocidos.
El ajuste de una curva mediante splines c ubicos exige la creacion de una sucesion
de polinomios c ubicos sobre intervalos sucesivos de los datos con la condicion de que
la pendiente de los polinomios debe coincidir en los nodos en que se unen. As, se
escribe la ecuaci on para un polinomio c ubico, gi (x) , en el i-esimo intervalo, entre
los puntos (xi , yi ) y (xi+1 , yi+1 ) y la funcion splin c
ubico que se desea es de la forma

g (x) = gi (x) , x [xi , xi+1 ]

y cumple las condiciones:

1. gi (xi ) = yi , i = 0, 1, ..., n 1, gn1 (xn ) = yn ; (interpola los nodos)

46
2. gi (xi+1 ) = gi+1 (xi+1 ) , i = 0, 1, ..., n 2; (para que sea continua)

3. gi0 (xi+1 ) = gi+1


0 (xi+1 ) , i = 0, 1, ..., n 2; (para que sea de clase C1 )

4. gi00 (xi+1 ) = gi+1


00 (x
i+1 ) , i = 0, 1, ..., n 2. (para que sea de clase C2 )

De donde se obtiene

yi+1 = ai (x xi+1 )3 + bi (x xi+1 )2 + ci (x xi+1 ) + di =


= ai h3i + bi h2i + ci hi + di , i = 0, 1, ..., n 1.

Si se hace Si = gi00 (xi ) y Sn = gn1


00 (xn ) , los valores de los coeficientes vienen dados
por

Si+1 Si Si yi+1 yi 2hi Si + hi Si+1


ai = , bi = , ci = , di = yi
6hi 2 hi 6
Como los nodos extremos no tienen ninguna condicion hay distintas aproxima-
ciones, la m
as sencilla es la lineal S0 = Sn = 0.
Mathematica tiene esta aproximacion incorporada en el paquete
NumericalMath`Spline`

Ejemplo 4.2. Veamos como interpolar mediante un splin c


ubico la siguiente tabla
de datos
0 1 2 0
0 0 2 1

Se necesita cargar el paquete NumericalMath1 que puede hacerse con el comando


Needs@"NumericalMath`"D

Introducimos los datos:


puntos = 880, 0<, 81, 0<, 82, 2<, 80, 1<<;

Ahora podemos hacer uso de la funcion SplineFit que calcula una curva pa-
rametrica (de clase C 1 ) que interpola los puntos dados. Esta curva esta formada
por la union de polinomios de grado 3 y puede ser representada por el comando
ParametricPlot como se ve a continuacion:
spline = SplineFit@puntos, CubicD

SplineFunction@Cubic, 80., 3.<, <>D

1
En la versi
on 6 de Mathematica el paquete se llama Splines

47
Show@Graphics@Point@puntosDD,
ParametricPlot@spline@tD, 8t, 0, 3<D, Axes True, PlotRange AllD

2.0

1.5

1.0

0.5

0.5 1.0 1.5 2.0

Observa que no conocemos la expresion de la funcion interpolante aunque pode-


mos calcular el valor en un nodo, dando valor al parametro. El valor del parametro
en 0 es el primer punto, en 1 el segundo y as sucesivamente. Notese que en este caso
los nodos xi pueden estar repetidos y la curva puede autointersectarse.
spline@2D

82, 2<

spline@1D

81, 0<

Ejemplo 4.3. Veamos un ejemplo de una curva con autointersecciones.


datos = 880, 0<, 81, 0<, 82, 2<, 80, 1<, 82, 1<, 81, 2<<;
spline2 = SplineFit@datos, CubicD;
Show@Graphics@Point@datosDD,
ParametricPlot@spline2@tD, 8t, 0, 5<D, Axes True, PlotRange AllD

2.0

1.5

1.0

0.5

0.5 1.0 1.5 2.0

48
4.5. Ejercicios
Ejercicio 4.7. Los datos de la siguiente tabla provienen de observaciones astron
omi-
cas de un tipo de estrella variable denominada variable cefeida y representan mag-
nitudes en su variaci
on aparente con el tiempo:

Tiempo 0.0 0.2 0.3 0.4 0.5 0.6 0.7 0.8 1.0
Magnitud aparente 0.302 0.185 0.106 0.093 0.240 0.579 0.561 0.468 0.302
Dibujar una curva de interpolaci
on usando

1. un polinomio interpolador,

2. una aproximaci
on de splines c
ubicos.

Compara los resultados que se obtienen con las distintas aproximaciones para
t=0.25

Ejercicio 4.8. En un experimento se obtuvieron los siguientes datos

t -1 -0.96 -0.86 -0.79 0.22 0.5 0.930


y -1 -0.151 0.894 0.986 0.895 0.5 -0.306

1. Dibuja los puntos y la curva de interpolaci


on de forma intuitiva.

2. Calcula y dibuja el polinomio de sexto grado que interpola estos puntos.

3. Dibuja una curva de interpolaci


on usando splines c
ubicos.

4. Compara los resultados.

5. Que valores obtienes para t = 0,90 con las distintas curvas de interpolaci
on
obtenidas?

Ejercicio 4.9. Los datos siguientes representan la potencia diaria, en megawatts,


generada por una central electrica de servicio regional, durante el mes de agosto de
1998, y la temperatura atmosferica, en grados Fahrenheit, registrada a las 11 a.m.
en una localidad cercana:
Temperatura 95 96 97 99 94
Potencia 153.4 158.5 159.6 160.0 154.0

1. Utiliza tres puntos para calcular un polinomio de interpolaci


on de grado dos
que puedas utilizar para interpolar en T = 98.

2. Utiliza todos los puntos para calcular un polinomio de interpolaci


on de grado
cuatro.

3. Utiliza los dos resultados anteriores para calcular el valor de P cuando T = 98.
Que resultado consideras m as correcto?

49
Pr
actica 5

Integraci
on num
erica

Con frecuencia surge la necesidad de evaluar la integral definida de una funcion


que no tiene una primitiva expresable en terminos de funciones elementales, en
cuyo caso es preciso recurrir a tecnicas de evaluacion aproximadas. En este punto,
varias posibilidades son factibles. Una de ellas es acudir a programas de calculo
simbolico de prop
osito general, tales como Mathematica, el cual incorpora tambien
comandos que eval uan integrales de forma aproximada por medio de algoritmos
normalmente ocultos al usuario. Otra posibilidad consiste en usar las funciones y
programas contenidos en bibliotecas de calculo numerico, basados en algoritmos
muy eficientes y que ofrecen excelentes prestaciones al usuario, tales como NAG e
IMSL. Una tercera opci on es desarrollar, a partir de un algoritmo dado, un programa
propio que implemente dicho algoritmo sobre un ordenador. En esta practica, por
medio del programa Mathematica consideraremos la tercera posibilidad. Para ello
empezaremos estudiando algunos metodos para el calculo aproximado de integrales
Z b
I= f (x)dx, (5.1)
a

donde f es una funci on integrable en el intervalo acotado (a, b). Por razones histori-
cas, el calculo de integrales se conoce como cuadratura, reservandose el termino
integraci
on para la resolucion de ecuaciones diferenciales.
Por que usar cuadratura numerica en vez de calcular (5.1) por la regla de Barrow
(teorema fundamental del c alculo)? Varias pueden ser las razones:

Es posible que no se disponga de la expresion analtica del integrando f , sino


solo de una tabla de valores de f o de una subrutina que permita evaluar f en
cualquier punto x.

Aunque se conozca la expresi


on analtica de f y esta sea una funcion elemental,
la primitiva de f quiz
a no sea elemental. Como ejemplo, podemos citar la
on f (x) = exp(x2 ).
funci

Aunque la primitiva de f sea elemental, encontrarla puede requerir de algun


procedimiento particularmente ingenioso (por ejemplo, un cambio de variable),
no siempre f
acil de descubrir.

50
Aunque la primitiva sea elemental y obtenible sin recurrir a ideas mas o menos
ingeniosas, encontrar esa primitiva puede ser un proceso largo y tedioso, o
requerir tecnicas numericas m
as complejas que las que se necesitan para hallar
(5.1) de modo directo. Por ejemplo, si f es una funcion racional la primitiva
se puede encontrar aplicando tecnicas sistematicas, pero que requieren hallar
todos los ceros del denominador. Ahora bien, esta tarea en general hay que
llevarla a cabo mediante aproximaciones numericas que son mas costosas que
aproximar (5.1) directamente.

5.1. Reglas de cuadratura


La mayor parte de los metodos numericos aproximan (5.1) por una combinacion
lineal de valores de f :
I IN +1 (f ) = 0 f (x0 ) + + N f (xN ). (5.2)
Elegidos y fijados N 0, i y xi , la expresion (5.2) asocia a cada funcion f un
n
umero real y constituye lo que se llama una regla de cuadratura. Los xi se llaman
abscisas o nodos de la regla y supondremos que son dos a dos distintos. Los i se
denominan pesos o coeficientes de la regla.
Hay cuatro reglas particularmente sencillas y que introducimos a continuacion.
La regla de los rect
angulos
I R (f ) = (b a)f (a). (5.3)
La regla del punto medio
a+b
I P M (f ) = (b a)f (c), c= . (5.4)
2
La regla de los trapecios
ba ba
I T (f ) = f (a) + f (b). (5.5)
2 2
La regla de Simpson
ba 4(b a) ba a+b
I S (f ) = f (a) + f (c) + f (b), c= . (5.6)
6 6 6 2
Decimos que una regla de cuadratura (5.2) tiene grado de exactitud M 0 si
halla exactamente la integral de cada polinomio de grado M (i.e., I(f ) = IN +1 (f )
para cada polinomio de grado M ), pero no halla exactamente la integral de alg un
polinomio de grado M +1. En principio, parece razonable suponer que es conveniente
considerar reglas de grado de exactitud alto.
Es facil probar que el grado de exactitud de las reglas de cuadratura introducidas
anteriormente es el siguiente:
Regla de los rect
angulos. Grado de exactitud: 0.
Regla del punto medio. Grado de exactitud: 1.
Regla de los trapecios. Grado de exactitud: 1.
Regla de Simpson. Grado de exactitud: 3.

51
5.2. Obtenci
on de reglas de cuadratura
Supondremos ahora que en (5.2) hemos elegido N y los nodos xi y tratemos de
determinar de manera razonable los pesos i . Para resolver este problema, varias
son los procedimientos posibles. Aqu analizaremos dos de ellos.

5.2.1. El m
etodo interpolatorio
Sustituyamos el integrando f por el polinomio R b P de grado N que coincide
con el en los N + 1 nodos xi . Podremos tomar a P (x)dx como aproximacion al
verdadero valor (5.1), es decir, definir una regla mediante
Z b
IN +1 (f ) = I(P ) = P (x)dx. (5.7)
a

Si expresamos P en la forma del polinomio interpolador de Lagrange (Practica 4),


tendremos
Z b Z b
IN +1 (f ) = f (x0 ) `0 (x)dx + + f (xN ) `N (x)dx,
a a

con lo que los pesos buscados son


Z b
i = `i (x)dx, i = 0, . . . , N (5.8)
a

Fijemonos en que el segundo miembro de (5.8) solo depende de las abscisas y es por
tanto independiente del integrando f . La regla (5.2) con los pesos (5.8) se llama regla
interpolatoria correspondiente a las abscisas xi . El siguiente teorema nos garantiza
una cota inferior para su grado de exactitud.

Teorema 5.2.1. Dados N 0 y N + 1 abscisas xi dos a dos distintas, la corres-


pondiente regla de cuadratura interpolatoria (5.2), (5.8) tiene grado de exactitud
N.

La demostraci on de este teorema es sencilla: si el integrando f es un polinomio


de grado N entonces su polinomio interpolador P es identicamente f y la igualdad
(5.7) revela que IN +1 (f ) = I(f ).
Es facil ver que la regla interpolatoria con N = 0 basada en la abscisa x0 = a
es precisamente la del rect angulo (5.3), dado que en este caso el interpolante es la
constante f (a), cuya integral vale
Z b
f (a)dx = (b a)f (a).
a

Del mismo modo, la regla interpolatoria con N = 0 basada en la abscisa x0 = c =


(a + b)/2 resulta ser la del punto medio.

52
5.2.2. El m
etodo de coeficientes indeterminados
Esta basado en la observaci on de que la regla (5.2) tiene grado de exactitud k
si y solo si IN +1 (f ) = I(f ) cuando f (x) = 1, x, . . . , xk , es decir,

0 + 1 + + N = ba
0 x0 + 1 x1 + + N xN = (b2 a2 )/2
.. .. .. .. (5.9)
. + . + + . = .
0 xk0 + 1 xk1 + + N xkN = (bk+1 ak+1 )/(k + 1)

Este es un sistema de k + 1 ecuaciones para los N + 1 coeficientes i . Si se pretende


alcanzar grado N , al final tendremos tantas ecuaciones como coeficientes. Ademas,
como la matriz de coeficientes es de Vandermonde con abscisas dos a dos distintas,
el sistema tiene soluci
on unica. As se demuestra el siguiente resultado.

Teorema 5.2.2. Dados N 0 y N + 1 abscisas xi dos a dos distintas, hay una


u on de pesos i para los cuales la regla (5.2) tiene grado de exactitud N .
nica elecci
Los pesos pueden hallarse resolviendo el sistema (5.9) con k = N .

Teorema 5.2.3. Dados N 0 y N + 1 abscisas xi dos a dos distintas, la correspon-


diente regla interpolatoria es la u
nica con esas abscisas que tiene grado de exactitud
N . Los pesos pueden hallarse resolviendo el sistema (5.9) con k = N o por la
f
ormula (5.8).

5.3. Error de cuadratura


Nos interesa ahora estudiar el error EN +1 (f ) = I(f ) IN +1 (f ) que se comete al
cambiar el verdadero valor de una integral por la aproximacion (5.2). Resumiendo un
tratamiento que excede con mucho los objetivos de este trabajo, podemos concluir
lo siguiente para las reglas de cuadratura que venimos manejando.
La regla de los rect
angulos. Si f tiene derivada continua en [a, b], entonces existe
un punto [a, b] para el que

(b a)2 0
E R (f ) = f (). (5.10)
2
La regla del punto medio. Si f tiene dos derivadas continuas en [a, b], entonces existe
un punto [a, b] para el que

(b a)3 00
E P M (f ) = f (). (5.11)
24
La regla de los trapecios. Si f tiene dos derivadas continuas en [a, b], entonces existe
un punto [a, b] para el que

(b a)3 00
E T (f ) = f (). (5.12)
24

53
La regla de Simpson. Si f tiene cuatro derivadas continuas en [a, b], entonces existe
un punto [a, b] para el que

(b a)5 (iv)
E S (f ) = f (). (5.13)
2880
El punto depende obviamente tanto de la funcion a integrar f como de la regla
considerada. Observese que el orden de la derivada M + 1 que aparece es una unidad
superior al grado de exactitud M .

5.4. Reglas compuestas


Las reglas que hemos considerado hasta ahora (rectangulos, punto medio, tra-
pecios, Simpson) son de utilidad limitada. Se observa de (5.10)-(5.13) que para que
el error al usarlas sea pequeno es preciso que la longitud b a del intervalo de inte-
gracion sea pequena con respecto al tama no de las derivadas del integrando. Ahora
bien, puede ocurrir que, habiendo aproximado una integral por ejemplo con la regla
de Simpson, nos encontremos con que el error es demasiado grande para nuestras
necesidades.
En ese caso, una primera posibilidad (poco u til en la practica) consistira en
construir por uno de los metodos que vimos anteriormente una nueva regla cuyo
grado de exactitud sea m as alto que el de la regla de Simpson.
Otra idea, mucho m as fructfera, consiste en introducir una particion del inter-
valo,
: a = x0 < x1 < x2 < < xN = b,
escribir Z b Z x1 Z xN
f (x)dx = f (x)dx + + f (x)dx (5.14)
a x0 xN 1

y aproximar cada una de las integrales en los subintervalos por la regla de Simpson.
As obtendremos una aproximacion

x1 x0 4(x1 x0 ) x1 x0
I SC (f ) = f (x0 ) + f (x1/2 ) + f (x1 ) (5.15)
6 6 6
+
xN xN 1 4(xN xN 1 ) xN xN 1
+ f (xN 1 ) + f (xN 1/2 ) + f (xN )
6 6 6
donde hemos denotado xi1/2 = (xi1 +xi )/2, i = 1, . . . , N . A esta regla de cuadratu-
ra la llamaremos regla de Simpson compuesta relativa a la particion . Observemos
que esta es una regla de la forma (5.2) cuyas abscisas son los puntos de la particion
y los puntos medios de los subintervalos de la particion. Si los puntos de esta estan
igualmente espaciados con longitud h = (b a)/N y denotando por simplicidad
fi f (xi ), la regla de Simpson compuesta se puede escribir de forma equivalente
como
h X X
I SC = f0 + fN + 4 fm + 2 fm
3 m par
m impar

54
Si en vez de aproximar las integrales del segundo miembro de (5.14) por la regla
de Simpson, lo hacemos por las reglas del rectangulo, punto medio o trapecios,
obtenemos las reglas del rect
angulo compuesta, punto medio compuesta o trapecios
compuesta relativas a la partici
on .

I RC (f ) = (x1 x0 )f0 + + (xN xN 1 )fN 1 . (5.16)

I P M C (f ) = (x1 x0 )f (x1/2 ) + + (xN xN 1 )f (xN 1/2 ). (5.17)

x1 x0 x1 x0
I T C (f ) = f (x0 ) + f (x1 ) (5.18)
2 2
+
xN xN 1 xN xN 1
+ f (xN 1 ) + f (xN )
2 2
En terminos de h, esta u
ltima tambien se escribe como
h
I T C (f ) = (f0 + 2f1 + 2f2 + + 2fN 1 + fN ).
2

5.4.1. Errores en las reglas compuestas


Cuando se usa una regla compuesta el error cometido al cuadrar la integral en
[a, b] es la suma de los errores que se cometen en cada una de las N cuadraturas co-
rrespondientes a los subintervalos [xi1 , xi ]. Por ejemplo, para la regla del rectangulo
compuesta, restando (5.16) de (5.14) tenemos
Z x1
E RC (f ) = I(f ) I RC (f ) = f (x)dx (x1 x0 )f (x0 )
x0
+ Z
xN
+ f (x)dx (xN xN 1 )f (xN 1 ).
xN 1

Usando la f ormula (5.10) podemos escribir para integrandos con derivada continua
en [a, b]
(x1 x0 )2 0 (xN xN 1 )2 0
E RC (f ) = f (1 ) + + f (N ),
2 2
siendo los i puntos de [xi1 , xi ], i = 1, . . . , N . Se puede demostrar que existe un
[a, b] tal que
1
E RC (f ) = [(x1 x0 )2 + + (xN xN 1 )2 ]f 0 ().
2
A partir de esta expresi
on se puede obtener una cota como sigue. Tomemos valores
absolutos y mayoremos cada (xi xi1 )2 por h(xi xi1 ), con h = maxi (xi xi1 ).
Como
(x1 x0 ) + + (xN xN 1 ) = xN x0 = b a,
el resultado es
1
|E RC (f )| (b a)hK1 , (5.19)
2

55
con K1 una cota del valor absoluto de la derivada de f en [a, b]. De aqu se deduce
la convergencia: al hacer la partici on mas y mas fina el error de la cuadratura tiende
a cero. Adem as, la convergencia es de primer orden: dividir por dos el diametro de
la particion h divide por dos la cota del error.
De la misma forma, se obtiene para funciones con dos derivadas continuas en
[a, b],
1
|E P M C (f )| (b a)h2 K2 , (5.20)
24
1
|E T C (f )| (b a)h2 K2 , (5.21)
12
y para funciones con cuatro derivadas continuas en [a, b],
1
|E SC (f )| (b a)h4 K4 , (5.22)
2880
siendo Ki una cota del valor absoluto de la derivada i-esima en [a, b]. Estas formulas
muestran la convergencia de las respectivas reglas: cuadratica para la regla del punto
medio y la de los trapecios y cuartica para la regla de Simpson. Observese que en
general la convergencia es de orden M + 1 para una regla compuesta basada en una
simple de grado de exactitud M .

5.5. Algoritmo de los m


etodos en Mathematica
Utilizando el programa Mathematica es facil construir procedimientos para cal-
cular integrales de forma numerica aproximada. Por ejemplo, la regla del trapecio
se puede implementar as:
trapecios[f_, {var_, a_, b_, n_}] :=
Module[{g, h, x, y},
g = Function[var, f];
h = (b - a)/n;
x = Table[a + i h, {i, 0, n}];
y = Table[g[x[[i]]], {i, 1, n + 1}];
h/2 (y[[1]] + y[[n + 1]] +
2 Sum[y[[i]], {i, 2, n}])
]
En este algoritmo utilizamos la funcion Module, la cual declara las variables
x, y, h como locales, de forma que si se han empleado en la misma sesion de
Mathematica, sus valores no influyen en el resultado. La funcion Module tiene dos
argumentos: el primero es una lista de las variables locales y el segundo corresponde
al valor que queremos dar a las variables locales y por u ltimo la expresion que
queramos calcular. Las expresiones del segundo argumento deben ir separadas por
punto y coma (;).
A continuaci
on aproximamos, con 20 subintervalos, la integral definida
Z
sin x dx
0

56
N[trapecios[Sin[x], {x, 0, Pi, 20}]]

Tambien podemos aproximar una integral doble, por ejemplo


Z 1Z 1p
1 y 2 dy dx
0 x

N[trapecios[trapecios[Sqrt[1 - y^2],
{y, x, 1, 30}], {x, 0, 1, 30}]]

El algoritmo del metodo de Simpson se puede implementar de la siguiente forma:

simpson[f_, {a_, b_, n_}] :=


Module[{x, y, h},
h = (b - a)/n;
x = Table[a + i * h, {i, 0, n}];
y = Table[f[x[[i]]], {i, 1, n + 1}];
h/3 * ( 2 Sum[y[[i]], {i, 3, n - 1, 2}] +
4 Sum[y[[i]], {i, 2, n, 2}] +
y[[1]] + y[[n + 1]] )
]

Utilizando este algoritmo podemos aproximar cualquier integral definida:

f[x_] = Sin[x];
N[simpson[f, {0, Pi, 20}]

Aqu hemos tomado una partici


on del intervalo [0, ] con 20 subintervalos.
Tambien se pueden aproximar integrales multiples con la formula de Simpson:

g[y_] = Sqrt[1 - y^2];


f[x_] = simpson[g, {x, 1, 30}];
N[simpson[f, {0, 1, 30}]]

Mathematica dispone de la funci on NIntegrate para aproximar numericamente


una integral. Esta funcion utiliza un algoritmo adaptivo, que divide recursivamente
la region de integraci
on de manera que se obtenga una precision prefijada en el
resultado final.

f[x_] = Sin[x];
NIntegrate[f[x], {x, 0, Pi}]

La funci
on NIntegrate tambien permite obtener aproximaciones numericas para
integrales dobles:

NIntegrate[Sqrt[1 - y^2], {x, 0, 1}, {y, x, 1}]

57
5.6. Ejercicios
Ejercicio 5.1. Usar la regla de los trapecios con h = 0,5 para evaluar
Z 2
I= (x2 3x + 4)dx
0

y, mediante el c
alculo exacto de la integral, examinar la estimaci
on del error dada
por la f
ormula (5.21).
Ejercicio 5.2. Utilizar la regla de los trapecios y la regla de Simpson compuestas
con 10 puntos para calcular las siguientes integrales:
Z
1. sin x dx
0
Z
sin x
2. dx
x
2

Ejercicio 5.3. Calcular las integrales siguientes utilizando las reglas de cuadratura
estudiadas.
Z 1Z 1p
1. 1 y 2 dy dx
0 x
Z 0,5 Z x3
2. ey/x dy dx
0,1 x4

Ejercicio 5.4. Evaluar la integral


Z 1
1
dx
0 1 + x2
(i) usando la regla del trapecio; (ii) usando la regla de Simpson; (iii) usando la regla
del punto medio, todas con 10 puntos. Evaluar tambien la integral analticamente y
comparar los resultados.
Ejercicio 5.5. Integrar la funci
on
f (x) = x2 (x2 2) sin x
entre 0 y /2 con el metodo de los trapecios con n = 1, . . . , 14 subdivisiones del in-
tervalo. Comparar con el resultado exacto y hacer una tabla con los errores relativos.
Ejercicio 5.6. Supongamos que queremos integrar la funci
on tabulada que se mues-
tra a continuaci
on:

x f (x) x f (x)
1.6 4.953 2.8 16.445
1.8 6.050 3.0 20.086
2.0 7.389 3.2 24.533
2.2 9.025 3.4 29.964
2.4 11.023 3.6 36.598
2.6 13.464 3.8 44.701

58
sobre el intervalo comprendido entre x =1.8 y x =3.4. Emplead para ello la regla
de los trapecios y el metodo de Simpson. Dan resultados comparables?

Ejercicio 5.7. Queremos calcular aproximadamente la integral


Z 1
exp(x2 /2)
dx,
0 2
cuyo integrando carece de primitiva elemental. El resultado verdadero es 0.3413447360.
Usa la regla de los trapecios en una partici
on uniforme de di ametro h para h = 1/2k ,
k = 1, 2, 3, 4 y muestra los resultados en forma de tabla. Dicha tabla ha de contener
el valor de h, el resultado aproximado obtenido, el error cometido y el error dividido
por h2 . Observa c omo decrece el error al refinar la partici
on: al dividir entre dos el
di
ametro el error se divide aproximadamente por cuatro (ecuaci on (5.21)).

Ejercicio 5.8. Repite el calculo, pero ahora con la regla de Simpson. Observa que
no s
olo los errores para cada h dado son m as pequenos, sino que la reducci
on del
error con h es ahora mucho m as r
apida que en la tabla anterior. Al dividir h entre
dos, por cuanto lo hace aproximadamente el error? (ayuda: muestra en la u ltima
columna de la tabla el error dividido por h4 ). Es esto de esperar?

Ejercicio 5.9. Es muy importante observar que en los dos problemas anteriores es
injusto compara los errores de los trapecios y Simpson correspondientes a un valor
de h dado. La regla de Simpson con h = 0,0625 precisa evaluar el integrando en 33
puntos; la de los trapecios con el mismo valor de h s olo eval
ua el integrando en 17
puntos, aproximadamente la mitad. Los metodos numericos deben compararse por
trabajo para un error deseado o por error para un trabajo dado. Una manera ilustra-
tiva de comparar los resultados de las dos tablas anteriores es construir una grafica
de eficiencia. Se trata de una representacion doblemente logartmica: en cada eje, las
sucesivas potencias de 10 aparecen a intervalos de longitud constante. En ordenadas
se representa el error, y en las abscisas el trabajo medido en n
umero de evaluaciones
del integrando. Con las tablas obtenidas en los dos ejercicios precedentes, elabora el
correspondiente diagrama de eficiencia. Has de obtener dos curvas (una para la regla
de los trapecios y otra para la regla de Simpson) que son aproximadamente lneas
rectas de pendientes 2 y 4 por que? Para un trabajo dado, la regla de Simpson
da un error menor que la de los trapecios.

59
Pr
actica 6

Sucesiones y series

En esta pr actica utilizaremos el programa Mathematica para ilustrar mediante


algunos comandos de c alculo de Mathematica, as como con algunos procedimientos
graficos, los conceptos de lmite de una sucesion, y los de polinomio de Taylor y de
serie de Taylor de una funci on de clase C . En el camino, aprenderemos algunos
comandos y tecnicas de Mathematica que tienen interes en s mismo.

6.1. Sucesiones
Para nuestro estudio de sucesiones de n
umeros reales necesitamos conocer los
siguientes aspectos de Mathematica:

(1) Definir funciones.

(2) El comando Table.

(3) El comando ListPlot.

(4) El comando FullSimplify.

(5) El comando Limit.

(6) El comando Solve.

1
Ejemplo 6.1. Estudiar la sucesi
on an = .
n2 +1
Soluci
on. Definimos la sucesi
on como una funcion

a[n ]:= 1/(n^2+1)

lo que nos permite obtener cualquier termino de la sucesion

1
a[30]=
901

60
y generar una tabla con algunos de sus terminos (por ejemplo, los 15 primeros)
mediante el comando Table que podemos utilizar para visualizar el comportamiento
de la sucesi
on usando el comando ListPlot:

term=Table[a[n],{n,1,15}]
 
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
, , , , , , , , , , , , , ,
2 5 10 17 26 37 50 65 82 101 122 145 170 197 226

ListPlot[term, PlotStyle->PointSize[0.02]]

0.2

0.15

0.1

0.05

2 4 6 8 10 12 14

La representaci
on grafica de los 15 primeros terminos de la sucesion nos sugiere
que la sucesi
on es monotona decreciente (an+1 < an ) y acotada inferiormente (por
cero). Dado que toda sucesi on estrictamente decreciente y acotada inferiormente es
convergente, el estudio gr afico nos sugiere que la sucesion tiene lmite (de hecho,
nos hace pensar que el lmite es cero). Vamos a ver como podemos comprobar estos
propiedades con Mathematica.

(1) Decrecimiento: El programa no puede darnos informacion directa sobre la


1 1
desigualdad < porque no reconoce n como un n
umero natural.
1 + (n + 1)2 1 + n2
La siguiente instrucci
on resuelve este problema:

FullSimplify[0<a[n+1]<a[n]<1, Element[n, Integers] && n>0]

True

(2) Acotaci
on: El estudio gr
afico sugiere que la sucesion esta acotada inferior-
mente por 0 y superiormente por 1. Para comprobar este extremo utilizamos la
sentencia:

FullSimplify[0<a[n]<1, Element[n, Integers] && n>0]

61
True

(3) Calculo del lmite:

Limit[a[n]],n->Infinity]

0
n
on an = (1)n
Ejemplo 6.2. Estudiar la sucesi
n+1
Soluci
on. Consideramos la funci
on

a[n ]:=(-1)^n n/(n+1)

y representamos sus 15 primeros terminos:

term=Table[a[n],{n,1,15}]

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
{ , , , , , , , , , , , , , , }
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

ListPlot[term, PlotStyle->PointSize[0.02]]

0.75
0.5
0.25

2 4 6 8 10 12 14
-0.25
-0.5
-0.75

El analisis de la representaci
on grafica de los 15 primeros terminos de la suce-
sion nos dice que la sucesi on es oscilante: los terminos impares son negativos y los
terminos pares positivos (esto es debido a la presencia del factor (1)n ). Ademas,
los lmites de las subsucesiones {a2n } y {a2n+1 } son diferentes; por tanto la sucesion
{an } no es convergente. Vamos a comprobarlo con Mathematica.
(1) Estudiamos la sucesi
on de los terminos pares:

FullSimplify[a[2n], Element[n,Integers]]

62
2n
2n + 1

Limit[FullSimplify[a[2n], Element[n,Integers], n->Infinity]]

(2) Estudiamos la sucesi


on de los terminos impares:

FullSimplify[a[2n+1], Element[n,Integers]]

1
1 +
2 + 2n

Limit[FullSimplify[a[2n+1], Element[n,Integers], n -> Infinity]]

1
Dado que las subsucesiones {a2n } y {a2n+1 } tienen lmites diferentes, la sucesion
{an } es divergente.

Ejemplo 6.3. Estudiar la sucesi


on definida mediante la relaci
on de recurrencia

xn = 1 + xn1 con x1 = 1.

Soluci
on. Al ser la sucesi
on recurrente, definimos la sucesion de la siguiente
forma:

x[1]=1; x[n_]:= Sqrt[1+x[n-1]]

lo que nos permite calcular cualquier termino de la sucesion, por ejemplo

x[3]
p
1+ 2

y calcular un valor aproximado

N[x[3],10]

1.553773974

Seguidamente representamos los 15 primeros terminos de la sucesion:

63
term=Table[x[n],{n,1,15}];

ListPlot[term, PlotStyle -> PointSize[0.02]]

1.6
1.575
1.55
1.525

2 4 6 8 10 12 14
1.475

Graficamente se observa que la sucesion es creciente (xn < xn+1 ) y esta acotada
superiormente (por ejemplo por 2), lo que implica que la sucesion es convergente. Si
intentamos calcular su lmite mediante el comando Limit, Mathematica cae en un
proceso recursivo y no es capaz de darnos el valor del lmite. Si lmn xn = L, debe
cumplirse la igualdad
L = 1 + L.
Usando esta igualdad podemos calcular el lmite mediante el comando Solve:

Solve[L == Sqrt[1+L], L]

1 
{{L 1 + 5 }}
2

6.2. Series de n
umeros reales
Los siguientes comandos son los que utilizaremos para el estudio del caracter de
una serie y para el c
alculo (exacto o aproximado) de su suma:

(1) Limit

(2) Sum

(3) Calculo de sumatorios

(4) N, NSum

64
(5) EulerSum (hay que cargar el paquete NumericalMathNLimit


X 1
Ejemplo 6.4. Estudiar el car
acter de la serie . En caso de ser conver-
2n2+1
n=0
gente, calcular su suma.

Soluci
on. (1) Estudio del car
acter:

Definimos el termino general y comprobamos el criterio de Cauchy:

a[n_]:= 1/(n^2+1)

Limit[a[n], n -> Infinity]

Por tanto, la serie puede ser convergente. Como es una serie de terminos positivos
aplicamos el criterio del cociente:

Limit[a[n+1]/a[n], n -> Infinity]

El criterio del cociente no decide. Aplicamos el criterio de Raabe:

Limit[ n (1-a[n+1]/a[n]),n-> Infinity]

Al ser el lmite mayor que 1, la serie es convergente.

(2) Calculo de la suma:

Podemos calcular la suma de la serie con el comando Sum:

Sum[a[n],{n,0,Infinity}]

  

2 sinh

    2
csch
2
cosh 2
+
2

2 2

En general, como en el caso que nos ocupa, el resultado obtenido no es u


til a efectos
practicos. No obstante, con Mathematica podemos obtener aproximaciones numeri-
cas de la suma de una serie con una precision determinada:

N[Sum[a[n],{n,0,Infinity}, 17]]

65
1.6371602671179672

Ademas del comando N, Mathematica incorpora la instruccion especfica NSum


para obtener el valor aproximado de una serie:

NSum[a[n],{n,0,Infinity}]

1.63716

El comando NSum nos da un valor aproximado de la suma con una precision de


6 dgitos.

En el caso de series alternadas es conveniente utilizar el comando EulerSum que


utiliza algoritmos matem aticos m
as complejos que los anteriores. Para poder usarlo
es necesario cargar el paquete NumericalMathNLimit".

Ejemplo 6.5. Aplica el criterio de Leibniz para series alternadas para demostrar

X (1)n
que la serie es convergente. Calcula un valor aproximado de su suma
2n 1
n=1
mediante el comando EulerSum.

Solucion. Tenemos que comprobar dos cosas: (1) el lmite del modulo del termino
general tiende a cero, y (2) el m
odulo del termino general es una sucesion monotona
decreciente.

a[n_]:= 1/(2n-1)

Limit[a[n], {n,0,n->Infinity}]

FullSimplify[0<a[n+1]<a[n]<2, Element[n, Integers] && n>0]

True

El criterio de Leibniz nos dice que la serie es convergente. Vamos a calcular un valor
aproximado de su suma:

<<NumericalMathNLimit

EulerSum[a[n],{n,1,Infinity}]

-0.785398

2
Ejercicio 6.1. (1) Dada la sucesi
on de termino general an = , se pide:
3n 2

66
(a) Escribir los 15 primeros terminos y representarlos gr
aficamente.

(b) Estudiar el crecimiento y la acotaci


on.

(c) Calcular su lmite.

(2) Probar que la sucesi


on de termino general an = cos n es oscilante, estudiando
las subsucesiones {a2n } y {a2n+1 }.

1 1
on recurrente xn+1 = + x2n para los valores x1 = 1, x1 =
(3) Estudiar la sucesi
4 2
1
y xn = .
4

X 1
(4) Probar que la serie es convergente y calcular su suma con una
(log n)n
n=2
aproximaci
on de 17 cifras significativas.

X (1)n
(5) Probar que la serie arm
onica alternada es convergente. Calcular su
n
n=2
suma con una aproximaci
on de 12 cifras significativas.

X  
(6) Probar que la serie (1)n sin es convergente. Hallar el valor de su
n
n=2
suma o, en su defecto, un valor aproximado.

6.3. Series de Taylor


Dada una funci on f que tiene derivadas de todos los ordenes en un punto a, se

X f (k) (a)
define la serie de Taylor de f en el punto a como la serie de potencias (x
k!
n=0
a)k . Su suma parcial n-esima es el denominado polinomio de Taylor de orden n, que
n
X f k (a)
se denota por Tn (f, a)(x) = f (a)+ (xa)k . Observa que las sumas parciales
k!
k=1
de la serie de Taylor son precisamente los polinomios de Taylor. Recordemos que los
dos problemas fundamentales asociados con la serie de Taylor de una funcion f
(cuando existe) son: (1) converge la serie de Taylor para alg un valor diferente de a,
y si es as, (2) su suma es f (x)?
En esta secci
on vamos a calcular los polinomios de Taylor de algunas funciones
en x = 0 y visualizaremos c
omo aproximan a la funcion en un intervalo centrado en
el origen.

Ejemplo 6.6. Definir una funci on que calcule los polinomios de Taylor de la fun-
cion f (x) = cos(x) y utilizarla para realizar una animaci on que muestre c
omo se
aproximan a f .

67
Soluci
on. El comando Series[func,x,a,grado] calcula la serie de Taylor en la
variable x centrada en el punto a hasta el termino indicado por grado.

Series[Cos[x], {x,0,10}]

x2 x4 x6 x8 x10
1 + + + O[x]11
2 24 720 40320 3628800

Al final de la respuesta aparece el termino O[x]11 que nos indica el orden de error
que nos indica que los terminos que faltan son todos de grado mayor o igual a once.
En realidad, como las derivadas de orden impar del coseno son cero, los terminos
de potencias impares son nulos, pero el comando usado no informa a Mathematica
de este detalle. Sin queremos que no aparezca el termino del error podemos usar el
comando

Normal[Series[Cos[x], {x,0,10}]]

x2 x4 x6 x8 x10
1 + +
2 24 720 40320 3628800
Para realizar la animaci
on que nos muestre la forma en que los polinomios de
Taylor aproximan a la funci
on en un entrono del origen, definiremos una funcion que
calcule los polinomios de Taylor en el origen:

Table[scos[n_,x_]= Normal[Series[Cos[x],{x,0,n},{n,0,100,2}];

Fjate que, como las derivadas de orden impar de la funcion coseno son nulas en el
origen, hemos hecho que el contador n tome solo los valores pares desde 0 a 100.
Podemos ahora extraer de la tabla el polinomio de Taylor que deseemos entre los
100 primeros:

scos[10,x]

x2 x4 x6 x8 x10
1 + +
2 24 720 40320 3628800
scos[12,x]

x2 x4 x6 x8 x10 x12
1 + + +
2 24 720 40320 3628800 479001600
Ahora podemos definir una funcion que realice pero no muestre en pantalla el grafico
del coseno junto con el de scos[n,x] en un intervalo [a, b]:

graf[n_,a_,b_]:=Plot[{Cos[x],scos[n,x]},{x,a,b}, PlotRange -> {-2,2},


PlotStyle -> {RGBColor[1,0,0], RGBColor[0,0,1]}]

68
Podemos visualizar ahora un polinomio de Taylor de orden dado en un intervalo pre-
fijado. Por ejemplo, podemos ver el polinomio de orden 10 en el intervalo [2, 2]:

graf[10,-2Pi,2Pi]

2
1.5
1
0.5

-6 -4 -2 2 4 6
-0.5
-1
-1.5
-2

Para realizar una animacion es necesario hacer todos los cuadros de la animacion,
como si se tratara de unos dibujos animados. Para ello definimos la funcion

animacos[n_, a_, b_] := Table[graf[k, a, b], {k, 0, n, 2}]

Ahora ya podemos realizar la animacion, escribe, por ejemplo

animacos[20,-2Pi,2Pi]

Una vez tengas todos los cuadros de la animacion, puedes activarla seleccionando uno
cualquiera de ellos y haciendo doble click. Puedes controlar la velocidad utilizando
los botones que habran aparecido en la esquina inferior izquierda de la pantalla.

Ejemplo 6.7. Dada la funci


on f (x) = log(1 + x), se pide:

(1) Calcula T10 (f, 0) y T20 (f, 0).

(2) Deduce, a partir de los resultados obtenidos en (1), la serie de Taylor T (f, 0)
de f en el origen.

(3) Calcula el radio de convergencia de T (f, 0).

(4) Realiza una animacion para visualizar que T (f, 0) representa a f en el inter-
valo de convergencia.

69
(5) Los extremos del intervalo de convergencia son los puntos x = 1 y x = 1.
Comprueba que T (f, 0) converge en ambos puntos. Representa T (f, 0) a f en
x = 1?, y en x = 1?
Soluci
on. (1)
Normal[Series[Log[1 + x], {x, 0,10}]]

x2 x3 x4 x5 x6 x7 x8 x9 x10
x + + + +
2 3 4 5 6 7 8 9 10

Normal[Series[Log[1 + x], {x, 0, 20}]]

x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14


x + + + + + + +
2 3 4 5 6 7 8 9 10 11 12 13 14
x 15 x 16 x 17 x18 x 19 x 20
+ +
15 16 17 18 19 20

X xn
(2) La expresi
on buscada es (1) n+1 .
n
n=1

(3) Teniendo en cuenta la f


ormula que nos proporciona el radio de convergencia
an+1
de una serie de potencias, hemos de calcular lm , donde an es el modulo del
n an
1
termino general an = :
n
Limit[(n/(n+1)), n -> Infinity]

Por tanto, el radio de convergencia es 1 y el intervalo de convergencia ] 1, 1[.

La animaci
on la realizamos siguiendo los pasos del ejemplo anterior. Primero
definimos una funci
on que calcule los polinomios de Taylor en el origen:

Table[slog[n_,x_]=Normal[Series[Log[1+x],{x,0,n},{n,0,100}];

y, a continuaci
on, extraemos de la tabla el polinomio de Taylor que deseemos entre
los 100 primeros:

slog[10,x]

x2 x3 x4 x5 x6 x7 x8 x9 x10
x + + + +
2 3 4 5 6 7 8 9 10
que nos proporciona el mismo resultado que en el apartado (1).

El siguiente paso es una funci


on que realice pero no muestre en pantalla el grafico
de nuestra funci
on junto con el de slog[n,x] en un intervalo [a, b]:

70
grafl[n_,a_,b_]:=Plot[{Log[1+x],slog[n,x]},{x,a,b}, PlotRange->{-2,2},
PlotStyle->{RGBColor[1,0,0],RGBColor[0,0,1]}]

Como antes visualizamos un polinomio de Taylor de orden dado en un intervalo


prefijado. Por ejemplo, podemos ver el polinomio de orden 5 en el intervalo [1, 1]:

grafl[10,-1,1]

2
1.5
1
0.5

-1 -0.5 0.5 1
-0.5
-1
-1.5
-2

Ya sabemos que para obtener una animacion es necesario hacer todos los cuadros
de la animaci
on, como si se tratara de unos dibujos animados:

animalog[n_, a_, b_] := Table[grafl[k,a,b], {k, 0, n}]

Podemos realizar la animaci


on mediante

animalog[10,-1,1]

Recuerda que cuando Mathematica te proporcione todos los cuadros de la animacion,


puedes activarla seleccionando uno cualquiera de ellos y haciendo doble click y que
la velocidad de la animaci on puede controlarse mediante los botones que aparecen
en la esquina inferior izquierda de la pantalla.

(1)n+1 xn
(5) Estudiamos la serie
P
n=1 en el punto x = 1. Primero calcula-
n
mos su termino general sustituyendo la x por 1:

Expand[(-1)^(n+1) (-1)^n/n]

(1)1+2n
n
a[n_]:= %

71
Se trata de una serie alternada. Aplicaremos el criterio de Leibniz para estudiar su
convergencia:

b[n_]:=Abs[a[n]]

Limit[b[n],{n,0,Infinity}]

FullSimplify[0<b[n+1]<b[n]<2, Element[n, Integers] && n>0]

True
P (1)n+1 xn
Por tanto la serie n=1 en el punto x = 1 es convergente. Obvia-
n
mente no representa a la funci on f (x) = log 1 + x en x = 1 porque la funcion no
esta definida en ese punto (por que?).

Veamos que pasa en el punto x = 1.

Expand[(-1)^(n+1) 2^n/n]

(1)1+n
n
c[n_]:= %

Se trata de una serie alternada. Como antes, aplicaremos el criterio de Leibniz para
estudiar su convergencia:

d[n_]:=Abs[c[n]]

Limit[d[n],{n,0,Infinity}]

FullSimplify[0<d[n+1]<d[n]<2, Element[n, Integers] && n>0]

True
(1)1+n
Por tanto, la serie
P
n=1 es convergente. Como la funcion f (x) = log(1 + x)
n
es continua en el punto x = 1, el teorema de Abel nos dice que


X (1)1+n
log 2 =
n
n=1

Veamos que nos dice Mathematica cuando calculamos el lmite de la serie:

72
Sum[(-1)^(1+n)/n,{n,1,Infinity}]

Log[2]

Ejercicio 6.2. (1) Definir una funci on que calcule los polinomios de Taylor de la
funcion f (x) = sen(x) y utilizarla para realizar una animacion que muestre
c
omo se aproximan a f .

on f (x) = ex . Calcular su
(2) Calcular la serie de Taylor en el origen de la funci
radio de convergencia y realizar una animacion para visualizar c
omo aproxima
la serie de Taylor a la funci
on.

(3) Dada la funci


on f (x) = arctan(1 + x), se pide:

(1) Calcula T10 (f, 0) y T20 (f, 0).

(2) Deduce, a partir de los resultados obtenidos en (1), la serie de Taylor


T (f, 0) de f en el origen.

(3) Calcula el radio de convergencia de T (f, 0).

(4) Realiza una animaci on para visualizar que T (f, 0) representa a f en el


intervalo de convergencia. Vara los intervalos para ver que sucede en el
intervalo de convergencia y fuera de el.

(5) Analiza la convergencia de la serie de Taylor en los extremos del intervalo.


Representa la serie de Taylor a la funci on f (x) = arctan(x) en los
extremos del intervalo?

73
Pr
actica 7

Ecuaciones diferenciales con


Mathematica

7.1. Tratamiento analtico


El objetivo de esta secci
on es doble. Por una parte, veremos como Mathematica es
capaz de resolver de forma autom atica la mayora de tipos de ecuaciones diferenciales
que se suelen estudiar en un primer curso sobre la materia con un solo comando.
Por otra parte, ilustraremos las principales tecnicas computacionales que se llevan a
cabo con el fin de reproducir en el ordenador la secuencia de calculos necesarios (la
mayora largos y tediosos) para obtener la solucion analtica (explcita o implcita)
de ecuaciones diferenciales de primer y segundo orden. Ademas, veremos como se
usa Mathematica para ampliar nuestro conocimiento acerca de las soluciones de una
ecuacion diferencial mediante su representacion grafica.
El comando b asico para la resolucion analtica de ecuaciones diferenciales en
Mathematica es DSolve, cuya sintaxis es la siguiente:

DSolve[{ODE, cond. inic.},y[x],x]

donde cond. inic. representa la condicion inicial. Si esta no aparece, el comando


devuelve una familia n-parametrica de soluciones.
No pretendemos efectuar un tratamiento en profundidad, sino mas bien ilustrar
algunas de las tecnicas que se pueden llevar a cabo en diferentes contextos. Para
ello, consideraremos brevemente algunos ejemplos practicos representativos de los
tipos de ecuaciones que se estudian en la teora y como se utiliza Mathematica para
su resoluci
on.

7.1.1. Ecuaciones diferenciales de primer orden


Ecuaciones de variables separables
Ejemplo 7.1. Resuelve la ecuaci
on diferencial

x2 + 8
y0 = .
(x2 5x + 6)y 2 cos y

74
En este caso, vamos a obtener una familia 1-parametrica de soluciones con el
comando DSolve:
ecdif1 = y '@xD Hx ^ 2 + 8L HHx ^ 2 - 5 x + 6L y@xD ^ 2 Cos@y@xDDL

I8 + x2 M Sec@y@xDD
y @xD ==
I6 - 5 x + x2 M y@xD2

DSolve@ecdif1, y@xD, xD

Solve::tdep : The equations appear to involve the


variables to be solved for in an essentially non-algebraic way.

H-2 + xL12
F - 2 Sin@y@xDD + 2 Cos@y@xDD y@xD + Sin@y@xDD y@xD2 == C@1D, 8y@xD<F
H-3 + xL17
SolveB-x + LogB

Esta soluci
on implcita se puede obtener tambien con la siguiente secuencia de
calculos, que es la que normalmente se lleva a cabo con papel y lapiz:
lhs = y ^ 2 Cos@yD; rhs = Hx ^ 2 + 8L Hx ^ 2 - 5 x + 6L;

s1 = Integrate@lhs, yD

2 y Cos@yD + I-2 + y2 M Sin@yD

s2 = Integrate@rhs, xD

x + 17 Log@-3 + xD - 12 Log@-2 + xD

solucion = s1 - s2 == c

-x + 2 y Cos@yD - 17 Log@-3 + xD + 12 Log@-2 + xD + I-2 + y2 M Sin@yD == c

Ejemplo 7.2. Resuelve la ecuaci


on

x2
y0 =
9 x2 ey cos y

con la condici
on inicial y(0) = 0.

Analogamente al caso anterior, primero la resolvemos con DSolve:


ec2 = y '@xD x ^ 2 HSqrt@9 - x ^ 2D Exp@y@xDD Cos@y@xDDL

y @xD ==
-y@xD x2 Sec@y@xDD

9 - x2

DSolve@8ec2, y@0D 0<, y@xD, xD

Solve::tdep : The equations appear to involve the


variables to be solved for in an essentially non-algebraic way.
1
SolveB-
2 -9 + x2

-9 x + x3 - y@xD 9 - x2 Cos@y@xDD + 9 -9 + x2 LogBx + -9 + x2 F - y@xD 9 - x2 Sin@y@xDD ==

+ Log@3D , 8y@xD<F
9
- -
2 2 2

75
Observese que el mensaje tiene que ver con el hecho de que Mathematica no puede
despejar explcitamente y, esto es, que se obtiene una solucion implcita. Ademas,
aparecen cantidades complejas, de manera que la expresion final no es ciertamente
muy manejable. Por ello, a continuacion procedemos paso a paso, tal como haramos
con lapiz y papel al tratar de resolver una ecuacion de variables separables. Fijemonos
en que al introducir la condici on inicial podemos calcular el valor de la constante
arbitraria, pero que, efectivamente, obtenemos una solucion implcita. No obstante,
dicha soluci on tambien se puede representar graficamente con relativa facilidad con
el comando ImplicitPlot, cargando previamente el paquete correspondiente.

In[1]:= lhs = Exp@yD Cos@yD; rhs = x ^ 2 Sqrt@9 - x ^ 2D;

In[2]:= s1 = Integrate@lhs, yD

1
Out[2]= y HCos@yD + Sin@yDL
2

In[3]:= s2 = Integrate@rhs, xD

1 9 x
Out[3]= - x 9 - x2 + ArcSinB F
2 2 3

In[4]:= sol = s1 s2 + c

1 1 9 x
Out[4]= y HCos@yD + Sin@yDL c - x 9 - x2 + ArcSinB F
2 2 2 3

In[5]:= cval = Solve@sol . y 0 . x 0, cD

1
Out[5]= ::c >>
2

In[6]:= solucion = sol . cval@@1DD

1 1 1 9 x
Out[6]= y HCos@yD + Sin@yDL - x 9 - x2 + ArcSinB F
2 2 2 2 3

In[7]:= << Graphics`ImplicitPlot`

In[8]:= graf1 = ImplicitPlot@solucion, 8x, - 3, 3<, 8y, - 4, 4<D

76
3

-3 -2 -1 1 2

Out[8]=

-1

-2

-3

-4

Ecuaciones exactas
Ejemplo 7.3. Obten la soluci
on general de la ecuaci
on

(1 + exy y + y cos(xy))dx + (1 + exy x + x cos(xy))dy = 0.

Como de costumbre, primero vemos que solucion nos proporciona DSolve.


m@x_, y_D = -1 + Exp@x yD y + y Cos@x yD;
n@x_, y_D = 1 + Exp@x yD x + x Cos@x yD;
ecu = DSolve@m@x, y@xDD + n@x, y@xDD y '@xD 0, y@xD, xD

Solve::tdep : The equations appear to involve the


variables to be solved for in an essentially non-algebraic way.

SolveAx y@xD - x + Sin@x y@xDD + y@xD == C@1D, 8y@xD<E

Observamos que de esta forma se obtiene una familia uniparametrica de solucio-


nes implcitas, dependiendo del par
ametro C[1].
Para ilustrar el procedimiento usual de resolucion de una ecuacion diferencial
exacta, presentamos a continuaci on la secuencia de comandos en Mathematica que
lleva a cabo dicho procedimiento. L ogicamente, se llega al mismo resultado, si bien
esta vez la familia de soluciones depende de la constante arbitraria c.

77
Finalmente, representamos gr aficamente en el dominio [, ] [, ] algu-
nas de las soluciones obtenidas, considerando diferentes valores del parametro c
[10, 10]. Para ello utilizamos el comando ContourPlot.

D@m@x, yD, yD D@n@x, yD, xD

True

paso1 = Integrate@m@x, yD, xD

x y - x + Sin@x yD

paso2 = D@paso1 + g@yD, yD

x y x + x Cos@x yD + g @yD

paso3 = Solve@paso2 n@x, yD, g '@yDD

88g @yD 1<<

paso4 = Integrate@g '@yD . paso3@@1DD, yD

solucion = paso1 + paso4 c

x y - x + y + Sin@x yD == c

ContourPlot@solucion@@1DD, 8x, -Pi, Pi<, 8y, -Pi, Pi<, Contours 15,


PlotPoints 30, PlotRange 8-10, 10<, ContourShading FalseD
3

-1

-2

-3
-3 -2 -1 0 1 2 3

78
Ecuaciones lineales
Ejemplo 7.4. Obten la soluci
on general de la ecuaci
on

xy 0 + 3y = x sin x.

En este caso aplicamos directamente DSolve. Fijemonos en que la solucion ge-


neral depende del parametro arbitrario C[1]. A continuacion representamos grafica-
mente algunas soluciones particulares, obtenidas dando valores diferentes al parame-
tro. En cualquier caso, observese el comportamiento de las mismas para valores de
x positivos grandes. Sabras explicar convincentemente este hecho?
ecli = x y '@xD + 3 y@xD x Sin@xD;

sol = DSolve@ecli, y@xD, xD

::y@xD >>
C@1D 6 x Cos@xD - x3 Cos@xD - 6 Sin@xD + 3 x2 Sin@xD
+
x3 x3
yy@c_D = Hy@xD . sol@@1DDL . C@1D c

c 6 x Cos@xD - x3 Cos@xD - 6 Sin@xD + 3 x2 Sin@xD


+
x3 x3
sols = Table@yy@cD, 8c, -3, 3, 1<D;

Plot@Evaluate@solsD, 8x, 0.1, 2 Pi<, AxesOrigin 80, 0<D

1 2 3 4 5 6

-1

-2

-3

7.1.2. Ecuaciones diferenciales lineales de segundo orden


En los ejemplos siguientes vemos como Mathematica resuelve las ecuaciones di-
ferenciales lineales de segundo orden y como se pueden representar graficamente sus
soluciones. De hecho, el procedimiento es similar independientemente del orden de
la ecuacion.
Aunque con l apiz y papel es relativamente sencillo obtener la solucion general
de una ecuaci on diferencial lineal con coeficientes constantes, Mathematica permite

79
de forma sencilla elaborar una gr afica con las soluciones para diferentes valores de
las constantes arbitrarias, tal como se pone de manifiesto a continuacion.

Ejemplo 7.5. Calcula la soluci


on general de la ecuaci
on diferencial

y 00 + 4y 0 + 13y = x cos2 (3x).

solu1 = DSolve@y ''@xD + 4 y '@xD + 13 y@xD x Cos@3 xD ^ 2, y@xD, xD

::y@xD -2 x C@2D Cos@3 xD + -2 x C@1D Sin@3 xD +


1
14 652 300
I-86 700 Cos@3 xD2 + 281 775 x Cos@3 xD2 - 6084 Cos@3 xD Cos@9 xD + 129 285 x Cos@3 xD Cos@9 xD +
72 250 Cos@3 xD Sin@3 xD + 375 700 x Cos@3 xD Sin@3 xD + 13 013 Cos@9 xD Sin@3 xD +
28 730 x Cos@9 xD Sin@3 xD - 266 184 Sin@3 xD2 + 974 610 x Sin@3 xD2 - 12 168 Cos@6 xD Sin@3 xD2 +
258 570 x Cos@6 xD Sin@3 xD2 - 13 013 Cos@3 xD Sin@9 xD - 28 730 x Cos@3 xD Sin@9 xDM>>

yy = y@xD . solu1@@1DD;

tograph = Table@yy . 8C@1D i, C@2D j<, 8i, -5, 5, 5<, 8j, -4, 4, 2<D Flatten;

Plot@Evaluate@tographD, 8x, -1, 1<, PlotRange 8-20, 20<, PlotPoints 100D


20

10

-1.0 -0.5 0.5 1.0

-10

-20

Ejemplo 7.6. Calcula la soluci


on general de la ecuaci
on diferencial

e4x
y 00 4y = .
x3

80
sola = DSolve@y ''@xD - 4 y@xD E ^ H-4 xL x ^ 3, y@xD, xD

-4 x I1 + 9 6 x x ExpIntegralEi@-6 xD - 2 x x ExpIntegralEi@-2 xDM


::y@xD 2 x C@1D + -2 x C@2D + >>
2x
figu1 = Table@y@xD . sola@@1DD . 8C@1D i, C@2D j<, 8i, -3, 3, 2<, 8j, -4, 4, 2<D Flatten;

Plot@Evaluate@figu1D, 8x, 0.01, 1<, PlotRange 8-15, 15<D

15

10

0.2 0.4 0.6 0.8 1.0

-5

-10

-15

A continuaci on vemos c omo Mathematica en ocasiones es capaz de resolver una


ecuacion diferencial lineal de segundo orden con coeficientes variables.
on xy 00 + 2y 0 xy = sin x.
Ejemplo 7.7. Resuelve la ecuaci

In[10]:= solu3 = DSolve@x y ''@xD + 2 y '@xD - x y@xD Sin@xD, y@xD, xD

-x C@1D x C@2D Sin@xD


Out[10]= ::y@xD + - >>
x 2x 2x

In[11]:= y2 = y@xD . solu3@@1DD . 8C@1D 1, C@2D 2<

-x x Sin@xD
Out[11]= + -
x x 2x

In[12]:= Plot@y2, 8x, 0, 4<D


20

15

10

1 2 3 4

Finalmente, consideremos un problema de valor inicial:

81
Ejemplo 7.8. Resuelve
1
2y 00 + 5y 0 + 5y = 0, y(0) = 0, y 0 (0) = .
2

solu4 = DSolve@82 y ''@xD + 5 y '@xD + 5 y@xD 0, y@0D 0, y '@0D 1 2<, y@xD, xD

F
15 x
2 -5 x4 SinB
::y@xD >>
4

15

Plot@y@xD . solu4@@1DD, 8x, -Pi 4, Pi<D

0.1

1 2 3

-0.1

-0.2

-0.3

7.1.3. Sistemas de ecuaciones diferenciales


El comando DSolve, con la sintaxis habitual, sirve tambien para resolver ciertos
tipos de sistemas de ecuaciones diferenciales, entre los que se cuentan los lineales
con coeficientes constantes. Analicemos su uso por medio de un ejemplo detallado.

Ejemplo 7.9. Calcula la soluci


on general del sistema

x0 = 5x + 2y
y 0 = 2x + 2y

Como se resolvera este problema con lapiz y papel? Si usamos metodos matri-
ciales, empezaramos escribiendo la matriz de coeficientes y calculando sus valores
propios y sus correspondientes subespacios propios. Despues, y dependiendo de la
multiplicidad de los valores propios y la dimension de los subespacios propios, es-
cribiramos dos soluciones linealmente independientes, con las cuales formaramos
una matriz fundamental del sistema. Naturalmente, esas soluciones independientes
dependeran de si los valores propios son reales o complejos. En Mathematica, este

82
proceso se lleva a cabo autom
aticamente con DSolve:
In[2]:= sol = DSolve@8x '@tD 5 x@tD + 2 y@tD, y '@tD -2 x@tD + 2 y@tD<, 8x@tD, y@tD<, tD

F
7 t
4 7 t2 C@2D SinB
::x@tD F+3 F ,
2 1 7 t 7 t
Out[2]= + 7 t2 C@1D 7 CosB 7 SinB
7 7 2 2

F
7 t
4 7 t2 C@1D SinB
F-3 F >>
2 1 7 t 7 t
y@tD - + 7 t2 C@2D 7 CosB 7 SinB
7 7 2 2

La soluci
on general para x(t) se obtiene con sol[[1,1,2]], mientras que y(t) se
obtiene con sol[[1,2,2]]:
In[3]:= x@t_D = sol@@1, 1, 2DD

F
7 t
4 7 t2 C@2D SinB
F+3 F
2 1 7 t 7 t
Out[3]= + 7 t2 C@1D 7 CosB 7 SinB
7 7 2 2

In[4]:= y@t_D = sol@@1, 2, 2DD

F
7 t
4 7 t2 C@1D SinB
F-3 F
2 1 7 t 7 t
Out[4]= - + 7 t2 C@2D 7 CosB 7 SinB
7 7 2 2

A continuaci
on vamos a representar graficamente la solucion para varios valores
de C[1] y C[2] creando primero una tabla de {x[t],y[t]} con C[1] remplazado por
i y C[2] remplazado por j, para i, j = 6, 4, 2, 0, 2, 4, 6. A dicha tabla la llamamos
funarray. Para convertir funarray en una lista de funciones preparada para ser
representadas con ParametricPlot, se usa Flatten para quitar los parentesis de
funarray. A dicha lista la llamamos tograph.
In[5]:= funarray = Table@8x@tD, y@tD< . 8C@1D i, C@2D j<, 8i, -6, 6, 2<, 8j, -6, 6, 2<D;

In[6]:= tograph = Flatten@funarray, 1D;

Seguidamente, se usa ParametricPlot para representar graficamente tograph


en el intervalo [1, 1], llam
andose a dicha grafica graphuno.
In[7]:= graphuno = ParametricPlot@Evaluate@tographD, 8t, -1, 1<, PlotRange 88-1, 1<, 8-1, 1<<D

83
1.0

0.5

-1.0 -0.5 0.5 1.0

-0.5

-1.0

Para determinar la direcci on asociada con cada solucion, se hace uso del pa-
quete PlotField dentro de Graphics (hasta la version 5.2 de Mathematica) o
VectorFieldPlots (versi on 6), el cual permite dibujar facilmente el campo de di-
recciones asociado al sistema.
Observese que en un sistema de ecuaciones con dos variables, x0 = X(x, y),
y 0 = Y (x, y), cada soluci
on ha de satisfacer la relacion

dy dy/dt Y (x, y)
= = f (x, y). (7.1)
dx dx/dt X(x, y)

Por consiguiente, el campo de direcciones asociado con el sistema de ecuaciones


diferenciales representa una colecci
on de vectores que son tangentes a la familia de
soluciones del sistema. El campo de direcciones para este ejemplo se dibuja con el
comando PlotVectorField (hasta la version 5.2) o VectorFieldPlot (version 6).
Recordemos a este respecto que el campo de direcciones de la ecuacion diferencial
(7.1) no es mas que la representaci
on grafica del campo vectorial en el plano:

F~ (x, y) = ~ + f (x, y)~.

Como estamos trabajando con la version 6, utilizamos VectorFieldPlot.

In[8]:= << VectorFieldPlots`;

In[10]:= graphdos = VectorFieldPlot@85 x + 2 y, -2 x + 2 y<, 8x, -1, 1<, 8y, -1, 1<D

84
Representando simult
aneamente la familia de soluciones con el campo de direc-
ciones precedente, vemos que cada solucion esta dirigida hacia afuera del origen
conforme se incrementa t.
In[11]:= Show@graphuno, graphdosD
1.0

0.5

-1.0 -0.5 0.5 1.0

-0.5

-1.0

85
7.2. Metodos num ericos para la resoluci
on de ecuacio-
nes diferenciales
Si bien las tecnicas analticas vistas en las clases de teora y en la seccion pre-
cedente resultan u tiles para analizar diversos modelos matematicos, lo cierto es que
la mayora de las ecuaciones diferenciales que se encuentran en las aplicaciones no
se pueden resolver ni explcita no implcitamente. Por ello, es necesario recurrir a
metodos numericos para obtener una aproximacion de la solucion de un problema
de valor inicial. Aqu analizaremos, como casos particulares suficientemente ilustra-
tivos y a la vez sencillos, el metodo de Euler y el metodo de RungeKutta de cuarto
orden.
Dado el problema de valor inicial
y 0 = f (x, y), a x b, y(x0 ) = y0 ,
el cual se supone que admite soluci nica y(x) de clase C2 en [a, b], se plantea
on u
la obtencion de una secuencia de valores aproximados y0 , y1 , . . . , yk , . . . de dicha
solucion en un conjunto de puntos x0 < x1 < < xk < . Si consideramos estos
puntos como igualmente espaciados sobre el intervalo [a, b], podemos escribir
xi = a + ih, i = 0, 1, . . . , N
para un cierto positivo N , de manera que h = (b a)/N es el tama
no de paso.
Empecemos escribiendo el desarrollo en serie de Taylor de y alrededor de x0 :
1 00
y(x) = y(x0 ) + y 0 (x0 )(x x0 ) + y (x0 )(x x0 )2 + .
2!
Como conocemos el valor de y en el punto inicial x = x0 , usamos este valor para
aproximar y en x1 = x0 + h, el cual esta proximo a x0 , de la siguiente manera.
Evaluamos primero la serie de Taylor en x1 = x0 + h para dar
1 00
y(x0 + h) = y(x0 ) + y 0 (x0 )h + y (x0 )h2 + .
2!
Sustituyendo y 0 = f (x, y) en este desarrollo, usando y(x0 ) = y0 y llamando a y(x0 +
h) = y1 , tenemos
1 df
y1 = y(x0 ) + f (x0 , y0 )h + (x0 , y0 )h2 +
2! dx
1 df
= y0 + f (x0 , y0 )h + (x0 , y0 )h2 +
2! dx
As pues, el punto inicial (x0 , y0 ) se usa para determinar y1 . Se obtiene una aproxi-
macion de primer orden a partir de aqu simplemente despreciando los terminos de
orden h2 y m as altos. En otras palabras, determinamos y1 como
y1 = y0 + f (x0 , y0 )h.
A continuaci
on usamos el punto (x1 , y1 ) para aproximar el valor de y en x2 = x1 + h.
Llamando a este valor y2 , tendremos
y2 = y1 + f (x1 , y1 )h

86
y en general tendremos el m
etodo de Euler (explcito) en la forma

yn+1 = yn + hf (xn , yn ), n = 0, 1, 2, . . .

de donde resulta clara la conexi on con los campos direccionales: uniendo los puntos
del plano (xi , yi ) por medio de una poligonal podemos representar graficamente la
aproximaci on a la soluci
on y(x) en el intervalo [a, b].
El metodo de Euler tambien puede ser deducido integrando la ecuacion diferencial
de partida entre xn y xn+1 ,
Z xn+1
y(xn+1 ) = y(xn ) + f (x, y(x))dx
xn

y reemplazando f (x, y(x)) por su valor aproximado f (x, yn ) en el extremo inferior del
intervalo de integraci
on. Como ya se vio en la practica 5, son posibles aproximaciones
mas precisas para esta integral. As, se puede sustituir el integrando por el valor
promedio de sus valores en los puntos extremos, con lo cual se tiene el esquema
1
yn+1 = yn + h[f (xn , yn ) + f (xn+1 , yn+1 )],
2
o bien
1
yn+1 = yn + h[f (xn , yn ) + f (xn+1 , yn + hf (xn , yn ))],
2
llamado m etodo de Euler mejorado (el cual se reduce a la regla del trapecio si
f solo depende de x y no de y).
Una forma sistem atica de obtener metodos mas efectivos que el de Euler consiste
simplemente en aplicar el teorema de Taylor a ordenes mas altos en h. El metodo
resultante tiene la propiedad deseable de un error de truncamiento local de orden
tan alto como se desee, pero la desventaja de requerir el calculo y la evaluacion de las
derivadas sucesivas de la funcion f , lo cual puede ser un procedimiento muy costoso
para gran cantidad de problemas. Para subsanar esta dificultad se introducen los
m etodos de RungeKutta, los cuales poseen un error de truncamiento local del
mismo orden que los metodos de Taylor sin necesidad de calcular las derivadas de f .
De hecho, el metodo de Euler mejorado visto anteriormente puede ser considerado
un metodo de RungeKutta de segundo orden. Otro metodo del mismo orden viene
dado por
yn+1 = yn + h[f (xn + h/2, yn + (h/2)f (xn , yn ))],
llamado m etodo del punto medio.
Uno de los metodos de RungeKutta mas populares es el de orden 4 dado por el
siguiente esquema recursivo:

xn+1 = xn + h
1
yn+1 = yn + (k1 + 2k2 + 2k3 + k4 ) ,
6

87
donde

k1 = hf (xn , yn )
k2 = hf (xn + h/2, yn + k1 /2)
k3 = hf (xn + h/2, yn + k2 /2)
k4 = hf (xn+1 , yn + k3 ) .

El principal esfuerzo computacional al aplicar los metodos de RungeKutta es la


evaluacion de f . El metodo de RungeKutta de orden 4 requiere cuatro evaluaciones
de f por paso, pero el error de truncamiento local es O(h5 ). Observese ademas que
si f no depende de y, entonces este metodo no es mas que la regla de Simpson para
el calculo de integrales.

7.2.1. Resoluci
on num
erica con Mathematica
Mathematica puede resolver numericamente el problema de valor inicial definido
por una ecuaci
on diferencial por medio de la funcion intrnseca NDSolve. La sintaxis
de NDSolve es casi identica a la de DSolve:

NDSolve[{ODE, cond. inic.},y[x],{x,xmin,xmax}]

A continuaci
on ilustramos su uso aplicandolo al problema
x
y0 = , y(0) = 1
(y + x)2

el cual no admite soluci


on analtica (compruebalo!).

r1=NDSolve[{y[x]==x/(y[x]+x)^2, y[0]==1},y[x],{x,0,10}]

{{y[x] -> InterpolatingFunction[{{0.,10.}},<>][x]}}

La funci
on y(x) se determina numericamente por medio de InterpolatingFunction,
la cual interpola listas de datos. Cuando NDSolve resuelve numericamente una ecua-
cion diferencial, encuentra valores para y(x) solo en valores especficos de x entre
xmin y xmax, y despues usa InterpolatingFunction para interpolar entre estos
valores de x.
La soluci
on aproximada obtenida se puede extraer y representar graficamente:

s[x_]= y[x] /. r1[[1]];


Plot[s[x],{x,0,10}];

Ahora viene una cuesti on importante: como podemos saber que la respuesta
proporcionada por NDSolve es correcta? Una forma obvia es sustituir la solucion en
la ecuacion diferencial y ver si esta se verifica. Esto se puede hacer de la siguiente
forma:

error[x_]=s[x] - x/(s[x] + x)^2;


Plot[error[x],{x,0,10}];

88
-6
7.510
-6
510
-6
2.510
2 4 6 8 10
-6
-2.510
-6
-510
-6
-7.510

La figura muestra que el error en la solucion es peque


no, pero no cero.

7.2.2. Algoritmo de los m


etodos num
ericos en Mathematica
Utilizando Mathematica, los metodos de Euler y de RungeKutta para obtener
la solucion aproximada de un problema de valor inicial son faciles de implementar.
En primer lugar ilustramos el metodo de Euler sobre un ejemplo.

Ejemplo 7.10. Usa el metodo de Euler para aproximar la soluci on del siguiente
problema de valor inicial:
dy
= xy, y(0) = 1
dx
para h = 0,1. Determina tambien la soluci
on exacta y compara los resultados.

Soluci
on. Empezamos definiendo la funcion f (x, y) = xy y la condicion inicial.
Tambien se da la f
ormula recursiva para x e y. Observese que, debido a la manera
como se define y, todos los valores previos de y se almacenan en la memoria.

Clear[f,x,y,h]
f[x_,y_] = x y;
h = 0.1;
y[0] = 1;
x[n_] = n h;
y[n_]:= y[n] = y[n-1] + h f[x[n-1],y[n-1]];

Podemos formar una tabla con los valores aproximados proporcionados por esta
formula recursiva as:

ytabla = Table[ y[i], {i,0,10} ];

y una lista de pares ordenados como

89
euler = Table[ {x[i-1],ytabla[[i]]}, {i,1,Length[ytabla]}];

Notese que el ndice de x ha de ser uno mas peque no que el de y, ya que ytabla[[i]]
representa el elemento i-esimo de la lista, mientras que x[i] sustituye i en la formula
que determina x. Estos puntos se pueden representar graficamente con ListPlot,
de manera que la aproximaci on se puede comparar con la solucion exacta, que en
este caso es
2
y(x) = ex /2 .
La solucion aproximada obtenida con el metodo de Euler y la solucion exacta se
dibujan as:

plot1 = ListPlot[ euler, PlotJoined -> True,


DisplayFunction -> Identity ];
exactplot = Plot[ Exp[(x^2)/2], {x,0,1},
PlotStyle -> GrayLevel[0.2],
DisplayFunction -> Identity ];
Show[ plot1, exactplot,
DisplayFunction -> $DisplayFunction ];

Damos a continuaci on el procedimiento correspondiente al metodo de Runge


Kutta de cuarto orden.

rungeKutta[{x_, y_}] :=
Module[{k1, k2, k3, k4},
k1 = h * f[x, y];
k2 = h * f[x + h/2, y + k1/2];
k3 = h * f[x + h/2, y + k2/2];
k4 = h * f[x + h, y + k3];
{x + h, y + 1/6 (k1 + 2 k2 + 2 k3 + k4)}
]

Utilizando este algoritmo, vamos a calcular una aproximacion de la solucion del


problema de valor inicial y 0 = xy, y(0) = 1, con tama no de paso h = 0,1, en el
intervalo [0, 1].

f[x_, y_] = x y;
h = 0.1;

Para obtener la aproximaci


on de la solucion requerida utilizamos la funcion in-
corporada NestList. La sintaxis de esta funcion es como sigue

NestList[funcion, expresion, n]

Mathematica, en este caso, devuelve una lista de los resultados de aplicar funcion
sobre expresion desde 0 hasta n .

rk = NestList[rungeKutta, {0, 1}, 10];


ListPlot[rk, PlotStyle -> Thickness[0.01],
PlotJoined -> True];

90
1.6

1.5

1.4

1.3

1.2

1.1

0.2 0.4 0.6 0.8 1


Las opciones PlotStyle -> Thickness[0.01] y PlotJoined -> True las uti-
lizaremos cuando tengamos que comparar dos o mas graficos.

7.2.3. Sistemas de ecuaciones diferenciales


Vamos a ver ahora c omo el metodo de RungeKutta de orden 4 se puede aplicar
tambien a la resolucion de sistemas de ecuaciones diferenciales. Para ello considera-
mos un par de ejemplos sencillos en los que sera posible comparar la aproximacion
con la soluci
on exacta.
En el primer caso, aproximamos la solucion del problema de valor inicial definido
por
x0 = x y + 1
x(0) = 0, y(0) = 1
y 0 = x + 3y + et
utilizando un tama
no de paso h = 0,1. En este caso programamos el metodo de
RungeKutta (con un estilo particularmente ineficiente) por medio de la construc-
cion Module.
In[28]:= xrk@n_D := Module@8k1, k2, k3, k4<,
k1 = f@t@n - 1D, xrk@n - 1D, yrk@n - 1DD; m1 = g@t@n - 1D, xrk@n - 1D, yrk@n - 1DD;
k2 = f@t@n - 1D + h 2, xrk@n - 1D + h * k1 2, yrk@n - 1D + h * m1 2D;
m2 = g@t@n - 1D + h 2, xrk@n - 1D + h * k1 2, yrk@n - 1D + h * m1 2D;
k3 = f@t@n - 1D + h 2, xrk@n - 1D + h * k2 2, yrk@n - 1D + h * m2 2D;
m3 = g@t@n - 1D + h 2, xrk@n - 1D + h * k2 2, yrk@n - 1D + h * m2 2D;
k4 = f@t@n - 1D + h, xrk@n - 1D + h * k3, yrk@n - 1D + h * m3D;
m4 = g@t@n - 1D + h, xrk@n - 1D + h * k3, yrk@n - 1D + h * m3D;
xrk@nD = xrk@n - 1D + Hh 6L * Hk1 + 2 * k2 + 2 * k3 + k4LD

In[29]:= yrk@n_D := Module@8k1, k2, k3, k4<,


k1 = f@t@n - 1D, xrk@n - 1D, yrk@n - 1DD; m1 = g@t@n - 1D, xrk@n - 1D, yrk@n - 1DD;
k2 = f@t@n - 1D + h 2, xrk@n - 1D + h * k1 2, yrk@n - 1D + h * m1 2D;
m2 = g@t@n - 1D + h 2, xrk@n - 1D + h * k1 2, yrk@n - 1D + h * m1 2D;
k3 = f@t@n - 1D + h 2, xrk@n - 1D + h * k2 2, yrk@n - 1D + h * m2 2D;
m3 = g@t@n - 1D + h 2, xrk@n - 1D + h * k2 2, yrk@n - 1D + h * m2 2D;
k4 = f@t@n - 1D + h, xrk@n - 1D + h * k3, yrk@n - 1D + h * m3D;
m4 = g@t@n - 1D + h, xrk@n - 1D + h * k3, yrk@n - 1D + h * m3D;
yrk@nD = yrk@n - 1D + Hh 6L * Hm1 + 2 * m2 + 2 * m3 + m4LD

91
A continuaci
on definimos la ecuacion e inicializamos las variables:
In[14]:= f@t_, x_, y_D := x - y + 1; g@t_, x_, y_D := x + 3 y + E ^ H-tL;

In[15]:= h = 0.1; xrk@0D = 0; yrk@0D = 1; t@n_D = h * n;

La soluci
on se da en forma de tabla:
In[16]:= solaprox = Table@8t@iD, xrk@iD, yrk@iD<, 8i, 0, 10<D

880, 0, 1<, 80.1, -0.0226878, 1.46031<, 80.2, -0.10332, 2.06541<,


80.3, -0.265382, 2.85897<, 80.4, -0.540021, 3.8967<,
Out[16]=

80.5, -0.968273, 5.24956<, 80.6, -1.60391, 7.00778<, 80.7, -2.51707, 9.28596<,


80.8, -3.79882, 12.2294<, 80.9, -5.56704, 16.0223<, 81., -7.97379, 20.8975<<

Seguidamente, calculamos la solucion exacta y comparamos con los resultados


proporcionados por el metodo de RungeKutta.

de = DSolve@8x1 '@tD x1@tD - y1@tD + 1,


y1 '@tD x1@tD + 3 y1@tD + E ^ H-tL, x1@0D 0, y1@0D 1<, 8x1@tD, y1@tD<, tD
In[17]:=

::x1@tD - -t I4 + 27 t - 31 3 t + 66 3 t tM, y1@tD -t I-8 + 9 t + 35 3 t + 66 3 t tM>>


1 1
Out[17]=
36 36

In[18]:= xexacta@t_D = de@@1, 1, 2DD; yexacta@t_D = de@@1, 2, 2DD;

In[21]:= comparexrk = Table@8t@iD, xrk@iD, xexacta@t@iDD, yrk@iD, yexacta@t@iDD<, 8i, 0, 10<D;

In[22]:= TableForm@comparexrkD

Out[22]//TableForm=
0 0 0 1 1
0.1 -0.0226878 -0.0226978 1.46031 1.46032
0.2 -0.10332 -0.103346 2.06541 2.06545
0.3 -0.265382 -0.265432 2.85897 2.85904
0.4 -0.540021 -0.540105 3.8967 3.89682
0.5 -0.968273 -0.968408 5.24956 5.24975
0.6 -1.60391 -1.60412 7.00778 7.00806
0.7 -2.51707 -2.51737 9.28596 9.28638
0.8 -3.79882 -3.79926 12.2294 12.23
0.9 -5.56704 -5.56767 16.0223 16.0232
1. -7.97379 -7.97468 20.8975 20.8987

El metodo de RungeKutta tambien puede ser aplicado para resolver numerica-


mente ecuaciones diferenciales de orden superior al primero. Para ello se ha trans-
formar primero la ecuaci on diferencial en un sistema de ecuaciones. Ilustramos a
continuacion el procedimiento con la ecuacion

x00 + sin x = 0, x(0) = 0, x0 = 0.

Empezamos transformando esta ecuacion de segundo orden en un sistema de dos

92
ecuaciones de primer orden escribiendo x0 = y, y 0 = x00 = sin x.
In[23]:= Clear@f, g, h, xrk, yrk, tD

In[24]:= f@t_, x_, y_D := y; g@t_, x_, y_D := -Sin@xD;

In[25]:= h = 0.1; xrk@0D = 0; yrk@0D = 1; t@n_D = h * n;

A continuacion ejecutamos de nuevo los procedimientos xrk e yrk anteriores y


representamos tanto la soluci
on aproximada como la exacta. Notas alguna similitud
con el tratamiento sobre integraci
on numerica en la practica 5?
In[30]:= sols = Table@8xrk@iD, yrk@iD<, 8i, 0, 70<D;

In[32]:= plot1 = ListPlot@sols, AspectRatio 1, DisplayFunction IdentityD;

plot2 =
ParametricPlot@8Cos@xD, Sin@xD<, 8x, 0, 2 Pi<, AspectRatio 1, DisplayFunction IdentityD;
In[33]:=

In[34]:= Show@plot1, plot2, DisplayFunction $DisplayFunctionD


1.0

0.5

-1.0 -0.5 0.5 1.0

-0.5

-1.0

7.3. Ejercicios
Ejercicio 7.1. Utiliza los algoritmos vistos en esta secci
on con tamano de paso
h = 0,1 para obtener una aproximaci on del problema de valor inicial dado en el
intervalo especificado:

1. y 0 = x + 2y , y(1) = 1/2 en el intervalo [1, 2].

2. y 0 = 3 cos(y 5x) , y(0) = 0 en el intervalo [0, 1].

Ejercicio 7.2. Compara los resultados obtenidos en el apartado anterior para cada
uno de los metodos. Representa gr
aficamente cada una de las aproximaciones y com-

93
paralas con la soluci
on del problema de valor inicial dado (si es que se puede calcular
la solucion).

Ejercicio 7.3. Usa el metodo de RungeKutta de orden 4 para aproximar la soluci


on
del problema de valor inicial no lineal

y0 = x y, y(1) = 1

con h = 0,1. Determina la soluci


on exacta de esta ecuaci
on y compara los resultados
de la soluci
on aproximada con los de la soluci
on exacta.

Ejercicio 7.4. Haz lo propio con la ecuaci


on
dy
= 2 y 3/2 , y(0) = 1
dx
con h = 0,1.

Ejercicio 7.5. Resuelve los sistemas siguientes:


x0 = 2x y
1. ,
y 0 = x + 3y

x0 = 2x
2. , con la condici
on inicial x(0) = 1, y(0) = 1.
y 0 = 3x + 2y

x0 = x + 4y
3.
y 0 = 2x y
Ejercicio 7.6. Usa el metodo de RungeKutta de orden 4 para aproximar la soluci
on
del problema de valor inicial definido por

x0 = x y + 1
y 0 = x + 3y + et

y x(0) = 0, y(0) = 1, con h = 0,1. Compara estos resultados con los de la soluci
on
exacta del sistema.

94
Pr
actica 8

Derivadas parciales. Extremos


en funciones de varias variables

8.1. Derivadas parciales


Las derivadas parciales de una funcion de varias variables se calculan mediante
el comando D[f[x,y,],{x,n1},{y,n2},...].

Ejemplo 8.1. Si f (x, y, z) = x2 sin(x) cos(y 2 )/(x + z), obtener:

a) Expresiones para las funciones:

3f 3f 3f
(x, y, z), y .
x3 x2 y xyx

b) El valor de:

3f 3f 3f
(0, 0, 1), (1, 1, 1) y (1, 1, 1).
x3 x2 y xyx

Soluci
on. En primer lugar definimos f :
f!x_, y_, z_" :! x ^ 2 Sin! x" Cos!y ^ 2" # $x # z%

A continuaci
on obtenemos las derivadas pedidas en el apartado (a). Utilizamos
el comando FullSimplify para obtener expresiones sencillas:

95
D!f!x, y, z", #x, 3$"

3 x2 Cos! x" Cos!y2 " # 2 x2 2 (


######## $ 3 %
% #################### $ ############ *
* Cos! x" Cos!y2 " $
$ &x $ z' &x $ z' $z )
4x
! ################################
################ ! ####################
x$z 3 2 x
#
% (
*
%! #################### * Cos!y2 " Sin! x" !
$ &x $ z'4 &x $ z'3 &x $ z'2 )
6 x2 12 x 6
$ #################### ! ####################

# 2x (
% ########x############ $ ########
3 2 %! #### *
* Cos!y2 " Sin! x"
$ &x $ z'2 x$z )
2

FullSimplify!%"

Cos!y2 " & &x $ z' &!6 z2 $ 2 x2 &x $ z'2 ' Cos! x" $ 3 &2 z2 $ 2 x &x $ z'2 &x $ 2 z'' Sin! x"'
&x $ z'4
! ################################
################################
################################
################################
################################
################################
################
################
#######

Finalmente asignamos los valores indicados a las variables:


D!f!x, y, z", #x, 3$" %. #x ! 0, y ! 0, z ! 1$

D!f!x, y, z", #x, 2$, #y, 1$" %. #x ! 1, y ! 1, z ! 1$

3 Sin!1"

D!f!x, y, z", #x, 1$, #y, 1$, #x, 1$" %. #x ! 1, y ! 1, z ! 1$

3 Sin!1"
 
f (x, y) y
Ejercicio 8.1. Si sabemos que sin = , obtener:
x4 y 2 x

2f 1 f f
(1, ), y x (x, y) + y (x, y) 6f (x, y).
xy 2 x y

Ejemplo 8.2. Consideramos la funci on f (x, y) = 2x2 y 2 . Dibujar el plano


tangente a la gr
afica de f (x, y) en el punto (1, 2).

Soluci
on. El plano tangente a la grafica de f (x, y) en el punto (1, 2) tiene como
ecuacion:
f f
z= (1, 2)(x 1) + (1, 2)(y 2) + f (1, 2).
x y
Para obtener la gr
afica de f y la del plano tangente, dibujamos ambas graficas con
el comando Plot3D. Podemos tambien situar el punto (1, 2) sobre la grafica para
centrar nuestra atenci
on (se utiliza el comando Graphics3D[Point[]]).
f!x_, y_" :! "2#x ^ 2 " y ^ 2;
planotang ! Plot3D!"4##x " 1$ " 4##y " 2$ " 6, %x, "3, 3&, %y, "3, 3&";
parab ! Plot3D!f!x, y", %x, "4, 4&, %y, "4, 4&";
point ! Graphics3D!%PointSize!0.02", Point!%1, 2, f!1, 2"&"&";
Show!planotang, point, parab"
El resultado obtenido debe ser similar a:

96
20
0 4
-20 2
-40
-4 0
-2
0 -2
2
4 -4

x2 y 2
Ejercicio 8.2. Consideramos la funci
on f (x, y) = xy .
x2 + y 2
a) Utilizar el comando Plot3D para obtener la gr
afica de f . Situar sobre la
gr
afica los puntos (0, 0) y (2, 1).

b) Dibujar la gr
afica de f junto con su plano tangente en el punto (2, 1).

c) Escribir f (x, y) en coordenadas polares, simplificar y deducir que lm f (x, y) = 0.


(x,y)(0,0)

f f 2f
d) Obtener utilizando los lmites pertinentes (0, 0), (0, 0), (0, 0) y
x y xy
2f
(0, 0).
yx
e) Admite la gr
afica de f plano tangente en (0, 0)?

8.2. Extremos libres


Recordemos que si x = (x1 , , xn ) es un extremo local de una funcion de n
variables f , entonces f (
x) = (0, . . . , 0) = 0, es decir, x
es un punto crtico de f .
No todos los puntos crticos son maximos o mnimos. El criterio de la segunda
derivada permite en muchos casos reconocer si un punto crtico es o no un extremo
utilizando la matriz hessiana y su determinante, el hessiano. Para funciones de dos
variables el criterio puede enunciarse como sigue: Si f : R2 R es una funcion de
dos variables con derivadas continuas de primer y segundo orden en un entorno de
(a, b), consideramos el determinante hessiano de f en (a, b):
2
f 2f
x2 (a, b) xy (a, b)

Hf (a, b) = 2 2
.
f (a, b) f (a, b)

yx y 2

El punto (a, b) es entonces:

97
2f
Un mnimo relativo si, Hf (a, b) > 0 y x2
(a, b) > 0.
2f
Un m
aximo relativo si Hf (a, b) > 0 y x2
(a, b) < 0.

Un punto de silla cuando Hf (a, b) < 0.

Es necesario observar que el criterio no ofrece informacion alguna cuando Hf ((a, b)) =
0.

Ejemplo 8.3. Clasificar en m aximos, mnimos y puntos de silla los puntos crticos
on: f (x, y) = xy(1 x2 y 2 ).
de la funci

Soluci
on. En primer lugar obtenemos los puntos crticos. Para ello, podemos definir
un gradiente ad-hoc:
f!x_, y_" :! x y"#1 # x ^ 2 # y ^ 2$;
gradf ! %D!f!x, y", x", D!f!x, y", y"&
O podemos definir una funci on gradiente que luego podamos utilizar repetidas
veces. La funci
on que sigue define la funcion gradiente de cualquier funcion g con n
variables cuyas variable vengan escritas como x[1], . . . , x[n]:
grad!g_, n_" :! Table!D!g, x!i"", #i, 1, n$";
Atencion! esta definicion de gradiente u nicamente funciona si las variables de las
funciones son de la forma (x[1], x[2], . . . , x[n]) (no podemos usar (x, y, z) o (x1 , x2 , x3 ),
solo (x[1], x[2], x[3])). Si definimos de esta manera el gradiente grad[g , n ], obten-
dremos el gradiente de f en (x, y) escribiendo:
f!x_, y_" :! x y #1 " x ^ 2 " y ^ 2$;
grad!f!x!1", x!2"", 2" %. &x!1" # x, x!2" # y '
Una vez hemos obtenido el gradiente de f , resolvemos el sistema de ecuaciones
(podemos usar el comando Solve) que permite obtener los puntos crticos. De nuevo
podemos definir una funci on que nos permita obtener los puntos crticos de cualquier
funcion g con n variables x[1], . . . , x[n]:
cer!n_" :! Table!0, #i, 1, n$"; inc!n_" :! Table!x!i",
#i, 1, n$";
Crit!g_, n_" :! Solve!grad!g, n" !! cer!n", inc!n""
donde las dos primeras lneas se han utilizado para crear una lista de n ceros y
la lista de las variables x[1], . . . , x[n].
De este modo, al hacer Crit[f [x[1], x[2]], 2] obtendremos la lista de puntos crti-
cos:
Crit!f!x!1", x!2"", 2"

!"x#1$ ! "1, x#2$ ! 0%, !x#1$ ! " #### , x#2$ ! " #### &, !x#1$ ! " #### , x#2$ ! #### &,
1 1 1 1

"x#1$ ! 0, x#2$ ! 0%, !x#1$ ! #### , x#2$ ! " #### &, !x#1$ ! #### , x#2$ ! #### &,
2 2 2 2
1 1 1 1

"x#1$ ! 1, x#2$ ! 0%, "x#2$ ! "1, x#1$ ! 0%, "x#2$ ! 1, x#1$ ! 0%&
2 2 2 2

Una vez sabido que los puntos crticos son (0, 0), (1, 0), (1/2, 1/2) (siete en
total) se trata de definir la matriz hessiana para poder distinguir los maximos de los
mnimos y de los puntos de silla.
El comando que sigue define la matriz hessiana:

98
Hess!f_, n_" :! Table!Table!D!f, x!i", x!j"", #j, 1, n$", #i,
1, n$";
Y podemos extraer el valor del determinante de cada hessiano definiendo
listHess!f_, n_" :! Table!Det!Hess!f, n"" #. Crit!f, n"!!j"",
$j, 1, Length!Crit!f, n""%";
Se puede implementar una definicion similar para obtener una lista de valores de
2f
en cada punto crtico. El resultado final es que (1/2, 1/2) y (1/2, 1/2) son
x2
mnimos locales y que los puntos (1/2, 1/2) y (1/2, 1/2) son maximos locales. El
resto de puntos crticos son puntos de silla.
Se muestra finalmente la grafica de f con un maximo, un mnimo y un punto de
silla marcados sobre ella.

0.2

0.1
Z
0.5
0

-0.1

-0.2

-1 0
Y
-0.5

X 0.5
-0.5

Ejercicio 8.3. Representar gr on f (x, y) = 32x3 27xy + y 3 x, a


aficamente la funci
continuaci
on obtener sus m
aximos y mnimos locales.
Ejercicio 8.4.

a) Definir una funci on de una variable con un u nico m aximo local y ning
un
otro punto crtico. Es este punto un m aximo absoluto? Podemos encontrar
alguna funci
on de una variable con u nico punto crtico que sea m
aximo local
y que no sea m aximo absoluto?
2
on f (x, y) = ey 2x3 3x2 + 1 + ey 2x3 3x2
 
b) Comprobar que la funci
tiene un u
nico punto crtico y que este es un m
aximo.

c) Es el punto obtenido un m
aximo absoluto de f (x, y)?

Mathematica tiene implementadas las funciones FindMaximum y FindMinimum


para encontrar m aximos y mnimos locales. Es necesario indicar un punto x0 a
partir del cual pueda buscar.
Ejemplo 8.4. La funci on f (x, y) = (x2 + y 2 ) tiene un u
nico punto crtico que es
un mnimo absoluto, el (0, 0). Eelgimos comenzar la b usqueda desde el punto (1, 2),
la funci
on

99
FindMaximum[x2 + y 2 , {x, 1}, {y, 2}] localiza r
apidamente el m
aximo.

Ejercicio 8.5. Repetir el Ejercicio 8.3 utilizando los comandos FindMaximum y


FindMinimum. Ser
a necesario escoger cuidadosamente los puntos de partida.

8.3. Extremos condicionados. Multiplicadores de Lagran-


ge
El metodo de los multiplicadores de Lagrange consiste en observar que los extre-
mos de la funci on de n variables f (x1 , . . . , xn ) en aquellos puntos (x1 , . . . , xn ) que
satisfacen las k condiciones g1 (x1 , . . . , xn ) = 0, . . . , gk (x1 , . . . , xn ) = 0 se encuentran
entre los puntos crticos de la funci on de n + k variables:

L(x1 , . . . , xn , 1 , . . . , k ) = f (x1 , . . . , xk ) 1 g1 (x1 , . . . , xn ) k gk (x1 , . . . , xn ).

Aunque existen metodos para diferenciar cuales de los puntos crticos obtenidos
son maximos, cuales son mnimos y cuales son puntos de silla, nos conformaremos
aqu con dar una lista de todos los puntos crticos y determinar cuales son los puntos
maximo y mnimo absoluto a partir del valor de la funcion f en cada punto crtico.

Ejercicio 8.6. La temperatura de cada punto (x, y, z) de una caja viene dada por
la funcion T (x, y, z) = 20 + 2x + 2y + z 2 . Cu al ser
a el punto m as caliente en el
crculo que aparece al cortar la esfera x2 + y 2 + z 2 = 11 con el plano x + y + z = 3?

Ejercicio 8.7. Consideramos la par abola y 2 = x 1. Encontrar el mnimo absoluto


de la funci 2 2
on f (x, y) = x + y en el recinto limitado por esta par abola (es decir
2
los puntos (x, y) con y x 1). Para encontrar el mnimo sobre la frontera (los
puntos (x, y) con y 2 = x 1) utilizaremos dos metodos: en primer lugar reducire-
mos la funci on f (x, y) a una sola variable; a continuaci
on lo haremos utilizando
los multiplicadores de Lagrange. Dibujar la par abola y deducir cual es el resultado
correcto.

100
Ap
endice A

Sistemas de ecuaciones
diferenciales no lineales

En este apendice estudiamos los sistemas de ecuaciones diferenciales no linea-


les. No podemos obtener soluci on analtica de las ecuaciones y sistemas no lineales,
pero mediante estudios geometricos y cualitativos es posible determinar su compor-
tamiento. Para realizar este estudio resulta muy u til el programa Mathematica.
Los metodos cualitativos que introducimos nos permiten obtener propiedades de
las soluciones incluso aunque estas no sean conocidas. De esta manera podremos
obtener una visi on del comportamiento de las soluciones sin la expresion analtica
de ellas. Cuestiones como estabilidad o comportamiento asintotico de las soluciones
a lo largo del tiempo se investigan con la ayuda de este tipo de metodos.
Consideremos un sistema que depende del tiempo t y de n funciones incognita
que satisfacen la ecuacion diferencial

x0 = f (t, x)

para una cierta funcion vectorial x = (x1 (t), , xn (t)).


En primer lugar consideraremos sistemas aut onomos, es decir, que no dependen
del tiempo explcitamente,

x0 = f (x), x Rn .

En caso contrario se denomina no aut onomo. Un sistema no autonomo de ecua-


0
ciones diferenciales de la forma x = f (t, x) es equivalente a un sistema autonomo,
obtenido definiendo una nueva variable como sigue

x0 = f (t, x)
t0 = 1.

De esta manera podemos hacer el estudio para sistemas autonomos y extenderlo a los
no autonomos. Centramos dicho estudio en los sistemas de dos ecuaciones llamados
sistemas planos aut onomos
 0
x = f (x, y)
(A.1)
y 0 = g(x, y).

101
A.1. Estudio geom
etrico: campos de direcciones
Un campo vectorial de un sistema de ecuaciones diferenciales

x0 = f (x)

consiste en todos los vectores con origen en los puntos de coordenadas x Rn


y orientados en la direcci on del vector f (x). Podemos imaginar que los vectores
representan la velocidad de un objeto moviendose en el espacio, estos vectores son
tangentes a su trayectoria.
Aunque dibujamos los campos de direcciones mediante el uso de ordenadores,
hay un aspecto que los hace m as difciles de representar graficamente que los cam-
pos de pendientes (para las ecuaciones). Por definicion, los vectores en un campo
vectorial tiene varias longitudes determinadas por el sistema de ecuaciones; algunos
pueden ser muy cortos y otros muy largos. Por tanto, si dibujamos un campo vec-
torial evaluandolo sobre una malla regular del plano, a menudo obtenemos vectores
que se solapan. Para evitar la confusion de los vectores, se escalan los vectores de
manera que todos ellos tengan la misma longitud. La imagen resultante se llama
campo de direcciones asociado al campo de vectores original. Pero se tiene algu-
na perdida de informaci on ya que la longitud del vector corresponde a la rapidez de
la solucion cuando esta pasa por el punto asociado en el plano. Aun as podemos ob-
tener informaci on de los campos de direcciones sobre la geometra de las soluciones
pero no resulta tan eficiente como en el caso de las ecuaciones de orden uno.
Para ilustrar estos conceptos vamos a analizar en detalle dos ejemplos especial-
mente relevantes por su importancia historica y sus aplicaciones.
Ejemplo 1: Sistemas depredador-presa
Consideremos la situacion en la que una especie (los depredadores) cazan a la
otra especie (la presa), mientras la presa se alimenta de otra fuente de comida.
Por ejemplo, los zorros y los conejos en un entorno cerrado (bosque): los zorros se
alimentan de conejos y los conejos de la vegetacion del bosque.
Sean x e y las poblaciones de las presas y los depredadores, respectivamente,
en un tiempo t. Para la construcci on de un modelo de interaccion, hacemos las
siguientes suposiciones:

En ausencia de depredador la presa crece proporcionalmente a la poblacion


actual, por tanto dx/dt = ax, a > 0, cuando y = 0.

En ausencia de presa, el depredador se extingue, por tanto dy/dt = cy, c > 0,


cuando x = 0.

El n
umero de encuentros entre depredador y presa es proporcional al producto
de sus poblaciones. Cada encuentro promueve el crecimiento de los depreda-
dores e inhibe el crecimiento de las presas. Por tanto, la tasa de crecimiento
del depredador se incrementa por un termino de la forma xy, mientras que la
tasa del crecimiento de la presa disminuye mediante un termino xy, donde
y son constantes positivas.

102
Como consecuencia, se obtiene el siguiente sistema de ecuaciones diferenciales,

dx = ax xy

= x(a y)
dt (A.2)
dy

= cy + xy = y(c + x)
dt
donde a, c, y son constantes positivas; a y c son las constantes de proporcionali-
dad del crecimiento de la presa y la tasa de mortalidad del depredador, respectiva-
mente; y son las medidas del efecto de interaccion entre las dos especies. Estas
ecuaciones se conocen como ecuaciones de LotkaVolterra y caracterizan una
amplia clase de problemas.
Estudiemos el campo de direcciones para el sistema de LotkaVolterra donde
a = 2, = 1, c = 3 y = 1,

dx = 2x xy

dt

(A.3)

dy

= 3y + xy.
dt
En primer lugar, cargamos el paquete que dibuja los campos de direcciones,

In[1]:= << Graphics`PlotField`

La sentencia de Mathematica que dibuja los campos de direcciones viene dada en la


forma,
campdir = PlotVectorField@82 x - x y, -3 y + x y<, 8x, 0, 15<,
8y, 0, 15<, ScaleFunction H1 &L, Axes TrueD

15

10

5 10 15

103
Los campos de direcciones nos dan una idea de la forma geometrica de las curvas
solucion dadas en su forma parametrica (x(t), y(t)).

Ejercicio A.1. Esboza el campo de direcciones para el oscilador arm


onico dado por
el sistema
dx
dt = v



(A.4)

dv

= x.
dt
Aunque no vamos a ver el estudio de sistemas de tres ecuaciones, resulta intere-
sante ver c
omo se representan los campos de direcciones tridimensionales. Para ello
consideramos el sistema
dx


= 3x



dt


dy

= x 4y + 2z (A.5)


dt


dz = 4y + z.



dt
El paquete que dibuja los campos de direcciones tridimensionales es el siguiente,
<< Graphics`PlotField3D`

y la sentencia,
campo = PlotVectorField3D@83 z, x - 4 y + 2 z, -4 y + z<, 8x, -4, 4<,
8y, -4, 4<, 8z, -3, 3<, VectorHeads True, ViewPoint -> 81.240, -1.521, 2.757<D

Observamos que a veces el resultado no es tan grafico como en el caso bidimen-


sional.

104
Ejemplo 2. La ecuaci on de van der Pol
Esta ecuaci
on describe el comportamiento de circuitos electricos no lineales como
los que fueron usados en los primeros aparatos de radio. Fue introducida por Lord
Rayleigh en 1883 y B. van der Pol en 1926 la estudio mas exhaustivamente como
modelo del voltaje en un circuito electrico. Pero esta ecuacion tambien modeliza
otros tipos de fenomenos fsicos. Por ejemplo, justo dos a nos despues del artculo
de van der Pol, el mismo junto con J. van der Mark propuso esta ecuacion como
modelo para los latidos del coraz on.
Este tipo de circuito se usaba en los das de los tubos de vaco. Los tubos act
uan
como una resistencia normal cuando la corriente es elevada, y como una resistencia
negativa cuando la corriente es baja. Por tanto un circuito de este tipo favorece osci-
laciones pequenas y amortigua las grandes oscilaciones (oscilaciones de relajaci on).
La ecuacion que describe este sistema es:

d2 x dx
2
+ (x2 1) +x=0
dt dt
siendo es un par ametro que mide la no linealidad del sistema. Para = 0, el
sistema es un oscilador lineal.
Convertimos la ecuacion de orden dos en un sistema plano,

x = y
(A.6)
y = x (x2 1)y.

que estudiamos en el ejercicio siguiente para diversos valores del parametro.

Ejercicio A.2. Consideramos la condici on inicial x(0) = 1, y(0) = 0. Estudia los


campos de direcciones para los valores de =0, 0.1, 0.2, 0.5, 0.8, 1. Que puedes
decir de las soluciones para cada caso? C
omo evoluciona el sistema a medida que
crece el par
ametro ?

A.2. Estudio cualitativo. Retrato de fases


El estudio cualitativo nos permite hacernos una idea de como son las soluciones
a partir de las propiedades geometricas de las mismas. Recordemos que podemos
obtener soluciones aproximadas de estas mediante metodos numericos que junto con
los otros metodos nos ayudan a conocer las soluciones del sistema y as obtener
conclusiones determinantes del problema planteado,
 0
x = f (x, y)
(A.7)
y 0 = g(x, y).

En el estudio cualitativo lo que dibujamos no son las soluciones en funcion del tiempo
x(t) y y(t), sino las ecuaciones parametricas de la curva solucion (x(t), y(t)).
Para entender los problemas de este tipo introducimos algunos conceptos. Un
punto (x0 , y0 ) es un punto de equilibrio del sistema si cumple

f (x0 , y0 ) = 0, g(x0 , y0 ) = 0. (A.8)

105
Por ejemplo, dado
x0 = 2x y


y 0 = x + 3y
para hallar los puntos de equilibrio hemos de resolver el sistema

2x y = 0
x + 3y = 0

obteniendo como u nica soluci


on el punto (0, 0).
La solucion del sistema linealizado solo aproxima la solucion del sistema no lineal,
el comportamiento de las soluciones del sistema no lineal cerca de cada punto de
equilibrio es la misma que la del correspondiente sistema linealizado en muchos casos.
El primer paso para la aproximacion de un sistema no lineal cerca de cada punto
de equilibrio es encontrar dichos puntos y la matriz de linearizacion cerca de cada
punto de equilibrio se define de la forma
f (x , y ) f (x0 , y0 )
0 0
x y
. (A.9)


g(x , y ) g(x0 , y0 )
0 0
x y
Despues de determinar la matriz de linearizacion para cada punto de equilibrio,
tenemos que calcular los valores propios de la matriz. La clasificacion de los puntos
de equilibrio se hace seg
un el siguiente criterio:
Sea (x0 , y0 ) un punto de equilibrio del sistema (A.7) y sean 1 y 2 los valores
propios de (A.9). Entonces,

Si 1 y 2 son no nulos, distintos y positivos, (x0 , y0 ) es un nodo inestable.

Si 1 y 2 son no nulos, distintos y negativos, (x0 , y0 ) es un nodo estable.

Si 1 y 2 son no nulos y de distinto signo, (x0 , y0 ) es un punto de silla.

Si 1,2 = i, 6= 0 (x0 , y0 ) es un punto espiral estable si < 0.

Si 1,2 = i, 6= 0 (x0 , y0 ) es un punto espiral inestable si > 0.

Si 1,2 = i, 6= 0 (x0 , y0 ) es un centro si = 0.

No estudiamos el caso en que los valores propios son iguales o son cero.
Si (x0 , y0 ) es un punto de equilibrio del sistema, entonces las funciones constantes

x(t) x0 , y(t) y0

satisfacen el sistema. Una soluci


on constante del sistema se denomina soluci on de
equilibrio. Notemos que la trayectoria de la solucion de equilibrio se reduce al
punto (x0 , y0 ). Adem
as los puntos de equilibrio son fundamentales para determinar
el comportamiento de otras soluciones del sistema alrededor de ellos. Por una parte,
el teorema de existencia y unicidad establece que por un punto del plano solo puede

106
pasar una soluci on. Luego, una solucion que pasa por un punto de equilibrio es una
solucion constante.
Si el punto inicial (x0 , y0 ) no es un punto de equilibrio, las ecuaciones parametri-
cas de las soluciones, x(t) y y(t), dadas en la forma (x(t), y(t)) definen una curva en
el plano xy que denominaremos trayectoria del sistema. Distinguimos entre solu-
ciones del sistema y trayectorias, ambos terminos no son sinonimos. Por una parte,
una soluci on del sistema (A.7) es un par ordenado de funciones (x(t), y(t)) tales
que satisfacen simult aneamente las dos ecuaciones de dicho sistema; por otra parte,
una trayectoria de (A.7) es una curva del plano xy de fases que puede ser defini-
da parametricamente por m as de una solucion delsistema. Mas adelante veremos la
diferencia entre ambos conceptos mediante un ejemplo.
Podemos ver cualitativamente el comportamiento del sistema mediante la cons-
truccion de su retrato de fase (representacion en el plano de los puntos de equi-
librio y las trayectorias). El plano xy se denomina plano de fase y el conjunto de
trayectorias es lo que conocemos como retrato de fase.
El comportamiento de las trayectorias proximas a los puntos de equilibrio aisla-
dos resulta de particular interes porque nos permite saber si son estables e inestables.
Sin profundizar m as en este tema ya que nos extenderamos demasiado veamos como
obtener el retrato de fase mediante Mathematica.

Ejemplo A.1. Sea el sistema


 0
x = 60x 3x2 4xy
y 0 = 42y 3y 2 2xy,

que corresponde a un sistema depredador-presa. Calcula y clasifica los puntos de


equilibrio.

Resolvemos el sistema
60x 3x2 4xy = 0


42y 3y 2 2xy = 0,

In[9]:= Solve@860 x - 3 x ^ 2 - 4 x y 0, 42 y - 3 y ^ 2 - 2 x y 0<, 8x, y<D

Out[9]= 88x 0, y 0<, 8x 0, y 14<, 8x 12, y 6<, 8x 20, y 0<<

y obtenemos: (0, 0), (0, 14), (12, 6) y (20, 0). Dado que x(t) indica el n
umero de zorros
y y(t) el n
umero de conejos respectivamente, y si ambas poblaciones son constantes se
deduce que las ecuaciones permiten solamente tres posibilidades no triviales: no hay
zorros y hay 14 conejos, o son 20 zorros y ning un conejo, o 12 zorros y 6 conejos. En
particular, el punto crtico (12, 6) describe la unica posibilidad para la coexistencia
de poblaciones constantes no nulas de ambas especies. Estudiamos la linearizacion
de este caso.

107
In[16]:= f@x_, y_D = 60 x - 3 x ^ 2 - 4 x y;
g@x_, y_D = 42 y - 3 y ^ 2 - 2 x y;

matlin = 99x f@x, yD, y f@x, yD=, 9x g@x, yD, y g@x, yD==
. 8x 12, y 6<

Out[23]= 88-36, -48<, 8-12, -18<<

In[24]:= MatrixForm@matlinD

Out[24]//MatrixForm=
-36 -48
-12 -18
A continuaci
on calculamos los valores propios de la matriz obtenida utilizando
el comando Eigenvalues.
In[26]:= Eigenvalues@matlinD N

Out[26]= 8-52.632, -1.36799<

Como los valores propios son no nulos, distintos y negativos, el punto de equilibrio
es un nodo estable. La poblaci on de zorros y conejos tendera con el tiempo a este
punto. 2
Cuando consideramos sistemas lineales como por ejemplo
 0
x = 5x + 3y 4
y 0 = 4x 3y + 2.

podemos hacer un estudio bastante completo ya que disponemos de las soluciones de


manera explcita. Buscamos el punto de equilibrio definiendo las funciones f (x, y) =
5x + 3y 4 y g(x, y) = 4x 3y + 2 y resolviendo el sistema,

5x + 3y 4 = 0
4x 3y + 2 = 0

nico punto de equilibrio (2, 2) y calculamos los valores


El sistema posee un u
propios,
Eigenvalues@885, 3<, 8-4, -3<<D

Los valores propios son de distinto signo, luego es un punto de silla. Estudiamos
como son las trayectorias alrededor de este punto de silla mediante el comando
DSolve, el cual proporciona las soluciones exactas ya que el sistema es lineal.
In[29]:= sol = DSolve@8x '@tD 5 x@tD + 3 y@tD - 4,
y '@tD -4 x@tD - 3 y@tD + 2<,
8x@tD, y@tD<, tD Simplify

::x@tD -t I8 t - 2 C@1D - 3 C@2D + 3 4 t H2 C@1D + C@2DLM,


1
Out[29]=
4

-t I-4 t + 2 C@1D + 3 C@2D - 4 t H2 C@1D + C@2DLM>>


1
y@tD
2

108
Asignamos valores a las constantes C[1] y C[2] creando una tabla de funciones,
reemplazaremos C[1] y C[2] por los parametros a y b respectivamente y le daremos
valores a estos par
ametros. La tabla de funciones solucion viene dada con parentesis
que agrupan las funciones seg un los valores de los parametros, con el fin de que las
asignaciones sean m as f
aciles de hacer quitamos los parentesis usando Flatten.
tabsol = Table@8x@tD, y@tD< . sol@@1DD . 8C@1D a,
C@2D b<, 8a, -4, 4<, 8b, -3, 3<D;
In[31]:=

In[32]:= tabgraf = Flatten@tabsol, 1D;

ParametricPlot nos permite dibujar las funciones de la tabla para valores del tiem-
po 2 t 2.
grafica = ParametricPlot@Evaluate@tabgrafD, 8t, -2, 2<,
PlotRange 88-2, 4<, 8-4, 2<<D
In[34]:=

El grafico corresponde a las ecuaciones parametricas de las soluciones para dis-


tintas condiciones iniciales, el retrato de fase caracterstico de un punto de silla.
2

-2 -1 1 2 3 4

Out[34]= -1

-2

-3

-4

Comparamos con el campo de direcciones del sistema,


campdir = PlotVectorField@85 x + 3 y - 4, -4 x - 3 y + 2<, 8x, -2, 4<,
8y, -4, 2<, ScaleFunction H1 &L, Axes TrueD
In[39]:=

109
2

-2 -1 1 2 3 4

Out[39]= -1

-2

-3

-4

y superponemos ambos gr
aficos,
In[17]:= Show@grafica, campdirD

-2 -1 1 2 3 4

Out[17]= -1

-2

-3

-4
Un estudio similar se puede hacer para los sistemas no lineales aunque no obten-
gamos las soluciones analticas utilizando el teorema siguiente.

Teorema A.2.1. Supongamos que (x0 , y0 ) es un punto de equilibrio del sistema no


lineal  0
x = f (x, y)
y 0 = g(x, y).
Entonces, las relaciones entre los puntos de equilibrio de sistemas lineales y no li-

110
neales aparece en la tabla siguiente.

Sist. lineal Sist. no lineal


Nodo estable Nodo estable
Nodo inestable Nodo inestable
Espiral estable Espiral estable
Espiral inestable Espiral inestable
Punto de silla Punto de silla
Centro ?

Aplicamos este teorema a las ecuaciones de Loka-Volterra,



dx
dt = 2x xy



(A.10)
dy


= 3y + xy, x(0) = 1, y(0) = 1.
dt
El sistema es no lineal y hay que resolverlo numericamente mediante el comando
NDSolve.
In[26]:= sol = NDSolve@8x '@tD == 2 x@tD - x@tD y@tD,
y '@tD == -3 y@tD + x@tD y@tD,
x@0D 1, y@0D 1<, 8x@tD, y@tD<, 8t, 0, 10<D

Out[26]= 88x@tD InterpolatingFunction@880., 10.<<, <>D@tD,


y@tD InterpolatingFunction@880., 10.<<, <>D@tD<<
Mathematica obtiene una serie de puntos de la trayectoria (x(t), y(t)) utilizando
el metodo de resolucion numerica de ecuaciones diferenciales (RungeKutta, Adam
Basford, Heun,...) que considera adecuado y utiliza una funcion interpoladora de
dichos puntos, que almacena en su memoria y que nos da como respuesta de NDSolve.
A continuaci on dibujamos las gr aficas de las soluciones x(t) y y(t) y establecemos
la diferencia de estas con las trayectorias.

111
grafsol = Plot@Evaluate@8x@tD, y@tD< . solD, 8t, 0, 10<,
PlotStyle 8Red, Blue<, PlotRange 880, 10<, 80, 10<<,
In[11]:=

AspectRatio 1, AxesLabel -> 8t, "x HtL,yHtL"<D


x HtL,yHtL
10

Out[11]=

0 t
0 2 4 6 8 10
En la figura siguiente tenemos las graficas de las soluciones x(t) y y(t) sobre el
mismo sistema de ejes; x(t) que corresponde a la poblacion de presas (aparece por
debajo de la otra) y y(t) corresponde a la poblacion de depredadores. Esta informa-
cion no es tan f
acil de ver si las dibujamos en distintos ejes. Notamos que ambas son
funciones peri odicas en t, esto explica las fluctuaciones que se observan experimen-
talmente en las poblaciones depredador-presa. Para esta solucion particular vemos
que los incrementos en la poblaci on depredador estan retardados respecto de los
aumentos en la poblaci on presa y que la poblacion depredador contin ua creciendo
por un corto tiempo despues que la poblacion presa comienza a declinar. Tal vez
la observaci on mas importante que podemos hacer sobre esta grafica es que ambas
poblaciones parecen repetirse con el mismo periodo aunque con cierto desfase.
Observamos que tenemos una gr afica para cada una de las soluciones con variable
independiente t pero tendremos m as informacion sobre el comportamiento dinamico
del sistema mediante de la relaci on entre ambas soluciones a traves del tiempo t.
Dados x(t) y y(t) podemos formar el par (x(t), y(t)) y considerarlo como un punto
en el plano xy para un valor fijo de t. Conforme vara t, el par (x(t), y(t)) dibuja una
curva en el plano de fase xy. Las coordenadas de cada punto sobre la curva son las
poblaciones presa y depredador en el tiempo t y el punto inicial (x0 , y0 ). Para cada
condicion inicial tenemos una trayectoria en el plano de fase y el conjunto de todas
las trayectorias sobre el mismo plano xy conforma el retrato de fase. Para dibujar
las trayectorias utilizaremos la funci on ParametricPlot.
La trayectoria es una curva cerrada simple. Si seguimos la trayectoria, comenzan-
do en un punto en que la poblaci on de la presa es maxima, vemos que x disminuye y

112
y aumenta hasta que la poblaci on depredadora y es maxima. Despues ambas dismi-
nuyen hasta que x es mnima. Y as sigue la trayectoria hasta llegar al punto inicial.
En particular, vemos que si tanto x0 > 0 como y0 > 0, entonces tanto x(t) > 0 como
y(t) > 0 para todo t, por lo que ambas especies sobreviven en mutua coexistencia.
Si las fluctuaciones son tan amplias que x(t), presa, llegue a estar cerca de cero,
existe la posibilidad de que las u
ltimas pocas presas sean devoradas, resultando su

fase1 = ParametricPlot@Evaluate@8x@tD, y@tD< . solD,


inmediata extinci on y la eventual extincion consecuente de los depredadores.

8t, 0, 10<, PlotStyle Orange,


In[17]:=

PlotRange 880, 10<, 80, 10<<,


AspectRatio Automatic, AxesLabel 8"x", "y"<D
y
10

Out[17]=

0 x
0 2 4 6 8 10
Podemos mostrar los dos gr
aficos juntos con la opcion GraphicsArray.

113
In[18]:= Show@GraphicsArray@8grafsol, fase1<DD

x HtL,yHtL y
10 10

8 8

6 6
Out[18]=

4 4

2 2

0 t 0 x
0 2 4 6 8 10 0 2 4 6 8 10

Para realizar un estudio completo y obtener el retrato de fase mas completo con-
sideramos el sistema dado dejando la condicion inicial en terminos de un parametro,

x = 2x xy
(A.11)
y = 3y + xy; x(0) = 3s, y(0) = 2s

Obtenemos el retrato de fases con un programa sencillo. Este programa resuelve


numericamente el sistema para el parametro que aparece en la solucion inicial y ob-
tiene las trayectorias sin mostrar el dibujo ya que aparece en terminos del parametro.

In[20]:= soluc@s_D := Module@8solt, y, x, t, ec1, ec2<,


ec1 = x '@tD == 2 x@tD - x@tD y@tD;
ec2 = y '@tD == -3 y@tD + x@tD y@tD;
solt =
NDSolve@8ec1, ec2, x@0D 3 s, y@0D 2 s<,
8x@tD, y@tD<, 8t, 0, 10<D;
ParametricPlot@8x@tD, y@tD< . solt, 8t, 0, 10<,
Compiled False,
DisplayFunction Identity, PlotStyle BlueD
D

Hacemos una tabla para diversos valores del parametro s,

In[21]:= graf = Table@soluc@sD, 8s, 1 8, 7 8, 3 40<D;

y las mostramos mediante la funci


on Show.

114
In[7]:= retfase = Show@graf, PlotRange All, DisplayFunction $DisplayFunctionD

10

6
Out[7]=

2 4 6 8 10 12

Podemos completar el estudio del problema comparando el campo de direcciones


con las trayectorias, superponiendo los graficos.
In[23]:= Show@retfase, campdir, PlotRange 880, 15<, 80, 15<<,
AspectRatio 1D

14

12

10

8
Out[23]=

2 4 6 8 10 12 14

Las soluciones oscilan alrededor de una solucion centro. Podemos deducir la


relacion entre las dos poblaciones presa, x(t), y depredador, y(t): si seguimos un
ciclo en sentido antihorario comenzando cerca del punto (2, 0), podemos observar que
cuando x(t) aumenta, entonces y(t) aumenta hasta que hay sobrepoblacion. Como
la poblacion de las presas es demasiado pequena para alimentar a los depredadores,

115
y(t) disminuye, lo que lleva a un aumento en la poblacion de x(t). Como el n umero
de depredadores se hace demasiado peque no para controlar la poblacion de x(t), esta
aumenta y se repite el ciclo. En este caso diremos que las soluciones son peri odicas.
En el ejemplo descrito los valores de la condicion inicial estaban relacionados por
el mismo par ametro s. Si queremos hacer un estudio del retrato de fases tomando
valores cualesquiera s
olo tenemos que modificar un poco el proceso anterior.

In[25]:= soluc1@a_, b_D := Module@8solt, y, x, t, ec1, ec2<,


ec1 = x '@tD == 2 x@tD - x@tD y@tD;
ec2 = y '@tD == -3 y@tD + x@tD y@tD;
solt =
NDSolve@8ec1, ec2, x@0D a, y@0D b<, 8x@tD, y@tD<,
8t, 0, 10<D; ParametricPlot@8x@tD, y@tD< . solt,
8t, 0, 10<, Compiled False,
DisplayFunction Identity, PlotStyle BlueD
D

El programa lo construimos para los valores de la condicion inicial x0 = a y


x0 = b, en la que no hay relaci on entre ambos. Aparece en la primera lnea el
nombre del programa en funci on de dos variables a y b. Despues construimos la
tabla de soluciones para valores de los dos parametros.

In[26]:= graf1 = Table@soluc1@a, bD, 8a, 1, 3<, 8b, 1, 3<D;

Y por u
ltimo el retrato de fases cuya sentencia no difiere en nada de la anterior,

In[27]:= retfase = Show@graf1, PlotRange All, DisplayFunction $DisplayFunctionD

3
Out[27]=

1 2 3 4 5 6 7

116
A.3. Ejercicios
Ejercicio A.3. Estudia la estabilidad del punto crtico (0, 0) del sistema
 0
x = x xy 2
y 0 = y x2 y.

Ejercicio A.4. Demuestra que el punto crtico (0, 0) del sistema


 0
x = y + xy 2 + 2x3
y 0 = x + x2 y + 3y 3

es inestable.

Ejercicio A.5. Haz un estudio similar para el ejercicioemplo del oscilador arm
onico

dx
dt = v


dv


= x.
dt
para diversos valores de la condici
on inicial x(0) = a, y(0) = b.

Ejercicio A.6. Estudia el sistema de Van der Pol



x = y
y = x (x2 1)y.

para diversos valores del par


ametro de forma que salgan puntos de equilibrio de
diferente tipo.

Ejercicio A.7. Estudia el retrato de fases del sistema

x = 4x + 2y + 2x2 3y 2


y = 4x 3y + 7xy.

Ejercicio A.8. La modelaci on de un edificio oscilante mediante la ecuaci on de un


oscilador arm onico es poco realista. Las fuerzas presentes en un edificio en oscilacion
no son identicas a las de un resorte. El oscilador arm onico es s
olo una primera apro-
ximaci on a un sistema fsico complicado. Para extender la utilidad de este modelo,
debemos considerar otros factores que rigen el movimiento de un edificio oscilante.
Un aspecto del modelo del edificio oscilante que no hemos incluido en el ejemplo
anterior es el efecto de la gravedad. Cuando el edificio sufre peque nas oscilaciones,
este parametro no juega un papel importante. Sin embargo, si las oscilaciones son
significativas, entonces la gravedad puede tener un efecto importante. Cuando y(t)
adquiere su valor m aximo, una porci on del edificio no esta directamente arriba de
ninguna otra parte de este. En consecuencia, la gravedad estirahacia abajo dicha
parte del edificio y esta fuerza tiende a flexionar mas a
un el edificio. Este es el efecto
P-Delta (Delta es la distancia en voladizo y P es la fuerza de la gravedad).

117
El efecto P-Delta es muy peque no cuando y es peque na, mucho m as aun que la
fuerza restauradora. cuando y crece, el efecto P-Delta se vuelve muy grande. Como
un primer modelo, podemos suponer que la fuerza proporcionada por el efecto P-
Delta es proporcional a y 3 . Agregar esta fuerza equivale a aumentar un termino a
la expresi
on para la aceleracion de y, es decir, anadir un termino proporcional a
y 3 al lado derecho de la ED de segundo orden. Para estudiar el comportamiento
cualitativo de las soluciones, suponemos que el coeficiente del termino y 3 es 1. Por
tanto, nuestro nuevo modelo es

d2 y dy 3
2 + 0,2 dt + 0,25y = y .
dt
Estudia el comportamiento del sistema.

118
Bibliografa

[1] M. L. Abell, J.P. Braselton, Differential Equations with Mathematica, Academic


Press, 1993.

[2] M. L. Abell, J.P. Braselton, Mathematica by Example, 4th Ed., Academic Press,
2008.

[3] R. Barrio, C. L
opez, E. Martnez, C
alculo Vectorial. Pr
acticas con Mathematica
y Maple, Prensas Universitarias de Zaragoza, 1997.

[4] N. Blachman, Mathematica: Un enfoque pr


actico, Ariel Informatica, 1993.

[5] A. Carrillo de Albornoz, I. Llamas, Mathematica 5. Aplicaciones para PC, Edi-


torial RA-MA, 2005.

[6] D. Dubin, Numerical and Analytical Methods for Scientists and Engineers Using
Mathematica, John Wiley & Sons, 2003.

[7] J. Glynn, T.W. Gray, The Beginners Guide to Mathematica Version 4, Cam-
bridge University Press, 2000.

[8] A. Gray, M. Mezzino, M.A. Pinsky, Introduction to Ordinary Differential Equa-


tions with Mathematica, Springer, 1997.

[9] H.F. H
oft, M.H. H
oft, Computing with Mathematica, 2nd. Ed., Academic Press,
2003.

[10] S. Lynch, Dynamical Systems with Applications using Mathematica, Birkhauser,


2007.

[11] R. Maeder, Programming in Mathematica, 3rd Ed., Addison Wesley, 1997.

[12] J.L. Malaina, A.I. Martn, Fundamentos Matem aticos con Mathematica, Servi-
cio Editorial de la Universidad del Pas Vasco, 1997.

[13] V. Ramrez et al., C


alculo numerico con Mathematica, Ariel Ciencia, 2001.

[14] J.S. Robertson, Engineering Mathematics with Mathematica, McGraw-Hill,


1995.

[15] F.J. Rodrguez G


omez, F. Garca Merayo, Fundamentos y Aplicaciones de Mat-
hematica, Ed. Paraninfo, 1998.

119
[16] J.M. Sanz Serna, Diez lecciones de c
alculo numerico, Universidad de Valladolid,
1998.

[17] M. Trott, The Mathematica GuideBook for Numerics, Springer-Verlag, 2006.

[18] M. Trott, The Mathematica GuideBook for Programming, Springer-Verlag,


2004.

[19] M. Trott, The Mathematica GuideBook for Symbolics, Springer-Verlag, 2006.

[20] S. Wolfram, The Mathematica Book, Fifth Edition, Wolfram Media, Inc., 2003.

120

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