Академический Документы
Профессиональный Документы
Культура Документы
UNIVERSITAT JAUME I
FUNDAMENTOS
MATEMÁTICOS
DE LA INGENIERÍA
Cristina Chiralt
Fernando Casas
Jorge Galindo
Sergio Macario
Manuel Sanchis
Prefacio
El presente manual está destinado a la realización de las prácticas de laboratorio
correspondientes a las asignaturas de Fundamentos Matemáticos de la Ingenierı́a I
y II de la Ingenierı́a Industrial en la Universitat Jaume I. Cada una de ellas tiene
asignado 1 crédito (equivalente a 10 horas lectivas) dedicado a la realización de
prácticas con el ordenador. Esas 10 horas se reparten en cuatro sesiones de 2.5 horas
cada una, a razón de dos sesiones en cada cuatrimestre. Las prácticas 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
teorı́a y de problemas) y por otra de cubrir aquellos aspectos del programa que
difı́cilmente pueden desarrollarse durante dichas clases, como es todo lo relativo al
cálculo numérico. En este sentido, se ha considerado importante dedicar una sesión
entera a los aspectos gráficos que el programa Mathematica ofrece.
El manual se ha dividido en ocho capı́tulos o prácticas, cada uno de los cuales
corresponde aproximadamente al material impartido en cada sesión de 2.5 horas.
Como complemento, se ha incluido un apéndice con material relativo a ecuaciones
diferenciales no lineales, haciendo especial hincapié en los aspectos cualitativos de la
teorı́a. Este capı́tulo adicional se incluye por completitud y también porque puede
darse el caso de que la primera práctica (una introducción genérica a Mathematica)
pueda reducirse al mı́nimo si los estudiantes ya disponen de conocimientos previos
sobre el programa.
Cada práctica dispone de una pequeña introducción teórica, siendo ésta más
amplia cuando el material tratado en la misma no se ha impartido previamente
en el aula de teorı́a. Esto es especialmente relevante en el caso de la práctica 4
(interpolación y aproximación de funciones) y la práctica 5 (integración numérica).
Se ha intentado que el desarrollo de cada práctica esté suficientemente detallado
en los cálculos y pasos intermedios, puesto que el objetivo es que el estudiante en-
tienda cabalmente todo el proceso, ası́ como representar gráficamente los resultados,
para que la asimilación de los conceptos sea más sencilla.
Esperamos que este manual sea una herramienta útil para nuestros estudiantes
en su proceso de aprendizaje de los Fundamentos Matemáticos de la Ingenierı́a.
Los autores
Índice general
1. Introducción a Mathematica 1
1.1. Convenios sobre notación . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2. El Front End y el Núcleo . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3. Notación matemática de Mathematica . . . . . . . . . . . . . . . . . 3
1.4. Corchetes, paréntesis y llaves . . . . . . . . . . . . . . . . . . . . . . 6
1.5. Funciones incorporadas . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.6. Definiendo funciones no incorporadas . . . . . . . . . . . . . . . . . . 8
1.7. Listas y matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.8. Resolución de ecuaciones . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.9. Reglas de sustitución . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.10. Ayudas incorporadas . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.11. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2. Álgebra Lineal 16
2.1. Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.1.1. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2. Cónicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
i
Fundamentos Matemáticos de la Ingenierı́a II ii
5. Integración numérica 50
5.1. Reglas de cuadratura . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.2. Obtención de reglas de cuadratura . . . . . . . . . . . . . . . . . . . 52
5.2.1. El método interpolatorio . . . . . . . . . . . . . . . . . . . . . 52
5.2.2. El método 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 métodos en Mathematica . . . . . . . . . . . . . . . 56
5.6. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
6. Sucesiones y series 60
6.1. Sucesiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
6.2. Series de números reales . . . . . . . . . . . . . . . . . . . . . . . . . 64
6.3. Series de Taylor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Introducción a Mathematica
1
En el siguiente ejemplo la expresión 2 + 2 corresponde al input, y por tanto se
debe escribir tal y como aparece, mientras que la expresión 4 (de color más claro)
corresponde al output, y no se debe escribir en pantalla.
2+2
No se deben poner espacios en los nombres de las funciones y sı́ entre dos
variables que deben ser multiplicadas. En los demás casos, los espacios no se
tienen en cuenta.
Al igual que con los tipos de paréntesis, cada signo de puntuación tiene también
su propio significado.
2
ellos se pueden incluir gráficos. 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án separados. El Front End sólo envı́a un cálculo al
Kernel sólo cuando ası́ se le ordena. Tal petición se efectúa mediante la combinación
de teclas Shift-Return (mayúsculas y retorno de carro)o mediante la tecla Intro
del teclado numérico.
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
cálculos a un Kernel instalado en una estación de trabajo (kernel remoto). Por
supuesto, los outputs aparecen en el ordenador personal de la misma forma que si
el cálculo lo hubiese realizado el Kernel instalado en dicho ordenador (kernel local).
Para ello es preciso que los dos ordenadores estén conectados por medio de una red.
3
2+4
Plus@2, 4D
Para referirnos a este último resultado se utiliza el carácter %. Ası́, %^2 nos de-
volverá 2314 .
%^2
50
2 ^ H3 * 6L + H9 - 1L 4
262 146
2^3 ´ 6 + 9 - 1 4
227
4
En este último ejemplo hemos utilizado las dos formas alternativas de indicar
una multiplicación en Mathematica(mediante ∗ o bien dejando un espacio en blanco
entre ellos1 ).
1
Mathematica 6 añade, entonces, el aspa.
4
En algunas ocasiones puede ser conveniente asignar un nombre a un resultado
para ser utilizado después. Esta asignación permite trabajar con mayor comodidad
que refiriéndonos al resultado mediante el número de la lı́nea de output. La expre-
sión velocidadDeLaLuz = 300000 hace que Mathematica asocie el valor 300000 al
nombre velocidadDeLaLuz (se entiende que las unidades son Km/s en el vacı́o).
velocidadDeLaLuz = 300 000
300 000
Una vez realizada la asignación, 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ás correcta de expresar este resultado con las unidades correspon-
dientes puede ser la siguiente:
velocidadDeLaLuz "Kms" - 269 000 "Kms"
31 000 Kms
Lı́neas y Celdas: Cada vez que llamamos al núcleo para que procese las órdenes
introducidas, Mathematica ejecuta todas las instrucciones agrupadas en la misma
celda (el corchete que se ve en el extremo derecho del Notebook). Para añadir órdenes
dentro de una celda (cuando se tiene un input demasiado largo, o se desea que ejecute
varias órdenes sucesivamente) se puede continuar en sucesivas lı́neas, basta pulsar
Enter para descender una lı́nea sin cambiar de celda. Para cambiar de celda se
utiliza la flecha ↓ del cursor. Hay que poner atención en lo siguiente: si queremos
truncar una lı́nea de input en una operación matemática, por ejemplo una suma,
debemos comenzar una nueva lı́nea después del signo +, o bien, encerrar el input
entre paréntesis.
De esta forma obtenemos el resultado correcto:
7+4+
5
16
5
1.4. Corchetes, paréntesis y llaves
Hay varias clases de “paréntesis” que se usan en Mathematica; algunos de ellos
los hemos utilizado en los apartados anteriores. Cada clase de “paréntesis” tiene un
significado diferente.
Los paréntesis ( ) se usan para agrupar expresiones tal y como sucede en la nota-
ción matemática. Como se ha señalado en el apartado 1.3, los paréntesis determinan
el orden de prioridad al evaluar una expresión.
1 + 2*3
H1 + 2L * 3
Sin@ID
ä Sinh@1D
√
En este último ejemplo I representa el número imaginario −1.
Las llaves se utilizan para definir conjuntos de elementos de forma similar a la
utilizada en la notación matemática para definir un conjunto por extensión. En no-
tación matemática, el conjunto formado por los cinco primeros números naturales
se puede representar por {1, 2, 3, 4, 5}. En el lenguaje de Mathematica estas entida-
des (conjuntos de elementos definidos por extensión) se llaman listas y también se
utilizan para definir vectores y matrices.
Por último, el texto entre (* y *) no se evalúa. Estos paréntesis se utilizan para
hacer comentarios en el notebook.
v = 87, 3, -1< H* Aqui v es un vector *L
87, 3, -1<
6
1.3); dentro de las constantes están las funciones Pi y I; ejemplos de opciones los
daremos más adelante.
Los nombres de las funciones incorporadas consisten en palabras inglesas com-
pletas o abreviaciones matemáticas estándar, de forma que la primera letra de cada
palabra se escribe con mayúscula. Por ejemplo, para utilizar la función 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áticas, en el sentido de que no tienen por qué tomar siempre un valor
constante. La función trigonométrica sin(x) es una función no constante; la letra x
decimos que es su variable. En la notación de Mathematica la función seno hemos
visto que se representa por Sin, de forma que cuando queremos calcular sin(π/2)
escribimos Sin[Pi/2]. El concepto análogo al concepto matemático de variable en
la terminologı́a de Mathematica es el término argumento.
Evidentemente, no todas las funciones requieren un único argumento. Cuando
una función requiere más de un argumento, estos van separados por comas. Aquı́ cal-
culamos la derivada de x2 :
D@x ^ 2, xD
2x
0.23
11
1 + 2 x + 3 x2 + 2 x3 + x4
7
En cambio la siguiente expresión no puede expandirla:
Expand@Sin@2 xDD
Sin@2 xD
Esta función admite un argumento opcional, Trig -> True, que permite tratar
las funciones trigonométricas como funciones racionales de exponenciales, y expan-
dirlas de acuerdo con esto.
Expand@Sin@2 xD, Trig ® TrueD
2 Cos@xD Sin@xD
Una función con el atributo Listable aplica la función 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
8
f@2D
Una función puede tener más de un argumento. Aquı́ definimos la función g(x, y) =
xy y la evaluamos en (2, 3):
g@x_, y_D = x y;
g@2, 3D
Son muchas las situaciones en las que podemos necesitar una definición aplazada.
Por ejemplo, cuando definimos la función factorial.
factorial@0D = 1;
factorial@x_D := x Factorial@x - 1D
factorial@4D
24
81, 2, 1, 3, 1, 4, 1, 5<
9
Como se ha señalado antes, los elementos de una lista no tienen por qué ser
números reales.
82, x + 1, 2 x ^ 2 + 3 x + 7<
92, 1 + x, 7 + 3 x + 2 x2 =
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
Extracción 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
-1
-1
10
Generación de listas: Una forma de generar listas es mediante la función Table.
Table@i, 8i, 1, 5<D
81, 2, 3, 4, 5<
11
1.8. Resolución de ecuaciones
Una función que se requiere en muchas ocasiones es la de resolver ecuaciones. El
comando Solve intenta resolver la ecuación que se le plantea. Debemos indicar la
ecuación o ecuaciones a resolver y cuáles son las incógnitas. Salvo que le indiquemos
lo contrario, Mathematica puede utilizar funciones inversas cuando las ecuaciones
no son polinómicas. En estos casos alguna solución (o quizá una cantidad infinita de
ellas) pueden no aparecer explı́citamente.
Solve@Sin@x + y - x ^ 2D 1 2, yD
::y ® - x + x2 >>
Π
6
8x ® 0<
8x ® -ä<
x®0
-ä
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 tendrá 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 solución 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 solución: ", N@ecu@bDDD
La primera solución con parte real mayor que -2.5 se obtiene con b igual a: 19
88x ® -t<<
% . t ® 2
88x ® -2<<
También podemos usar las reglas de sustitución con fines simbólicos. A conti-
nuación por ejemplo las utilizamos para escribir una función en coordenadas polares
(englobamos todo el cálculo con el comando Simplify para obtener un resultado
simplificado); conviene observar que al ejecutar más de una sustitución 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
13
? Sin
System`
SiegelTheta SingleLetterStyle
Sign SingularValueDecomposition
Signature SingularValueList
SignPadding SingularValues
Simplify Sinh
Sin SinhIntegral
Sinc SinIntegral
SingleEvaluation SixJSymbol
SingleLetterItalics
El carácter ∗ puede ir en cualquier lugar después del signo ? Por ejemplo, ?∗Sin
nos dará información acerca de todas las funciones que terminen en Sin.
? *Sin
System`
ArcSin Sin
14
?
Hay que poner atención al pedir información acerca del sı́mbolo ∗, 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 información solicitada acerca del operador ∗ nos
da una forma alternativa de indicar la multiplicación en Mathematica: dejando un
espacio en blanco entre los factores.
1.11. Ejercicios
√
Ejercicio 1.1. Definir una función gam tal que gam( 21 ) = π, gam(0) = 1 y
x x−2 x−4x−6 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?. ¿Qué 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ón.
doce soluciones.
ninguna solución.
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ón p = . A continuación
(x + a)(x3 − 3x2 + x − 3)
resolver la ecuación Denominadordep = 0, cuando a = 2. Obtener el valor numérico
de p cuando x = 2, a = 2. Descomponer p como suma de fracciones simples. A con-
tinuación hacer denominador común en la suma de fraccciones obtenida; comparar
con p (simplificar p puede ayudar). Escribir una lista con las raı́ces del denominador
de p cuando a = {0, 1, 2, . . . , 20}2 , utilizar la ayuda (F1) para conocer su sintaxis.
2
Aquı́ será necesario utilizar algunos comandos que no hemos introducido aún como: Apart,
Together, Denominator.
15
Práctica 2
Álgebra Lineal
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).
DiagonalMatrix[lista]
IdentityMatrix[n]
El comando
MatrixForm[matriz]
16
m[[i, j]] proporciona el elemento i, j de la matriz m;
m[[i]] o Part[m, i] da la fila i-ésima de m.
debiendo tener cuidado con estas dos últimas operaciones, pues aunque se represen-
tan de igual forma, proporcionan resultados muy diferentes.
Transpose[m]
MatrixPower[m, k]
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 explı́citamente, y después resolverlas usando el comando
Solve. En muchos casos, sin embargo, puede resultar más adecuado convertir el
sistema en una ecuación matricial, y aplicar después operaciones matriciales para
resolverlo, sobre todo si el número de ecuaciones y de incógnitas es elevado.
m · x = b,
Las funciones incorporadas que Mathematica ofrece para resolver este tipo de
sistemas de ecuaciones son los siguientes:
LinearSolve[m,b]
NullSpace[m]
RowReduce[m]
Length[NullSpace[m]]
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 cálculo de los valores propios de una matriz n × n supone, en principio,
resolver una ecuación polinómica de grado n. Si n ≥ 5 no es posible obtener, en
general, soluciones algebraicas explı́citas de una ecuación tal; Mathematica dispone
de los siguientes comandos para abordar este problema:
Eigenvalues[m]
Eigenvectors[m]
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ón numérica de los valores propios. Por tanto, Mathe-
matica nos puede proporcionar una aproximación numérica de los valores propios.
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
19
(2) Resolver el sistema
x + 5y = a
2x + y = b
dependiente de dos parámetros. El método más eficiente es usar LinearSolve.
con Mathematica ?
(5) Estudia y resuelve, según los valores de a, el sistema formado por las ecuacio-
nes
ax + y + z = 1
x + ay + z = a
x + y + az = a2
y otra con
(2, 3, −1, 3, 0), (1, 2, 1, −2, 1), (2, 1, −7, 17, −4),
{(2, 3, 4, −1, 1), (3, 4, 7, −2, −1), (1, 3, −1, 1, 8), (0, 5, 5, −1, 4)},
20
(9) Dada la aplicación 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úcleo. Halla también la imagen de los vectores
(4, 2, 0, 0, −6) y (1, 2, −1, −2, 3).
(12) Diagonaliza la matriz cuyas filas vienen dadas por los vectores
2.2. Cónicas
La circunferencia, la elipse y la parábola son curvas planas de todos conocidas.
Estas curvas aparecı́an ya en la geometrı́a griega y fueron denominadas secciones
cónicas ya que los griegos de la época de Platón consideraban que tales curvas
procedı́an de la intersección de un cono con un plano tal como muestra la figura:
21
Cuando los matemáticos de los siglos XVI y XVII estudiaron los trabajos griegos,
empezaron a comprobar la falta de generalidad de los métodos de demostración, lo
que llevó a sustituir la visión puramente geométrica de las secciones cónicas por otra
que incorporaba la nociones de coordenadas y distancia. Esto llevó a la definición de
estas curvas como lugares geométricos que verifican ciertas propiedades en términos
de distancia. Finalmente se estableció una teorı́a algebraica general que engloba
todas estas curvas y las describe como curvas cuadráticas. En esta teorı́a está basada
la presente práctica.
Curvas cuadráticas
Una cónica es el lugar geométrico de los puntos del plano que satisfacen una
ecuación de segundo grado en dos variables:
X t AX + BX + a00 = 0 (EG)
donde
!
a11 a12
x
A= , B = 2a01 2a02 , X= .
a12 a22 y
A partir de la ecuación general (EG) de una cónica vamos a estudiar tres pro-
blemas: (1) Obtener su ecuación reducida, (2) obtener sus elementos geométricos, y
(3) analizar sus invariantes métricos.
22
Ecuación reducida de una cónica
Diremos que la ecuación de una cónica
X t AX + BX + a00 = 0 ,
1. La matriz A es diagonal.
3. Si 0 es valor propio de A, entonces de entre los elementos a0i hay a lo más uno
no nulo.
Puesto que el primer requisito para tener una ecuación reducida es que la matriz
de la cónica sea diagonal, dada una ecuación
X t AX + BX + a00 = 0
trataremos de sustituir A por una matriz diagonal. Puesto que A es simétrica, 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
expresión
X = PZ con Z = (u, v)
23
u2 + 2b1 u = (u + b1 )2 − b21
y de forma similar
v 2 + 2b2 v = (v + b2 )2 − b22 .
Mediante la sustitución
(
t = u + b1
s = v + b2
Tenemos ası́ un proceso que nos permite pasar de una ecuación cualquiera de
una cónica a una ecuación reducida mediante la composición de dos movimientos
rı́gidos: una rotación y una traslación. Es un cambio de sistema de referencia en el
que no varı́an las propiedades geométricas, sólo lo hace la ecuación.
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 Práctica 1:
PASO 5: Realizar el producto de las matrices que aparecen en la ecuación (E) para
obtener una nueva ecuación cuadrática de la cónica.
Si todos los pasos han sido realizados correctamente se debe haber obtenido la
ecuación:
16 28
−8u2 + 2v 2 + √ u − √ v + 9 = 0
10 10
24
donde u y v son las nuevas coordenadas tras realizar el giro.
14
2
2 v − √ v = 2 v− ??? )2 − ???
10
Tras los cálculos anteriores, las nuevas coordenadas tras realizar la traslación
son:
1
t = u − √10
7
s=v−√ .
10
Ejercicio 2.3. Dibujar la cónica del ejercicio anterior, primero utilizando la ecua-
ción x2 − 6xy − 7y 2 + 10x + 2y + 9 = 0, luego la ecuación (E) y luego la ecuación
reducida. Compara las gráficas obtenidas.
√
Ejercicio
√ 2.4. Hallar la ecuación reducida de la cónica x2 + y 2 + 2xy + 6 2 x −
2 2 y + 26 = 0. Dibujar la gráfica de esta cónica, primero usando la ecuación
anterior, luego la ecuación (E) y luego la ecuación reducida, comparando las gráficas
obtenidas.
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 hipérbola) o el vértice (en el caso de la
parábola) es la solución del sistema:
0 = C + P tX
Para calcular los ejes basta con recordar que la nueva base está formada por los
vectores propios de la matriz de la cónica y, por tanto, estos vectores son los vectores
directores de los ejes de la cónica. En el caso de la parábola, el vector propio asociado
a λ = 0 nos da la dirección del eje y el otro vector propio proporciona la dirección
de la tangente en el vértice.
De forma similar al cálculo del centro se pueden obtener los focos de la cónica,
la directriz de la parábola, las ası́ntotas de la hipérbola, etc.
−2xy − 2x + 6y + 5 = 0
26
Los números I1 , I2 y I3 no varı́an cuando la cónica es afectada por un movimiento
rı́gido y se denominan invariantes métricos. Los invariantes métricos nos permiten
identificar el tipo de cónica según se refleja en la tabla 2.2:
2x2 − 4xy − y 2 − 4x − 8y + 14 = 0 .
En el caso en que I2 6= 0, la cónica dada tendrá una ecuación reducida del tipo
ax2 + by 2 + d = 0
27
Práctica 3
0.5
Out[12]=
1 2 3 4 5 6
-0.5
-1.0
Si queremos trabajar con varias gráficas a la vez tenemos varias opciones. Una
de ellas es:
28
Ejemplo 3.1. Representa gráficamente las funciones f (x) = sin x, f (x) = sin(2x),
f (x) = sin(3x) en el intervalo [0, 2π].
El comando Show también permite combinar varias gráficas de una vez tal y
como vemos a continuación.
Además podemos obtener cada gráfica por separado en una tabla de gráficos;
para ello utilizaremos la opción que detallamos en el siguiente ejemplo.
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
1.0
0.5
Out[39]=
1 2 3 4 5 6
-0.5
-1.0
Si queremos comparar dos o más gráficas, una posibilidad es usar con el comando
Show la opción AspectRatio->Automatic, la cual establece las misma proporción
en los dos ejes coordenados,
29
También podemos obtener lo mismo con la sentencia siguiente, en la que no
consideramos la opción 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 resultarı́a demasiado
extenso. Resulta muy útil utilizar el Help que aparece en el menú del programa o
bien el comando Options[Plot]. Algunas de ellas son:
Dashing: opción para hacer el dibujo con puntos o rayas en vez de un trazo
continuo.
FilledPlot: rellena el espacio limitado por las gráficas de las funciones y las
ordenadas extremas consideradas.
PlotStyle->{}: nos proporciona opciones del dibujo tales como el grosor, color
y otros.
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
2
Out[13]=
-4 -2 2 4
-2
-4
-6
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;
Show@graf1, graf2D
8
2
Out[20]=
-4 -2 2 4
-2
-4
-6
Ejercicio 3.1. Dibuja la función f (x) = sin x + cos 3x en el intervalo [−4π, 4π].
(a) Modifica AspectRatio haciendo que la altura sea dos veces el ancho.
(c) Cambia las marcas correspondientes al eje de abcisas, Ticks, sobre el gráfico
de manera que aparezcan sólo múltiplos de π.
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áficas, en diversos colores, en las que apa-
rezcan una rosa de tres pétalos de varios tamaños y en varias posiciones diferentes.
Para sombrear las zonas requeridas hay que cargar el paquete
<<Graphics‘FilledPlot‘ y los comandos son:
FilledPlot[expr,{x,xmin,xmax}]:sombrea el espacio entre la curva y el eje
x.
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ón ImplicitPlot tiene las mismas opciones que las de Plot salvo Compiled,
MaxBend y PlotDivision. Precisemos que para la función ImplicitPlot, la opción
AspectRatio toma el valor Automatic por defecto.
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
Plot3D[f(x,y),{x,a,b},{y,c,d}].
35
cuya gráfica 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
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 relación 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 menú Input aparece 3DViewPoint Selector,
el cual permite mover el cubo hasta que tengamos el punto de vista que queremos. A
continuación 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 gráfica 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 dé una buena perspectiva de cómo es su gráfica. 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 opción: utilizar la función 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áfico con la
opción 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ás que no aparezca la caja de los
ejes, ni los cuadrados del dibujo.
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
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}]
Una sentencia similar nos permite dibujar gráficas de curvas en tres dimensiones
en paramétricas,
38
ParametricPlot3D[{x(t),y(t),z(t)}, {t,a,b}]
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ón paramétrica r(t) = , en
1 + t 1 + t3
3
[0, 4π]
0.5
0.4
0.3
Out[62]=
0.2
0.1
39
Ejemplo 3.7. Representación gráfica de la circunferencia de radio 1 y centrada en
x2
(0, 0) y la elipse + y 2 = 1, ambas en coordenadas paramétricas.
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áfica en estas coordenadas son las mismas que
las de Plot.
0 20 40
-40 -20
40
30
20
Out[2]=
10
0
40
20
0
-20
-40
Ejercicio 3.8. Haz la representación gráfica del cono del apartado anterior y asigna
etiqueta a los ejes.
Ejercicio 3.9. Haz la representación gráfica del cilindro con eje de simetrı́a z, de
radio 6 y z ∈ [−2, 2].
40
Representación gráfica de curvas en el espacio
La función ParametricPlot3D nos permite también representar gráficamente
curvas en el espacio, definidas por sus ecuaciones paramétricas ~σ (t) = (x(t), y(t), z(t))
donde a ≤ t ≤ b. Por ejemplo, hacemos la representación gráfica de una espiral de
ecuaciones paramétricas ~σ (t) = (2 cos t, 2 sin t, t), t ∈ [0, 6π],
41
Práctica 4
Interpolación y aproximación de
funciones
Este problema tiene solución única; el polinomio que satisface estos requisitos se
conoce como polinomio interpolador o interpolante de Lagrange de la función f en
los puntos x0 , x1 , ..., xn .
Ejemplo 4.1. Calcular el polinomio de interpolación que pasa por (1, 1), (2, 0),
(4, 0), (5, 1), (6, 1.5).
Solución: 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.0
0.5
2 3 4 5 6
`j (xj ) = 1 y `j (xk ) = 0, si j 6= k
P (x) = f (x0 )`0 (x) + f (x1 )`1 (x) + · · · + f (xn )`n (x).
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
Expand@polLagrange@tDD
Ejercicio 4.1. La tensión de vapor (en kilopascales) del helio lı́quido 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ón para 3.4 K usando interpolación cuadrática (últimos 3 no-
dos) y cúbica. El valor verdadero es 41.5.
x Γ(x)
1.0 1.00000
1.1 0.95135
1.2 0.91817
1.3 0.89747
44
donde los coeficientes ci se calcularán mediante las llamadas diferencias divididas,
definidas por recurrencia como sigue:
f [x1 , . . . , xi ] − f [x0 , . . . , xi−1 ]
ci = f [x0 , . . . , xi ] ≡ , i = 0, 1, . . . , n.
xi − x0
La ventaja del polinomio interpolador de Newton es la sencillez de su formu-
lación, junto con el hecho de que al añadir un nodo más, pueden aprovecharse los
cálculos 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
Ejercicio 4.3. Dada la tabla siguiente para la función f (x) = ex , encuentra los
√
valores aproximados de 3 e por interpolación lineal y cúbica.
1. Interpolar con un polinomio cúbico que pase por los cuatro primeros puntos y
utilizarlo para calcular f (0,2).
2. Repite el paso anterior, pero utilizando ahora los últimos cuatro nodos. Co-
menta la diferencia.
f n+1 (ξx )
f (x) − pn (x) = (x − x0 ) (x − x1 ) ... (x − xn ) , ξx ∈ (a, b)
(n + 1)!
Corolario 1. Con las hipótesis del teorema anterior, si es |f n+1 (t) | 6 K, para todo
t ∈ [a, b], entonces
K
|f (x) − pn (x)| 6 |x − x0 | |x − x1 | . . . |x − xn |
(n + 1)!
45
De la fórmula anterior no se puede deducir que los polinomios de mayor grado
correspondan a una interpolación mejor. De hecho, esta interpolación es peor al
aumentar el grado debido al cáracter 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ón del error cometido en las aproximaciones de
los ejercicios 4.3 y 4.4.
46
2. gi (xi+1 ) = gi+1 (xi+1 ) , i = 0, 1, ..., n − 2; (para que sea continua)
De donde se obtiene
Ejemplo 4.2. Veamos como interpolar mediante un splin cúbico la siguiente tabla
de datos
0 1 2 0
0 0 2 1
Ahora podemos hacer uso de la función SplineFit que calcula una curva pa-
ramétrica (de clase C 1 ) que interpola los puntos dados. Esta curva está formada
por la unión de polinomios de grado 3 y puede ser representada por el comando
ParametricPlot como se ve a continuación:
spline = SplineFit@puntos, CubicD
1
En la versión 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
82, 2<
spline@1D
81, 0<
2.0
1.5
1.0
0.5
48
4.5. Ejercicios
Ejercicio 4.7. Los datos de la siguiente tabla provienen de observaciones astronómi-
cas de un tipo de estrella variable denominada variable cefeida y representan mag-
nitudes en su variación 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ón usando
1. un polinomio interpolador,
Compara los resultados que se obtienen con las distintas aproximaciones para
t=0.25
5. ¿Qué valores obtienes para t = 0,90 con las distintas curvas de interpolación
obtenidas?
3. Utiliza los dos resultados anteriores para calcular el valor de P cuando T = 98.
¿Qué resultado consideras más correcto?
49
Práctica 5
Integración numérica
donde f es una función integrable en el intervalo acotado (a, b). Por razones históri-
cas, el cálculo de integrales se conoce como cuadratura, reservándose el término
integración para la resolución de ecuaciones diferenciales.
¿Por qué usar cuadratura numérica en vez de calcular (5.1) por la regla de Barrow
(teorema fundamental del cálculo)? Varias pueden ser las razones:
50
Aunque la primitiva sea elemental y obtenible sin recurrir a ideas más o menos
ingeniosas, encontrar esa primitiva puede ser un proceso largo y tedioso, o
requerir técnicas numéricas más complejas que las que se necesitan para hallar
(5.1) de modo directo. Por ejemplo, si f es una función racional la primitiva
se puede encontrar aplicando técnicas sistemáticas, pero que requieren hallar
todos los ceros del denominador. Ahora bien, esta tarea en general hay que
llevarla a cabo mediante aproximaciones numéricas que son más costosas que
aproximar (5.1) directamente.
51
5.2. Obtención 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.
Fijémonos en que el segundo miembro de (5.8) sólo 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.
52
5.2.2. El método de coeficientes indeterminados
Está basado en la observación de que la regla (5.2) tiene grado de exactitud ≥ k
si y sólo si IN +1 (f ) = I(f ) cuando f (x) = 1, x, . . . , xk , es decir,
α0 + α1 + ··· + αN = b−a
α0 x0 + α1 x1 + ··· + αN xN = (b2 − a2 )/2
.. .. .. .. (5.9)
. + . + ··· + . = .
α0 xk0 + α1 xk1 + ··· + αN xkN = (bk+1 − ak+1 )/(k + 1)
(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 función a integrar f como de la regla
considerada. Obsérvese que el orden de la derivada M + 1 que aparece es una unidad
superior al grado de exactitud M .
y aproximar cada una de las integrales en los subintervalos por la regla de Simpson.
Ası́ obtendremos una aproximación
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 xi−1/2 = (xi−1 +xi )/2, i = 1, . . . , N . A esta regla de cuadratu-
ra la llamaremos regla de Simpson compuesta relativa a la partición ∆. Observemos
que ésta es una regla de la forma (5.2) cuyas abscisas son los puntos de la partición
y los puntos medios de los subintervalos de la partición. Si los puntos de ésta están
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 rectángulo, punto medio o trapecios,
obtenemos las reglas del rectángulo compuesta, punto medio compuesta o trapecios
compuesta relativas a la partición ∆.
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 términos de h, ésta última también se escribe como
h
I T C (f ) = (f0 + 2f1 + 2f2 + · · · + 2fN −1 + fN ).
2
Usando la fórmula (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 [xi−1 , 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ón se puede obtener una cota como sigue. Tomemos valores
absolutos y mayoremos cada (xi − xi−1 )2 por h(xi − xi−1 ), con h = máxi (xi − xi−1 ).
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ón más y más fina el error de la cuadratura tiende
a cero. Además, la convergencia es de primer orden: dividir por dos el diámetro de
la partición 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-ésima en [a, b]. Estas fórmulas
muestran la convergencia de las respectivas reglas: cuadrática para la regla del punto
medio y la de los trapecios y cuártica para la regla de Simpson. Obsérvese que en
general la convergencia es de orden M + 1 para una regla compuesta basada en una
simple de grado de exactitud M .
56
N[trapecios[Sin[x], {x, 0, Pi, 20}]]
N[trapecios[trapecios[Sqrt[1 - y^2],
{y, x, 1, 30}], {x, 0, 1, 30}]]
f[x_] = Sin[x];
N[simpson[f, {0, Pi, 20}]
Aquı́ hemos tomado una partición del intervalo [0, π] con 20 subintervalos.
También se pueden aproximar integrales múltiples con la fórmula de Simpson:
f[x_] = Sin[x];
NIntegrate[f[x], {x, 0, Pi}]
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
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
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 método de Simpson. ¿Dan resultados comparables?
Ejercicio 5.8. Repite el cálculo, pero ahora con la regla de Simpson. Observa que
no sólo los errores para cada h dado son más pequeños, sino que la reducción del
error con h es ahora mucho más rápida que en la tabla anterior. Al dividir h entre
dos, ¿por cuánto lo hace aproximadamente el error? (ayuda: muestra en la ú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ólo evalúa el integrando en 17
puntos, aproximadamente la mitad. Los métodos numéricos 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 gráfica
de eficiencia. Se trata de una representación doblemente logarı́tmica: 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úmero 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 lı́neas
rectas de pendientes −2 y −4 ¿por qué? Para un trabajo dado, la regla de Simpson
da un error menor que la de los trapecios.
59
Práctica 6
Sucesiones y series
6.1. Sucesiones
Para nuestro estudio de sucesiones de números reales necesitamos conocer los
siguientes aspectos de Mathematica:
1
Ejemplo 6.1. Estudiar la sucesión an = .
n2 +1
Solución. Definimos la sucesión como una función
1
a[30]=
901
60
y generar una tabla con algunos de sus términos (por ejemplo, los 15 primeros)
mediante el comando Table que podemos utilizar para visualizar el comportamiento
de la sucesión 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
True
(2) Acotación: El estudio gráfico sugiere que la sucesión está acotada inferior-
mente por 0 y superiormente por 1. Para comprobar este extremo utilizamos la
sentencia:
61
True
Limit[a[n]],n->Infinity]
0
n
Ejemplo 6.2. Estudiar la sucesión an = (−1)n
n+1
Solución. Consideramos la función
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
FullSimplify[a[2n], Element[n,Integers]]
62
2n
2n + 1
FullSimplify[a[2n+1], Element[n,Integers]]
1
−1 +
2 + 2n
−1
Dado que las subsucesiones {a2n } y {a2n+1 } tienen lı́mites diferentes, la sucesión
{an } es divergente.
x[3]
p √
1+ 2
N[x[3],10]
1.553773974
63
term=Table[x[n],{n,1,15}];
1.6
1.575
1.55
1.525
2 4 6 8 10 12 14
1.475
Gráficamente se observa que la sucesión es creciente (xn < xn+1 ) y está acotada
superiormente (por ejemplo por 2), lo que implica que la sucesión es convergente. Si
intentamos calcular su lı́mite mediante el comando Limit, Mathematica cae en un
proceso recursivo y no es capaz de darnos el valor del lı́mite. Si lı́mn xn = L, debe
cumplirse la igualdad √
L = 1 + L.
Usando esta igualdad podemos calcular el lı́mite mediante el comando Solve:
Solve[L == Sqrt[1+L], L]
1 √
{{L → 1 + 5 }}
2
(1) Limit
(2) Sum
(4) N, NSum
64
(5) EulerSum (hay que cargar el paquete NumericalMath‘NLimit‘
∞
X 1
Ejemplo 6.4. Estudiar el carácter de la serie . En caso de ser conver-
2n2+1
n=0
gente, calcular su suma.
a[n_]:= 1/(n^2+1)
Por tanto, la serie puede ser convergente. Como es una serie de términos positivos
aplicamos el criterio del cociente:
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 útil a efectos
prácticos. No obstante, con Mathematica podemos obtener aproximaciones numéri-
cas de la suma de una serie con una precisión determinada:
N[Sum[a[n],{n,0,Infinity}, 17]]
65
1.6371602671179672
NSum[a[n],{n,0,Infinity}]
1.63716
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.
Solución. Tenemos que comprobar dos cosas: (1) el lı́mite del módulo del término
general tiende a cero, y (2) el módulo del término general es una sucesión monótona
decreciente.
a[n_]:= 1/(2n-1)
Limit[a[n], {n,0,n->Infinity}]
True
El criterio de Leibniz nos dice que la serie es convergente. Vamos a calcular un valor
aproximado de su suma:
<<NumericalMath‘NLimit‘
EulerSum[a[n],{n,1,Infinity}]
-0.785398
2
Ejercicio 6.1. (1) Dada la sucesión de término general an = , se pide:
3n − 2
66
(a) Escribir los 15 primeros términos y representarlos gráficamente.
1 1
(3) Estudiar la sucesión recurrente xn+1 = + x2n para los valores x1 = 1, x1 =
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ón de 17 cifras significativas.
∞
X (−1)n
(5) Probar que la serie armónica alternada es convergente. Calcular su
n
n=2
suma con una aproximación 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.
Ejemplo 6.6. Definir una función que calcule los polinomios de Taylor de la fun-
cion f (x) = cos(x) y utilizarla para realizar una animación que muestre cómo se
aproximan a f .
67
Solución. El comando Series[func,x,a,grado] calcula la serie de Taylor en la
variable x centrada en el punto a hasta el término 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 término O[x]11 que nos indica el orden de error
que nos indica que los términos que faltan son todos de grado mayor o igual a once.
En realidad, como las derivadas de orden impar del coseno son cero, los términos
de potencias impares son nulos, pero el comando usado no informa a Mathematica
de este detalle. Sin queremos que no aparezca el término 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ón que nos muestre la forma en que los polinomios de
Taylor aproximan a la función en un entrono del origen, definiremos una función que
calcule los polinomios de Taylor en el origen:
Table[scos[n_,x_]= Normal[Series[Cos[x],{x,0,n},{n,0,100,2}];
Fı́jate que, como las derivadas de orden impar de la función 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 función que realice pero no muestre en pantalla el gráfico
del coseno junto con el de scos[n,x] en un intervalo [a, b]:
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 animación es necesario hacer todos los cuadros de la animación,
como si se tratara de unos dibujos animados. Para ello definimos la función
animacos[20,-2Pi,2Pi]
Una vez tengas todos los cuadros de la animación, puedes activarla seleccionando uno
cualquiera de ellos y haciendo doble click. Puedes controlar la velocidad utilizando
los botones que habrán aparecido en la esquina inferior izquierda de la pantalla.
(2) Deduce, a partir de los resultados obtenidos en (1), la serie de Taylor T (f, 0)
de f en el origen.
(4) Realiza una animación 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ón. (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
Table[slog[n_,x_]=Normal[Series[Log[1+x],{x,0,n},{n,0,100}];
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ón que realice pero no muestre en pantalla el gráfico
de nuestra función 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]}]
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 animación es necesario hacer todos los cuadros
de la animación, como si se tratara de unos dibujos animados:
animalog[10,-1,1]
(−1)n+1 xn
(5) Estudiamos la serie ∞
P
n=1 en el punto x = −1. Primero calcula-
n
mos su término 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}]
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ón f (x) = log 1 + x en x = −1 porque la función no
está definida en ese punto (¿por qué?).
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}]
True
(−1)1+n
Por tanto, la serie ∞
P
n=1 es convergente. Como la función 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
72
Sum[(-1)^(1+n)/n,{n,1,Infinity}]
Log[2]
Ejercicio 6.2. (1) Definir una función que calcule los polinomios de Taylor de la
funcion f (x) = sen(x) y utilizarla para realizar una animación que muestre
cómo se aproximan a f .
73
Práctica 7
x2 + 8
y0 = .
(x2 − 5x + 6)y 2 cos y
74
En este caso, vamos a obtener una familia 1-paramétrica 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
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
s1 = Integrate@lhs, yD
s2 = Integrate@rhs, xD
x + 17 Log@-3 + xD - 12 Log@-2 + xD
solucion = s1 - s2 == c
x2
y0 = √
9 − x2 ey cos y
y¢ @xD ==
ã-y@xD x2 Sec@y@xDD
9 - x2
+ Log@3D , 8y@xD<F
ä 9 äΠ
- -
2 2 2
75
Obsérvese que el mensaje tiene que ver con el hecho de que Mathematica no puede
despejar explı́citamente y, esto es, que se obtiene una solución implı́cita. Además,
aparecen cantidades complejas, de manera que la expresión final no es ciertamente
muy manejable. Por ello, a continuación procedemos paso a paso, tal como harı́amos
con lápiz y papel al tratar de resolver una ecuación de variables separables. Fijémonos
en que al introducir la condición inicial podemos calcular el valor de la constante
arbitraria, pero que, efectivamente, obtenemos una solución implı́cita. No obstante,
dicha solución también se puede representar gráficamente con relativa facilidad con
el comando ImplicitPlot, cargando previamente el paquete correspondiente.
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
1
Out[5]= ::c ® >>
2
1 1 1 9 x
Out[6]= ãy HCos@yD + Sin@yDL - x 9 - x2 + ArcSinB F
2 2 2 2 3
76
3
-3 -2 -1 1 2
Out[8]=
-1
-2
-3
-4
Ecuaciones exactas
Ejemplo 7.3. Obtén la solución general de la ecuación
77
Finalmente, representamos gráficamente en el dominio [−π, π] × [−π, π] algu-
nas de las soluciones obtenidas, considerando diferentes valores del parámetro c ∈
[−10, 10]. Para ello utilizamos el comando ContourPlot.
True
ãx y - x + Sin@x yD
ãx y x + x Cos@x yD + g¢ @yD
ãx y - x + y + Sin@x yD == c
-1
-2
-3
-3 -2 -1 0 1 2 3
78
Ecuaciones lineales
Ejemplo 7.4. Obtén la solución general de la ecuación
xy 0 + 3y = x sin x.
::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
1 2 3 4 5 6
-1
-2
-3
79
de forma sencilla elaborar una gráfica con las soluciones para diferentes valores de
las constantes arbitrarias, tal como se pone de manifiesto a continuación.
yy = y@xD . solu1@@1DD;
tograph = Table@yy . 8C@1D ® i, C@2D ® j<, 8i, -5, 5, 5<, 8j, -4, 4, 2<D Flatten;
10
-10
-20
e−4x
y 00 − 4y = .
x3
80
sola = DSolve@y ''@xD - 4 y@xD E ^ H-4 xL x ^ 3, y@xD, xD
15
10
-5
-10
-15
ã-x ãx Sin@xD
Out[11]= + -
x x 2x
15
10
1 2 3 4
81
Ejemplo 7.8. Resuelve
1
2y 00 + 5y 0 + 5y = 0, y(0) = 0, y 0 (0) = .
2
F
15 x
2 ã-5 x4 SinB
::y@xD ® >>
4
15
0.1
1 2 3
-0.1
-0.2
-0.3
x0 = 5x + 2y
y 0 = −2x + 2y
¿Cómo se resolverı́a este problema con lápiz y papel? Si usamos métodos matri-
ciales, empezarı́amos escribiendo la matriz de coeficientes y calculando sus valores
propios y sus correspondientes subespacios propios. Después, y dependiendo de la
multiplicidad de los valores propios y la dimensión de los subespacios propios, es-
cribirı́amos dos soluciones linealmente independientes, con las cuales formarı́amos
una matriz fundamental del sistema. Naturalmente, esas soluciones independientes
dependerı́an de si los valores propios son reales o complejos. En Mathematica, este
82
proceso se lleva a cabo automáticamente 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ón 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
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
83
1.0
0.5
-0.5
-1.0
Para determinar la dirección asociada con cada solución, se hace uso del pa-
quete PlotField dentro de Graphics (hasta la versión 5.2 de Mathematica) o
VectorFieldPlots (versión 6), el cual permite dibujar fácilmente el campo de di-
recciones asociado al sistema.
Obsérvese que en un sistema de ecuaciones con dos variables, x0 = X(x, y),
y 0 = Y (x, y), cada solución ha de satisfacer la relación
dy dy/dt Y (x, y)
= = ≡ f (x, y). (7.1)
dx dx/dt X(x, y)
In[10]:= graphdos = VectorFieldPlot@85 x + 2 y, -2 x + 2 y<, 8x, -1, 1<, 8y, -1, 1<D
84
Representando simultáneamente la familia de soluciones con el campo de direc-
ciones precedente, vemos que cada solución está dirigida hacia afuera del origen
conforme se incrementa t.
In[11]:= Show@graphuno, graphdosD
1.0
0.5
-0.5
-1.0
85
7.2. Métodos numéricos para la resolución de ecuacio-
nes diferenciales
Si bien las técnicas analı́ticas vistas en las clases de teorı́a y en la sección pre-
cedente resultan útiles para analizar diversos modelos matemáticos, lo cierto es que
la mayorı́a de las ecuaciones diferenciales que se encuentran en las aplicaciones no
se pueden resolver ni explı́cita no implı́citamente. Por ello, es necesario recurrir a
métodos numéricos para obtener una aproximación de la solución de un problema
de valor inicial. Aquı́ analizaremos, como casos particulares suficientemente ilustra-
tivos y a la vez sencillos, el método de Euler y el método de Runge–Kutta 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ón única y(x) de clase C2 en [a, b], se plantea
la obtención de una secuencia de valores aproximados y0 , y1 , . . . , yk , . . . de dicha
solución 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ño 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 está próximo 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-
mación de primer orden a partir de aquı́ simplemente despreciando los términos de
orden h2 y más altos. En otras palabras, determinamos y1 como
y1 = y0 + f (x0 , y0 )h.
A continuación 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étodo de Euler (explı́cito) en la forma
yn+1 = yn + hf (xn , yn ), n = 0, 1, 2, . . .
de donde resulta clara la conexión con los campos direccionales: uniendo los puntos
del plano (xi , yi ) por medio de una poligonal podemos representar gráficamente la
aproximación a la solución y(x) en el intervalo [a, b].
El método de Euler también puede ser deducido integrando la ecuación 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ón. Como ya se vio en la práctica 5, son posibles aproximaciones
más 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étodo de Euler mejorado (el cual se reduce a la regla del trapecio si
f sólo depende de x y no de y).
Una forma sistemática de obtener métodos más efectivos que el de Euler consiste
simplemente en aplicar el teorema de Taylor a órdenes más altos en h. El método
resultante tiene la propiedad deseable de un error de truncamiento local de orden
tan alto como se desee, pero la desventaja de requerir el cálculo y la evaluación de las
derivadas sucesivas de la función f , lo cual puede ser un procedimiento muy costoso
para gran cantidad de problemas. Para subsanar esta dificultad se introducen los
métodos de Runge–Kutta, los cuales poseen un error de truncamiento local del
mismo orden que los métodos de Taylor sin necesidad de calcular las derivadas de f .
De hecho, el método de Euler mejorado visto anteriormente puede ser considerado
un método de Runge–Kutta de segundo orden. Otro método del mismo orden viene
dado por
yn+1 = yn + h[f (xn + h/2, yn + (h/2)f (xn , yn ))],
llamado método del punto medio.
Uno de los métodos de Runge–Kutta más 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 ) .
r1=NDSolve[{y’[x]==x/(y[x]+x)^2, y[0]==1},y[x],{x,0,10}]
Ahora viene una cuestión importante: ¿cómo podemos saber que la respuesta
proporcionada por NDSolve es correcta? Una forma obvia es sustituir la solución en
la ecuación diferencial y ver si ésta se verifica. Esto se puede hacer de la siguiente
forma:
88
-6
7.5·10
-6
5·10
-6
2.5·10
2 4 6 8 10
-6
-2.5·10
-6
-5·10
-6
-7.5·10
Ejemplo 7.10. Usa el método de Euler para aproximar la solución del siguiente
problema de valor inicial:
dy
= xy, y(0) = 1
dx
para h = 0,1. Determina también la solución exacta y compara los resultados.
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
fórmula recursiva ası́:
89
euler = Table[ {x[i-1],ytabla[[i]]}, {i,1,Length[ytabla]}];
Nótese que el ı́ndice de x ha de ser uno más pequeño que el de y, ya que ytabla[[i]]
representa el elemento i-ésimo de la lista, mientras que x[i] sustituye i en la fórmula
que determina x. Estos puntos se pueden representar gráficamente con ListPlot,
de manera que la aproximación se puede comparar con la solución exacta, que en
este caso es
2
y(x) = ex /2 .
La solución aproximada obtenida con el método de Euler y la solución exacta se
dibujan ası́:
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)}
]
f[x_, y_] = x y;
h = 0.1;
NestList[funcion, expresion, n]
Mathematica, en este caso, devuelve una lista de los resultados de aplicar funcion
sobre expresion desde 0 hasta n .
90
1.6
1.5
1.4
1.3
1.2
1.1
91
A continuación definimos la ecuación 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[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
92
ecuaciones de primer orden escribiendo x0 = y, y 0 = x00 = − sin x.
In[23]:= Clear@f, g, h, xrk, yrk, tD
plot2 =
ParametricPlot@8Cos@xD, Sin@xD<, 8x, 0, 2 Pi<, AspectRatio ® 1, DisplayFunction ® IdentityD;
In[33]:=
0.5
-0.5
-1.0
7.3. Ejercicios
Ejercicio 7.1. Utiliza los algoritmos vistos en esta sección con tamaño de paso
h = 0,1 para obtener una aproximación del problema de valor inicial dado en el
intervalo especificado:
Ejercicio 7.2. Compara los resultados obtenidos en el apartado anterior para cada
uno de los métodos. Representa gráficamente cada una de las aproximaciones y com-
93
páralas con la solución del problema de valor inicial dado (si es que se puede calcular
la solución).
con h = 0,1. Determina la solución exacta de esta ecuación y compara los resultados
de la solución aproximada con los de la solución exacta.
x0 = 2x
2. , con la condición inicial x(0) = 1, y(0) = 1.
y 0 = 3x + 2y
x0 = x + 4y
3.
y 0 = −2x − y
Ejercicio 7.6. Usa el método de Runge–Kutta de orden 4 para aproximar la solución
del problema de valor inicial definido por
x0 = x − y + 1
y 0 = x + 3y + e−t
y x(0) = 0, y(0) = 1, con h = 0,1. Compara estos resultados con los de la solución
exacta del sistema.
94
Práctica 8
b) El valor de:
95
D!f!x, y, z", #x, 3$"
# 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
! ################################
################################
################################
################################
################################
################################
################
################
#######
6Π
3 Π Sin!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).
∂x∂y 2 ∂x ∂y
96
20
0 4
-20 2
-40
-4 0
-2
0 -2
2
4 -4
x2 − y 2
Ejercicio 8.2. Consideramos la función f (x, y) = xy .
x2 + y 2
a) Utilizar el comando Plot3D para obtener la gráfica de f . Situar sobre la
gráfica los puntos (0, 0) y (2, 1).
∂f ∂f ∂2f
d) Obtener utilizando los lı́mites pertinentes (0, 0), (0, 0), (0, 0) y
∂x ∂y ∂x∂y
∂2f
(0, 0).
∂y∂x
e) ¿Admite la gráfica de f plano tangente en (0, 0)?
97
∂2f
Un mı́nimo relativo si, Hf (a, b) > 0 y ∂x2
(a, b) > 0.
∂2f
Un máximo relativo si Hf (a, b) > 0 y ∂x2
(a, b) < 0.
Es necesario observar que el criterio no ofrece información alguna cuando Hf ((a, b)) =
0.
Ejemplo 8.3. Clasificar en máximos, mı́nimos y puntos de silla los puntos crı́ticos
de la función: f (x, y) = xy(1 − x2 − y 2 ).
Solución. En primer lugar obtenemos los puntos crı́ticos. 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ón gradiente que luego podamos utilizar repetidas
veces. La función que sigue define la función gradiente de cualquier función g con n
variables cuyas variable vengan escritas como x[1], . . . , x[n]:
grad!g_, n_" :! Table!D!g, x!i"", #i, 1, n$";
¡Atención! esta definición de gradiente ú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 ),
sólo (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 crı́ticos. De nuevo
podemos definir una función que nos permita obtener los puntos crı́ticos de cualquier
función 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 lı́neas 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 crı́ti-
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 crı́ticos son (0, 0), (±1, 0), (±1/2, ±1/2) (siete en
total) se trata de definir la matriz hessiana para poder distinguir los máximos de los
mı́nimos 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 definición similar para obtener una lista de valores de
∂2f
en cada punto crı́tico. El resultado final es que (−1/2, 1/2) y (1/2, −1/2) son
∂x2
mı́nimos locales y que los puntos (1/2, 1/2) y (−1/2, −1/2) son máximos locales. El
resto de puntos crı́ticos son puntos de silla.
Se muestra finalmente la gráfica de f con un máximo, un mı́nimo 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
a) Definir una función de una variable con un único máximo local y ningún
otro punto crı́tico. ¿Es este punto un máximo absoluto? ¿Podemos encontrar
alguna función de una variable con único punto crı́tico que sea máximo local
y que no sea máximo absoluto?
2
b) Comprobar que la función f (x, y) = e−y 2x3 − 3x2 + 1 + e−y 2x3 − 3x2
99
FindMaximum[x2 + y 2 , {x, 1}, {y, 2}] localiza rápidamente el máximo.
Aunque existen métodos para diferenciar cuáles de los puntos crı́ticos obtenidos
son máximos, cuáles son mı́nimos y cuales son puntos de silla, nos conformaremos
aquı́ con dar una lista de todos los puntos crı́ticos y determinar cuáles son los puntos
máximo y mı́nimo absoluto a partir del valor de la función f en cada punto crı́tico.
Ejercicio 8.6. La temperatura de cada punto (x, y, z) de una caja viene dada por
la función T (x, y, z) = 20 + 2x + 2y + z 2 . ¿Cuál será el punto más caliente en el
cı́rculo que aparece al cortar la esfera x2 + y 2 + z 2 = 11 con el plano x + y + z = 3?
100
Apéndice A
Sistemas de ecuaciones
diferenciales no lineales
x0 = f (t, x)
x0 = f (x), x ∈ Rn .
x0 = f (t, x)
t0 = 1.
De esta manera podemos hacer el estudio para sistemas autónomos y extenderlo a los
no autónomos. Centramos dicho estudio en los sistemas de dos ecuaciones llamados
sistemas planos autónomos
0
x = f (x, y)
(A.1)
y 0 = g(x, y).
101
A.1. Estudio geométrico: campos de direcciones
Un campo vectorial de un sistema de ecuaciones diferenciales
x0 = f (x)
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 interacción entre las dos especies. Estas
ecuaciones se conocen como ecuaciones de Lotka–Volterra y caracterizan una
amplia clase de problemas.
Estudiemos el campo de direcciones para el sistema de Lotka–Volterra 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,
15
10
5 10 15
103
Los campos de direcciones nos dan una idea de la forma geométrica de las curvas
solución dadas en su forma paramétrica (x(t), y(t)).
Ejercicio A.1. Esboza el campo de direcciones para el oscilador armónico 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ómo 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
104
Ejemplo 2. La ecuación de van der Pol
Esta ecuación describe el comportamiento de circuitos eléctricos 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 estudió más exhaustivamente como
modelo del voltaje en un circuito eléctrico. Pero esta ecuación también modeliza
otros tipos de fenómenos fı́sicos. Por ejemplo, justo dos años después del artı́culo
de van der Pol, él mismo junto con J. van der Mark propuso esta ecuación como
modelo para los latidos del corazón.
Este tipo de circuito se usaba en los dı́as de los tubos de vacı́o. Los tubos actúan
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 pequeñas y amortigua las grandes oscilaciones (oscilaciones de relajación).
La ecuación que describe este sistema es:
d2 x dx
2
+ ε(x2 − 1) +x=0
dt dt
siendo ε es un parámetro que mide la no linealidad del sistema. Para ε = 0, el
sistema es un oscilador lineal.
Convertimos la ecuación de orden dos en un sistema plano,
ẋ = y
(A.6)
ẏ = −x − ε(x2 − 1)y.
En el estudio cualitativo lo que dibujamos no son las soluciones en función del tiempo
x(t) y y(t), sino las ecuaciones paramétricas de la curva solución (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
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
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
106
pasar una solución. Luego, una solución que pasa por un punto de equilibrio es una
solución constante.
Si el punto inicial (x0 , y0 ) no es un punto de equilibrio, las ecuaciones paramétri-
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 términos no son sinónimos. Por una parte,
una solución del sistema (A.7) es un par ordenado de funciones (x(t), y(t)) tales
que satisfacen simultáneamente 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 paramétricamente por más de una solución delsistema. Más adelante veremos la
diferencia entre ambos conceptos mediante un ejemplo.
Podemos ver cualitativamente el comportamiento del sistema mediante la cons-
trucción de su retrato de fase (representación 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 próximas a los puntos de equilibrio aisla-
dos resulta de particular interés porque nos permite saber si son estables e inestables.
Sin profundizar más en este tema ya que nos extenderı́amos demasiado veamos cómo
obtener el retrato de fase mediante Mathematica.
Resolvemos el sistema
60x − 3x2 − 4xy = 0
42y − 3y 2 − 2xy = 0,
y obtenemos: (0, 0), (0, 14), (12, 6) y (20, 0). Dado que x(t) indica el número de zorros
y y(t) el número 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ún conejo, o 12 zorros y 6 conejos. En
particular, el punto crı́tico (12, 6) describe la única posibilidad para la coexistencia
de poblaciones constantes no nulas de ambas especies. Estudiamos la linearización
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 = 99¶x f@x, yD, ¶y f@x, yD=, 9¶x g@x, yD, ¶y g@x, yD==
. 8x ® 12, y ® 6<
In[24]:= MatrixForm@matlinD
Out[24]//MatrixForm=
-36 -48
-12 -18
A continuación calculamos los valores propios de la matriz obtenida utilizando
el comando Eigenvalues.
In[26]:= Eigenvalues@matlinD N
Como los valores propios son no nulos, distintos y negativos, el punto de equilibrio
es un nodo estable. La población de zorros y conejos tenderá con el tiempo a este
punto. 2
Cuando consideramos sistemas lineales como por ejemplo
0
x = 5x + 3y − 4
y 0 = −4x − 3y + 2.
El sistema posee un único punto de equilibrio (2, −2) y calculamos los valores
propios,
Eigenvalues@885, 3<, 8-4, -3<<D
Los valores propios son de distinto signo, luego es un punto de silla. Estudiamos
cómo 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
108
Asignamos valores a las constantes C[1] y C[2] creando una tabla de funciones,
reemplazaremos C[1] y C[2] por los parámetros a y b respectivamente y le daremos
valores a estos parámetros. La tabla de funciones solución viene dada con paréntesis
que agrupan las funciones según los valores de los parámetros, con el fin de que las
asignaciones sean más fáciles de hacer quitamos los paréntesis 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]:=
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]:=
-2 -1 1 2 3 4
Out[34]= -1
-2
-3
-4
109
2
-2 -1 1 2 3 4
Out[39]= -1
-2
-3
-4
-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 analı́ticas utilizando el teorema siguiente.
110
neales aparece en la tabla siguiente.
111
grafsol = Plot@Evaluate@8x@tD, y@tD< . solD, 8t, 0, 10<,
PlotStyle ® 8Red, Blue<, PlotRange ® 880, 10<, 80, 10<<,
In[11]:=
Out[11]=
0 t
0 2 4 6 8 10
En la figura siguiente tenemos las gráficas de las soluciones x(t) y y(t) sobre el
mismo sistema de ejes; x(t) que corresponde a la población de presas (aparece por
debajo de la otra) y y(t) corresponde a la población de depredadores. Esta informa-
ción no es tan fácil de ver si las dibujamos en distintos ejes. Notamos que ambas son
funciones periódicas en t, esto explica las fluctuaciones que se observan experimen-
talmente en las poblaciones depredador-presa. Para esta solución particular vemos
que los incrementos en la población depredador están retardados respecto de los
aumentos en la población presa y que la población depredador continúa creciendo
por un corto tiempo después que la población presa comienza a declinar. Tal vez
la observación más importante que podemos hacer sobre esta gráfica es que ambas
poblaciones parecen repetirse con el mismo periodo aunque con cierto desfase.
Observamos que tenemos una gráfica para cada una de las soluciones con variable
independiente t pero tendremos más información sobre el comportamiento dinámico
del sistema mediante de la relación entre ambas soluciones a través 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 varı́a 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
condición 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ón ParametricPlot.
La trayectoria es una curva cerrada simple. Si seguimos la trayectoria, comenzan-
do en un punto en que la población de la presa es máxima, vemos que x disminuye y
112
y aumenta hasta que la población depredadora y es máxima. Después ambas dismi-
nuyen hasta que x es mı́nima. 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 últimas pocas presas sean devoradas, resultando su
Out[17]=
0 x
0 2 4 6 8 10
Podemos mostrar los dos gráficos juntos con la opción 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 más completo con-
sideramos el sistema dado dejando la condición inicial en términos de un parámetro,
ẋ = 2x − xy
(A.11)
ẏ = −3y + xy; x(0) = 3s, y(0) = 2s
114
In[7]:= retfase = Show@graf, PlotRange ® All, DisplayFunction ® $DisplayFunctionD
10
6
Out[7]=
2 4 6 8 10 12
14
12
10
8
Out[23]=
2 4 6 8 10 12 14
115
y(t) disminuye, lo que lleva a un aumento en la población de x(t). Como el número
de depredadores se hace demasiado pequeño para controlar la población de x(t), ésta
aumenta y se repite el ciclo. En este caso diremos que las soluciones son periódicas.
En el ejemplo descrito los valores de la condición inicial estaban relacionados por
el mismo parámetro s. Si queremos hacer un estudio del retrato de fases tomando
valores cualesquiera sólo tenemos que modificar un poco el proceso anterior.
3
Out[27]=
1 2 3 4 5 6 7
116
A.3. Ejercicios
Ejercicio A.3. Estudia la estabilidad del punto crı́tico (0, 0) del sistema
0
x = −x − xy 2
y 0 = −y − x2 y.
es inestable.
Ejercicio A.5. Haz un estudio similar para el ejercicioemplo del oscilador armónico
dx
dt = v
dv
= −x.
dt
para diversos valores de la condición inicial x(0) = a, y(0) = b.
para diversos valores del parámetro ε de forma que salgan puntos de equilibrio de
diferente tipo.
ẋ = 4x + 2y + 2x2 − 3y 2
ẏ = 4x − 3y + 7xy.
117
El efecto P-Delta es muy pequeño cuando y es pequeña, mucho más aún 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 término a
la expresión para la aceleración de y, es decir, añadir un término 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 término 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
Bibliografı́a
[2] M. L. Abell, J.P. Braselton, Mathematica by Example, 4th Ed., Academic Press,
2008.
[6] D. Dubin, Numerical and Analytical Methods for Scientists and Engineers Using
Mathematica, John Wiley & Sons, 2003.
[7] J. Glynn, T.W. Gray, The Beginner’s Guide to Mathematica Version 4, Cam-
bridge University Press, 2000.
[9] H.F. Höft, M.H. Höft, Computing with Mathematica, 2nd. Ed., Academic Press,
2003.
[12] J.L. Malaina, A.I. Martı́n, Fundamentos Matemáticos con Mathematica, Servi-
cio Editorial de la Universidad del Paı́s Vasco, 1997.
[13] V. Ramı́rez et al., Cálculo numérico con Mathematica, Ariel Ciencia, 2001.
119
[16] J.M. Sanz Serna, Diez lecciones de cálculo numérico, Universidad de Valladolid,
1998.
[20] S. Wolfram, The Mathematica Book, Fifth Edition, Wolfram Media, Inc., 2003.
120