P. 1
practicas2005

practicas2005

|Views: 7.290|Likes:
Publicado porNoi Zamora

More info:

Published by: Noi Zamora on Apr 11, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

05/13/2013

pdf

text

original

Sections

  • Introducción a Mathematica
  • 1.1 Convenios sobre notación
  • 1.1.1 Funciones incorporadas
  • 1.1.2 Funciones no incorporadas
  • 1.1.3 Sumatorios
  • 1.2 Aproximaciones numéricas
  • 1.3 Posibilidades simbólicas y algebraicas
  • 1.3.1 Problemas
  • 1.4 Asignaciones
  • 1.4.1 Problemas
  • 1.5 Iteradores
  • 1.6 Gráficos
  • Álgebra lineal
  • 2.1 Resolviendo problemas con el Mathematica
  • 2.1.1 Matrices
  • 2.1.2 Sistemas de ecuaciones lineales
  • 2.1.3 Valores y vectores propios
  • 2.2 Problemas de Álgebra Lineal
  • 2.3 Introducción a los Métodos Numéricos. Métodos del Álgebra Lineal
  • 2.3.1 Eliminación Gaussiana y sustitución hacia atrás
  • 2.3.2 Descomposición QR y descomposición de Shur
  • Resolución numérica de ecuaciones no lineales
  • 3.1 Método de la bisección
  • 3.2 Método de Newton
  • 3.2.1 Análisis del error
  • 3.3 Resolución de ecuaciones no lineales con Mathematica
  • 3.3.1 Método de la bisección
  • 3.3.2 Método de Newton
  • 3.3.3 Métodos Numéricos de Mathematica
  • Interpolación y aproximación de funciones
  • 4.1 Interpolación polinómica de Newton
  • 4.1.1 El efecto Runge
  • 4.1.2 Polinomio interpolador de Newton
  • 4.1.3 Interpolación a trozos
  • 4.2 Interpolación con un splin cúbico
  • 4.3 Ajuste de datos por mínimos cuadrados
  • Estudio de funciones reales
  • 5.1 Gráficas en Dos y Tres Dimensiones
  • 5.1.1 Gráficas en el plano
  • 5.1.2 Gráficas Tridimensionales
  • 5.2 Curvas en el plano y en el espacio
  • 5.2.1 Curvas en el plano, ecuaciones paramétricas
  • 5.2.2 Curvas en el espacio, ecuaciones paramétricas
  • 5.3 Dibujo de superficies, parametrización de superficies
  • 5.4 Cálculo Diferencial
  • 5.4.1 Derivación explícita e implícita
  • 5.4.2 Problemas
  • 5.4.3 Máximos y mínimos de funciones

Prácticas con Mathematica

Fundamentos Matemáticos de la Ingenieria I.
P. Vindel
Departament de Matemàtiques.
ESTCE. Campus de Riu Sec.
2005-2006
1
Índice
1 Introducción a Mathematica 4
1.1 Convenios sobre notación . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1.1 Funciones incorporadas. . . . . . . . . . . . . . . . . . . . . . . . 5
1.1.2 Funciones no incorporadas . . . . . . . . . . . . . . . . . . . . . . 6
1.1.3 Sumatorios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2 Aproximaciones numéricas . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3 Posibilidades simbólicas y algebraicas . . . . . . . . . . . . . . . . . . . 8
1.3.1 Problemas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4 Asignaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.4.1 Problemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.5 Iteradores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.6 Gráficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2 Álgebra lineal 13
2.1 Resolviendo problemas con el Mathematica . . . . . . . . . . . . . . . 13
2.1.1 Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.1.2 Sistemas de ecuaciones lineales . . . . . . . . . . . . . . . . . . . 15
2.1.3 Valores y vectores propios . . . . . . . . . . . . . . . . . . . . . . 16
2.2 Problemas de Álgebra Lineal . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3 Introducción a los Métodos Numéricos. Métodos del Álgebra Lineal . . 19
2.3.1 Eliminación Gaussiana y sustitución hacia atrás . . . . . . . . . 20
2.3.2 Descomposición QR y descomposición de Shur . . . . . . . . . . 23
3 Resolución numérica de ecuaciones no lineales 24
3.1 Método de la bisección . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.2 Método de Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.2.1 Análisis del error . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.3 Resolución de ecuaciones no lineales con Mathematica . . . . . . . . . . 28
3.3.1 Método de la bisección . . . . . . . . . . . . . . . . . . . . . . . . 28
3.3.2 Método de Newton . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.3.3 Métodos Numéricos de Mathematica . . . . . . . . . . . . . . . . 30
2
4 Interpolación y aproximación de funciones 32
4.1 Interpolación polinómica de Newton . . . . . . . . . . . . . . . . . . . . 32
4.1.1 El efecto Runge . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.1.2 Polinomio interpolador de Newton . . . . . . . . . . . . . . . . . 33
4.1.3 Interpolación a trozos . . . . . . . . . . . . . . . . . . . . . . . . 35
4.2 Interpolación con un splin cúbico . . . . . . . . . . . . . . . . . . . . . . 36
4.3 Ajuste de datos por mínimos cuadrados . . . . . . . . . . . . . . . . . . 38
5 Estudio de funciones reales 42
5.1 Gráficas en Dos y Tres Dimensiones . . . . . . . . . . . . . . . . . . . . 42
5.1.1 Gráficas en el plano. . . . . . . . . . . . . . . . . . . . . . . . . . 42
5.1.2 Gráficas Tridimensionales . . . . . . . . . . . . . . . . . . . . . . 44
5.2 Curvas en el plano y en el espacio . . . . . . . . . . . . . . . . . . . . . . 45
5.2.1 Curvas en el plano, ecuaciones paramétricas . . . . . . . . . . . . 45
5.2.2 Curvas en el espacio, ecuaciones paramétricas. . . . . . . . . . . 46
5.3 Dibujo de superficies, parametrización de superficies . . . . . . . . . . . 48
5.4 Cálculo Diferencial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
5.4.1 Derivación explícita e implícita . . . . . . . . . . . . . . . . . . . 49
5.4.2 Problemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
5.4.3 Máximos y mínimos de funciones . . . . . . . . . . . . . . . . . . 51
3
Capítulo 1
Introducción a Mathematica
Los ingenieros realizan una gran cantidad de cálculos y manipulaciones matemáticas
a mano. La mayoría de estos cálculos es posible realizarlos mediante un programa
de ordenador como Mathematica. Mathematica, por tanto, trabaja sobre problemas
que no es práctico realizar a mano. Mathematica es una herramienta útil para hacer
manipulaciones simbólicas y numéricas, así como para trabajar con gráficos.
Mathematica es un lenguaje interpretado, es decir, lee expresiones, evalúa el resul-
tado y luego lo muestra en pantalla. Al ser interactivo, es más fácil 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 más generales de las ingenierías.
Además, Mathematica es programable; cualquier función no disponible la puede escribir
uno mismo.
1.1 Convenios sobre notación
Para introducirnos en el lenguaje de Mathematica, en cada práctica veremos algunos
ejemplos que muestran las posibilidades de este programa.
Cada ejemplo consiste en un input del usuario encabezado con In[n] , n-ésimo in-
put, y una respuesta de Mathematica encabezada con Out[n] , n-ésimo output, cuando
proceda. Para comenzar con Mathematica es conveniente probar con los ejemplos prop-
uestos.
Las expresiones escritas en letra mecanografiada corresponden al input y al output.
Las correspondientes al input se deben escribir tal y como aparecen en los ejemplos;
las correspondientes al output no se tienen que escribir: las escribe Mathematica. Las
palabras y símbolos escritos en tipo máquina se deben reemplazar por expresiones
introducidas por el usuario.
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 corresponde al output, y no se
debe escribir en pantalla.
2 + 2
Out[] = 4
4
Hay que poner atención en la diferencia entre mayúsculas y minúsculas, el tipo de
paréntesis o llaves, la cantidad de espacios y la puntuación (comas, puntos y comas).
Mathematica diferencia entre mayúsculas y minúsculas, y por tanto Sin[x] es dis-
tinto de sin[x]. Los nombres de todas las funciones incorporadas empiezan con mayús-
cula.
Cada tipo de paréntesis 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 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.
Mathematica es un programa interactivo. Basta introducir una expresión, como
por ejemplo una operación matemática, para que nos devuelva el resultado. Cuando
Mathematica espera la introducción de una expresión, aparece un indicador de la forma
In[n]:= . Al introducir la expresión, Mathematica la procesa, y, si corresponde, mues-
tra el resultado.
Mathematica proporciona varios mecanismos para obtener ayuda e información so-
bre las más de 800 funciones incorporadas, así como de las introducidas por el usuario.
Esto da información acerca de la función incorporada Sin.
?Sin
Out [] = Sin[z] gives the sine of z.
Así, podemos calcular el seno de π/4
Sin[Pi/4]
Mediante ?? obtenemos información adicional.
Mathematica tiene incorporados la mayoría de los símbolos matemáticos con los
que se trabaja habitualmente. Entre ellos están las operaciones básicas: suma (+),
diferencia (-), producto (*), división (/) y potencia (^).
El texto entre (* y *) no se evalúa. Estos paréntesis se utilizan para hacer comen-
tarios.
v = {7, 3, -1} (* Aquí v es un vector *)
1.1.1 Funciones incorporadas.
El Kernel de Mathematica reconoce más de 1100 funciones. Estas funciones se llaman
funciones incorporadas. Los nombres de las funciones incorporadas consisten en pal-
abras inglesas completas o abreviaciones matemáticas estándar, de forma que la primera
letra de cada palabra se escribe con mayúscula. Por ejemplo, una de las funciones que
aparecen cuando pedimos a Mathematica los nombres de las funciones que empiezan
por Si es SingularValues.
Las funciones propiamente dichas son el equivalente a las funciones que empleamos
en matemáticas, en el sentido de que no tienen por qué tomar siempre un valor con-
stante. La función trigonométrica sin(x) es una función no constante; la letra x dec-
imos que es su variable. En la notación de Mathematica la función seno hemos visto
5
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í calculamos
la derivada de x
2
:
D[x^2,x]
Si una función es invocada con más, o menos, argumentos de los requeridos Math-
ematica devuelve un mensaje de error y como output la expresión sin evaluar.
Sin[2, 3]
1.1.2 Funciones no incorporadas
Como se ha indicado en la introducción, Mathematica es programable y, por tanto,
podemos añadir funciones a Mathematica. Un ejemplo muy sencillo es definir una
función que eleve al cuadrado su argumento.
f[x_]=x^2
f[2]
Out [] =4
El carácter _ (referido como blanco) en la parte de la izquierda es muy importante.
No hay que poner un blanco en la parte de la derecha de la definición.
Una función puede tener más de un argumento. Aquí definimos la función g(x, y) =
xy:
g[x_,y_]= x y;
g[2, 3]
Out [] =6
En algunas ocasiones necesitamos una definición aplazada. Por ejemplo, cuando
definimos la función factorial
factorial[0] = 1;
factorial[x_ ]:= x factorial[x - 1]
factorial[4]
Out [] =24
En este caso el signo igual (=) debe ir precedido por dos puntos (:).
6
1.1.3 Sumatorios
El sumatorio
m
P
i=n
f(i) en Mathematica se expresa como
Sum[f[i], {i, n, m}]
En su forma más general la función Sum tiene la siguiente sintaxis:
Sum[expr, {i, min, max, paso}]
La función Sum tiene dos argumentos: la expresión sobre la que se efectúa la suma
y un iterador. Un iterador es una lista como mínimo de un elemento y como máximo
cuatro. En nuestro caso utilizaremos tres o cuatro elementos para un iterador. Los
iteradores de la forma var, vmin, vmax ejecutan una función para var = vmin hasta
var = vmax , incrementando var en 1 en cada iteración. Por ejemplo, para hacer la
suma de los diez primeros números naturales, hacemos
Sum[i, {i, 1, 10}]
Out [] =55
En cambio, para hacer la suma de los 10 primeros números naturales impares,
hacemos
Sum[i, {i, 1, 10, 2}]
Out [] =25
1.2 Aproximaciones numéricas
Mathematica trabaja con aritmética exacta pero, a menudo, esta situación no es posible
o, al menos, no es operativa. Como veremos más adelante muchos problemas se han
de resolver de forma aproximda. Mathematica utiliza el comando N para dar una
aproximación de un resultado numérico con la precisión deseada. Por ejemplo, para
calcular la raíz cuadrada de 2 introducimos
Sqrt[2]
Out [] =

2
En esta situación, para obtener una aproximación utilizaremos el comando N.
N[Sqrt[2]]
Out [] =1.41421
Por defecto Mathematica trabaja con números de seis cifras. Podemos cambiar el
número de dígitos con los que Mathematica nos presenta la aproximación:
N[Sqrt[2],20]
Out [] =1.4142135623730950488
Problema 1 Como ejemplo, utilizar el comando anterior para calcular

2, e, y π con
varias precisiones.
7
1.3 Posibilidades simbólicas y algebraicas
Además de trabajar con expresiones numéricas, Mathematica puede manipular expre-
siones algebraicas. Antes de ver algunos ejemplos comentaremos la sintaxis de los
comandos que permiten esta manipulación.
• La primera letra siempre se escribe en mayúscula.
• Los argumentos van siempre entre corchetes [ ].
• Si el comando admite más de un argumento, éstos van separados por comas.
Estas reglas también las siguen las funciones y constantes predefinidas en Mathe-
matica como por ejemplo
Sin[x] Tan[0] Log[2] Sqrt[8] . . .
E Pi I . . .
Veremos algunos comandos que sirven para operar con expresiones algebraicas:
Expand[(a+b)^2]
Out [] =a
2
+ b
2
+ 2ab
Factor[x^2-y^2]
Out [] =(x −y) (x +y)
Cuando escribamos el producto de dos variables x e y se ha dejar un espacio en
blanco entre las dos o poner un ∗. Esto no es necesario cuando escribimos el producto
de un número por una variable.
La función Apart transforma un resultado en fracciones simples:
x/((x+2)(x-2))
Apart[%]
Out [] =
1
2 (x −2)
+
1
2 (x + 2)
La función Together combina dos o más fracciones con común denominador y sim-
plifica los factores comunes:
Together[%]
Out [] =
x
(x −2) (x + 2)
El comando D calcula la derivada de una función respecto de una variable:
Cos[E^x];
D[%]
Out [] =−e
x
sine
x
8
Hay que prestar atención al escribir esta función porque tanto el coseno como el
número e son funciones predefinidas en Mathematica y han de seguir las reglas de
sintaxis descritas anteriormente.
Este comando admite argumentos opcionales que nos permiten calcular derivadas
segundas, terceras, :
D[x^2 E^x,{x,2}]
Out [] =2e
x
+ 4xe
x
+ x
2
e
x
Para calcular límites tenemos el comando Limit. Por ejemplo,
Limit[1/x, x− > 0]
Out [] =∞
Para resolver ecuaciones Mathematica tiene el comando Solve:
Solve[xˆ2 −1 == 0, x]
Out [] ={x →1}{x →−1}
Un sistema de ecuaciones se expresa mediante una lista de ecuaciones y una lista
de variables:
Solve[{xˆ2 + y == 0, x −yˆ2 == 0}, {x, y}]
El comando Solve no puede resolver de forma exacta ecuaciones polinómicas de
grado igual o mayor que cinco. Para este tipo de ecuaciones utilizaremos el comando
NSolve para obtener una aproximación de las soluciones:
NSolve[xˆ5 −xˆ2 + 1 == 0, x]
1.3.1 Problemas.
Problema 2 Calcular y simplificar
a
a −b

b
a + b
Problema 3 Factorizar los polinomios
x
2
−4x −5
x
3
+ x
2
+ x + 1
3x
2
−6x + 1
Problema 4 Descomponer en fracciones simples
1
n(n + 1)
n
2
+ 1
n
4
+ n
2
+ 1
Problema 5 Calcular las derivadas primera y segunda de la función x
x
.
9
Problema 6 Calcular la derivada primera de
xy
2
−x
3
x
2
+y
2
respecto de x y de y.
Problema 7 Calcular el límite de la sucesión
µ
1 +
1
n

n
Problema 8 Resolver el sistema lineal

x + 2y −3z = −1
3x −y + 2z = 7
5x + 3y −4z = 2
1.4 Asignaciones
Supongamos que queremos evaluar la expresión
exp= (a ∗ b−a^b)/(a∗b −1)
en a = 3, b = −2. Para ello no necesitamos definirla como una función, simplemente
aplicaremos una regla o lista de reglas, con el comando /. (sin espacios entre / y .):
exp /.{a->3,b->-2}
Evaluarla en a = 1, b = 1. ¿Qué ha ocurrido?
Como hemos visto en los ejemplos anteriores, las constantes, las funciones y los
comandos que Mathematica lleva incorporados tienen su primera letra en mayúscula. El
usuario puede definir sus propias funciones, pero para evitar problemas es recomendable
abstenerse de usar letras mayúsculas en el nombre. La forma de definirlas consiste en
utilizar lo que se denomina una assignación, cuya sintaxis es de la forma:
nombre-función[variable1_, variable2_ , ... , variablen_]:=
definición
donde nombre-función es el nombre que asignamos a esa función. Puede constar de
una sola letra o de diversas letras. Entre corchetes y separadas por comas escribiremos
la variable o variables de las que dependerá nuestra función. En la definición de la
función se ha de escribir obligatoriamente detrás de cada variable el subrayado para
indicarle al Kernel que efectivamente es una variable. No obstante, al evaluar la función
substituyendo las variables por los valores deseados ya no debemos escribir el subrayado.
Por ejemplo, al definir la sucesión
a[n_]:=
(−1) ˆn
n + 1
hay que tener en cuenta que el subrayado indica que n es la variable. A continuación
podemos escribir el tipo de variable, restringiendo si es conveniente su dominio; por
ejemplo,
a[n Integer] o a[n Real]
10
Para evaluar la función en n = 5 escribiremos
In[] :=a[5]
Calcular a
10
y a
100
con 4 cifras decimales.
Recordemos que si queremos que el resultado aparezca en forma decimal hemos de
usar el comando N.
Si ahora queremos cancelar una asignación, utilizaremos el comando Clear.
1.4.1 Problemas
Problema 9 Definir raiz[n, x] :=
n

x, n ∈ N.
Utilizando la ayuda de Mathematica y el comando N calcular con varias precisiones
el valor de
3

2 i
5

π.
1.5 Iteradores
Los iteradores son comandos que nos permiten realizar de forma sencilla procesos que
se repiten un número determinado de veces. Uno de los más habituales es el comando
Do. Como ejemplo vamos a ejecutar
Do[Print[Prime[n]], {n, 1, 10}]
Out [] =
2
3
5
7
11
13
17
19
23
29
Como puede apreciarse, Mathematica imprime en la pantalla (Print) los 10 primeros
números primos (Prime). La lista {n, 1, 10} expresa que la variable n toma los valores
del 1 al 10 incrementándose en cada paso una unidad. Se puede añadir otro argumento
si queremos cambiar el incremento.
Otro iterador muy usado es For; veamos un ejemplo
For[i=1,i≤5,i=i+2,Print[i]]
1
3
5
For[inicio, test, incremento, argumento] ejecuta el argumento desde inicio hasta que
falla el test, con el incremento que se pida; i++ equivale a incrementar el paso en uno.
El iterador Table es muy usado para construir tablas
11
Table[expr, {i, min, max, paso}]
Otros iteradores, While, la sintaxis y el funcionamiento de los cuales los podemos
encontrar con los comandos de ayuda de Mathematica.
Problema 10 Definir b
n
:=
1
n
2
, n = 1, 2, . . . y calcular
1. b
n
desde n = 10 hasta n = 20 :
2. b
n
desde n = 10 hasta n = 100 pero con n múltiplo de 10 :
3. b
10
, b
100
, b
1000
, b
10000
:
Problema 11 Muestra el valor de

2 con una precisión desde 1 hasta 10 cifras deci-
males.
1.6 Gráficos
Las posibilidades gráficas de Mathematica han sido una de las causas de su éxito. Por
medio de Mathematica podemos dibujar funciones y datos en dos o tres dimensiones;
producir gráficos de nivel y de densidad, además de dibujar objetos y figuras arbi-
trarias. Dedicaremos una práctica a explorar algunas de las posibilidades que Math-
ematica ofrece a la hora de hacer gráficas. Estaremos interesados sobre todo en la
ayuda que puede prestar la interpretación gráfica en el cálculo de los puntos extremos
de funciones, en particular de funciones de dos variables. Trabajaremos sobre todo con
la representación paramétrica de curvas y superfícies.
12
Capítulo2
Álgebra lineal
2.1 Resolviendo problemas con el Mathematica
En esta sección repasaremos algunas de las posibilidades que ofrece Mathematica para
resolver problemas de álgebra lineal. La idea será ofrecer una lista de los comandos
necesarios y mostrar ejemplos que ilustren su utilización. Con lo que aquí se exponga,
se estará en condiciones de resolver la mayoría de los problemas elementales que se
pueden plantear en un primer curso de álgebra lineal: dependencia e independencia
lineal, cambios de base en espacios vectoriales, estudio de aplicaciones lineales con
determinación de los subespacios núcleo e imagen, resolución de sistemas de ecuaciones
lineales, diagonalización, etc.
2.1.1 Matrices
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 ma-
trices 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. Así, por ejemplo,
Table[0, {m}, {n}]
genera una matriz cero,
El comando
MatrixForm[matriz]
13
imprime la matriz en forma de tablero bidimensional, haciendo así más clara su estruc-
tura. Por otra parte, Mathematica dispone de algunas órdenes para hacer referencia a
los elementos de la matriz:
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,
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álida, 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 mayoría de las funciones matemáticas en Mathematica se pueden aplicar por sepa-
rado a cada elemento de una lista. Esto ocurre, en particular, para todas las funciones
que tienen el atributo Listable, de manera que dichas funciones se pueden aplicar
sobre cada elemento de una matriz o un vector:
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 álgebra
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 últimas operaciones, pues aunque se representan
de igual forma, proporcionan resultados muy diferentes.
El comando Inverse[m] calcula la inversa de la matriz cuadrada m. Obsérvese que
Mathematica supone implícitamente que el determinante es no nulo. Al multiplicar la
inversa por la matriz original debería dar la matriz identidad. Cuando se le da una
matriz cuyos elementos son números exactos o símbolos, el programa proporciona la
inversa exacta. Ahora bien, si en la matriz de entrada algunos elementos son números
reales aproximados, Mathematica obtiene un resultado numérico aproximado; en ese
caso, como en cualquier otro cálculo numérico, se puede controlar el número 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-ésima de m.
Cálculo del determinante de una matriz cuadrada ,
Det[m].
14
2.1.2 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, tal
como se hace normalmente en Matemáticas, sobre todo si el número de ecuaciones y
de incógnitas es elevado. Este esquema también es útil a la hora de diseñar algoritmos,
cuando no se sabe con antelación cuántas variables hay en el problema.
Un sistema de ecuaciones lineales se puede escribir en forma matricial como
m · x = b,
donde x es el vector de variables, m es la matriz de coeficientes y b es la matriz de los
términos independientes. Como el estudiante ya está familiarizado con la teoría 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 sis-
temas de ecuaciones son los siguientes:
LinearSolve[m,b]
da un vector x que resuelve la ecuación matricial m · x = b;
NullSpace[m]
da un conjunto de vectores cuyas combinaciones lineales satisfacen la ecuación matricial
m · x = 0, esto es, proporciona una base del subespacio núcleo de la matriz m;
RowReduce[m]
transforma la matriz m en otra de filas reducidas, mediante combinaciones lineales de
las filas, coincidiendo, por tanto, el rango de la matriz con el número de filas no nulas
de esta matriz.
Se puede obtener también el número de ecuaciones redundantes correspondientes a
una matriz particular calculando
Length[NullSpace[m]]
Con los comandos anteriores y el teorema de Rouché-Frobenius, estamos en disposi-
ción de analizar (y resolver en su caso) cualquier sistema de ecuaciones lineales.
Ejercicio 1 Discutir y resolver en su caso los siguientes sistemas:
1.
2x + 3y − z = 0
4x + 6y − z = 0
8x + 12y − 3z = 0

15
2.
y − z − 2t = 1
x − z − t = −2
x + y − 3t = −1

3.
x + 4y + z = b
3x − y + 2z = 1
2x − 5y + az = −2

4.

4x + 2y + z = ax
2x + 4y + 2z = ay
2x + 4y + 8z = az
5.

ax −2y + z = 1
x +ay +z = a
x + z = 1
6.

x
1
+ 3x
2
+ x
3
− x
4
= 6
2x
1
+ 7x
2
+ 3x
3
− 4x
4
= 15
x
1
+ x
2
+ 2x
3
+ x
4
= 1
2.1.3 Valores y vectores propios
Como es bien sabido, los valores propios de una matriz m son los números λ
i
para los
cuales existen vectores x
i
no nulos, llamados vectores propios, tales que m · x
i
= λ
i
x
i
.
El cálculo de los valores propios de una matriz n×n supone, en principio, resolver una
ecuación polinomial de grado n. Si n ≥ 5 no es posible obtener, en general, soluciones
algebraicas explícitas de una tal ecuación, de manera que es imposible dar resultados
algebraicos explícitos para los valores y vectores propios de una matriz genérica.
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]
da una lista de los vectores propios de m (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]]
16
proporciona una aproximación numérica a los valores propios, etc. Por tanto, cuando se
da una matriz cuyos elementos son números reales aproximados, Mathematica encuentra
valores numéricos aproximados para valores y vectores propios.
La función 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úmero de tales vectores propios es
menor que n, entonces Eigenvectors añade 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 la diagonalizabilidad de dicha
matriz. En el caso general, dada una matriz m, siempre será posible encontrar una
matriz c tal que c
−1
mc = j, donde j es la llamada forma canónica de Jordan (que en el
caso de ser m diagonalizable no es más que una matriz diagonal tal que los elementos
de su diagonal principal son los valores propios de m). La función que lleva a cabo
esta descomposición es JordanDecomposition, la cual proporciona una lista con las
matrices c y j.
2.2 Problemas de Álgebra Lineal
Problema 12 Dadas las matrices
A =

¸
3 −4 5
8 0 −3
5 2 1
¸

, B =

¸
10 −6 −9
6 −5 −7
−10 9 12
¸

calcula A+B, B −4A, (AB)
−1
, ((A−B)B)
T
, A
2
, det(B
3
) y las raíces del polinomio
característico de A.
Problema 13 Resolver el sistema
½
x + 5y = a
2x + y = b
dependiente de dos parámetros. El método más eficiente es usar LinearSolve.
Problema 14 Consideramos ahora el sistema
½
x + 2y = a
x + 2y = b
que es incompatible, Mathematica lo indica.
Ejercicio 2 Estudia y resuelve el sistema

x + 2y + 3z = 6
x + 3y + 8z = 19
2x + 3y + z = −1
5x + 6y + 4z = 5
17
Ejercicio 3 Estudia y resuelve, según los valores de a, el sistema formado por las
ecuaciones

ax + y + z = 1
x + ay + z = a
x + y + az = a
2
Ejercicio 4 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)
otra con
(2, 3, −1, 3, 0), (1, 2, 1, −2, 1), (2, 1, −7, 17, −4)
hallando los rangos de esas dos matrices y una base de su núcleo.
Ejercicio 5 Evaluar el determinante de: A =

¸
t −2 4 3
1 t + 1 −2
0 0 t −4
¸

, B =

¸
¸
¸
2 0 0 5
1 −1 0 0
2 1 3 4
6 5 2 −1
¸

Ejercicio 6 Hallar la inversa de: C =

¸
−1 2 −3
2 1 0
4 −2 5
¸

, D =

¸
2 1 −1
0 2 1
5 2 −3
¸

Ejercicio 7 Sea la matriz A =

¸
2 −2 6
0 a 4 −a
0 a −a
¸

, a ≥ 0
1. Estudia su diagonalización en función de los valores de a.
2. Diagonalizar A (si es posible) cuando a = 4, hallando explícitamente la matriz de
paso.
Ejercicio 8 Dada la matriz
A =

¸
1 a 1
−1 1 −a
1 0 a + 1
¸

1. Calcular el polinomio característico de A, así como sus valores propios.
2. ¿Para qué valores de a la matriz es diagonalizable?
18
3. Para dichos valores, calcular la matriz de paso y la matriz diagonal.
Ejercicio 9 Estudiar para qué valores de los parámetros reales a y b las matrices sigu-
ientes son diagonalizables:
A =

¸
5 0 0
0 −1 b
3 0 a
¸

, B =

¸
a b 0
0 1 2
0 0 2
¸

Ejercicio 10 Calcular los valores y vectores propios del endomorfismo f : R
3
−→ R
3
definido por
f(x, y, z) = (x + y +z, 3x + y −z, −2x + 2y + 3z)
Ejercicio 11 Diagonaliza ortogonalmente las matrices

¸
3 2 2
2 2 0
2 0 4
¸

¸
−1 2 2
2 −1 2
2 2 −1
¸

,

¸
3 −1 0
−1 3 0
0 0 2
¸

,

¸
3 −2 0
−2 3 0
0 0 5
¸

,
Ejercicio 12 Dada la matriz A =
µ
3 −2
−1 2

1. Obtener p (A) donde p (x) = 3 + 2x −5x
2
.
2. Obtener su inversa utilizando el teorema de Cayley-Hamilton.
2.3 Introducción a los Métodos Numéricos. Métodos del
Álgebra Lineal
En esta sección repasaremos algunas de las posibilidades que ofrece Mathematica para
resolver problemas numéricos de Álgebra Lineal, en particular veremos la resolución
numérica de sistemas de ecuaciones lineales. Los métodos iterativos para el cálculo de
valores y vectores propios son usados por Mathematica en los comandos Eigenvalues[N[m]],
como ya hemos comentado.
Para resolver el sistema de ecuaciones lineales:
E
1
: a
11
x
1
+a
12
x
2
+ ... + a
1n
x
n
= b
1,
E
2
: a
21
x
1
+a
22
x
2
+ ... + a
2n
x
n
= b
2,
...
E
n
: a
n1
x
1
+a
n2
x
2
+ ... + a
nn
x
n
= b
n,
1. La ecuación E
i
puede multiplicarse por una constante no nula λ y se puede usar
la ecuación resultante en vez de E
i
. Esta operación se denota por (λE
i
) →E
i
.
2. La ecuación E
j
puede multiplicarse por una constante no nula λ, sumarla a la
ecuación E
i
y usar la ecuación resultante en vez de E
i
. Esta operación se denota
por (E
i
+ λE
j
) →E
i
.
19
3. La ecuaciones E
j
y E
i
pueden intercambiarse. Esta operación se denota por E
i

E
j
.
Por medio de estas operaciones se puede transformar un sistema lineal en otro más
sencillo de resolver con el mismo conjunto de soluciones.
Al realizar las operaciones anteriores las variables no cambian, sólo sus coeficientes.
Por esto un sistema lineal se reemplaza frecuentemente por una matriz, que contiene
toda la información del sistema.
2.3.1 Eliminación Gaussiana y sustitución hacia atrás
El sistema anterior lo podemos representar como una matriz, conocida como matriz
ampliada,

¸
¸
¸
a
11
a
12
... a
1n
a
21
a
22
... a
2n
... ... ... ...
a
n1
a
n2
... a
nn
¯
¯
¯
¯
¯
¯
¯
¯
b
1
b
2
...
b
n
¸

y realizar operaciones elementales sobre las filas para conseguir ceros por debajo de la
diagonal.

¸
¸
¸
a
11
a
12
... a
1n
a
0
22
... a
0
2n
... ... ... ...
... a
0
nn
¯
¯
¯
¯
¯
¯
¯
¯
b
1
b
0
2
...
b
0
n
¸

que equivale al siguiente sistema
E
1
: a
11
x
1
+ a
12
x
2
+ ... + a
1n
x
n
= b
1,
E
2
: a
0
22
x
2
+ ... + a
0
2n
x
n
= b
0
2,
...
E
n
: a
0
nn
x
n
= b
0
n,
Despejando x
n
en la última ecuación y sustituyendola en la ecuación E
n−1
se obtiene
x
n−1
. Despejando en la ecuación anterior se obtiene x
n−2
, y así, sucesivamente, se van
obteniendo el resto de las incógnitas.
Al hacer este tipo de eliminación muchas veces se necesita cambiar el orden de las
filas para conseguir los ceros. Esto también es necesario porque cuando los cálculos se
realizan usando aritmética de dígitos finitos pueden aparecer muchos errores debido al
redondeo de las cifras. Por lo cual se han de tener en cuenta cuales son los elementos
más adecuados para conseguir los ceros, es decir, los pivotes. La estrategia más simple
consiste en seleccionar el elemento en la misma columna que está abajo de la diagonal
y que tiene el mayor valor absoluto. Esta técnica se conoce como pivoteo máximo
de columna o pivoteo parcial.
El Mathematica ofrece paquetes que permiten realizar de forma numérica muchos
cálculos algebráicos. Nosotros utilizaremos el paquete de eliminación gaussiana, que se
carga mediante
20
<<LinearAlgebra‘GaussianElimination‘
Como hemos visto, la función LinearSolve permite calcular la solución de un sistema
de ecuaciones lineales.
Existen casos en que se quieren resolver varios sistemas de ecuaciones lineales donde
coincide la parte de la izquierda del sistema, pero no así la de la derecha, es decir, la
matriz de los coeficientes es la misma pero cambian los términos independientes. En
este caso también se puede usar LinearSolve pero mucho del trabajo es repetitivo.
Por eso, como el primer paso se puede ver de forma abstracta como la factorización
de la matriz de los coeficientes en el producto de una matriz triangular inferior, L, por
una matriz triangular superior, U (factorización LU) se puede recurrir a
LUFactor
que produce esta factorización y da la información sobre que filas han de cambiarse
para que se mantenga la estabilidad numérica en la computación.
El segundo paso de volver hacia atrás sustituyendo se puede hacer mediante
LUSolve.
Estas dos ordenes están el el paquete
<<LinearAlgebra‘GaussianElimination‘.
Veamoslo mediante un ejemplo:
Ejemplo 1 Resolver el sistema de ecuaciones:
E
1
: 5x
1
+ 3x
2
= 6
E
2
: 7x
1
+ 9x
2
+ 2x
3
= −3
E
3
: −2x
1
−8x
2
−x
3
= 7
utilizando la descomposición LU de la matriz de los coeficientes y la orden LUSolve
In[1]:= <<LinearAlgebra‘GaussianElimination‘
In[2]:= MatrixForm[a = {{5, 3, 0}, {7, 9, 2},{-2, -8, -1}}].
Out[2]:=

¸
5 3 0
7 9 2
−2 −8 −1
¸

In[3]:= lu = LUFactor[a]
Out[3]:= LU[{{
5
7
,
12
19
,
−22
19
},{7,9,2},{
−2
7
,
−38
7
,
−3
7
}},{2,3,1}]
In[4]:= b={6,-3,7};
In[5]:= c=LUSolve[lu, b]
Out[5]:= {
75
44
,
−37
44
,
−81
22
}
In[6]:= a .c - b
Out[6]:= {0,0,0}
21
Obsérvese que el resultado de Out[3] da la factorización LU de la matriz a y nos
dice tambien como se han colocado las filas de dicha matriz para hacer la reducción
gaussiana. En términos matriciales, se leería:

¸
1 0 0
−2
7
1 0
5
7
12
19
1
¸

¸
7 9 2
0 −
38
7

3
7
0 0 −
22
19
¸

=

¸
7 9 2
−2 −8 −1
5 3 0
¸

La ventaja de utilizar la reducción LU es que se puede utilizar el mismo sistema
de ecuaciones cambiando los términos independientes cambiando solamente el vector

b.
Veamoslo
Ejemplo 2 Resolver el sistema de ecuaciones:
E
1
: 5x
1
+ 3x
2
= 2
E
2
: 7x
1
+ 9x
2
+ 2x
3
= −1
E
3
: −2x
1
−8x
2
−x
3
= −2
utilizando los resultados del problema anterior.
In[1]:= b1={6,-3,7};
In[2]:= c=LUSolve[lu, b1]
In[3]:= a .c - b1
Ejercicio 13 Resolver el sistema de ecuaciones:
x + 4y + z = 0
3x − y + 2z = 1
2x − 5y + az = −2
utilizando la descomposición LU de la matriz de los coeficientes y la orden LUSolve.
Estudiar para que valores del parámetro a tiene solución única.
El Mathematica permite construir matrices utilizando la función
Do[p[i,j],{i,1,m},{j,1,n}]
Veamoslo en un ejemplo
Ejemplo 3 Construir una matriz (8 × 8) mediante Do.
m=8; n=8;
Do[p[i,j]=0,{i,1,m},{j,1,n}];
Do[p[i,i]=7,{i,1,m}];
Do[p[i,i+1]=2,{i,1,m-1}];
Do[p[i,i-1]=-4,{i,2,m}];
MatrixForm[a=Array[p, {m,n}]]
22
Ejercicio 14 Resuelve el sistema representado en la matriz anterior utilizando como
matrices de los términos independientes los vectores

b = (9, 5, 5, 5, ....., 5, 3).

b = (2, 3, 3, ..., 3, 5).
Utilizando Do para construir estos vectores.
Ejercicio 15 Resolver un sistema lineal de 20 ecuaciones y 20 incognitas, utilizando
como matriz de coeficientes una matriz que sigua la recurencia de la matriz del ejemplo
anterior y como vector de términos independientes el vector

b = (9, 5, 5, 5, ....., 5, 3).
Ejercicio 16 Repetirlo para un sistema de 100 ecuaciones y 100 incógnitas.
2.3.2 Descomposición QR y descomposición de Shur
La descomposición QR de una matriz A consiste en encontrar dos matrices Q y R,
ortonormal la primera y triangular la segunda, de forma que A = Q
T
R. Mathematica
la calcula usando
QRDecomposition[matriz]
La descomposición de Schur de una matriz A consiste en encontrar dos matrices
S y T, ortogonal la primera y triangular superior la segunda, tal que A = STS
T
.
Mathematica la calcula usando
SchurDecomposition[matriz]
Problema 15 Dada la matriz

¸
1 3 −1
0 −1 1
−1 0 −1
¸

Encontrar su descomposición QR y de Schur.
23
Capítulo3
Resolución numérica de
ecuaciones no lineales
El objetivo de esta práctica es aprender a utilizar los comandos de Mathematica que
permiten abordar el estudio de ecuaciones y sistemas no lineales, es decir, nos pro-
ponemos resolver ecuaciones de la forma
f (x) = 0 (3.1)
donde f es una función real de variable real. Este tipo de ecuaciones reciben el nombre
de ecuaciones no lineales y el valor α que satisface la igualdad f (α) = 0 se conoce como
solución, cero o raíz de la ecuación.
Las ecuaciones no lineales son más habituales de lo que pueda pensarse, por ejemplo,
al describir el movimiento de los planetas alrededor del sol o de los satélites alrededor
de los planetas se obtienen órbitas elípticas; para determinar entonces en que punto
de la elipse se encuentra un móvil en un tiempo dado hay que resolver la ecuación de
Kepler:
x −e sinx = z
donde e es la excentricidad de la elipse y z es un número conocido que se calcula a
partir del tiempo t. Es decir, se han de encontrar los ceros de la función:
f (x) = x −e sinx −z.
El caso más sencillo de ecuaciones no lineales es cuando la función f es una función
polinómica P (x) . Si P (x) = ax+b, la solución de (3.1) sólo requiere el cálculo de una
división. Si P (x) = ax
2
+bx+c, la solución de (3.1) necesita extraer raíces cuadradas.
El método de resolución de un polinomio cúbico se debe a Tartaglia (1499-1557) y a
del Ferro (1465-1526) y el de una ecuación polinómica de cuarto grado a Ferrari (1522-
1565). Durante siglos se buscó la fórmula para resolver polinomios de quinto grado hasta
que Abel demostró que no tenían solución. La imposibilidad de encontrar una fórmula
que resolviera una ecuación polinómica de grado mayor o igual que cinco mediante
combinaciones de operaciones elementales fue demostrada por Galois. Estos resultados
indican que, desde muy pronto, se vió la necesidad de utilizar técnicas numéricas para
resolver las ecuaciones no lineales.
24
Calcular la raíz de una ecuación con un ordenador utilizando técnicas numéricas
tiene sus limitaciones. A menudo la raíz es un número real que no tiene una repre-
sentación exacta en el ordenador. En este caso, tendremos que conformarnos con una
aproximación que verifique una condición impuesta en el algoritmo de la forma
|f (x)| < ε
donde ε es una constante positiva préviamente fijada que recibe el nombre de tolerancia
del algoritmo y tiene la función de actuar como criterio de parada del algoritmo cuando
consideramos que estamos suficientemente cerca del valor exacto de la raíz. En los
algoritmos iterativos en los que se genera una sucesión de aproximaciones {x
n
}
n∈N
que queremos que converja a la solución, se utiliza como criterio de parada el que dos
iteraciones sucesivas cumplan uno de los dos siguientes criterios:
1. |x
n+1
−x
n
| < ε, criterio de la diferencia absoluta.
2.
|x
n+1
−x
n
|
|x
n
|
< ε, criterio de la diferencia relativa.
En un proceso de cálculo de raíces de una ecuación no lineal primero hay que
tener un cierto conocimiento de la zona en que se encuentran las raíces para, después,
construir de forma iterativa una sucesión de valores que converja a la solución. En el
caso de tener raíces muy próximas es conveniente determinar intervalos que contengan
una única raíz.
3.1 Método de la bisección
El algoritmo de la bisección es el más sencillo pero converge lentamente a la solución,
aunque siempre converge a ella, por lo que suele usarse inicialmente para determinar
los intervalos donde aplicar los métodos iterativos más rápidos. Se basa en el teorema
de Bolzano:
Teorema 1 Dada una función f (x) continua en un intervalo [a, b] que verifica la
condición f (a) · f (b) < 0, existe α ∈ (a, b) tal que f (α) = 0.
Para construir el algoritmo de iteracción se crea una sucesión de intervalos encajados
de la siguiente forma:
1. Se parte del intervalo [a
0
, b
0
] = [a, b] .
2. Se calcula el punto medio del intervalo [a
k
, b
k
] .
m
k
= 0.5 · (a
k
+ b
k
)
Si |f (m
k
)| < ε
1
⇒α ≈ m
k
, se para el proceso.
Si f (a
k
) · f (m
k
) < 0 ⇒[a
k+1
, b
k+1
] = [a
k
, m
k
] .
Si f (a
k
) · f (m
k
) > 0 ⇒[a
k+1
, b
k+1
] = [m
k
, b
k
] .
k = k + 1
25
3. Los cálculos se paran cuando |b
k
−a
k
| < ε
2
o cuando k > k
max
. Se obtiene
α ≈ m
k
=
a
k
+b
k
2
donde ε
1
y ε
2
son tolerancias fijadas por el algoritmo y que pueden ser iguales
o no, k
max
es el valor de la iteración máxima que consideremos, para evitar un
proceso excesivamente largo.
Como hemos comentado, este método converje siempre y da cotas superiores e
inferiores para la raíz buscada, pero no utiliza propiedades de la función que se estudia
y su convergencia es muy lenta.
Ejemplo 4 Consideremos el ejemplo anterior f (x) = x − e sinx − z, con e = 0.5 y
z = 0.7.
Empezaremos localizando la raíz: f (0) = −0.7 < 0, f (2) = 2 − 0.5 sin2 − 0.7
= 0. 845 35 > 0, luego empezamos en el intervalo [0, 2] . f (1) = 1 − 0.5 sin1 − 0.7
= −0. 120 74 < 0, luego será el intervalo [1, 2] , f (1.5) = 1.5 − 0.5 sin1.5 − 0.7 =
0.301 25 > 0 ⇒ [1, 1.5] , f (1.25) = 1.25 − 0.5 sin1.25 − 0.7 = 7. 550 8 × 10
−2
> 0 ⇒
[1, 1.25] , f (1.125) = 1.125 −0.5 sin1.125 −0.7 = −2. 613 4 × 10
−2
< 0 ⇒[1.125, 1.25] ,
f (1.1875) = 1.1875−0.5 sin1.1875−0.7 = 2. 378 2×10
−2
> 0 ⇒[1.125, 1.1875] es decir,
después de cinco iteracciones sabemos que la raíz está en el intervalo [1.125, 1.1875] ,
por lo que si aproximamos la solución por el punto medio de éste, 1.15625 sabemos que
el error que se comete es menor que 0.0 312 5.
3.2 Método de Newton
El método de Newton, también llamado de Newton-Raphson, es un ejemplo de un
método de punto fijo. Es decir, se basa en utilizar una ecuación de la forma g (x) = x
equivalente a f (x) = 0 con f (x) derivable. Para encontrar el punto en el que f (x
0
) = 0
se parte de un valor x
1
, llamado pivote, desde el que se traza la recta tangente a la curva
y = f (x) en el punto (x
1
, f (x
1
)) , de ecuación y −f (x
1
) = f
0
(x
1
) (x −x
1
) . Esta recta
corta al eje de las x en un punto x
2
= x
1

1
f
0
(x
1
)
f (x
1
) que, en principio, se encuentra
más cerca de x
0
buscado. A continuación se traza la recta tangente a la curva en el
punto (x
2
, f (x
2
)) a partir del cual se localiza el punto x
3
= x
2

1
f
0
(x
2
)
f (x
2
) y así
sucesivamente. En general, obtenemos la fórmula x
n+1
= x
n

1
f
0
(x
n
)
f (x
n
), que nos
permite construir la sucesión {x
n
}
n∈N
recursivamente, la cual converge a la raíz x
0
.
1. Se parte de un valor x
0
, llamado pivote.
2. Se calcula x
k
= g (x
k−1
) = x
k−1

1
f
0
(x
k−1
)
f (x
k−1
) .
si |g (x
k
)| < ε
1
⇒α ≈ x
k
, se para el proceso.
si |g (x
k
)| > ε
1
⇒k = k + 1.
3. El cálculo se para cuando |x
k
−x
k−1
| < ε
2
o cuando k > k
max
, donde nos asegu-
ramos que α ≈ x
k
.
26
Cuando lim
k→∞
x
k
= α, diremos que la sucesión converge a la solución del problema
ya que α es un punto fijo de g (x) .
Para saber las condiciones bajo las cuales son convergentes las iteraciones de punto
fijo se utiliza el teorema:
Teorema 2 Dada una función g ∈ C
1
([a, b]) tal que |g
0
(x)| < 1 para todo x ∈ (a, b) ,
existe α ∈ (a, b) para el cual g (α) = α, dado x
0
∈ (a, b) y la sucesión {x
k
}
k∈N
tal que
x
k
= g (x
k−1
) , k ∈ N, se verifica g (x
k
) ∈ (a, b) para todo k > 0, entonces la sucesión
{x
k
}
k∈N
converge a α.
El hecho de utilizar la función g dada está motivado por la idea de aproximar
funciones por sus rectas tangentes, es decir, aproximar el comportamiento de la función
y = f (x) por un comportamiento lineal y, sobre este último ir localizando las raíces,
las cuales se supone que se irán acercando a la raíz de la función dada.
0.5 1 1.5 2 2.5 3
2
4
6
8
Esta idea es muy útil a la hora de reemplazar problemas no lineales por problemas
lineales y se ha mostrado como una idea muy fructífera en Matemáticas. Es fácil
comprobar que si en la iteración k −1 construimos la recta tangenta a f (x) en el punto
x
k−1
se obtiene
y = f (x
k−1
) + f
0
(x
k−1
) (x −x
k−1
)
Por tanto, el valor x
k
se encuentra en la intersección de esta recta con el eje x.
El algoritmo de Newton se emplea ampliamente porque, al menos en las proximi-
dades de una raíz, converge más rápidamente que el de la bisección, de la secante, etc.
No obstante, debemos resaltar que la aplicación del método de Newton no siempre es
posible, ya que puede ocurrir que x
k−1
no pertenezca al dominio de la función f o que
f no sea derivable en x
k−1
. Las iteraciones del método de Newton convergen bajo las
condiciones que se especifican en el siguiente teorema:
Teorema 3 Dada f ∈ C
1
([a, b]) tal que existe α ∈ (a, b) para el cual f (α) = α y
f
0
(α) 6= 0 y dada {x
k
}
k∈N
tal que si x
0
∈ (α −δ, α + δ) se verifica que la sucesión
{x
k
}
k∈N
converge a α.
3.2.1 Análisis del error
Para analizar la bondad relativa de los métodos es necesario conocer la mejora que se
introduce en la solución de la ecuación, o bien, la rapidez con que se aproxima a la
27
solución verdadera. Para poder comparar diferentes métodos introducimos la siguiente
definición.
Definición 1 Sea {x
k
}
k∈N
una sucesión que converge a una solución α de la ecuación
f (x) = 0 y sea ε
k
el error absoluto cometido al considerar como solución ε
k
= x
k
−α.
Si existen p ∈ N y c ∈ R diferentes de cero, tales que
lim
k→∞

k+1
|

k
|
p
= c, (3.2)
diremos que p es el orden de convergencia mientras que c es la constante del error
asintótico.
Si p = 1 diremos que la convergencia es lineal, si p = 2 se dice que es cuadrática,
etc.
El límite anterior significa que la sucesión {x
k
}
k∈N
converge a la solución α aprox-
imadamente igual de rápido que la función
1
x
p
tiende a cero cuando x → ∞. La con-
vergencia es más rápida a medida que p aumenta, por lo que un método de orden más
alto es mejor que uno de orden más bajo, siempre que no aumente de forma desmedida
el número de operaciones a realizar. Puede comprobarse que el método de la bisección
es de orden 1 mientras que el de Newton es de orden 2.
3.3 Resolución de ecuaciones no lineales con Mathematica
3.3.1 Método de la bisección
Podemos escribir este algoritmo como:
a0=a; b0=b
For[k=1,k≤nmax,k++,
m=(a+b)/2;
If[Abs[f[m]]<pre,
sale=’’precisión’’;Break[]];
If[Sign[f[a]]6=Sign[f[m]], b=m; a=a];
If[Sign[f[b]]6=Sign[f[m]], b=b; a=m];
If[b-a<tol, sale=’’tolerancia’’;Break[]]]
La impresión de los resultados podemos realizarla con las siguientes instrucciones:
apm=SetPrecision[m,cifras];
If[sale==’’precisión’’,
Print[’’posible solución exacta:’’,apm],
If[k≤nmax,Print[’’solución pedida:’’,apm],
28
Print[’’Se ha llegado al número máximo de iteraciones’’]]]
Print[’’Número de iteraciones: ’’,k];
Print[’’Error máximo cometido: ’’,tol];
Obsérvese que apmt da la solución aproximada obtenida por Mathematica usando
su propia aproximación.
Ejercicio 17 Utilizar el algoritmo del método de la bisección para resolver la ecuación
1
x
−2 log x = 0.5
para diferentes valores de a, b, tol, nmax y cifras.
Dibujar la función f (x) =
1
x
−2 log x−0.5 y comprobar como de cerca se ha quedado
la aproximación obtenida.
3.3.2 Método de Newton
El algoritmo para el método de Newton se puede escribir como:
x=x0;
For[k=1, k≤nmax, k++,
x=x-(f[x]/f1[x]);
y=f[x]+f1[x]x;
If[Abs[y]<pre, sale=’’precisión’’ ; Break[]];
If[Abs[f[x]]<tol, sale=’’tolerancia’’; Break[]]]
apm=SetPrecision[x,cifras];
If[sale==’’precisión’’,
Print[’’posible solución exacta: ’’, apm],
If[k≤nmax, Print[’’solución pedida: ’’, apm],
Print[’’Se ha llegado al número máximo de iteraciones’’]]]
Print[’’Número de iteraciones: ’’,k];
Print[’’Error máximo cometido: ’’,tol];
donde f1[x]=D[f[x],x], y se han de introducir los valores para x0, pre, cifras
y tol.
Ejercicio 18 Utilizar los métodos de la bisección y de Newton para encontrar las raíces
positivas en los intervalos correspondientes de las funciones siguientes con un error
menor que 0.02. Dibujar primero las funciones para decidir el intervalo adecuado.
1. f (x) = xcos x −log x.
29
2. f (x) = 2x −e
−x
.
3. f (x) = e
−2x
−1 + x.
Ejercicio 19 Utilizar el método de Newton para encontrar, con cinco decimales exac-
tos, la raíz de la ecuación sinx =
³
x
2
´
2
.
Ejercicio 20 Dada la función f (x) =
1
2
x + e
x
.
Encuentra de forma aproximada el valor de su raíz con un error menor que 0.01.
3.3.3 Métodos Numéricos de Mathematica
Mathematica tiene paquetes numéricos que utilizan estos métodos de cálculo de raíces
de una ecuación no lineal. Para encontrar las raíces de funciones polinómicas de forma
numérica, se utiliza:
NSolve[ecuación==0,x]
Si la función no es polinómica se ha de recurrir a:
FindRoot[ecuación==0, {x, x0}]
busca una solución numérica de la ecuación empezando en x = x0. Se puede usar
también
FindRoot[ecuación==0, {x, x0,x1}]
usa x0 y x1 como los dos primeros valores de x.
FindRoot[ecuación==0, {x, x0,xmin,xmax}]
busca la solución y se para si x está fuera del intervalo (xmin, xmax)
FindRoot[{ec1,ec2,...}, {x, x0},{y,y0},...]
encuentra las raíces de las ecuaciones ec1, ec2,... simultaneamente.
No obstante, si no se conoce con exactitud el punto inicial puede resultar muy
costosa de utilizar. El paquete
<<NumericaMath‘InterpolateRoot‘
trabaja de forma más específica, suponiendo que la función tiene un ”buen” compor-
tamiento, lo que permite encontrar las raíces de una función o una ecuación cerca de
los puntos a,b de forma mucho más precisa.
InterpolateRoot[función,{x,a,b}]
InterpolateRoot[ecuación,{x,a,b}]
30
Mathematica también usa los métodos numéricos explicados anteriormente, car-
gando el paquete
<<NumericalMath‘IntervalRoots‘
obtiene intervalos donde pueden estar las raíces de una función mediante los métodos
anteriores:
IntervalBisection[función,x,Interval[{a,b}],tolerancia]
IntervalNewton[función,x,Interval[{a,b}],tolerancia]
Ejercicio 21 Resuelve los problemas anteriores usando los métodos propios de Math-
ematica. Utiliza los resultados para comparar como son de buenos los algoritmos intro-
ducidos.
31
Capítulo4
Interpolación y aproximación de
funciones
La interpolación, que es el cálculo de valores para una función tabulada en puntos que
no aparecen en la tabla, es historicamente una tarea fundamental. Los nombres de
muchos matemáticos famosos están asociados con métodos de interpolación: Newton,
Gauss, Bessel, Stirling,...
Aunque hoy en día, los estudiantes rara vez tiene que interpolar para valores de
senos, logaritmos y demás funciones no algebraicas a partir de tablas, sus calculadoras
y computadoras usan estas técnicas para calcular estos valores y creemos que es impor-
tante que los estudiantes entiendan como funcionan las calculadoras. Además, estos
métodos resultan interesantes ya que constituyen la base para muchos procedimientos
que estudiarán, como los de derivación e integración numérica, resolución de ecuaciones
diferenciales, etc. Por otro lado, la interpolación con polinomios sirve como una exce-
lente introducción para ciertas técnicas de aproximación de curvas suaves, técnicas que
resultan muy útiles a los alumnos de ingenieria.
4.1 Interpolación polinómica de Newton
Dado un conjunto de puntos (x
i
, f (x
i
)) se intentará encontrar un polinomio tal que la
función y el polinomio se comporten casi igual en el intervalo en consideración. Por
tanto, los valores del polinomio deben ser estimaciones razonables de los valores de la
función desconocida. Cuando el polinomio es de primer grado se obtiene la conocida
interpolación lineal. Estamos interesados en polinomios de grado mayor.
En general, dado un entero positivo n, los n+1 puntos x
0
, x
1
, ..., x
n
(llamados nodos)
distintos dos a dos en la recta real y los valores correspondientes f(x
0
), f(x
1
), ..., f(x
n
)
de una función el problema de interpolación polinomial consiste en encontrar un poli-
nomio de grado ≤ n, tal que
p
n
(x
i
) = f (x
i
) , i = 0, 1, ..., n
Este problema tiene solución única, el polinomio que satisface estos requisitos se conoce
como polinomio interpolador o interpolante de la función f en los puntos x
0
, x
1
, ..., x
n
.
32
Hay dos procedimientos básicos para calcularlo: el de Newton y el Lagrange.
Un aspecto importante a considerar es la calidad de nuestra interpolación, es decir
el error que se comete cuando se aproxima un punto distinto de los nodos.
Teorema 4 Si f ∈ C
n+1
(a, b) y x
i
∈ (a, b) para i = 0, 1, ..., n. Entonces, ∀x ∈ (a, b)
se verifica
f (x) −p
n
(x) =
f
n+1

x
)
(n + 1)!
(x −x
0
) (x −x
1
) ... (x −x
n
) , ξ
x
∈ (a, b)
De la fórmula anterior no se puede deducir que los polinomios de mayor grado cor-
respondan 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.
4.1.1 El efecto Runge
Si se considera la sucesión {p
n
(x)} de polinomios de interpolación obtenida aumentando
indefinidamente la cantidad de nodos de interpolación, se observa que al crecer n,
además de aumentar el grado del polinomio y el número de operaciones que se han de
realizar se acentua la pérdida de la precisión en los extremos del intervalo donde se
interpola. Este fenómeno se conoce como el efecto Runge, por lo que es preferible dividir
el intervalo donde se va a efectuar la interpolación en diversos trozos con polinomios
de grado pequeño.
4.1.2 Polinomio interpolador de Newton
La ventaja del polinomio interpolador de Newton es la sencillez de su formulación.
Aunque utiliza las llamadas diferencias divididas, nosotros, por sencillez, veremos
como calcular el polinomio mediante la resolución de un sistema de ecuaciones lineales.
Veamoslo en el siguiente ejemplo,
Ejemplo 5 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 a
i
en el polinomio:
y = a
0
+ a
1
x + a
2
x
2
+ a
3
x
3
+ a
4
x
4
para que pase por los puntos exigidos. Esto es equivalente a resolver un sistema de
ecuaciones lineales, donde a
i
son las incognitas.
In[] := datos={{1, 1},{2, 0},{4, 0},{5, 1},{6, 1.5}};
x={1,2,4,5,6};
y={1,0,0,1,1.5};
sol = Solve[Table[y[[i]] == a0 + a1*x[[i]] + a2*(x[[i]])^2 +
a3*(x[[i]])^3+a4*(x[[i]])^4, {i, 1, 5}], {a0,a1,a2,a3,a4}];
El polinomio de Newton será:
33
newton[t_] = Sum[sol[[1]][[i]][[2]]*t^(i - 1), {i, 1, 5}]
Se pueden dibujar los puntos y el polinomio interpolador:
dib1 = ListPlot[datos1, PlotStyle -> {RGBColor[1, 0, 0], PointSize[0.01
dib2 = Plot[newton[t], {t, 0, 6}];
Show[dib1, dib2];
1 2 3 4 5 6
0.5
1
1.5
observando que el polinomio pasa por todos los puntos.
Por otra parte, el comando
InterpolatingPolynomial
permite obtener el polinomio de interpolación que pasa por los puntos dados.
In[] :pol= Expand[InterpolatingPolynomial[datos,x]]
Plot[pol,{x,1,6}];
2 3 4 5 6
0.5
1
1.5
Ejercicio 22 Dada la tabla siguiente para la función f (x) = e
x
x 0.0 0.2 0.4 0.6
f (x) 1.0000 1.2214 1.4918 1.8221
1. Encontrar los valores aproximados de
3

e por interpolación lineal y cúbica.
2. Encontrar las cotas respectivas de los errores debidos a la interpolación. Comparar
con el valor exacto, obtenido en la calculadora.
Ejercicio 23 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úbico que pase por los cuatro primeros puntos y
utilizarlo para calcular f (0.2) .
34
2. Hacer una estimación del error.
Ejercicio 24 La función f (x) =
1
1 + x
2
, se conoce como función de Runge y fue
la utilizada por Runge para demostrar el efecto que lleva su nombre. Calcular los
polinomios interpoladores de grados 4 y 10, de dicha función en el intervalo [−5, 5].
4.1.3 Interpolación a trozos
Una solución al problema de la oscilación de los polinomios de grado alto consiste
en subdividir el intervalo en intervalos más pequeños e interpolar un número menor
de nodos con polinomios de grado menor, se suele utilizar la interpolación mediante
polinomios cúbicos.
Para ello recordemos como se dibuja una función a trozos utilizando el Mathematica.
In[]:= g[t_]:=Which[t<0,-t^3,0<t<1,t^2,1<t<2,t-1,t>2,1];
In[]:= Plot[g[t],{t,-5,5}];
-4 -2 2 4
0.5
1
1.5
2
2.5
Por tanto, dado un conjunto de nodos, utilizaremos una interpolación mediante poli-
nomios cúbicos cada cuatro nodos. Veremos el ejemplo anterior utilizando polinomios
interpoladores de grado 2.
x={1,2,4,5,6};
y={1,0,0,1,1.5};
sol1 = Solve[Table[y[[i]] == a0 + a1*x[[i]] + a2*(x[[i]])^2 ,
{i, 1, 3}], {a0,a1,a2}];
sol2 = Solve[Table[y[[i]] == a0 + a1*x[[i]] + a2*(x[[i]])^2 ,
{i, 3, 5}], {a0,a1,a2}];
El polinomio de Newton será:
newton1[t_] = Sum[sol1[[1]][[i]][[2]]*t^(i - 1), {i, 1, 3}]
newton2[t_] = Sum[sol2[[1]][[i]][[2]]*t^(i - 1), {i, 1, 3}]
y utilizar Which para construir el polinomio a trozos:
newtonTotal[t_]=Which[t<x[[3]],newton1[t],x[[3]]<t<x[[5]],newton2[t]]
Se pueden dibujar los puntos y el polinomio interpolador:
dib1 = ListPlot[datos1, PlotStyle -> {RGBColor[1, 0, 0], PointSize[0.01]}];
dib2 = Plot[{newtonTotal[t], {t, 0, 6}];
Show[dib1, dib2];
35
1 2 3 4 5 6
-0.25
0.25
0.5
0.75
1
1.25
1.5
4.2 Interpolación con un splin cúbico
No obstante, cuando los datos no son ”suaves” hay problemas con los polinomios de
interpolación, lo que significa que hay irregularidades locales. El interpolar con poli-
nomios de orden superior en la mayor parte de los casos conduce a que el polinomio se
aleje de la función en otras regiones. Una solución es ajustar subregiones de los datos
con polinomios diferentes tal y como se ha hecho en el apartado anterior, pero este
método también es problemático 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 función, 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ás conocidos.
El ajuste de una curva mediante splines cúbicos exige la creación de una sucesión
de splines cúbicos sobre intervalos sucesivos de los datos con la condición de que la
pendiente de los polinomios debe coincidir en los nodos en que se unen. Así, se escribe
la ecuación para un polinomio cúbico, g
i
(x
i
) , en el iésimo intervalo, entre los puntos
(x
i
, y
i
) y (x
i+1
, y
i+1
) y la función splin cúbico que se desea es de la forma
g (x) = g
i
(x
i
) , x ∈ [x
i
, x
i+1
]
y cumple las condiciones:
1. g
i
(x
i
) = y
i
, i = 0, 1, ..., n −1, g
n−1
(x
n
) = y
n
;
2. g
i
(x
i+1
) = g
i+1
(x
i+1
) , i = 0, 1, ..., n −2;
3. g
0
i
(x
i+1
) = g
0
i+1
(x
i+1
) , i = 0, 1, ..., n −2;
4. g
00
i
(x
i+1
) = g
00
i+1
(x
i+1
) , i = 0, 1, ..., n −2.
De donde se obtiene
y
i+1
= a
i
(x −x
i+1
)
3
+ b
i
(x −x
i+1
)
2
+ c
i
(x −x
i+1
) + d
i
=
= a
i
h
3
i
+ b
i
h
2
i
+ c
i
h
i
+ d
i
, i = 0, 1, ..., n −1.
36
Si se hace S
i
= g
00
i
(x
i
) y S
n
= g
00
n−1
(x
n
) , los valores de los coeficiente vienen dados
por
a
i
=
S
i+1
−S
i
6h
i
, b
i
=
S
i
2
, c
i
=
y
i+1
−y
i
h
i

2h
i
S
i
+ h
i
S
i+1
6
, d
i
= y
i
Como los nodos extremos no tienen ninguna condición hay distintas aproxima-
ciones, la más sencilla es la lineal S
0
= S
n
= 0.
El Mathematica tiene esta aproximación incorporada en el paquete
<<Graphics‘Spline‘
Ejemplo 6 Veamos como utilizar este comando para ajustar la siguiente tabla de datos
1 2 3 4
1 4 3 4
In[]:= <<Graphics‘Spline ‘
In[]:=datos={{1,1},{2,4},{3,3},{4,4}};
In[]:=splin=Spline[datos,Cubic]
In[]:=Show[Graphics[{Line[datos],splin},Axes->True];
1.5 2 2.5 3 3.5 4
1.5
2
2.5
3
3.5
4
Ejercicio 25 Los datos de la siguiente tabla provienen de observaciones astronómicas
de un tipo de estrella variable denominada variable cefeida y representan magnitudes
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 de Newton,
2. la interpolación a trozos,
3. una aproximación de splines cúbicos.
Compara los resultados que se obtienen con las distintas aproximaciones para t=0.25.
37
4.3 Ajuste de datos por mínimos cuadrados
Este ajuste se basa en minimizar la suma de los cuadrados de los errores y sirve para
ajustar una curva a un conjunto de datos aproximados, en general, datos experimen-
tales.
El criterio de mínimos cuadrados, además de proporcionar un resultado único para
un conjunto de datos, también coincide con el principio de máxima probabilidad de
estadística. Si los errores de medición poseen una distribución normal y si la desviación
estandar es constante para todos los datos, entonces se puede demostrar que la recta de-
terminada al minimizar la suma de los cuadrados tiene valores de pendiente y ordenada
en el origen con probabilidad máxima de ocurrencia.
Sea Y
i
un valor experimental y sea y
i
un valor de la ecuación
y
i
= ax
i
+ b
donde x
i
es un valor particular de la variable que se supone libre de error. Se quieren
determinar los mejores valores de a y b para que las y predigan los valores de la función
que corresponden a x. El criterio de mínimos cuadrados requiere que la suma de los
errores, e
i
= Y
i
−y
i
, sea mínima, es decir, minimíza la función
S = e
2
1
+ e
2
2
+ ... +e
2
n
=
N
X
i=1
(Y
i
−ax
i
−b)
2
,
Como el mínimo se alcanza al elegir de forma ”adecuada” a y b, se obtiene:
∂S
∂a
= 0 =
N
X
i=1
2 (Y
i
−ax
i
−b) (−x
i
) ⇒a
N
X
i=1
x
2
i
+ b
N
X
i=1
x
i
=
n
X
i=1
x
i
Y
i
∂S
∂b
= 0 =
N
X
i=1
2 (Y
i
−ax
i
−b) (−1) ⇒a
N
X
i=1
x
i
+ bN =
N
X
i=1
Y
i
un sistema de dos ecuaciones cuyas incógnitas son a y b.
Por supuesto, en muchos casos los datos provenientes de pruebas experimentales no
son lineales, por lo que se desea ajustarlos por una función que no sea un polinomio
lineal. Las funciones más usuales son las exponenciales y = ae
bx
y potenciales y = ax
b
.
Se podría hacer un estudio análogo al anterior para el caso de estas funciones, pero
los resultados serían más engorrosos y difíciles de obtener, por lo que se suelen utilizar
los logaritmos para linealizarlas
log y = log a + bx,
log y = log a + b log x
y se ajusta la nueva variable z = log y como una función lineal de x o log x.
Otro ajuste muy usual es el uso de polinomios para ajustar valores cuya gráfica no
es lineal. Dado que un polinomio de grado n ajusta de forma exacta n + 1 puntos y se
podrían utilizar los métodos expuestos antes utilizaremos polinomios cuyo grado sera
mayor que o igual que el número de puntos N.
38
Se supone la relación
y = a
0
+ a
1
x + ... + a
n
x
n
con errores definidos como
e
i
= Y
i
−y
i
= Y
i
−a
0
−a
1
x
i
−... −a
n
x
n
i
y se minimiza la suma de cuadrados de estos errores, obteniéndose
a
0
N + a
1
N
X
i=1
x
i
+ a
2
N
X
i=1
x
2
i
+ ... + a
n
N
X
i=1
x
n
i
= Y
i
a
0
N
X
i=1
x
i
+ a
1
N
X
i=1
x
2
i
+a
2
N
X
i=1
x
3
i
+ ... +a
n
N
X
i=1
x
n+1
i
=
N
X
i=1
x
i
Y
i
...
a
0
N
X
i=1
x
n
i
+ a
1
N
X
i=1
x
n+1
i
+ a
2
N
X
i=1
x
n+2
i
+... + a
n
N
X
i=1
x
2n
i
=
N
X
i=1
x
n
i
Y
i
un sistema de n+1 ecuaciones lineales con las incógnitas a
0
, a
1
, ..., a
n
. Para su resolución
se usarán los métodos algebraícos explicados anteriormente.
Mathematica posee una función integrada para realizar ajuste de datos por mínimos
cuadrados
Fit[datos, función, variable]
La relación deseada no tiene por que ser lineal y se permite más de una variable inde-
pendiente. Se trabaja con una lista de puntos y se suministra un patrón para ajustar
la ecuación. En particular,
Exp[Fit[Log[datos], {1,x}, x]]
ajusta los datos a la función e
a+bx
.
Ejemplo 7 Ajustar una recta por mínimos cuadrados a la tabla
20.5 32.7 51.0 73.2 95.7
765 826 873 942 1032
datos={{20.5,765},{32.7,826},{51.,873},{73.3,942},{95.7,1032}};
da1=Fit[datos.{1,x},x];
Out[]= 702.172+ 3.39487 x.
Se puede comprobar graficamente como de bueno es este ajuste.
d1 = ListPlot[datos, PlotStyle -> {RGBColor[1, 0, 0], PointSize[0.02]}];
d2 = Plot[da1, {x, 0, 100}];
Show[d1,d2];
39
20 40 60 80 100
750
800
850
900
950
1000
1050
También se pueden buscar funciones que ajusten datos tridimensionales, en este
caso tendremos superfícies de ajuste.
Ejercicio 26 Encuentrar la recta de mínimos cuadrados que se ajusta a los datos sigu-
ientes, suponiendo que las x están libres de error.
x 1 2 3 4 5 6
y 5.04 8.12 10.64 13.18 16.20 20.04
Ejercicio 27 Repetir el ejercicio anterior suponiéndo que los valores libres de error
son las y. Debes obtener una recta de mínimos cuadrados de la forma x = ay + b.
Observa que no es la misma recta que se obtuvo antes.
Ejercicio 28 Ajustarlos suponiendo que es un polinomio de orden dos.
Ejercicio 29 Parece que los datos siguientes se ajustan una ecuación cúbica, pero
determinar el grado óptimo por mínimos cuadrados.
x 0.1 1.1 1.6 2.4 2.5 4.1 5.2 6.1 6.6 7.1 8.2 9.1
y 1.9 7.9 24.9 24.9 34.9 42.7 29.7 49.8 36.1 23.7 13.0 20.5
9.4 11.1
-3.1 -13.0
11.4 12.2 13.2 14.1 15.6 16.1 17.6 17.9 19.1 20.0
-28.7 -39.5 -48.6 -40.2 -51.6 -30.5 -34.6 -16.4 -13.4 -1.1
Ejercicio 30 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. Dibujar los puntos y la curva de interpolación de forma intuitiva.
2. Calcular y dibuja el polinomio de sexto grado que interpola estos puntos.
3. Dibujar una curva de interpolación usando splines cúbicos.
4. Comparar los resultados.
5. ¿Qué valores obtienes para t = 0.90 con las distintas curvas de interpolación
obtenidas?
40
Ejercicio 31 Los datos siguientes representan la potencia diaria, en megawatts, gen-
erada por una central eléctrica de servicio regional, durante el mes de agosto de 1998,
y la temperatura atmosférica, 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. Ajustarlos a una ecuación exponencial mediante mínimos cuadrados. Calcular
el coeficiente de correlación.
2. Utiliza tres puntos para calcular un polinomio de interpolación de grado dos.
3. Utiliza los dos resultados anteriores para calcular el valor de y cuando x = 98.
¿Qué resultado consideras correcto?
Ejercicio 32 Dados los datos siguientes
x 2 3 4 5 6
y 12 24 50 95 190
1. Hallar la curva exponencial mínimo cuadrática y = ab
x
.
2. Calcula un polinomio interpolador a trozos con polinomios de grado dos
41
Capítulo5
Estudio de funciones reales
Como hemos comentado en la introducción, las posibilidades gráficas del Mathematica
han sido una de las causas de su éxito. Mediante Mathematica se pueden dibujar
funciones y datos en dos y tres dimensiones; producir gráficos de nivel y de densidad,
además de dibujar objetos y figuras arbitrarias. En esta práctica exploraremos algunas
de las posibilidades que Mathematica ofrece a la hora de hacer gráficas además de su
uso en el reconocimiento de los puntos extremos, en particular para funciones de dos
variables.
5.1 Gráficas en Dos y Tres Dimensiones
5.1.1 Gráficas en el plano.
Para hacer una gráfica en dos dimensiones de una función de una variable se usa la
orden Plot. Esta orden necesita al menos de dos argumentos, una expresión expr, y un
rango. El rango es un triplete: la variable de la expresión, x, un valor mínimo, x
min
, y
un valor máximo, x
max
.
Plot [expr, {x, x
min
,x
max
}]
Así la gráfica de la parábola y = −x
2
+ 4 es producida por la siguiente orden:
In[] := Plot [-x^2+4,{x,-3,3}];
Además de este tipo de funciones Mathematica también puede hacer gráficas de
funciones que tienden a infinito o que tienen singularidades, así por ejemplo podemos
producir la gráfica de la tangente en valores donde la tangente se hace infinito (re-
cuerdese que los argumentos de las funciones trigonométricas deben estar en radianes,
a menos que se indique otra cosa)
In[] := Plot [Tan[x], {x,-2Pi,2Pi}];
Obsérvese que Mathematica no muestra todo el rango de valores de y, muestra la
región en que la función es interesante. Fuera del rango en que está dibujada la función
el comportamiento de la tangente no es especialmente relevante.
42
Opciones
Cuando Mathematica dibuja una gráfica, debe tomar muchas decisiones. Estas deci-
siones pueden ser modificadas dependiendo de los valores de las opciones. Recuerdese
que mediante ??Plot o la orden Options pueden verse todas las opciones para la fun-
ción Plot junto con sus valores por defecto.
In[] := Options[Plot]
Estas opciones se pueden especificar en cualquier orden después de los argumentos
requeridos,
Plot [expr, {x, x
min
,x
max
}, opciones]
Las opciones se especifican dando el nombre de la opción junto con el valor; por ejem-
plo, si queremos determinar el rango de los valores de y usariamos la opción PlotRange.
Finalmente, si no se especifica una determinada opción se usa su valor por defecto
Al usar estas opciones se han de tener en cuenta los objetivos que se persiguen
ya que algunas veces es interesante conocer todos los posibles valores de una función;
en cambio otras, el usar todos estos valores da un gráfico que no ayuda mucho en su
evaluación.
Modificando el estilo de una gráfica
Mediante la opción PlotStyle se puede cambiar el grosor, color y estilo de una curva.
El grosor se cambia utilizando la expresión Thickness, cuyo argumento [a] es la razón
del ancho de línea al de todo el gráfico.
Plot[expr, rango, PlotStyle->Thickness[a]]
El valor inicial para la función Plot es Thickness[0.004].
La función RGBColor permite especificar un color: Dicha función tiene tres argu-
mentos: el primero es la cantidad de rojo (Red), el segundo de verde (Green) y el tercero
de azul (Blue). Estos argumentos deben ser números entre 0 y 1, donde 1 indica la
presencia del color y 0 su ausencia. Se puede utilizar también GrayLevel si se desea
un sombreado gris; su argumento es un número entre 0 y 1.
Plot[expr, rango, PlotStyle->RGBColor[rojo, verde, azul]]
Plot[expr, rango, PlotStyle->GrayLevel[g]].
La función Dashing crea una línea a trazos en la que los sucesivos trazos dibujados
o no dibujados son de longitud d
1
,d
2
,..., los argumentos de la función. Las longitudes
d
1
,d
2
,... se especifican como fracciones del ancho total del gráfico.
Plot[expr, rango, PlotStyle->Dashing[{d
1
,d
2
,...}]]
Todas estas opciones pueden usarse simultaneamente con PlotStyle si se especi-
fican en una lista de listas. Lo cual además permite dibujar varias curvas al mismo
tiempo con estilos diferentes.
43
Gráficas de varias curvas
Plot permite obtener la gráfica de varias curvas al mismo tiempo, para ello se han de
escribir las ecuaciones de las distintas curvas en forma de lista en el primer argumento
de Plot
Plot[{ecuación 1, ecuación 2, ...}, {x, x
min
,x
max
}].
Como hemos indicado antes cada una de las líneas puede dibujar con un estilo
diferente, lo que permite su mejor visualización.
Gráficas paramétricas
Este tipo de gráficas son muy útiles cuando se quiere dibujar simultáneamente los
valores de x e y en función de un parámetro. Permite asimismo dibujar gráficas en
coordenadas polares.
La función ParametricPlot dibuja una curva parametrizada, una función donde
los valores de x e y vienen dados en función de un parámetro; en general se usa t como
dicho parámetro ya que suele representar el tiempo.
ParametricPlot[{f
x
[t],f
y
[t]},{t,t
min
,t
max
}]
5.1.2 Gráficas Tridimensionales
La función Plot3D produce una gráfica trimensional donde se da la coordenada z en
función de x e y. Sus argumentos son una expresión y los rangos para las dos variables:
Plot3D[expr, {x,x
min
,x
max
},{y,y
min
,y
max
}, opciones];
Una opción interesante de Plot3D es que la gráfica obtenida puede verse desde
distintos puntos de vista mediante ViewPoint. El Front End tiene una opción en el
menú que permite visualizar los distintos enfoques que se le puede dar a la figura, sin
más que mover el cubo de referencia mediante el ratón.
La opción Show permite redibujar un gráfico, combinar varios de ellos o cambiar las
opciones de uno construido antes.
Los gráficos tridimensionales estan ya coloreados por defecto.
Gráficas paramétricas
La opción ParametricPlot3D produce gráficas tridimensionales donde las coordenadas
x, y, z están dadas en términos de dos parámetros
ParametricPlot3D[{f
x
[u,v],f
y
[u,v],f
z
[u,v]}, {u,u
min
,u
max
}, {v,v
min
,v
max
},
opciones], o
ParametricPlot3D[{f
x
[u],f
y
[u],f
z
[u]}, {u,u
min
,u
max
}, opciones],
Al igual que antes, la ventaja de utiliza esta opción consiste sobre todo en el dibujo
de funciones que son dificiles de hacer en coordenadas cartesianas.
44
5.2 Curvas en el plano y en el espacio
5.2.1 Curvas en el plano, ecuaciones paramétricas
En general, las ecuaciones de las curvas en el plano vienen dadas en coordenadas carte-
sianas, x e y. Mathematica sabe representar este tipo de ecuaciones de forma directa
cuando y = f(x) mediante Plot:
Plot [expr, {x, x
min
,x
max
}]
Así la gráfica de la curva y = x
3
+ x es producida por la siguiente orden:
In[] := Plot [x^3+x,{x,-3,3}];
No obstante, a veces es útil introducir una tercera variable para representar una
curva en el plano. El interés de introducir esta tercera variable es doble: por un lado
permite dibujar mas fácilmente algunas curvas planas que no se pueden escribir de
forma inmediata como funciones. Por otro lado, en mucho casos este parametro se
puede considerar como el tiempo y permite la descripción completa de la curva en
términos de la trayectoria seguida por un móvil. Veamoslo:
• Si se quiere dibujar la circunferencia x
2
+y
2
= 1 utilizando Plot, se ha de despejar
la variable y y dibujar las dos curvas correspondientes
In[] := Plot [{Sqrt[1-x^2],-Sqrt[1-x^2]},{x,-1,1}]
Pero esta misma circunferencia se puede dibujar utilizando un parámetro angular
y escribiendo x e y en términos de dicho parámetro:
x = cos t, y = sint.
La orden que permite dibujarlo es:
ParametricPlot[{Cos[t],Sin[t]},{t,0,2 Pi}]
• Para ver la versión temporal del parámetro, consideremos la trayectoria de un
objeto lanzado al aire formando un ángulo de 45
o
con una velocidad inicial de
10m/s. Podeis comprobar que este objeto sigue la trayectoria parabólica dada
por
y = −
x
2
10
+ x
Pero esta ecuación no nos dice en que momento el objeto ha estado en cada punto
de la trayectoria. Para determinar ésto se introduce una tercera variable, t, a la
que llamamos parámetro. A partir de las leyes de Newton se pueden reescribir x
e y en términos de dicho parámetro, obteniéndose las ecuaciones paramétricas
x = 5

2t
y = 5

2t −5t
2
45
Este conjunto de ecuaciones permite determinar en que punto está el objeto en
cada instante. El dibujo de la trayectoria se puede obtener, además de utilizar la
orden Plot, mediante
ParametricPlot[{5 Sqrt[2] t ,5 Sqrt[2] t-5 t^2},{t,0, Sqrt[2]}]
El utilizar las ecuaciones paramétricas permite, además, conocer el sentido de
recorrido de la trayectoria.
Coordenadas polares
Para construir un sistema de coordenadas polares en el plano, se fija un punto O llamado
origen (o polo) y desde O se considera un rayo inicial llamado eje polar. A cada punto
P del plano se le asignan las coordenadas polares (r, t)
1
de la siguiente forma:
r : distancia dirigida de O a P.
t : ángulo orientado en sentido antihorario desde el eje polar hasta el segmento OP.
En general se suele elegir el origen de las coordenadas cartesianas como origen de
las polares y el eje x como eje polar.
Las coordenadas cartesianas estan relacionadas con las polares mediante las fórmu-
las
x = r cos t
y = r sint
¯
¯
¯
¯
x
2
+ y
2
= r
2
tant =
y
x
Ejercicio 33 Dibujar las siguientes curvas utillizando coordenadas paramétricas y carte-
sianas:
x
2
+ y
2
= 9
x
2
+ y
2
−2x = 0
x
2
+ y
2
−4y = 0
y
2
= 2x
¡
x
2
+ y
2
¢
2
−9
¡
x
2
−y
2
¢
= 0
y = x
Ejercicio 34 Dibujar las siguientes gráficas polares
r = 2 cos 3t (rosa de tres pétalos) ¿Cómo dibujarías una rosa de cuatro pétalos?¿Yde
25?
r
2
= 4 sin2t (lemniscata).
r = 2 ± 3 sint (caracoles).
Ejercicio 35 Escribir las ecuaciones polares de las cónicas y dibujalas.
5.2.2 Curvas en el espacio, ecuaciones paramétricas.
En el espacio, una curva se representa como la intersección de dos superficies, por lo
que es más interesante la utilización de coordenadas paramétricas, ya que la curva se
obtiene al variar un único parámetro,
1
En general, las coordenadas polares se conocen por (r, θ). Utilizamos t como ángulo por comodidad
de escritura.
46
ParametricPlot3D[{t,t^2,2t}, {t,-1,1}]
Estudiaremos dos nuevos sistemas de coordenadas espaciales: el sistema de coorde-
nadas cilíndricas y el sistema de coordenadas esféricas.
Coordenadas cilíndricas
En un sistema de coordenadas cilíndricas un punto P del espacio se representa por un
trio ordenado (r, t, z), donde
(r, t) es una representación polar de la proyección del punto P en el plano xy, y
z es la distancia orientada de (r, t) a P.
Las coordenadas cartesianas estan relacionadas con las cilíndricas mediante las
fórmulas
x = r cos t
y = r sint
z = z
¯
¯
¯
¯
¯
¯
x
2
+ y
2
= r
2
tant =
y
x
z = z
Este tipo de coordenadas está especialmente indicado cuando hay trayectorias que
tienen al eje z como eje de simetría.
Ejercicio 36 Dibujar la curva dada por
x = 2 cos t
y = 2 sint
z = t
, 0 ≤ t ≤ 2π
Ejercicio 37 Dibujar la curva intersección del cilindro x
2
+ y
2
= 9 y el plano x = z.
Ejercicio 38 Dibujar la curva intersección del paraboloide x
2
= z y el plano x = y.
Coordenadas esféricas
En un sistema de coordenadas esféricas un punto P del espacio se representa por un
trio ordenado (R, t, u)
2
, donde
R es la distancia de P hasta el origen, R ≥ 0
t es el mismo ángulo que se usa en coordenadas cilíndricas, 0 ≤ t ≤ 2π, y
u es el ángulo entre el eje z positivo y el segmento OP, 0 ≤ u ≤ π.
Las coordenadas cartesianas estan relacionadas con las cilíndricas mediante las
fórmulas
x = Rsinucos t
y = Rsinusint
z = Rcos u
¯
¯
¯
¯
¯
¯
x
2
+ y
2
+z
2
= R
2
tant =
y
x
u = arccos
z
R
Este tipo de coordenadas es especialmente útil para dibujos con un centro de
simetría.
2
En general, las coordenadas esféricas se conocen por (ρ, θ, φ). Utilizamos la otra notación por
comodidad de escritura.
47
5.3 Dibujo de superficies, parametrización de superficies
Una superficie necesita dos parámetros para poder dibujarla, el Mathematica dibuja de
forma inmediata superficies que son funciones de dos variables, z = f(x, y)
Plot3D[x+y, {x,-1,1},{y,-1,1}];
Pero si las superficies no son planos, su dibujo es mejor si se utilizan las coordenadas
adecuadas.
Ejercicio 39 Dibujar las siguientes superficies:
x = y (plano)
x
2
+ y
2
= 9 (cilindro de radio 3).
x
2
+ y
2
= 4z (paraboloide).
x
2
+ y
2
= z
2
(cono).
x
2
+ y
2
−z
2
= 1 (hiperboloide)
x
2
+ y
2
+z
2
= 1 (esfera)
Ejercicio 40 Dibujar las siguientes superficies dadas en coordenadas paramétricas e
identificalas:
r = 3
r = 2

z
r = z
r
2
= z
2
+ 1
R = 1
t =
π
4
u =
π
4
x = (2 + cos u) cos v, y = (2 + cos u) sinv, z = sinu, 0 ≤ u ≤ 2π, 0 ≤ v ≤ 2π
(toro).
Ejercicio 41 Encontrar, en su caso, las ecuaciones de las superficies anteriores en
coordenadas cartesianas.
5.4 Cálculo Diferencial
Vamos a introducir ahora algunos comandos de los que dispone Mathematica para
abordar, y en muchos casos resolver con éxito, gran variedad de problemas que surgen
en el Cálculo Diferencial en una y en varias variables. Desde luego, no se trata aquí de
estudiar a fondo esta disciplina matemática, sino más bien de ilustrar las técnicas que
el programa pone a disposición del usuario para reducir considerablemente los cálculos
y, lo que es más importante, para entender qué es lo que se está haciendo
48
5.4.1 Derivación explícita e implícita
El programa ofrece varios comandos para el cálculo de derivadas tanto de funciones de
una variable como de varias variables. En este apartado los repasaremos brevemente y
veremos cómo se pueden aplicar a gran número de problemas que aparecen en Cálculo.
El comando
D[f, x ]
calcula la derivada parcial

∂x
f;
D[f, x , y, ...]
calcula la derivada múltiple

∂x

∂y
. . . f;
D[f, {x , n}]
proporciona la derivada n-ésima

n
∂x
n
f, mientras que
D[f, x , NonConstants →{u, v, ...}]
calcula la derivada parcial de f respecto a x considerando u, v, . . . también como
funciones de x. Obviamente, estos comandos también sirven si la función f depende
sólo de x:
Si y depende de x, se puede usar la forma funcional explícita y[x] para efectuar la
derivación:
Así es posible, por ejemplo, derivar implícitamente. Los siguientes comandos pro-
porcionan otras formas de calcular derivadas: f’[x] obtiene la derivada primera de
una función de una variable; f’’[x] da la derivada segunda de una función de una
variable, y así sucesivamente. El objeto f’ en Mathematica es el resultado de aplicar
el funcional de diferenciación a la función f. La forma completa de f’ es, de hecho,
Derivative[1][f]
de manera que Derivative[1] puede ser considerado como el operador de diferen-
ciación, esto es, como el operador que al actuar sobre una función f proporciona su
función derivada. El comando para obtener la diferencial total de una función f es
Dt[f]
mientras que
Dt[f, x ]
da la derivada total
df
dx
;
49
Dt[f, x , y, ...]
da la derivada total múltiple
d
dx
d
dy
· · · f, y
Dt[f, x , Constants →{c, d,...}]
proporciona la derivada total con c, d, constantes. Podemos hacer una definición
explícita para
dy
dx
con el comando
Dt[y, x ] = algo
pudiendo anular la definición para la derivada con Clear[y].
A veces ocurre que una función y(x) viene dada implícitamente por una cierta
ecuación e interesa calcular su derivada. Los comandos anteriores resuelven este prob-
lema. Así,
Dt[ecuaci´ on, x ]
efectúa la derivada de la ecuación con respecto a x, obteniéndose una expresión de
donde se podrá despejar la derivada.
Dada una aplicación f : R
n
−→ R
m
, a veces interesará calcular su matriz jaco-
biana y su determinante jacobiano. La función que Mathematica incorpora para esta
eventualidad es Outer.
Para concluir este apartado diremos que el paquete
Calculus‘VectorAnalysis.m
dispone de funciones específicas para el cálculo del gradiente, la divergencia, el rota-
cional y el laplaciano de un campo vectorial f. Los comandos respectivos son: Grad[f],
Div[f], Curl[f] y Laplacian[f].
5.4.2 Problemas
Vamos ahora a resolver algunos problemas típicos:
Ejercicio 42 Calcular y
0
(x) sabiendo que cos(x + siny) = siny.
Ejercicio 43 La trayectoria de un móvil en dos dimensiones viene descrita por las
ecuaciones
x(t) = t cos t
y (t) = t sint
1. Dibujar la trayectoria desde t = 0 hasta t = 2π y la recta tangente en los puntos
t = 1.7 y t = π.
50
2. Determinar los puntos de corte de estas rectas tangente y los ejes coordenados.
Ejercicio 44 Una fuente de alimentación suministra un voltaje periódico en el tiempo
de modo que en [−π, π] vale V (t) = e
−t
2
. Aproximar esta función en torno a los
puntos 0 y
π
2
mediante un polinomio de Taylor de grado cuatro. Dibujar la función y
el polinomio en dicho intervalo.
Ejercicio 45 Calcular las derivadas parciales de la función
f(x, y) =
x
3
y −xy
3
x
2
+ y
2
f(x, y) =

xy
2
x
2
+ y
4
si (x, y) 6= (0, 0)
0 si (x, y) = (0, 0)
Ejercicio 46 Dada la función
f (x, y) =

xy
¡
x
2
−y
2
¢
x
2
+ y
2
, (x, y) 6= (0, 0)
0, (x, y) = (0, 0)
1. Estudia su continuidad en todo su dominio.
2. Calcula sus derivadas parciales en todo el dominio.
3. ¿Es diferenciable? ¿Se cumple el teorema de Young?
4. Estudiar la continuidad de las derivadas parciales calculadas en el problema an-
terior. Dibuja las gráficas de las funciones dadas.
Ejercicio 47 Aplicar el teorema de los incrementos finitos para ver cuales de las fun-
ciones anteriores del problema 45 son diferenciables en el punto (0, 0) .
Ejercicio 48 Calcular la derivada direccional de la función
f(x, y, z) =
1
p
x
2
+ y
2
+ z
2
en el punto (2, 1, 1) según el vector (1, 1, 0).
5.4.3 Máximos y mínimos de funciones
Vamos ahora a resolver algunos problemas típicos de cálculo de máximos y mínimos de
funciones de una y dos variables, así como su interpretación geométrica:
Ejercicio 49 Dibujar la curva 2x
2
−2xy +y
2
+x+2y +1 = 0. Calcula la ecuación de
sus tangentes en los puntos de abcisa x = −1/2. Dibujar la curva y las dos tangentes.
51
Ejercicio 50 Dibujar las curvas siguientes y estudia en que puntos la función no tiene
derivada. Demuéstralo.
r = 2 cos 3t (rosa de tres pétalos)
r
2
= 4 sin2t (lemniscata).
r = 2 ± 3 sint (caracoles).
Ejercicio 51 Dibujar las curvas siguientes:
Curva intersección del cilindro x
2
+y
2
= 9 y el plano x = z.
Curva intersección del paraboloide x
2
= z y el plano x = y.
Suponiendo que estas curvas son las seguidas por un móvil, ¿cúal es la velocidad de
dicho móvil en cada uno de los puntos?. ¿Y su aceleración?
Ejercicio 52 Dibujar la función f(x, y) = x
2
+ y
2
, calcula y clasifica sus puntos ex-
tremos.
Ejercicio 53 Hallar los puntos extremos de las funciones siguientes y determinar
cuales son máximos, mínimos y puntos silla locales.
f (x, y) = x
2
−y
2
−xy ,
f (x, y) = x
2
+ y
2
−xy,
f (x, y) = e
1+x
2
−y
2
,
f (x, y) =
¡
x
2
+ 3y
2
¢
e
1−x
2
−y
2
.
Dibujar las gráficas correspondientes.
Ejercicio 54 Usar el método de los multiplicadores de Lagrange para hallar los valores
máximo y mínimo absoluto de f (x, y) = x
2
+ y
2
− x −y + 1 en el disco unidad. Haz
una representación gráfica.
Ejercicio 55 Hallar y clasifica los puntos extremos no degenerados de la función
f(x, y) = −120x
3
−30x
4
+ 18x
5
+ 5x
6
+ 30xy
2
Dibujarla.
Ejercicio 56 Hallar y clasificar los puntos extremos de la función f(x, y, z) = x
2
+
xy + y
2
+ z
2
.
Ejercicio 57 La energia interna de un cierto sistema viene dada en función de la
presión x y el volumen y por
U (x, y) = 1 −e
−(x−1)
2
−(y−2)
2
1. Dibujar la gráfica de la función U y los conjuntos de nivel para presión y volumen
entre 0 y 3.
2. Obtener los máximos y mínimos de U.
3. Calcular el polinomio de Taylor de grado 2 de U en uno de los mínimos obtenidos.
Calcular el error cometido al aproximar la función por este polinomio de Taylor.
52
Ejercicio 58 Dada la función f (x, y) = y sin(πx).
1. Dibujarla.
2. Determinar sus puntos críticos.
3. Calcular las aproximaciones de Taylor de primer y segundo grado en el punto
(0, 0) .
4. Determinar sus puntos críticos restringidos al plano z = 1.
Ejercicio 59 Dada la ecuación z
4
+x
2
z
3
+ y
2
+ xy = 2.
1. Demostrar que define a z como una función de x e y en un entorno del punto
(1, 1, −1) .
2. Calcular el plano tangente a esta superficie en un entorno del punto (1, 1, −1) .
3. Calcular la aproximación de segundo grado en dicho punto.
53

Índice
1 Introducción a Mathematica 1.1 Convenios sobre notación . . . . . . . 1.1.1 Funciones incorporadas. . . . . 1.1.2 Funciones no incorporadas . . . 1.1.3 Sumatorios . . . . . . . . . . . 1.2 Aproximaciones numéricas . . . . . . . 1.3 Posibilidades simbólicas y algebraicas 1.3.1 Problemas. . . . . . . . . . . . 1.4 Asignaciones . . . . . . . . . . . . . . 1.4.1 Problemas . . . . . . . . . . . . 1.5 Iteradores . . . . . . . . . . . . . . . . 1.6 Gráficos . . . . . . . . . . . . . . . . . 4 4 5 6 7 7 8 9 10 11 11 12 13 13 13 15 16 17 19 20 23 24 25 26 27 28 28 29 30

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

2 Álgebra lineal 2.1 Resolviendo problemas con el Mathematica . . . . . . . . . . . . . 2.1.1 Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.2 Sistemas de ecuaciones lineales . . . . . . . . . . . . . . . . . 2.1.3 Valores y vectores propios . . . . . . . . . . . . . . . . . . . . 2.2 Problemas de Álgebra Lineal . . . . . . . . . . . . . . . . . . . . . . 2.3 Introducción a los Métodos Numéricos. Métodos del Álgebra Lineal 2.3.1 Eliminación Gaussiana y sustitución hacia atrás . . . . . . . 2.3.2 Descomposición QR y descomposición de Shur . . . . . . . . 3 Resolución numérica de ecuaciones no lineales 3.1 Método de la bisección . . . . . . . . . . . . . . . . . . 3.2 Método de Newton . . . . . . . . . . . . . . . . . . . . 3.2.1 Análisis del error . . . . . . . . . . . . . . . . . 3.3 Resolución de ecuaciones no lineales con Mathematica 3.3.1 Método de la bisección . . . . . . . . . . . . . . 3.3.2 Método de Newton . . . . . . . . . . . . . . . . 3.3.3 Métodos Numéricos de Mathematica . . . . . . 2

. . . . . . . .

. . . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

4 Interpolación y aproximación de funciones 4.1 Interpolación polinómica de Newton . . . . 4.1.1 El efecto Runge . . . . . . . . . . . . 4.1.2 Polinomio interpolador de Newton . 4.1.3 Interpolación a trozos . . . . . . . . 4.2 Interpolación con un splin cúbico . . . . . . 4.3 Ajuste de datos por mínimos cuadrados . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

32 32 33 33 35 36 38 42 42 42 44 45 45 46 48 48 49 50 51

5 Estudio de funciones reales 5.1 Gráficas en Dos y Tres Dimensiones . . . . . . . . . . 5.1.1 Gráficas en el plano. . . . . . . . . . . . . . . . 5.1.2 Gráficas Tridimensionales . . . . . . . . . . . . 5.2 Curvas en el plano y en el espacio . . . . . . . . . . . . 5.2.1 Curvas en el plano, ecuaciones paramétricas . . 5.2.2 Curvas en el espacio, ecuaciones paramétricas. 5.3 Dibujo de superficies, parametrización de superficies . 5.4 Cálculo Diferencial . . . . . . . . . . . . . . . . . . . . 5.4.1 Derivación explícita e implícita . . . . . . . . . 5.4.2 Problemas . . . . . . . . . . . . . . . . . . . . . 5.4.3 Máximos y mínimos de funciones . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

3

Capítulo 1

Introducción a Mathematica
Los ingenieros realizan una gran cantidad de cálculos y manipulaciones matemáticas a mano. La mayoría de estos cálculos es posible realizarlos mediante un programa de ordenador como Mathematica. Mathematica, por tanto, trabaja sobre problemas que no es práctico realizar a mano. Mathematica es una herramienta útil para hacer manipulaciones simbólicas y numéricas, así como para trabajar con gráficos. Mathematica es un lenguaje interpretado, es decir, lee expresiones, evalúa el resultado y luego lo muestra en pantalla. Al ser interactivo, es más fácil 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 más generales de las ingenierías. Además, Mathematica es programable; cualquier función no disponible la puede escribir uno mismo.

1.1

Convenios sobre notación

Para introducirnos en el lenguaje de Mathematica, en cada práctica veremos algunos ejemplos que muestran las posibilidades de este programa. Cada ejemplo consiste en un input del usuario encabezado con In[n] , n-ésimo input, y una respuesta de Mathematica encabezada con Out[n] , n-ésimo output, cuando proceda. Para comenzar con Mathematica es conveniente probar con los ejemplos propuestos. Las expresiones escritas en letra mecanografiada corresponden al input y al output. Las correspondientes al input se deben escribir tal y como aparecen en los ejemplos; las correspondientes al output no se tienen que escribir: las escribe Mathematica. Las palabras y símbolos escritos en tipo máquina se deben reemplazar por expresiones introducidas por el usuario. 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 corresponde al output, y no se debe escribir en pantalla. 2 + 2 Out[] = 4 4

Hay que poner atención en la diferencia entre mayúsculas y minúsculas, el tipo de paréntesis o llaves, la cantidad de espacios y la puntuación (comas, puntos y comas). Mathematica diferencia entre mayúsculas y minúsculas, y por tanto Sin[x] es distinto de sin[x]. Los nombres de todas las funciones incorporadas empiezan con mayúscula. Cada tipo de paréntesis 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 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. Mathematica es un programa interactivo. Basta introducir una expresión, como por ejemplo una operación matemática, para que nos devuelva el resultado. Cuando Mathematica espera la introducción de una expresión, aparece un indicador de la forma In[n]:= . Al introducir la expresión, Mathematica la procesa, y, si corresponde, muestra el resultado. Mathematica proporciona varios mecanismos para obtener ayuda e información sobre las más de 800 funciones incorporadas, así como de las introducidas por el usuario. Esto da información acerca de la función incorporada Sin. ?Sin Out [] = Sin[z] gives the sine of z. Así, podemos calcular el seno de π/4 Sin[Pi/4] Mediante ?? obtenemos información adicional. Mathematica tiene incorporados la mayoría de los símbolos matemáticos con los que se trabaja habitualmente. Entre ellos están las operaciones básicas: suma (+), diferencia (-), producto (*), división (/) y potencia (^). El texto entre (* y *) no se evalúa. Estos paréntesis se utilizan para hacer comentarios. v = {7, 3, -1} (* Aquí v es un vector *)

1.1.1

Funciones incorporadas.

El Kernel de Mathematica reconoce más de 1100 funciones. Estas funciones se llaman funciones incorporadas. Los nombres de las funciones incorporadas consisten en palabras inglesas completas o abreviaciones matemáticas estándar, de forma que la primera letra de cada palabra se escribe con mayúscula. Por ejemplo, una de las funciones que aparecen cuando pedimos a Mathematica los nombres de las funciones que empiezan por Si es SingularValues. Las funciones propiamente dichas son el equivalente a las funciones que empleamos 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 5

factorial[x_ ]:= x factorial[x . argumentos de los requeridos Mathematica devuelve un mensaje de error y como output la expresión sin evaluar. Una función puede tener más de un argumento. f[x_]=x^2 f[2] Out [] =4 El carácter _ (referido como blanco) en la parte de la izquierda es muy importante. Mathematica es programable y. de forma que cuando queremos calcular sin(π/2) escribimos Sin[Pi/2]. podemos añadir funciones a Mathematica. No hay que poner un blanco en la parte de la derecha de la definición. Un ejemplo muy sencillo es definir una función que eleve al cuadrado su argumento. cuando definimos la función factorial factorial[0] = 1. o menos. g[2.2 Funciones no incorporadas Como se ha indicado en la introducción.1] factorial[4] Out [] =24 En este caso el signo igual (=) debe ir precedido por dos puntos (:).1. Evidentemente. por tanto. 6 . Aquí definimos la función g(x. Aquí calculamos la derivada de x2 : D[x^2. Sin[2. Cuando una función requiere más de un argumento. estos van separados por comas.x] Si una función es invocada con más. 3] 1. 3] Out [] =6 En algunas ocasiones necesitamos una definición aplazada.y_]= x y. y) = xy: g[x_. no todas las funciones requieren un único argumento. El concepto análogo al concepto matemático de variable en la terminología de Mathematica es el término argumento.que se representa por Sin. Por ejemplo.

2}] Out [] =25 1. {i. N[Sqrt[2]] Out [] =1. hacemos Sum[i. para obtener una aproximación utilizaremos el comando N. n. 10}] Out [] =55 En cambio. esta situación no es posible o. min.1. Mathematica utiliza el comando N para dar una aproximación de un resultado numérico con la precisión deseada. a menudo. 1. utilizar el comando anterior para calcular varias precisiones. vmin. En nuestro caso utilizaremos tres o cuatro elementos para un iterador. 1.3 Sumatorios i=n m P El sumatorio f (i) en Mathematica se expresa como Sum[f[i].2 Aproximaciones numéricas Mathematica trabaja con aritmética exacta pero.20] Out [] =1. incrementando var en 1 en cada iteración. y π con . max.1.41421 Por defecto Mathematica trabaja con números de seis cifras. {i. 7 √ 2. {i. e. hacemos Sum[i. al menos. para hacer la suma de los diez primeros números naturales. Por ejemplo. 10. Como veremos más adelante muchos problemas se han de resolver de forma aproximda.4142135623730950488 Problema 1 Como ejemplo. paso}] La función Sum tiene dos argumentos: la expresión sobre la que se efectúa la suma y un iterador. Los iteradores de la forma var. Podemos cambiar el número de dígitos con los que Mathematica nos presenta la aproximación: N[Sqrt[2]. m}] En su forma más general la función Sum tiene la siguiente sintaxis: Sum[expr. para hacer la suma de los 10 primeros números naturales impares. no es operativa. Un iterador es una lista como mínimo de un elemento y como máximo cuatro. vmax ejecutan una función para var = vmin hasta var = vmax . para calcular la raíz cuadrada de 2 introducimos Sqrt[2] √ Out [] = 2 En esta situación. Por ejemplo. {i.

. Estas reglas también las siguen las funciones y constantes predefinidas en Mathematica como por ejemplo Sin[x] Tan[0] Log[2] E Pi I Sqrt[8] .1. • Los argumentos van siempre entre corchetes [ ]... La función Apart transforma un resultado en fracciones simples: x/((x+2)(x-2)) Apart[%] 1 1 + Out [] = 2 (x − 2) 2 (x + 2) La función Together combina dos o más fracciones con común denominador y simplifica los factores comunes: Together[%] x Out [] = (x − 2) (x + 2) El comando D calcula la derivada de una función respecto de una variable: Cos[E^x]. D[%] Out [] =−ex sin ex 8 . Esto no es necesario cuando escribimos el producto de un número por una variable. Antes de ver algunos ejemplos comentaremos la sintaxis de los comandos que permiten esta manipulación. Mathematica puede manipular expresiones algebraicas.3 Posibilidades simbólicas y algebraicas Además de trabajar con expresiones numéricas. • La primera letra siempre se escribe en mayúscula. • Si el comando admite más de un argumento. éstos van separados por comas. Veremos algunos comandos que sirven para operar con expresiones algebraicas: Expand[(a+b)^2] Out [] =a2 + b2 + 2ab Factor[x^2-y^2] Out [] =(x − y) (x + y) Cuando escribamos el producto de dos variables x e y se ha dejar un espacio en blanco entre las dos o poner un ∗. ..

b a − a−b a+b Problema 2 Calcular y simplificar Problema 3 Factorizar los polinomios x2 − 4x − 5 x3 + x2 + x + 1 3x2 − 6x + 1 Problema 4 Descomponer en fracciones simples 1 n (n + 1) n2 + 1 n4 + n2 + 1 Problema 5 Calcular las derivadas primera y segunda de la función xx . Por ejemplo. Para este tipo de ecuaciones utilizaremos el comando NSolve para obtener una aproximación de las soluciones: NSolve[xˆ5 − xˆ2 + 1 == 0. Limit[1/x.Hay que prestar atención al escribir esta función porque tanto el coseno como el número e son funciones predefinidas en Mathematica y han de seguir las reglas de sintaxis descritas anteriormente. Este comando admite argumentos opcionales que nos permiten calcular derivadas segundas. x− > 0] Out [] =∞ Para resolver ecuaciones Mathematica tiene el comando Solve: Solve[xˆ2 − 1 == 0. x − yˆ2 == 0}.3. x] 1. x] Out [] ={x → 1}{x → −1} Un sistema de ecuaciones se expresa mediante una lista de ecuaciones y una lista de variables: Solve[{xˆ2 + y == 0. terceras. {x.{x.2}] Out [] =2ex + 4xex + x2 ex Para calcular límites tenemos el comando Limit. : D[x^2 E^x.1 Problemas. 9 . y}] El comando Solve no puede resolver de forma exacta ecuaciones polinómicas de grado igual o mayor que cinco.

4 Asignaciones Supongamos que queremos evaluar la expresión exp= (a ∗ b−a^b)/(a∗b − 1) en a = 3. a[n Integer] o a[n Real] 10 . ¿Qué ha ocurrido? Como hemos visto en los ejemplos anteriores. (sin espacios entre / y . . definición . al definir la sucesión a[n_]:= (−1) ˆn n+1 hay que tener en cuenta que el subrayado indica que n es la variable. Por ejemplo.): exp /. x2 + y 2 ¶ µ 1 n Problema 7 Calcular el límite de la sucesión 1 + n Problema 8 Resolver el sistema lineal   x + 2y − 3z = −1 3x − y + 2z = 7  5x + 3y − 4z = 2 1. Para ello no necesitamos definirla como una función.Problema 6 Calcular la derivada primera de xy 2 − x3 respecto de x y de y. pero para evitar problemas es recomendable abstenerse de usar letras mayúsculas en el nombre. El usuario puede definir sus propias funciones. variablen_]:= donde nombre-función es el nombre que asignamos a esa función. Entre corchetes y separadas por comas escribiremos la variable o variables de las que dependerá nuestra función. cuya sintaxis es de la forma: nombre-función[variable1_. por ejemplo. simplemente aplicaremos una regla o lista de reglas. al evaluar la función substituyendo las variables por los valores deseados ya no debemos escribir el subrayado.{a->3. restringiendo si es conveniente su dominio. En la definición de la función se ha de escribir obligatoriamente detrás de cada variable el subrayado para indicarle al Kernel que efectivamente es una variable. las constantes. La forma de definirlas consiste en utilizar lo que se denomina una assignación. con el comando /. variable2_ . b = 1. Puede constar de una sola letra o de diversas letras. las funciones y los comandos que Mathematica lleva incorporados tienen su primera letra en mayúscula.. No obstante.. A continuación podemos escribir el tipo de variable.b->-2} Evaluarla en a = 1. b = −2.

utilizaremos el comando Clear. Mathematica imprime en la pantalla (Print) los 10 primeros números primos (Prime). 1. argumento] ejecuta el argumento desde inicio hasta que falla el test.i=i+2. 1. Utilizando la ayuda de Mathematica y el comando N calcular con varias precisiones √ √ el valor de 3 2 i 5 π. 1.i≤5. Si ahora queremos cancelar una asignación. veamos un ejemplo For[i=1. {n.4. 1. con el incremento que se pida. i++ equivale a incrementar el paso en uno. n ∈ N. El iterador Table es muy usado para construir tablas 11 . 10} expresa que la variable n toma los valores del 1 al 10 incrementándose en cada paso una unidad. test. Recordemos que si queremos que el resultado aparezca en forma decimal hemos de usar el comando N. Se puede añadir otro argumento si queremos cambiar el incremento. Como ejemplo vamos a ejecutar Do[Print[Prime[n]].Para evaluar la función en n = 5 escribiremos In[] :=a[5] Calcular a10 y a100 con 4 cifras decimales. Otro iterador muy usado es For.Print[i]] 1 3 5 For[inicio. incremento. Uno de los más habituales es el comando Do. 10}] Out [] = 2 3 5 7 11 13 17 19 23 29 Como puede apreciarse. x] := n x. La lista {n.5 Iteradores Los iteradores son comandos que nos permiten realizar de forma sencilla procesos que se repiten un número determinado de veces.1 Problemas √ Problema 9 Definir raiz[n.

Dedicaremos una práctica a explorar algunas de las posibilidades que Mathematica ofrece a la hora de hacer gráficas. {i. 2. b10000 : Problema 11 Muestra el valor de males. n2 n = 1. min. Por medio de Mathematica podemos dibujar funciones y datos en dos o tres dimensiones. producir gráficos de nivel y de densidad. While. Estaremos interesados sobre todo en la ayuda que puede prestar la interpretación gráfica en el cálculo de los puntos extremos de funciones. además de dibujar objetos y figuras arbitrarias. paso}] Otros iteradores.6 Gráficos Las posibilidades gráficas de Mathematica han sido una de las causas de su éxito. √ 2 con una precisión desde 1 hasta 10 cifras deci- 1. y calcular 1. max. bn desde n = 10 hasta n = 20 : 2. . b1000 . bn desde n = 10 hasta n = 100 pero con n múltiplo de 10 : 3. 12 . en particular de funciones de dos variables. . b100 .Table[expr. . b10 . Problema 10 Definir bn := 1 . Trabajaremos sobre todo con la representación paramétrica de curvas y superfícies. la sintaxis y el funcionamiento de los cuales los podemos encontrar con los comandos de ayuda de Mathematica.

se estará en condiciones de resolver la mayoría de los problemas elementales que se pueden plantear en un primer curso de álgebra lineal: dependencia e independencia lineal. cambios de base en espacios vectoriales. {n}] genera una matriz cero. por ejemplo. Por ejemplo. estudio de aplicaciones lineales con determinación de los subespacios núcleo e imagen. 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. Table[0. 2. Así. como listas de listas. {c.b}. resolución de sistemas de ecuaciones lineales. IdentityMatrix[n] genera la matriz identidad n × n. Con lo que aquí se exponga. {m}.d}} representa la matriz 2 × 2 cuyas filas corresponden a cada una de las filas de la matriz: (a. etc. La idea será ofrecer una lista de los comandos necesarios y mostrar ejemplos que ilustren su utilización. y las matrices. la lista de listas {{a. d).1.Capítulo 2 Álgebra lineal 2. b) y (c.1 Matrices En Mathematica los vectores se representan mediante listas. diagonalización. El comando MatrixForm[matriz] 13 .1 Resolviendo problemas con el Mathematica En esta sección repasaremos algunas de las posibilidades que ofrece Mathematica para resolver problemas de álgebra lineal.

m[[i]] o Part[m. m1. siempre que ambos tengan la misma longitud. Mathematica dispone de algunas órdenes para hacer referencia a los elementos de la matriz: m[[i. De hecho.m2 De igual modo. Det[m]. el programa proporciona la inversa exacta.m1. j]] proporciona el elemento i. Cálculo del determinante de una matriz cuadrada . Esto ocurre. producto por escalar) siempre que las dimensiones sean las correctas. Ahora bien.v. Por otra parte. 14 .v.m1. si en la matriz de entrada algunos elementos son números reales aproximados. pues aunque se representan de igual forma. producto. El comando Inverse[m] calcula la inversa de la matriz cuadrada m. Obsérvese que Mathematica supone implícitamente que el determinante es no nulo. i] da la fila i-ésima de m. como en cualquier otro cálculo numérico. La mayoría de las funciones matemáticas en Mathematica se pueden aplicar por separado a cada elemento de una lista.imprime la matriz en forma de tablero bidimensional. Como ya se ha dicho. k] para calcular la potencia k-ésima de m. si v denota un cierto vector. Cuando se le da una matriz cuyos elementos son números exactos o símbolos. c m1.v debiendo tener cuidado con estas dos últimas operaciones. de manera que dichas funciones se pueden aplicar sobre cada elemento de una matriz o un vector: La suma de dos vectores se lleva a cabo elemento a elemento. Así. representando cada una de sus filas. Mathematica admite las operaciones del álgebra matricial (suma. en particular. Para que se tenga una matriz válida. Otros comandos que se utilizan habitualmente al trabajar con matrices son: Transpose[m] para calcular la traspuesta de la matriz m. proporcionan resultados muy diferentes. una matriz es una lista de vectores. si m1 y m2 son dos matrices dadas y c es un escalar. todas las filas han de tener la misma longitud. j de la matriz m. MatrixPower[m. Mathematica obtiene un resultado numérico aproximado. tiene sentido escribir m1+m2. Al multiplicar la inversa por la matriz original debería dar la matriz identidad. Operaciones con matrices y vectores. tienen sentido las operaciones v. se puede controlar el número de cifras significativas a manejar. haciendo así más clara su estructura. de manera que los elementos de la matriz formen efectivamente un tablero rectangular. en ese caso. para todas las funciones que tienen el atributo Listable.

4x + 6y − z = 0  8x + 12y − 3z = 0 15 . RowReduce[m] transforma la matriz m en otra de filas reducidas. Este esquema también es útil a la hora de diseñar algoritmos. tal como se hace normalmente en Matemáticas. procederemos directamente con los comandos involucrados y analizaremos en detalle algunos ejemplos. sobre todo si el número de ecuaciones y de incógnitas es elevado. NullSpace[m] da un conjunto de vectores cuyas combinaciones lineales satisfacen la ecuación matricial m · x = 0. Un sistema de ecuaciones lineales se puede escribir en forma matricial como m · x = b. cuando no se sabe con antelación cuántas variables hay en el problema. estamos en disposición de analizar (y resolver en su caso) cualquier sistema de ecuaciones lineales. Ejercicio 1 Discutir y resolver en su caso los siguientes sistemas:  2x + 3y − z = 0  1. sin embargo. el rango de la matriz con el número de filas no nulas de esta matriz.b] da un vector x que resuelve la ecuación matricial m · x = b. mediante combinaciones lineales de las filas. esto es. Se puede obtener también el número de ecuaciones redundantes correspondientes a una matriz particular calculando Length[NullSpace[m]] Con los comandos anteriores y el teorema de Rouché-Frobenius. En muchos casos. puede ser conveniente escribir todas y cada una de las ecuaciones explícitamente. Como el estudiante ya está familiarizado con la teoría general de los sistemas de ecuaciones lineales. En primer lugar. y después resolverlas usando el comando Solve.1. proporciona una base del subespacio núcleo de la matriz m. m es la matriz de coeficientes y b es la matriz de los términos independientes.2. y aplicar después operaciones matriciales para resolverlo. Las funciones incorporadas que Mathematica ofrece para resolver este tipo de sistemas de ecuaciones son los siguientes: LinearSolve[m. varias son las alternativas que Mathematica ofrece. donde x es el vector de variables. por tanto. puede resultar más adecuado convertir el sistema en una ecuación matricial.2 Sistemas de ecuaciones lineales Para resolver un sistema de ecuaciones lineales dado. coincidiendo.

resolver una ecuación polinomial de grado n. en general. Eigensystems[m] calcula al mismo tiempo los valores y los vectores propios y proporciona una lista de valores propios y de vectores propios asociados.3   x1 + 3x2 + x3 − x4 = 6 2x1 + 7x2 + 3x3 − 4x4 = 15 6. los valores propios de una matriz m son los números λi para los cuales existen vectores xi no nulos. Si n ≥ 5 no es posible obtener. en principio.2.1. 2. El cálculo de los valores propios de una matriz n × n supone. Mathematica dispone de los siguientes comandos para abordar este problema: Eigenvalues[m] proporciona una lista de los valores propios de la matriz m.  x1 + x2 + 2x3 + x4 = 1   ax − 2y + z = 1 5. x + ay + z = a  x+z =1   4x + 2y + z = ax 2x + 4y + 2z = ay 4.  y − z − 2t = 1  x − z − t = −2  x + y − 3t = −1  x + 4y + z = b  3x − y + 2z = 1  2x − 5y + az = −2 3. tales que m · xi = λi xi . Por otra parte.  2x + 4y + 8z = az Valores y vectores propios Como es bien sabido. de manera que es imposible dar resultados algebraicos explícitos para los valores y vectores propios de una matriz genérica. Eigenvectors[m] da una lista de los vectores propios de m (una base de cada subespacio propio). soluciones algebraicas explícitas de una tal ecuación. llamados vectores propios. Eigenvalues[N[m]] 16 .

La función que lleva a cabo esta descomposición es JordanDecomposition. Por tanto. cuando se da una matriz cuyos elementos son números reales aproximados.2 Problemas de Álgebra Lineal  10 −6 −9 B= 6 −5 −7  −10 9 12  calcula A + B. siempre será posible encontrar una matriz c tal que c−1 mc = j. entonces Eigenvectors añade vectores nulos a la lista hasta completarla con n vectores. A2 . El método más eficiente es usar LinearSolve. etc. Mathematica lo indica. si el número de tales vectores propios es menor que n. Como es bien sabido. ((A − B)B)T . Ejercicio 2 Estudia y resuelve el   x   x  2x   5x sistema + + + + 2y 3y 3y 6y + 3z = 6 + 8z = 19 + z = −1 + 4z = 5 17 . los valores y vectores propios de una matriz juegan un papel muy importante a la hora de analizar la diagonalizabilidad de dicha matriz. (AB)−1 . B − 4A. pudiendo estar alguno de ellos repetidos. det(B 3 ) y las raíces del polinomio característico de A. la cual proporciona una lista con las matrices c y j. 5 2 1 x + 5y = a 2x + y = b dependiente de dos parámetros. Mathematica encuentra valores numéricos aproximados para valores y vectores propios. donde j es la llamada forma canónica de Jordan (que en el caso de ser m diagonalizable no es más que una matriz diagonal tal que los elementos de su diagonal principal son los valores propios de m). Problema 13 Resolver el sistema ½ Problema 12 Dadas las matrices   3 −4 5 A= 8 0 −3  . La función Eigenvalues da siempre una lista de n valores propios para una matriz n×n. mientras que Eigenvectors da una lista de vectores propios linealmente independientes. 2. En el caso general. dada una matriz m. Problema 14 Consideramos ahora el sistema ½ x + 2y = a x + 2y = b que es incompatible.proporciona una aproximación numérica a los valores propios.

3. −2. 2. Estudia su diagonalización en función de los valores de a. 2. 2. −2. 1). otra con (1. ¿Para qué valores de a la matriz es diagonalizable? 18  . −1. −4)  hallando los rangos de esas dos matrices y una base de su núcleo. −2). (2. 1. (2. así como sus valores propios. (1. 0. −1). Ejercicio 8 Dada la matriz  1 a 1 A =  −1 1 −a  1 0 a+1 1. 0 0 t−4  5 0   4  −1   (−2. Diagonalizar A (si es posible) cuando a = 4. 0).  t−2 4 3 Evaluar el determinante de: A =  1 t + 1 −2  . 1. 0) Ejercicio 5  2 0 0  1 −1 0   2 1 3 6 5 2 B =  2 −2 6 Ejercicio 7 Sea la matriz A =  0 a 4 − a  .Ejercicio 3 Estudia y resuelve. −7. 3. 0. 2. −2. ecuaciones   ax x  x según los valores de a. 2. Ejercicio 6 Hallar la inversa de: C =  2 4 −2 5   2 1 −1 1  D= 0 2 5 2 −3 1. 0. −1. 17. 0. 1. −1. −1. 2. (−1. hallando explícitamente la matriz de paso. el sistema formado por las + y + z = 1 + ay + z = a + y + az = a2 Ejercicio 4 Forma una matriz cuyas filas sean los vectores (−1. Calcular el polinomio característico de A. a ≥ 0 0 a −a  2 −3 −1 1 0 . −1. 2. (2. 2). 1).

 −1 3 0  . 2. Para dichos valores.. como ya hemos comentado.3 Introducción a los Métodos Numéricos. Métodos del Álgebra Lineal En esta sección repasaremos algunas de las posibilidades que ofrece Mathematica para resolver problemas numéricos de Álgebra Lineal. Obtener su inversa utilizando el teorema de Cayley-Hamilton.. Obtener p (A) donde p (x) = 3 + 2x − 5x2 . Para resolver el sistema de ecuaciones lineales: E1 : a11 x1 + a12 x2 + . . 19 . La ecuación Ei puede multiplicarse por una constante no nula λ y se puede usar la ecuación resultante en vez de Ei .. z) = (x + y + z.. La ecuación Ej puede multiplicarse por una constante no nula λ. 3x + y − z.. E2 : a21 x1 + a22 x2 + . Los métodos iterativos para el cálculo de valores y vectores propios son usados por Mathematica en los comandos Eigenvalues[N[m]]. 1. Esta operación se denota por (Ei + λEj ) → Ei . sumarla a la ecuación Ei y usar la ecuación resultante en vez de Ei . 2.. Esta operación se denota por (λEi ) → Ei .3. + a1n xn = b1.. B= 0 1 2  3 0 a 0 0 2 Ejercicio 10 Calcular los valores y vectores propios del endomorfismo f : R3 −→ R3 definido por f (x.  −2 3 0  . y. calcular la matriz de paso y la matriz diagonal. Ejercicio 9 Estudiar para qué valores de los parámetros reales a y b las matrices siguientes son diagonalizables:     5 0 0 a b 0 A =  0 −1 b  . en particular veremos la resolución numérica de sistemas de ecuaciones lineales. + a2n xn = b2. En : an1 x1 + an2 x2 + .. −2x + 2y + 3z) Ejercicio 11 Diagonaliza ortogonalmente las matrices        3 2 2 −1 2 2 3 −1 0 3 −2 0  2 2 0   2 −1 2  . + ann xn = bn. 2 0 4 2 2 −1 0 0 2 0 0 5 µ ¶ 3 −2 Ejercicio 12 Dada la matriz A = −1 2 1. 2.

.... es decir.   . las filas para conseguir ceros por debajo de la . .  a21 a22 . Al hacer este tipo de eliminación muchas veces se necesita cambiar el orden de las filas para conseguir los ceros. 2. E2 : ..... a1n a0 2n . El Mathematica ofrece paquetes que permiten realizar de forma numérica muchos cálculos algebráicos. Esto también es necesario porque cuando los cálculos se realizan usando aritmética de dígitos finitos pueden aparecer muchos errores debido al redondeo de las cifras... Por lo cual se han de tener en cuenta cuales son los elementos más adecuados para conseguir los ceros. y realizar operaciones elementales sobre diagonal. sólo sus coeficientes. que se carga mediante 20 .. Esta técnica se conoce como pivoteo máximo de columna o pivoteo parcial. sucesivamente.. a0 x2 + . Nosotros utilizaremos el paquete de eliminación gaussiana...  bn El sistema anterior lo podemos representar ampliada.. ..... Despejando xn en la última ecuación y sustituyendola en la ecuación En−1 se obtiene xn−1 .. En : a0 xn = b0 nn n. a0 nn ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯  b1 b0  2  ... y así. ann ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯  b1 b2   . Por esto un sistema lineal se reemplaza frecuentemente por una matriz.  a11 a12  a0 22   . se van obteniendo el resto de las incógnitas.  b0 n que equivale al siguiente sistema E1 : a11 x1 + a12 x2 + .. Por medio de estas operaciones se puede transformar un sistema lineal en otro más sencillo de resolver con el mismo conjunto de soluciones. + a0 xn = b0 22 2n 2. ...... Esta operación se denota por Ei ↔ Ej .1 Eliminación Gaussiana y sustitución hacia atrás como una matriz. Despejando en la ecuación anterior se obtiene xn−2 ... + a1n xn = b1. . los pivotes. que contiene toda la información del sistema.3. La ecuaciones Ej y Ei pueden intercambiarse. ...3. La estrategia más simple consiste en seleccionar el elemento en la misma columna que está abajo de la diagonal y que tiene el mayor valor absoluto. conocida como matriz a1n a2n ..  a11 a12 . Al realizar las operaciones anteriores las variables no cambian.. an1 an2 .... ..

0} 21 . -1}}].0.3. Por eso. U (factorización LU) se puede recurrir a LUFactor que produce esta factorización y da la información sobre que filas han de cambiarse para que se mantenga la estabilidad numérica en la computación. −22 }.c .2}. In[5]:= c=LUSolve[lu.9.7}. la matriz de los coeficientes es la misma pero cambian los términos independientes. El segundo paso de volver hacia atrás sustituyendo se puede hacer mediante LUSolve. Veamoslo mediante un ejemplo: Ejemplo 1 Resolver el sistema de ecuaciones: E1 : 5x1 + 3x2 = 6 E3 : −2x1 − 8x2 − x3 = 7 E2 : 7x1 + 9x2 + 2x3 = −3 utilizando la descomposición LU de la matriz de los coeficientes y la orden LUSolve In[1]:= <<LinearAlgebra‘GaussianElimination‘ In[2]:= MatrixForm[a = {{5. 3. como el primer paso se puede ver de forma abstracta como la factorización de la matriz de los coeficientes en el producto de una matriz triangular inferior.{2.b Out[6]:= {0. b] Out[5]:= { 75 . la función LinearSolve permite calcular la solución de un sistema de ecuaciones lineales. -8. 2}.{7. por una matriz triangular superior. pero no así la de la derecha. −81 } 44 44 22 In[6]:= a . Existen casos en que se quieren resolver varios sistemas de ecuaciones lineales donde coincide la parte de la izquierda del sistema. es decir. 12 .{-2.-3. −37 .{ −2 . En este caso también se puede usar LinearSolve pero mucho del trabajo es repetitivo. 0}. {7.1}] 7 19 19 7 7 7 In[4]:= b={6. L. −3 }}.   5 3 0 9 2  Out[2]:=  7 −2 −8 −1 In[3]:= lu = LUFactor[a] Out[3]:= LU[{{ 5 . Estas dos ordenes están el el paquete <<LinearAlgebra‘GaussianElimination‘. 9.<<LinearAlgebra‘GaussianElimination‘ Como hemos visto. −38 .

i+1]=2.n}] Veamoslo en un ejemplo Ejemplo 3 Construir una matriz (8 × 8) mediante Do. b1] In[3]:= a . El Mathematica permite construir matrices utilizando la función Do[p[i.{j.m}].2.1.i]=7.{j. Do[p[i. MatrixForm[a=Array[p.c . Veamoslo Ejemplo 2 Resolver el sistema de ecuaciones: E1 : 5x1 + 3x2 = 2 E3 : −2x1 − 8x2 − x3 = −2 utilizando los resultados del problema anterior. n=8.-3.{i.1.1.{i. Do[p[i. Do[p[i. In[1]:= b1={6.7}.i-1]=-4.m}. {m.{i.m}]. m=8.{i.m-1}].1. Estudiar para que valores del parámetro a tiene solución única.{i.Obsérvese que el resultado de Out[3] da la factorización LU de la matriz a y nos dice tambien como se han colocado las filas de dicha matriz para hacer la reducción gaussiana.1.b1 Ejercicio 13 Resolver el sistema de ecuaciones: x + 4y + z = 0 3x − y + 2z = 1 2x − 5y + az = −2 utilizando la descomposición LU de la matriz de los coeficientes y la orden LUSolve. In[2]:= c=LUSolve[lu. Do[p[i.n}].j].n}]] 22 E2 : 7x1 + 9x2 + 2x3 = −1 .m}. se  leería:    7 9 2 7 9 2 1 0 0  −2 1 0   0 − 38 − 3  =  −2 −8 −1  7 7 7 5 12 5 3 0 1 0 0 − 22 7 19 19 La ventaja de utilizar la reducción LU es que se puede utilizar el mismo sistema de ecuaciones cambiando los términos independientes cambiando solamente el vector b.j]=0. En términos matriciales.1.

Ejercicio 16 Repetirlo para un sistema de 100 ecuaciones y 100 incógnitas.. 3.. .. Mathematica la calcula usando SchurDecomposition[matriz] Problema 15 Dada la matriz  1 3 −1  0 −1 1  −1 0 −1  Encontrar su descomposición QR y de Schur.. ortogonal la primera y triangular superior la segunda. b = (2. 5. 3). 3).. Utilizando Do para construir estos vectores. 5.Ejercicio 14 Resuelve el sistema representado en la matriz anterior utilizando como matrices de los términos independientes los vectores b = (9.. ortonormal la primera y triangular la segunda.. 3... 2. 5. 5.3. 5. . tal que A = ST S T . 23 . 5). utilizando como matriz de coeficientes una matriz que sigua la recurencia de la matriz del ejemplo anterior y como vector de términos independientes el vector b = (9. 3.. de forma que A = QT R.. Ejercicio 15 Resolver un sistema lineal de 20 ecuaciones y 20 incognitas. 5. Mathematica la calcula usando QRDecomposition[matriz] La descomposición de Schur de una matriz A consiste en encontrar dos matrices S y T.2 Descomposición QR y descomposición de Shur La descomposición QR de una matriz A consiste en encontrar dos matrices Q y R. ... 5. 5.

1) sólo requiere el cálculo de una división. la solución de (3. por ejemplo. es decir. para determinar entonces en que punto de la elipse se encuentra un móvil en un tiempo dado hay que resolver la ecuación de Kepler: x − e sin x = z donde e es la excentricidad de la elipse y z es un número conocido que se calcula a partir del tiempo t. El método de resolución de un polinomio cúbico se debe a Tartaglia (1499-1557) y a del Ferro (1465-1526) y el de una ecuación polinómica de cuarto grado a Ferrari (15221565). La imposibilidad de encontrar una fórmula que resolviera una ecuación polinómica de grado mayor o igual que cinco mediante combinaciones de operaciones elementales fue demostrada por Galois. desde muy pronto. 24 . se vió la necesidad de utilizar técnicas numéricas para resolver las ecuaciones no lineales. El caso más sencillo de ecuaciones no lineales es cuando la función f es una función polinómica P (x) . al describir el movimiento de los planetas alrededor del sol o de los satélites alrededor de los planetas se obtienen órbitas elípticas.1) donde f es una función real de variable real. Estos resultados indican que. Si P (x) = ax2 + bx + c. la solución de (3. Las ecuaciones no lineales son más habituales de lo que pueda pensarse. Si P (x) = ax + b. cero o raíz de la ecuación. nos proponemos resolver ecuaciones de la forma f (x) = 0 (3.1) necesita extraer raíces cuadradas. Este tipo de ecuaciones reciben el nombre de ecuaciones no lineales y el valor α que satisface la igualdad f (α) = 0 se conoce como solución. Es decir. se han de encontrar los ceros de la función: f (x) = x − e sin x − z. Durante siglos se buscó la fórmula para resolver polinomios de quinto grado hasta que Abel demostró que no tenían solución.Capítulo 3 Resolución numérica de ecuaciones no lineales El objetivo de esta práctica es aprender a utilizar los comandos de Mathematica que permiten abordar el estudio de ecuaciones y sistemas no lineales.

mk = 0. Se parte del intervalo [a0 .Calcular la raíz de una ecuación con un ordenador utilizando técnicas numéricas tiene sus limitaciones. mk ] . 3. existe α ∈ (a. Si f (ak ) · f (mk ) < 0 ⇒ [ak+1 . En el caso de tener raíces muy próximas es conveniente determinar intervalos que contengan una única raíz. criterio de la diferencia absoluta. bk ] . |xn+1 − xn | < ε. bk ] . 25 . por lo que suele usarse inicialmente para determinar los intervalos donde aplicar los métodos iterativos más rápidos. En los algoritmos iterativos en los que se genera una sucesión de aproximaciones {xn }n∈N que queremos que converja a la solución. b) tal que f (α) = 0. Se calcula el punto medio del intervalo [ak . Para construir el algoritmo de iteracción se crea una sucesión de intervalos encajados de la siguiente forma: 1. después. 2. A menudo la raíz es un número real que no tiene una representación exacta en el ordenador. bk+1 ] = [ak . aunque siempre converge a ella. tendremos que conformarnos con una aproximación que verifique una condición impuesta en el algoritmo de la forma |f (x)| < ε donde ε es una constante positiva préviamente fijada que recibe el nombre de tolerancia del algoritmo y tiene la función de actuar como criterio de parada del algoritmo cuando consideramos que estamos suficientemente cerca del valor exacto de la raíz. |xn+1 − xn | < ε. k =k+1 Si f (ak ) · f (mk ) > 0 ⇒ [ak+1 . b] que verifica la condición f (a) · f (b) < 0. 2. |xn | En un proceso de cálculo de raíces de una ecuación no lineal primero hay que tener un cierto conocimiento de la zona en que se encuentran las raíces para. Se basa en el teorema de Bolzano: Teorema 1 Dada una función f (x) continua en un intervalo [a. se utiliza como criterio de parada el que dos iteraciones sucesivas cumplan uno de los dos siguientes criterios: 1. bk+1 ] = [mk . construir de forma iterativa una sucesión de valores que converja a la solución.1 Método de la bisección El algoritmo de la bisección es el más sencillo pero converge lentamente a la solución. En este caso. se para el proceso. b] . criterio de la diferencia relativa.5 · (ak + bk ) Si |f (mk )| < ε1 ⇒ α ≈ mk . b0 ] = [a.

3. f (1. 1. Empezaremos localizando la raíz: f (0) = −0.3. donde nos aseguramos que α ≈ xk . llamado pivote. si |g (xk )| < ε1 ⇒ α ≈ xk .25 − 0. 3.7 = 0.5 sin 1.25] .2 Método de Newton El método de Newton.5 − 0. f (2) = 2 − 0. 1.7 = 0.25] .5 sin 2 − 0. se basa en utilizar una ecuación de la forma g (x) = x equivalente a f (x) = 0 con f (x) derivable. f (x2 )) a partir del cual se localiza el punto x3 = x2 − f 0 (x2 ) f (x2 ) y así 1 sucesivamente. por lo que si aproximamos la solución por el punto medio de éste. f (1. 1.7 < 0. 2] . Esta recta 1 corta al eje de las x en un punto x2 = x1 − f 0 (x1 ) f (x1 ) que.7 = −0. 613 4 × 10−2 < 0 ⇒ [1.7 = −2.301 25 > 0 ⇒ [1.5 sin 1 − 0.5 y z = 0. luego será el intervalo [1. Se calcula xk = g (xk−1 ) = xk−1 − si |g (xk )| > ε1 ⇒ k = k + 1.125 − 0.7 = 2.1875) = 1.1875] es decir. 120 74 < 0. en principio. la cual converge a la raíz x0 .25) = 1. luego empezamos en el intervalo [0. 2] .0 312 5. El cálculo se para cuando |xk − xk−1 | < ε2 o cuando k > kmax .1875] .7 = 7. desde el que se traza la recta tangente a la curva y = f (x) en el punto (x1 .5 − 0. Los cálculos se paran cuando |bk − ak | < ε2 o cuando k > kmax . es un ejemplo de un método de punto fijo. f (1) = 1 − 0. 550 8 × 10−2 > 0 ⇒ [1. A continuación se traza la recta tangente a la curva en el 1 punto (x2 . Se obtiene α ≈ mk = ak + bk 2 donde ε1 y ε2 son tolerancias fijadas por el algoritmo y que pueden ser iguales o no. se para el proceso. 1 f 0 (xk−1 ) f (xk−1 ) .125) = 1. 378 2×10−2 > 0 ⇒ [1. Es decir. que nos permite construir la sucesión {xn }n∈N recursivamente.1875−0.25 − 0. pero no utiliza propiedades de la función que se estudia y su convergencia es muy lenta.125 − 0. 26 . llamado pivote. 1. Como hemos comentado. 1.15625 sabemos que el error que se comete es menor que 0.5 sin 1.5] . obtenemos la fórmula xn+1 = xn − f 0 (xn ) f (xn ). f (x1 )) . Para encontrar el punto en el que f (x0 ) = 0 se parte de un valor x1 . también llamado de Newton-Raphson. se encuentra más cerca de x0 buscado.7. kmax es el valor de la iteración máxima que consideremos. En general.125. Se parte de un valor x0 .5) = 1. 1. f (1. para evitar un proceso excesivamente largo. 845 35 > 0. con e = 0.1875−0. f (1. después de cinco iteracciones sabemos que la raíz está en el intervalo [1. Ejemplo 4 Consideremos el ejemplo anterior f (x) = x − e sin x − z. este método converje siempre y da cotas superiores e inferiores para la raíz buscada. de ecuación y − f (x1 ) = f 0 (x1 ) (x − x1 ) .5 sin 1.125. 2.125.5 sin 1. 1.

las cuales se supone que se irán acercando a la raíz de la función dada.Cuando lim xk = α.2.1 Análisis del error Para analizar la bondad relativa de los métodos es necesario conocer la mejora que se introduce en la solución de la ecuación. existe α ∈ (a. debemos resaltar que la aplicación del método de Newton no siempre es posible. α + δ) se verifica que la sucesión {xk }k∈N converge a α. b) para el cual f (α) = α y f 0 (α) 6= 0 y dada {xk }k∈N tal que si x0 ∈ (α − δ. 3. Las iteraciones del método de Newton convergen bajo las condiciones que se especifican en el siguiente teorema: Teorema 3 Dada f ∈ C 1 ([a. o bien. Para saber las condiciones bajo las cuales son convergentes las iteraciones de punto fijo se utiliza el teorema: Teorema 2 Dada una función g ∈ C 1 ([a. b) . b]) tal que existe α ∈ (a.5 3 Esta idea es muy útil a la hora de reemplazar problemas no lineales por problemas lineales y se ha mostrado como una idea muy fructífera en Matemáticas. de la secante. el valor xk se encuentra en la intersección de esta recta con el eje x. k ∈ N.5 1 1. es decir. converge más rápidamente que el de la bisección. No obstante. aproximar el comportamiento de la función y = f (x) por un comportamiento lineal y. la rapidez con que se aproxima a la 27 . sobre este último ir localizando las raíces.5 2 2. ya que puede ocurrir que xk−1 no pertenezca al dominio de la función f o que f no sea derivable en xk−1 . diremos que la sucesión converge a la solución del problema k→∞ ya que α es un punto fijo de g (x) . entonces la sucesión {xk }k∈N converge a α. se verifica g (xk ) ∈ (a. b]) tal que |g 0 (x)| < 1 para todo x ∈ (a. Es fácil comprobar que si en la iteración k − 1 construimos la recta tangenta a f (x) en el punto xk−1 se obtiene y = f (xk−1 ) + f 0 (xk−1 ) (x − xk−1 ) Por tanto. b) para el cual g (α) = α. dado x0 ∈ (a. b) para todo k > 0. El hecho de utilizar la función g dada está motivado por la idea de aproximar funciones por sus rectas tangentes. etc. al menos en las proximidades de una raíz. El algoritmo de Newton se emplea ampliamente porque. 8 6 4 2 0. b) y la sucesión {xk }k∈N tal que xk = g (xk−1 ) .

m=(a+b)/2. b0=b For[k=1. b=b. b=m. Si p = 1 diremos que la convergencia es lineal. La conx vergencia es más rápida a medida que p aumenta.1 Resolución de ecuaciones no lineales con Mathematica Método de la bisección Podemos escribir este algoritmo como: a0=a. If[sale==’’precisión’’. El límite anterior significa que la sucesión {xk }k∈N converge a la solución α aprox1 imadamente igual de rápido que la función p tiende a cero cuando x → ∞. |εk |p (3.apm].k++. 3.3 3. Print[’’posible solución exacta:’’. siempre que no aumente de forma desmedida el número de operaciones a realizar.apm]. a=a]. tales que k→∞ lim |εk+1 | = c. Definición 1 Sea {xk }k∈N una sucesión que converge a una solución α de la ecuación f (x) = 0 y sea εk el error absoluto cometido al considerar como solución εk = xk − α. etc. If[Sign[f[b]]6=Sign[f[m]]. If[Sign[f[a]]6=Sign[f[m]]. If[Abs[f[m]]<pre. Puede comprobarse que el método de la bisección es de orden 1 mientras que el de Newton es de orden 2. sale=’’precisión’’. sale=’’tolerancia’’.k≤nmax.cifras]. 28 .solución verdadera.Break[]].2) diremos que p es el orden de convergencia mientras que c es la constante del error asintótico. a=m].Break[]]] La impresión de los resultados podemos realizarla con las siguientes instrucciones: apm=SetPrecision[m. If[k≤nmax. por lo que un método de orden más alto es mejor que uno de orden más bajo. si p = 2 se dice que es cuadrática. Si existen p ∈ N y c ∈ R diferentes de cero.3. Para poder comparar diferentes métodos introducimos la siguiente definición.Print[’’solución pedida:’’. If[b-a<tol.

Print[’’Se ha llegado al número máximo de iteraciones’’]]] Print[’’Número de iteraciones: ’’. If[sale==’’precisión’’. 1 Dibujar la función f (x) = −2 log x−0. 3. Break[]]] apm=SetPrecision[x.k]. k++.5 y comprobar como de cerca se ha quedado x la aproximación obtenida. 29 . Print[’’solución pedida: Print[’’Número de iteraciones: Print[’’Error máximo cometido: ’’. k≤nmax. Ejercicio 17 Utilizar el algoritmo del método de la bisección para resolver la ecuación 1 − 2 log x = 0. x=x-(f[x]/f1[x]). f (x) = x cos x − log x. b. ’’. cifras y tol. Ejercicio 18 Utilizar los métodos de la bisección y de Newton para encontrar las raíces positivas en los intervalos correspondientes de las funciones siguientes con un error menor que 0. Break[]]. If[k≤nmax. apm].x]. tol. nmax y cifras.k]. ’’.tol]. Print[’’posible solución exacta: ’’. pre. For[k=1. sale=’’precisión’’ . Print[’’Error máximo cometido: ’’. Obsérvese que apmt da la solución aproximada obtenida por Mathematica usando su propia aproximación. sale=’’tolerancia’’. Print[’’Se ha llegado al número máximo de iteraciones’’]]] donde f1[x]=D[f[x].02. Dibujar primero las funciones para decidir el intervalo adecuado.3. y=f[x]+f1[x]x.5 x para diferentes valores de a.2 Método de Newton El algoritmo para el método de Newton se puede escribir como: x=x0.cifras]. If[Abs[y]<pre. y se han de introducir los valores para x0.tol]. If[Abs[f[x]]<tol. 1. apm].

f (x) = 2x − e−x .b de forma mucho más precisa. tos. ec2. x0.{x..a.3 Métodos Numéricos de Mathematica Mathematica tiene paquetes numéricos que utilizan estos métodos de cálculo de raíces de una ecuación no lineal. 3.xmin.xmax}] busca la solución y se para si x está fuera del intervalo (x min. f (x) = e−2x − 1 + x.b}] InterpolateRoot[ecuación..{x. se utiliza: NSolve[ecuación==0.] encuentra las raíces de las ecuaciones ec1.x] Si la función no es polinómica se ha de recurrir a: FindRoot[ecuación==0..y0}. con cinco decimales exac³ x ´2 .3. suponiendo que la función tiene un ”buen” comportamiento. Para encontrar las raíces de funciones polinómicas de forma numérica.. FindRoot[ecuación==0.b}] 30 .a. x max) FindRoot[{ec1.{y. x0}.. x0}] busca una solución numérica de la ecuación empezando en x = x0.ec2. {x. {x. No obstante. Se puede usar también FindRoot[ecuación==0. si no se conoce con exactitud el punto inicial puede resultar muy costosa de utilizar.2.. la raíz de la ecuación sin x = 2 Ejercicio 20 Dada la función f (x) = 1 x + ex . InterpolateRoot[función.}.. Ejercicio 19 Utilizar el método de Newton para encontrar. 2 Encuentra de forma aproximada el valor de su raíz con un error menor que 0. El paquete <<NumericaMath‘InterpolateRoot‘ trabaja de forma más específica... {x. {x. simultaneamente.01.x1}] usa x0 y x1 como los dos primeros valores de x. 3. x0. lo que permite encontrar las raíces de una función o una ecuación cerca de los puntos a.

tolerancia] Ejercicio 21 Resuelve los problemas anteriores usando los métodos propios de Mathematica.Interval[{a. Utiliza los resultados para comparar como son de buenos los algoritmos introducidos.Interval[{a. 31 .b}].b}]. cargando el paquete <<NumericalMath‘IntervalRoots‘ obtiene intervalos donde pueden estar las raíces de una función mediante los métodos anteriores: IntervalBisection[función.x.tolerancia] IntervalNewton[función.x.Mathematica también usa los métodos numéricos explicados anteriormente.

n Este problema tiene solución única. xn .... Stirling. los estudiantes rara vez tiene que interpolar para valores de senos. En general. 32 . etc.... que es el cálculo de valores para una función tabulada en puntos que no aparecen en la tabla. los valores del polinomio deben ser estimaciones razonables de los valores de la función desconocida. 4. Por otro lado. dado un entero positivo n.Capítulo 4 Interpolación y aproximación de funciones La interpolación.. la interpolación con polinomios sirve como una excelente introducción para ciertas técnicas de aproximación de curvas suaves. resolución de ecuaciones diferenciales. Además. Estamos interesados en polinomios de grado mayor. Por tanto. x1 . es historicamente una tarea fundamental... Gauss. tal que pn (xi ) = f (xi ) . f (x1 ). i = 0. f (xn ) de una función el problema de interpolación polinomial consiste en encontrar un polinomio de grado ≤ n. Cuando el polinomio es de primer grado se obtiene la conocida interpolación lineal. sus calculadoras y computadoras usan estas técnicas para calcular estos valores y creemos que es importante que los estudiantes entiendan como funcionan las calculadoras.. como los de derivación e integración numérica. logaritmos y demás funciones no algebraicas a partir de tablas. f (xi )) se intentará encontrar un polinomio tal que la función y el polinomio se comporten casi igual en el intervalo en consideración.1 Interpolación polinómica de Newton Dado un conjunto de puntos (xi . los n+1 puntos x0 . . Bessel. Aunque hoy en día.. estos métodos resultan interesantes ya que constituyen la base para muchos procedimientos que estudiarán.. . 1... x1 . . . técnicas que resultan muy útiles a los alumnos de ingenieria. xn (llamados nodos) distintos dos a dos en la recta real y los valores correspondientes f (x0 ). el polinomio que satisface estos requisitos se conoce como polinomio interpolador o interpolante de la función f en los puntos x0 . Los nombres de muchos matemáticos famosos están asociados con métodos de interpolación: Newton..

Entonces.1.Hay dos procedimientos básicos para calcularlo: el de Newton y el Lagrange. b) para i = 0.1. (n + 1)! ξ x ∈ (a. Aunque utiliza las llamadas diferencias divididas. Ejemplo 5 Calcular el polinomio de interpolación que pasa por (1.6}.{5. 1. 1. 5}].5) . se observa que al crecer n.2. 0). Esto es equivalente a resolver un sistema de ecuaciones lineales. 4.. {a0. ∀x ∈ (a. Solución: Un polinomio que pasa por cinco puntos debe ser de grado cuatro. Este fenómeno se conoce como el efecto Runge.(2. por sencillez.{4.5}}. .{6. 1}.. 1). In[] := datos={{1.. 0).5. 1).a2. y={1. El error tiene una dependencia directa de la derivada de orden n + 1 y de la proximidad de los puntos a los nodos. luego se han de encontrar los valores de ai en el polinomio: y = a0 + a1 x + a2 x2 + a3 x3 + a4 x4 para que pase por los puntos exigidos. nosotros.2 Polinomio interpolador de Newton La ventaja del polinomio interpolador de Newton es la sencillez de su formulación. sol = Solve[Table[y[[i]] == a0 + a1*x[[i]] + a2*(x[[i]])^2 + a3*(x[[i]])^3+a4*(x[[i]])^4. (x − xn ) .(5.1. 1}.a4}].a1. Veamoslo en el siguiente ejemplo. n.4.1 El efecto Runge Si se considera la sucesión {pn (x)} de polinomios de interpolación obtenida aumentando indefinidamente la cantidad de nodos de interpolación. además de aumentar el grado del polinomio y el número de operaciones que se han de realizar se acentua la pérdida de la precisión en los extremos del intervalo donde se interpola. x={1.0.{2. De hecho.1. Teorema 4 Si f ∈ C n+1 (a. donde ai son las incognitas.. 4. b) De la fórmula anterior no se puede deducir que los polinomios de mayor grado correspondan a una interpolación mejor. Un aspecto importante a considerar es la calidad de nuestra interpolación. El polinomio de Newton será: 33 . 0}.a3. b) y xi ∈ (a.0.(4. 0}. por lo que es preferible dividir el intervalo donde se va a efectuar la interpolación en diversos trozos con polinomios de grado pequeño. {i. es decir el error que se comete cuando se aproxima un punto distinto de los nodos. veremos como calcular el polinomio mediante la resolución de un sistema de ecuaciones lineales. esta interpolación es peor al aumentar el grado debido al cáracter oscilatorio de los polinomios de grado alto.5}.. 1.(6. b) se verifica f (x) − pn (x) = f n+1 (ξ x ) (x − x0 ) (x − x1 ) . 1.

{i.x]] Plot[pol.8221 1.4845 0.4 0.1518 0.0000 1. PlotStyle -> {RGBColor[1.5 1 0.1).5 2 3 4 5 6 Ejercicio 22 Dada la tabla siguiente para la función f (x) = ex x 0.1353 1.1494 0. 34 . In[] :pol= Expand[InterpolatingPolynomial[datos. Show[dib1.0 0. 1. Encontrar los valores aproximados de √ 3 e por interpolación lineal y cúbica. PointSize[0.1. {t.0 0.1 −0. 0.2 0. Interpolar con un polinomio cúbico que pase por los cuatro primeros puntos y utilizarlo para calcular f (0.2 0.4918 1.7 f (x) −1. dib2]. 0.newton[t_] = Sum[sol[[1]][[i]][[2]]*t^(i .5 1 2 3 4 5 6 observando que el polinomio pasa por todos los puntos. 6}]. 1.2214 1. Comparar con el valor exacto. Por otra parte.7028 −1. obtenido en la calculadora. Encontrar las cotas respectivas de los errores debidos a la interpolación. 0]. 2. el comando InterpolatingPolynomial permite obtener el polinomio de interpolación que pasa por los puntos dados.01 dib2 = Plot[newton[t].5 −0. Ejercicio 23 Dados los puntos x 0.{x.6 f (x) 1.6}]. 5}] Se pueden dibujar los puntos y el polinomio interpolador: dib1 = ListPlot[datos1.5 1 0.2) . 1.

{i.newton1[t]. 5}].4.a2}]. x={1.newton2[t]] Se pueden dibujar los puntos y el polinomio interpolador: dib1 = ListPlot[datos1.1<t<2.x[[3]]<t<x[[5]]. {i. Calcular los polinomios interpoladores de grados 4 y 10.t^2. dib2]. {a0. utilizaremos una interpolación mediante polinomios cúbicos cada cuatro nodos. In[]:= In[]:= g[t_]:=Which[t<0. {t. sol2 = Solve[Table[y[[i]] == a0 + a1*x[[i]] + a2*(x[[i]])^2 . 0]. Ejercicio 24 La función f (x) = 1 . Plot[g[t].5}].t-1.01]}].1. 35 .1. se suele utilizar la interpolación mediante polinomios cúbicos. 3}]. 1.2.-5.1.t>2. 1. El polinomio de Newton será: newton1[t_] = Sum[sol1[[1]][[i]][[2]]*t^(i . y={1. de dicha función en el intervalo [−5.0. PlotStyle -> {RGBColor[1.a1.6}. 1.{t. 3.1). {a0. {i. 0. 0. 6}].1). 5]. Para ello recordemos como se dibuja una función a trozos utilizando el Mathematica.a2}].2.5. 4. 3}] newton2[t_] = Sum[sol2[[1]][[i]][[2]]*t^(i . 3}] y utilizar Which para construir el polinomio a trozos: newtonTotal[t_]=Which[t<x[[3]]. dado un conjunto de nodos.5}. Hacer una estimación del error.5 -4 -2 2 4 Por tanto.5 2 1.1].5 1 0. PointSize[0.-t^3. dib2 = Plot[{newtonTotal[t].0<t<1. Veremos el ejemplo anterior utilizando polinomios interpoladores de grado 2. se conoce como función de Runge y fue 1 + x2 la utilizada por Runge para demostrar el efecto que lleva su nombre.a1. Show[dib1. 2. {i.0. sol1 = Solve[Table[y[[i]] == a0 + a1*x[[i]] + a2*(x[[i]])^2 .3 Interpolación a trozos Una solución al problema de la oscilación de los polinomios de grado alto consiste en subdividir el intervalo en intervalos más pequeños e interpolar un número menor de nodos con polinomios de grado menor.

25 2 3 4 5 6 4. n − 2. en el iésimo intervalo.. .. gi (xi+1 ) = gi+1 (xi+1 ) ... 1. pero que son de mucha utilidad para trazar curvas suaves. i = 0. yi+1 ) y la función splin cúbico que se desea es de la forma g (x) = gi (xi ) . Aunque los splines pueden ser de cualquier grado. El ajuste de una curva mediante splines cúbicos exige la creación de una sucesión de splines cúbicos sobre intervalos sucesivos de los datos con la condición de que la pendiente de los polinomios debe coincidir en los nodos en que se unen.25 1 0.. lo que significa que hay irregularidades locales. gi (xi+1 ) = gi+1 (xi+1 ) . Para impedir este problema son de utilidad los tipos especiales de polinomios denominados splines. El interpolar con polinomios de orden superior en la mayor parte de los casos conduce a que el polinomio se aleje de la función en otras regiones.2 Interpolación con un splin cúbico No obstante. cuando los datos no son ”suaves” hay problemas con los polinomios de interpolación. gi (xi+1 ) = gi+1 (xi+1 ) . i = 0. n − 1. gi (xi ) = yi . entre los puntos (xi . x ∈ [xi .. gi (xi ) . 1. yi ) y (xi+1 . i = 0.. n − 2. es decir. . i i 36 . 1. y cumple las condiciones: 1.. i = 0. xi+1 ] 2.5 0. 1. n − 1. . Por otro lado.25 1 -0... el estudio de los splines conduce a algunas otras formas especiales de polinomios (curvas de Bezier y splines-B) que no se interpolan.... . no pasan exactamente por todos los puntos de la función. pero este método también es problemático porque las uniones de los polinomios no tienen una pendiente continua.5 1.. gn−1 (xn ) = yn . 00 00 4.. 0 0 3. n − 2. se escribe la ecuación para un polinomio cúbico. usaremos los de grado tres por ser los más conocidos.1. De donde se obtiene yi+1 = ai (x − xi+1 )3 + bi (x − xi+1 )2 + ci (x − xi+1 ) + di = = ai h3 + bi h2 + ci hi + di . 1.75 0. Una solución es ajustar subregiones de los datos con polinomios diferentes tal y como se ha hecho en el apartado anterior. . Así. i = 0.

25.7 0. El Mathematica tiene esta aproximación incorporada en el paquete <<Graphics‘Spline‘ Ejemplo 6 Veamos como utilizar este comando para ajustar la siguiente tabla de datos 1 2 3 4 1 4 3 4 In[]:= <<Graphics‘Spline ‘ In[]:=datos={{1.{3.5 1.8 Magnitud aparente 0. − hi 6 di = yi Como los nodos extremos no tienen ninguna condición hay distintas aproximaciones.3}.240 0. 6hi bi = Si .2 0.302 0.00 00 Si se hace Si = gi (xi ) y Sn = gn−1 (xn ) . 4 3. una aproximación de splines cúbicos.6 0.{2.{4. la interpolación a trozos.5 3 3.3 0. Compara los resultados que se obtienen con las distintas aproximaciones para t=0. los valores de los coeficiente vienen dados por ai = Si+1 − Si .0 0.5 4 Ejercicio 25 Los datos de la siguiente tabla provienen de observaciones astronómicas de un tipo de estrella variable denominada variable cefeida y representan magnitudes en su variación aparente con el tiempo: Tiempo 0.106 0.4}}.Axes->True]. 37 1. la más sencilla es la lineal S0 = Sn = 0.468 Dibujar una curva de interpolación usando 1. In[]:=splin=Spline[datos.5 2 2.4}.5 2 1.Cubic] In[]:=Show[Graphics[{Line[datos]. 2 ci = yi+1 − yi 2hi Si + hi Si+1 .4 0.093 0.1}.185 0. 3.561 0.splin}. un polinomio interpolador de Newton.5 0.579 0.5 3 2.0 0. 2.302 .

además de proporcionar un resultado único para un conjunto de datos. El criterio de mínimos cuadrados. por lo que se suelen utilizar los logaritmos para linealizarlas log y = log a + bx. Como el mínimo se alcanza al elegir de forma ”adecuada” a y b. Sea Yi un valor experimental y sea yi un valor de la ecuación yi = axi + b donde xi es un valor particular de la variable que se supone libre de error.3 Ajuste de datos por mínimos cuadrados Este ajuste se basa en minimizar la suma de los cuadrados de los errores y sirve para ajustar una curva a un conjunto de datos aproximados. Se podría hacer un estudio análogo al anterior para el caso de estas funciones. es decir. Dado que un polinomio de grado n ajusta de forma exacta n + 1 puntos y se podrían utilizar los métodos expuestos antes utilizaremos polinomios cuyo grado sera mayor que o igual que el número de puntos N . Se quieren determinar los mejores valores de a y b para que las y predigan los valores de la función que corresponden a x. en general. Otro ajuste muy usual es el uso de polinomios para ajustar valores cuya gráfica no es lineal.. sea mínima. datos experimentales. ei = Yi − yi . 38 . minimíza la función S = e2 + e2 + . se obtiene: ∂S ∂a ∂S ∂b = 0= N X i=1 N X i=1 2 (Yi − axi − b) (−xi ) ⇒ a 2 (Yi − axi − b) (−1) ⇒ a = 0= N X i=1 N X i=1 x2 + b i N X i=1 xi = N X i=1 n X i=1 xi Yi xi + bN = Yi un sistema de dos ecuaciones cuyas incógnitas son a y b. + e2 = 1 2 n N X i=1 (Yi − axi − b)2 . también coincide con el principio de máxima probabilidad de estadística. Si los errores de medición poseen una distribución normal y si la desviación estandar es constante para todos los datos. log y = log a + b log x y se ajusta la nueva variable z = log y como una función lineal de x o log x. entonces se puede demostrar que la recta determinada al minimizar la suma de los cuadrados tiene valores de pendiente y ordenada en el origen con probabilidad máxima de ocurrencia. Las funciones más usuales son las exponenciales y = aebx y potenciales y = axb . en muchos casos los datos provenientes de pruebas experimentales no son lineales. por lo que se desea ajustarlos por una función que no sea un polinomio lineal.4. pero los resultados serían más engorrosos y difíciles de obtener.. El criterio de mínimos cuadrados requiere que la suma de los errores. Por supuesto.

d1 = ListPlot[datos.7. Se puede comprobar graficamente como de bueno es este ajuste. da1=Fit[datos. PointSize[0. 0].. − an xn i y se minimiza la suma de cuadrados de estos errores. 39 . + an + . PlotStyle -> {RGBColor[1. 100}].1032}}. {x.{1. En particular.x}. + an i x2n = i .x}.942}.{32. 0.{51..0 73.5. a1 ...39487 x.7 51. obteniéndose a0 N + a1 N X N X xi + a2 i=1 N X a0 xi + a1 x2 i i=1 i=1 i=1 N X + a2 x3 i i=1 N X i=1 N X x2 i + .. N X i=1 i=1 xn Yi i un sistema de n+1 ecuaciones lineales con las incógnitas a0 . an .. Exp[Fit[Log[datos].826}..02]}].. Show[d1. + an xn con errores definidos como ei = Yi − yi = Yi − a0 − a1 xi − .. x]] ajusta los datos a la función ea+bx .765}.3.. Para su resolución se usarán los métodos algebraícos explicados anteriormente. d2 = Plot[da1..873}. variable] La relación deseada no tiene por que ser lineal y se permite más de una variable independiente.7. Out[]= 702..Se supone la relación y = a0 + a1 x + .. .5 32. función.172+ 3. Mathematica posee una función integrada para realizar ajuste de datos por mínimos cuadrados Fit[datos..x]. Se trabaja con una lista de puntos y se suministra un patrón para ajustar la ecuación. i=1 N X + an xn+1 i i=1 N X i=1 N X xn = Yi i = N X xi Yi a0 N X i=1 xn + a1 i N X i=1 xn+1 + a2 i xn+2 + .. Ejemplo 7 Ajustar una recta por mínimos cuadrados a la tabla 20. 0.d2]..{73. {1.2 95.{95.7 765 826 873 942 1032 datos={{20.

5 4.6 2. Comparar los resultados. 2.0 20. x 1 2 3 4 5 6 y 5.7 13.7 49. en este caso tendremos superfícies de ajuste. pero determinar el grado óptimo por mínimos cuadrados.1 8. 3. ¿Qué valores obtienes para t = 0.22 0.1 23. x 0.6 17.2 14.151 0.4 12. Observa que no es la misma recta que se obtuvo antes.6 -16.4 2.895 0.9 7.4 -13.1 Ejercicio 30 En un experimento se obtuvieron los siguientes datos t -1 -0. Ejercicio 29 Parece que los datos siguientes se ajustan una ecuación cúbica.7 -39. Ejercicio 28 Ajustarlos suponiendo que es un polinomio de orden dos.96 -0.6 16.18 16. Debes obtener una recta de mínimos cuadrados de la forma x = ay + b.1 1.79 0.306 1.6 7.2 -51.5 9.894 0.2 9.2 6.1 6.5 -34.9 19. Ejercicio 26 Encuentrar la recta de mínimos cuadrados que se ajusta a los datos siguientes.4 -1.1 11.1 1.1 y 1.90 con las distintas curvas de interpolación obtenidas? 40 . Dibujar los puntos y la curva de interpolación de forma intuitiva.20 20.9 42.6 -40.0 -28.86 -0.1 5.1 17.6 -30.2 13.64 13.04 Ejercicio 27 Repetir el ejercicio anterior suponiéndo que los valores libres de error son las y. Calcular y dibuja el polinomio de sexto grado que interpola estos puntos.5 -48.1 15.1 -13.9 24.12 10. 4.986 0.1050 1000 950 900 850 800 750 20 40 60 80 100 También se pueden buscar funciones que ajusten datos tridimensionales.9 24.5 0.04 8.5 -0. suponiendo que las x están libres de error.9 34. Dibujar una curva de interpolación usando splines cúbicos.8 36.930 y -1 -0.7 29.1 20.0 -3.4 11. 5.

durante el mes de agosto de 1998. Ajustarlos a una ecuación exponencial mediante mínimos cuadrados. Hallar la curva exponencial mínimo cuadrática y = abx . en megawatts. Utiliza tres puntos para calcular un polinomio de interpolación de grado dos. Potencia 153. 3.0 1.6 160.Ejercicio 31 Los datos siguientes representan la potencia diaria. Utiliza los dos resultados anteriores para calcular el valor de y cuando x = 98. 2.0 154. Calcula un polinomio interpolador a trozos con polinomios de grado dos 41 . en una localidad cercana: Temperatura 95 96 97 99 94 . ¿Qué resultado consideras correcto? Ejercicio 32 Dados los datos siguientes x y 2 12 3 24 4 50 5 95 6 190 1.5 159.4 158. 2. generada por una central eléctrica de servicio regional. registrada a las 11 a. y la temperatura atmosférica. Calcular el coeficiente de correlación.m. en grados Fahrenheit.

Para hacer una gráfica en dos dimensiones de una función de una variable se usa la orden Plot. Fuera del rango en que está dibujada la función el comportamiento de la tangente no es especialmente relevante. además de dibujar objetos y figuras arbitrarias. xmax . x. en particular para funciones de dos variables.3}]. y un valor máximo. un valor mínimo.2Pi}]. Mediante Mathematica se pueden dibujar funciones y datos en dos y tres dimensiones.Capítulo 5 Estudio de funciones reales Como hemos comentado en la introducción. muestra la región en que la función es interesante. a menos que se indique otra cosa) In[] := Plot [Tan[x]. producir gráficos de nivel y de densidad.1. {x. una expresión expr. Plot [expr. las posibilidades gráficas del Mathematica han sido una de las causas de su éxito. así por ejemplo podemos producir la gráfica de la tangente en valores donde la tangente se hace infinito (recuerdese que los argumentos de las funciones trigonométricas deben estar en radianes. En esta práctica exploraremos algunas de las posibilidades que Mathematica ofrece a la hora de hacer gráficas además de su uso en el reconocimiento de los puntos extremos. 5. xmin . El rango es un triplete: la variable de la expresión.-2Pi.xmax }] Así la gráfica de la parábola y = −x2 + 4 es producida por la siguiente orden: In[] := Plot [-x^2+4. y un rango. Esta orden necesita al menos de dos argumentos. {x.{x. xmin . 42 . Obsérvese que Mathematica no muestra todo el rango de valores de y.1 Gráficas en Dos y Tres Dimensiones Gráficas en el plano. Además de este tipo de funciones Mathematica también puede hacer gráficas de funciones que tienden a infinito o que tienen singularidades.1 5.-3.

. rango. PlotStyle->GrayLevel[g]]. verde. los argumentos de la función..}]] Todas estas opciones pueden usarse simultaneamente con PlotStyle si se especifican en una lista de listas. Lo cual además permite dibujar varias curvas al mismo tiempo con estilos diferentes. si no se especifica una determinada opción se usa su valor por defecto Al usar estas opciones se han de tener en cuenta los objetivos que se persiguen ya que algunas veces es interesante conocer todos los posibles valores de una función. 43 .Opciones Cuando Mathematica dibuja una gráfica.d2 . por ejemplo. Plot[expr. Finalmente. si queremos determinar el rango de los valores de y usariamos la opción PlotRange. Plot[expr.. opciones] Las opciones se especifican dando el nombre de la opción junto con el valor. cuyo argumento [a] es la razón del ancho de línea al de todo el gráfico. color y estilo de una curva. Modificando el estilo de una gráfica Mediante la opción PlotStyle se puede cambiar el grosor. donde 1 indica la presencia del color y 0 su ausencia. El grosor se cambia utilizando la expresión Thickness.d2 . el segundo de verde (Green) y el tercero de azul (Blue).d2 .. Se puede utilizar también GrayLevel si se desea un sombreado gris. Plot[expr. debe tomar muchas decisiones. La función RGBColor permite especificar un color: Dicha función tiene tres argumentos: el primero es la cantidad de rojo (Red). PlotStyle->RGBColor[rojo. el usar todos estos valores da un gráfico que no ayuda mucho en su evaluación. Recuerdese que mediante ??Plot o la orden Options pueden verse todas las opciones para la función Plot junto con sus valores por defecto.. PlotStyle->Thickness[a]] El valor inicial para la función Plot es Thickness[0. su argumento es un número entre 0 y 1. azul]] Plot[expr. {x.. Plot [expr.. rango.004]. xmin . Estas decisiones pueden ser modificadas dependiendo de los valores de las opciones.. en cambio otras. PlotStyle->Dashing[{d1 .. In[] := Options[Plot] Estas opciones se pueden especificar en cualquier orden después de los argumentos requeridos. se especifican como fracciones del ancho total del gráfico. rango. Las longitudes d1 . Estos argumentos deben ser números entre 0 y 1. La función Dashing crea una línea a trazos en la que los sucesivos trazos dibujados o no dibujados son de longitud d1 .xmax }. rango..

tmax }] 5.tmin . Permite asimismo dibujar gráficas en coordenadas polares.1. sin más que mover el cubo de referencia mediante el ratón.Gráficas de varias curvas Plot permite obtener la gráfica de varias curvas al mismo tiempo. La opción Show permite redibujar un gráfico.fy [t]}. opciones].ymax }. xmin . .2 Gráficas Tridimensionales La función Plot3D produce una gráfica trimensional donde se da la coordenada z en función de x e y.fz [u]}.{y.umax }. El Front End tiene una opción en el menú que permite visualizar los distintos enfoques que se le puede dar a la figura. ecuación 2. opciones].v]. una función donde los valores de x e y vienen dados en función de un parámetro.vmax }. Al igual que antes. {x. {x. Gráficas paramétricas La opción ParametricPlot3D produce gráficas tridimensionales donde las coordenadas x. combinar varios de ellos o cambiar las opciones de uno construido antes. para ello se han de escribir las ecuaciones de las distintas curvas en forma de lista en el primer argumento de Plot Plot[{ecuación 1. {u.}. Gráficas paramétricas Este tipo de gráficas son muy útiles cuando se quiere dibujar simultáneamente los valores de x e y en función de un parámetro.v].vmin . Los gráficos tridimensionales estan ya coloreados por defecto. o ParametricPlot3D[{fx [u].umin . la ventaja de utiliza esta opción consiste sobre todo en el dibujo de funciones que son dificiles de hacer en coordenadas cartesianas. Una opción interesante de Plot3D es que la gráfica obtenida puede verse desde distintos puntos de vista mediante ViewPoint..fy [u.fy [u]. {v. 44 .xmax }]. Como hemos indicado antes cada una de las líneas puede dibujar con un estilo diferente.xmin . ParametricPlot[{fx [t].umin . y.{t. lo que permite su mejor visualización.xmax }. opciones].umax }. z están dadas en términos de dos parámetros ParametricPlot3D[{fx [u. {u.fz [u.ymin .. Sus argumentos son una expresión y los rangos para las dos variables: Plot3D[expr.v]}. La función ParametricPlot dibuja una curva parametrizada. en general se usa t como dicho parámetro ya que suele representar el tiempo.

1 Curvas en el plano y en el espacio Curvas en el plano. Podeis comprobar que este objeto sigue la trayectoria parabólica dada por x2 y =− +x 10 Pero esta ecuación no nos dice en que momento el objeto ha estado en cada punto de la trayectoria. obteniéndose las ecuaciones paramétricas √ x = 5 2t √ y = 5 2t − 5t2 45 .1}] Pero esta misma circunferencia se puede dibujar utilizando un parámetro angular y escribiendo x e y en términos de dicho parámetro: x = cos t.2 5.-3. El interés de introducir esta tercera variable es doble: por un lado permite dibujar mas fácilmente algunas curvas planas que no se pueden escribir de forma inmediata como funciones. {x. A partir de las leyes de Newton se pueden reescribir x e y en términos de dicho parámetro.0.2 Pi}] • Para ver la versión temporal del parámetro. t.-1. consideremos la trayectoria de un objeto lanzado al aire formando un ángulo de 45o con una velocidad inicial de 10m/s.-Sqrt[1-x^2]}. La orden que permite dibujarlo es: ParametricPlot[{Cos[t]. ecuaciones paramétricas En general. a la que llamamos parámetro. Veamoslo: • Si se quiere dibujar la circunferencia x2 +y 2 = 1 utilizando Plot. Por otro lado. las ecuaciones de las curvas en el plano vienen dadas en coordenadas cartesianas. y = sin t. se ha de despejar la variable y y dibujar las dos curvas correspondientes In[] := Plot [{Sqrt[1-x^2].xmax }] Así la gráfica de la curva y = x3 + x es producida por la siguiente orden: In[] := Plot [x^3+x.{t. Para determinar ésto se introduce una tercera variable. en mucho casos este parametro se puede considerar como el tiempo y permite la descripción completa de la curva en términos de la trayectoria seguida por un móvil. a veces es útil introducir una tercera variable para representar una curva en el plano.{x.5. No obstante.2. xmin .{x.3}]. x e y. Mathematica sabe representar este tipo de ecuaciones de forma directa cuando y = f (x) mediante Plot: Plot [expr.Sin[t]}.

Las coordenadas cartesianas estan relacionadas con las polares mediante las fórmulas ¯ 2 2 2 x = r cos t ¯ x + y = r ¯ y y = r sin t ¯ tan t = x Ejercicio 33 Dibujar las siguientes curvas utillizando coordenadas paramétricas y cartesianas: x2 + y2 = 9 x2 + y2 − 2x = 0 x2 + y2 − 4y = 0 y2 ¡ 2= 2x2 ¢2 ¢ ¡ x +y − 9 x2 − y 2 = 0 y=x Ejercicio 34 Dibujar las siguientes gráficas polares r = 2 cos 3t (rosa de tres pétalos) ¿Cómo dibujarías una rosa de cuatro pétalos?¿Yde 25? r2 = 4 sin 2t (lemniscata). t)1 de la siguiente forma: r : distancia dirigida de O a P. una curva se representa como la intersección de dos superficies.5 Sqrt[2] t-5 t^2}.0. además. además de utilizar la orden Plot. por lo que es más interesante la utilización de coordenadas paramétricas. las coordenadas polares se conocen por (r.2 Curvas en el espacio. t : ángulo orientado en sentido antihorario desde el eje polar hasta el segmento OP . mediante ParametricPlot[{5 Sqrt[2] t . Ejercicio 35 Escribir las ecuaciones polares de las cónicas y dibujalas.2.{t. Coordenadas polares Para construir un sistema de coordenadas polares en el plano. Utilizamos t como ángulo por comodidad de escritura. 1 46 . En general. ecuaciones paramétricas. θ). A cada punto P del plano se le asignan las coordenadas polares (r. conocer el sentido de recorrido de la trayectoria. r = 2 ± 3 sin t (caracoles). Sqrt[2]}] El utilizar las ecuaciones paramétricas permite. se fija un punto O llamado origen (o polo) y desde O se considera un rayo inicial llamado eje polar. El dibujo de la trayectoria se puede obtener. ya que la curva se obtiene al variar un único parámetro. 5. En general se suele elegir el origen de las coordenadas cartesianas como origen de las polares y el eje x como eje polar. En el espacio.Este conjunto de ecuaciones permite determinar en que punto está el objeto en cada instante.

2t}. 0 ≤ u ≤ π. {t. t) a P. En general. las coordenadas esféricas se conocen por (ρ.t^2. Ejercicio 36 Dibujar la curva dada por x = 2 cos t y = 2 sin t . t. Las coordenadas cartesianas estan relacionadas con las cilíndricas mediante las fórmulas ¯ x2 + y2 + z 2 = R2 x = R sin u cos t ¯ y ¯ tan t = y = R sin u sin t ¯ ¯ xz ¯ z = R cos u u = arccos R Este tipo de coordenadas es especialmente útil para dibujos con un centro de simetría. donde (r. u)2 . z=t 0 ≤ t ≤ 2π Ejercicio 37 Dibujar la curva intersección del cilindro x2 + y2 = 9 y el plano x = z. Coordenadas cilíndricas En un sistema de coordenadas cilíndricas un punto P del espacio se representa por un trio ordenado (r. donde R es la distancia de P hasta el origen. Las coordenadas cartesianas estan relacionadas con las cilíndricas mediante las fórmulas ¯ 2 2 2 x = r cos t ¯ x + y = r ¯ y y = r sin t ¯ tan t = ¯ x ¯ z=z z=z Este tipo de coordenadas está especialmente indicado cuando hay trayectorias que tienen al eje z como eje de simetría. φ). Utilizamos la otra notación por comodidad de escritura. Coordenadas esféricas En un sistema de coordenadas esféricas un punto P del espacio se representa por un trio ordenado (R. 2 47 . 0 ≤ t ≤ 2π. y u es el ángulo entre el eje z positivo y el segmento OP . Ejercicio 38 Dibujar la curva intersección del paraboloide x2 = z y el plano x = y. z).ParametricPlot3D[{t. t. R ≥ 0 t es el mismo ángulo que se usa en coordenadas cilíndricas. θ.1}] Estudiaremos dos nuevos sistemas de coordenadas espaciales: el sistema de coordenadas cilíndricas y el sistema de coordenadas esféricas. t) es una representación polar de la proyección del punto P en el plano xy. y z es la distancia orientada de (r.-1.

5. z = sin u. 5. x2 + y2 − z 2 = 1 (hiperboloide) x2 + y2 + z 2 = 1 (esfera) Ejercicio 40 Dibujar las siguientes superficies dadas en coordenadas paramétricas e identificalas: r=3 √ r=2 z r=z r2 = z 2 + 1 R=1 π t= 4 π u= 4 x = (2 + cos u) cos v. sino más bien de ilustrar las técnicas que el programa pone a disposición del usuario para reducir considerablemente los cálculos y.-1. 0 ≤ u ≤ 2π.{y. el Mathematica dibuja de forma inmediata superficies que son funciones de dos variables.4 Cálculo Diferencial Vamos a introducir ahora algunos comandos de los que dispone Mathematica para abordar.1}]. gran variedad de problemas que surgen en el Cálculo Diferencial en una y en varias variables. para entender qué es lo que se está haciendo 48 . las ecuaciones de las superficies anteriores en coordenadas cartesianas. x2 + y2 = z 2 (cono). su dibujo es mejor si se utilizan las coordenadas adecuadas. lo que es más importante. y) Plot3D[x+y. Ejercicio 39 Dibujar las siguientes superficies: x = y (plano) x2 + y2 = 9 (cilindro de radio 3). Desde luego. Ejercicio 41 Encontrar. 0 ≤ v ≤ 2π (toro). parametrización de superficies Una superficie necesita dos parámetros para poder dibujarla. en su caso. no se trata aquí de estudiar a fondo esta disciplina matemática.3 Dibujo de superficies.-1. x2 + y2 = 4z (paraboloide). Pero si las superficies no son planos.1}. {x. y = (2 + cos u) sin v. y en muchos casos resolver con éxito. z = f (x.

1 Derivación explícita e implícita El programa ofrece varios comandos para el cálculo de derivadas tanto de funciones de una variable como de varias variables. y así sucesivamente. El objeto f ’ en Mathematica es el resultado de aplicar el funcional de diferenciación a la función f . por ejemplo. y.}] calcula la derivada parcial de f respecto a x considerando u. El comando D[f .. . La forma completa de f ’ es. .. Obviamente.5. f. n}] proporciona la derivada n-ésima ∂n f . Derivative[1][f ] de manera que Derivative[1] puede ser considerado como el operador de diferenciación. de hecho. se puede usar la forma funcional explícita y[x] para efectuar la derivación: Así es posible. . v.. El comando para obtener la diferencial total de una función f es Dt[f ] mientras que Dt[f . ∂x ∂y D[f . como el operador que al actuar sobre una función f proporciona su función derivada. .] calcula la derivada múltiple D[f . . NonConstants →{u. v. . x ] calcula la derivada parcial ∂ f. Los siguientes comandos proporcionan otras formas de calcular derivadas: f ’[x] obtiene la derivada primera de una función de una variable.4. esto es. dx 49 . {x . también como funciones de x.. x . f ’’[x] da la derivada segunda de una función de una variable. estos comandos también sirven si la función f depende sólo de x: Si y depende de x. x . . derivar implícitamente. x ] da la derivada total df . ∂x D[f . mientras que ∂xn ∂ ∂ . En este apartado los repasaremos brevemente y veremos cómo se pueden aplicar a gran número de problemas que aparecen en Cálculo.

x ] o efectúa la derivada de la ecuación con respecto a x. Los comandos respectivos son: Grad[f ]. y. 50 . Dibujar la trayectoria desde t = 0 hasta t = 2π y la recta tangente en los puntos t = 1. a veces interesará calcular su matriz jacobiana y su determinante jacobiano. Para concluir este apartado diremos que el paquete Calculus‘VectorAnalysis. Div[f ]. Los comandos anteriores resuelven este problema. x . obteniéndose una expresión de donde se podrá despejar la derivada. Constants →{c. Ejercicio 43 La trayectoria de un móvil en dos dimensiones viene descrita por las ecuaciones x (t) = t cos t y (t) = t sin t 1..] da la derivada total múltiple d d · · · f.m dispone de funciones específicas para el cálculo del gradiente.4. y dx dy Dt[f . d. constantes... dy con el comando explícita para dx Dt[y. x ] = algo pudiendo anular la definición para la derivada con Clear[y]. Así.. . Dada una aplicación f : Rn −→ Rm .Dt[f .7 y t = π. x . A veces ocurre que una función y(x) viene dada implícitamente por una cierta ecuación e interesa calcular su derivada. la divergencia. Dt[ecuaci´n. d.. Curl[f ] y Laplacian[f ]. el rotacional y el laplaciano de un campo vectorial f .2 Problemas Vamos ahora a resolver algunos problemas típicos: Ejercicio 42 Calcular y 0 (x) sabiendo que cos(x + sin y) = sin y.}] proporciona la derivada total con c. La función que Mathematica incorpora para esta eventualidad es Outer. Podemos hacer una definición 5.

0) f (x. 2. Ejercicio 47 Aplicar el teorema de los incrementos finitos para ver cuales de las funciones anteriores del problema 45 son diferenciables en el punto (0. Determinar los puntos de corte de estas rectas tangente y los ejes coordenados. (x. 0) Ejercicio 46 Dada la función ¢ ¡   xy x2 − y2 .3 Máximos y mínimos de funciones Vamos ahora a resolver algunos problemas típicos de cálculo de máximos y mínimos de funciones de una y dos variables. Dibuja las gráficas de las funciones dadas. π] vale V (t) = e−t . y) = x2 + y2  0. Estudiar la continuidad de las derivadas parciales calculadas en el problema anterior. 5. y. Estudia su continuidad en todo su dominio. (x. Ejercicio 45 Calcular las derivadas parciales de la función x3 y − xy 3 f (x. y) 6= (0. 0). 0) f (x. y) = (0. y) = (0. así como su interpretación geométrica: Ejercicio 49 Dibujar la curva 2x2 − 2xy + y2 + x + 2y + 1 = 0.2. Ejercicio 48 Calcular la derivada direccional de la función 1 f (x. ¿Es diferenciable? ¿Se cumple el teorema de Young? 4. Dibujar la curva y las dos tangentes. 3. Ejercicio 44 Una fuente de alimentación suministra un voltaje periódico en el tiempo 2 de modo que en [−π. y) = 2 2 x  + y2  xy si (x. y) 6= (0. Calcula sus derivadas parciales en todo el dominio.4. 0) . Calcula la ecuación de sus tangentes en los puntos de abcisa x = −1/2. 0) 1. 1) según el vector (1. Dibujar la función y puntos 0 y 2 el polinomio en dicho intervalo. 51 . 1. z) = p 2 + y2 + z2 x en el punto (2. Aproximar esta función en torno a los π mediante un polinomio de Taylor de grado cuatro. y) = x2 + y 4  0 si (x. 1.

z) = x2 + xy + y 2 + z 2 . ¿Y su aceleración? Ejercicio 52 Dibujar la función f (x. Haz una representación gráfica. 52 . Ejercicio 54 Usar el método de los multiplicadores de Lagrange para hallar los valores máximo y mínimo absoluto de f (x. Ejercicio 51 Dibujar las curvas siguientes: Curva intersección del cilindro x2 + y 2 = 9 y el plano x = z. Ejercicio 55 Hallar y clasifica los puntos extremos no degenerados de la función f (x. y) = x2 − y2 − xy . ¿cúal es la velocidad de dicho móvil en cada uno de los puntos?. Demuéstralo. Suponiendo que estas curvas son las seguidas por un móvil. 2. y) = ¡1+x −y . y) = x2 + 3y 2 e1−x −y . r = 2 ± 3 sin t (caracoles).Ejercicio 50 Dibujar las curvas siguientes y estudia en que puntos la función no tiene derivada. y) = −120x3 − 30x4 + 18x5 + 5x6 + 30xy 2 Dibujarla. Ejercicio 53 Hallar los puntos extremos de las funciones siguientes y determinar cuales son máximos. 2 2 f (x. Ejercicio 57 La energia interna de un cierto sistema viene dada en función de la presión x y el volumen y por U (x. y) = x2 + y2 − xy. Dibujar la gráfica de la función U y los conjuntos de nivel para presión y volumen entre 0 y 3. r = 2 cos 3t (rosa de tres pétalos) r2 = 4 sin 2t (lemniscata). ¢ e 2 2 f (x. y. calcula y clasifica sus puntos extremos. Dibujar las gráficas correspondientes. 3. y) = x2 + y 2 − x − y + 1 en el disco unidad. y) = x2 + y 2 . Calcular el polinomio de Taylor de grado 2 de U en uno de los mínimos obtenidos. Obtener los máximos y mínimos de U. y) = 1 − e−(x−1) 2 −(y−2)2 1. Ejercicio 56 Hallar y clasificar los puntos extremos de la función f (x. f (x. Calcular el error cometido al aproximar la función por este polinomio de Taylor. mínimos y puntos silla locales. Curva intersección del paraboloide x2 = z y el plano x = y. f (x.

Calcular la aproximación de segundo grado en dicho punto. 53 . Calcular el plano tangente a esta superficie en un entorno del punto (1. 1. −1) . Determinar sus puntos críticos restringidos al plano z = 1. Determinar sus puntos críticos. 1. −1) . Ejercicio 59 Dada la ecuación z 4 + x2 z 3 + y 2 + xy = 2. 4. 1. 1. 3. 2. 2. Calcular las aproximaciones de Taylor de primer y segundo grado en el punto (0. Demostrar que define a z como una función de x e y en un entorno del punto (1. 3. y) = y sin (πx). 0) . Dibujarla.Ejercicio 58 Dada la función f (x.

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->