Source: https://es.scribd.com/document/52727799/practicas2005
Timestamp: 2017-10-24 06:40:04+00:00

Document:
practicas2005
Cargado por Noi Zamora
Fundamentos Matemáticos de la Ingenieria I.
ESTCE. Campus de Riu Sec.
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áﬁcos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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
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áﬁcas en Dos y Tres Dimensiones . . . . . . . . . . . . . . . . . . . . 42
5.1.1 Gráﬁcas en el plano. . . . . . . . . . . . . . . . . . . . . . . . . . 42
5.1.2 Gráﬁcas 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 superﬁcies, parametrización de superﬁcies . . . . . . . . . . . 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
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áﬁcos.
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 deﬁnidas (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
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-
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.
Out[] = 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-
Cada tipo de paréntesis tiene su propio signiﬁcado.
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 signiﬁcado.
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.
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-
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
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
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 deﬁnir una
función que eleve al cuadrado su argumento.
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 deﬁnición.
Una función puede tener más de un argumento. Aquí deﬁnimos la función g(x, y) =
g[x_,y_]= x y;
g[2, 3]
Out [] =6
En algunas ocasiones necesitamos una deﬁnición aplazada. Por ejemplo, cuando
deﬁnimos la función factorial
factorial[x_ ]:= x factorial[x - 1]
Out [] =24
En este caso el signo igual (=) debe ir precedido por dos puntos (:).
1.1.3 Sumatorios
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,
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
Out [] =
En esta situación, para obtener una aproximación utilizaremos el comando N.
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:
Out [] =1.4142135623730950488
Problema 1 Como ejemplo, utilizar el comando anterior para calcular
2, e, y π con
varias precisiones.
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 predeﬁnidas 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:
Out [] =a
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))
2 (x −2)
La función Together combina dos o más fracciones con común denominador y sim-
pliﬁca los factores comunes:
(x −2) (x + 2)
El comando D calcula la derivada de una función respecto de una variable:
Cos[E^x];
D[%]
Out [] =−e
Hay que prestar atención al escribir esta función porque tanto el coseno como el
número e son funciones predeﬁnidas 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
+ 4xe
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
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 simpliﬁcar
Problema 3 Factorizar los polinomios
−4x −5
Problema 4 Descomponer en fracciones simples
Problema 5 Calcular las derivadas primera y segunda de la función x
Problema 6 Calcular la derivada primera de
respecto de x y de y.
Problema 7 Calcular el límite de la sucesió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 deﬁnirla 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 deﬁnir sus propias funciones, pero para evitar problemas es recomendable
abstenerse de usar letras mayúsculas en el nombre. La forma de deﬁnirlas consiste en
utilizar lo que se denomina una assignación, cuya sintaxis es de la forma:
nombre-función[variable1_, variable2_ , ... , variablen_]:=
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 deﬁnició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 deﬁnir la sucesión
(−1) ˆn
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
a[n Integer] o a[n Real]
Para evaluar la función en n = 5 escribiremos
In[] :=a[5]
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 Deﬁnir raiz[n, x] :=
Utilizando la ayuda de Mathematica y el comando N calcular con varias precisiones
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}]
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]]
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
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 Deﬁnir b
, n = 1, 2, . . . y calcular
desde n = 10 hasta n = 20 :
desde n = 10 hasta n = 100 pero con n múltiplo de 10 :
Problema 11 Muestra el valor de
2 con una precisión desde 1 hasta 10 cifras deci-
1.6 Gráﬁcos
Las posibilidades gráﬁcas 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áﬁcos de nivel y de densidad, además de dibujar objetos y ﬁguras arbi-
trarias. Dedicaremos una práctica a explorar algunas de las posibilidades que Math-
ematica ofrece a la hora de hacer gráﬁcas. Estaremos interesados sobre todo en la
ayuda que puede prestar la interpretación gráﬁca 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.
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.
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 ﬁlas corresponden a cada una de las ﬁlas 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;
genera la matriz identidad n × n. Así, por ejemplo,
Table[0, {m}, {n}]
genera una matriz cero,
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 ﬁla i-ésima de m,
Como ya se ha dicho, una matriz es una lista de vectores, representando cada una
de sus ﬁlas. Para que se tenga una matriz válida, todas las ﬁlas han de tener la misma
longitud, de manera que los elementos de la matriz formen efectivamente un tablero
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
signiﬁcativas a manejar.
Otros comandos que se utilizan habitualmente al trabajar con matrices son:
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].
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 coeﬁcientes 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:
da un vector x que resuelve la ecuación matricial m · x = b;
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;
transforma la matriz m en otra de ﬁlas reducidas, mediante combinaciones lineales de
las ﬁlas, coincidiendo, por tanto, el rango de la matriz con el número de ﬁlas no nulas
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:
4x + 6y − z = 0
8x + 12y − 3z = 0
y − z − 2t = 1
x − z − t = −2
x + y − 3t = −1
x + 4y + z = b
3x − y + 2z = 1
2x − 5y + az = −2
4x + 2y + z = ax
2x + 4y + 2z = ay
2x + 4y + 8z = az
ax −2y + z = 1
x +ay +z = a
2.1.3 Valores y vectores propios
Como es bien sabido, los valores propios de una matriz m son los números λ
cuales existen vectores x
no nulos, llamados vectores propios, tales que m · x
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:
proporciona una lista de los valores propios de la matriz 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]]
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
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
10 −6 −9
6 −5 −7
−10 9 12
calcula A+B, B −4A, (AB)
, ((A−B)B)
, det(B
) 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 eﬁciente es usar LinearSolve.
Problema 14 Consideramos ahora el sistema
que es incompatible, Mathematica lo indica.
Ejercicio 2 Estudia y resuelve el sistema
x + 3y + 8z = 19
2x + 3y + z = −1
5x + 6y + 4z = 5
Ejercicio 3 Estudia y resuelve, según los valores de a, el sistema formado por las
x + ay + z = a
x + y + az = a
Ejercicio 4 Forma una matriz cuyas ﬁlas 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)
(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
6 5 2 −1
Ejercicio 6 Hallar la inversa de: C =
Ejercicio 7 Sea la matriz A =
0 a 4 −a
0 a −a
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
Ejercicio 8 Dada la matriz
−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?
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:
0 −1 b
Ejercicio 10 Calcular los valores y vectores propios del endomorﬁsmo f : R
f(x, y, z) = (x + y +z, 3x + y −z, −2x + 2y + 3z)
Ejercicio 11 Diagonaliza ortogonalmente las matrices
−2 3 0
Ejercicio 12 Dada la matriz A =
1. Obtener p (A) donde p (x) = 3 + 2x −5x
2. Obtener su inversa utilizando el teorema de Cayley-Hamilton.
2.3 Introducción a los Métodos Numéricos. Métodos del
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]],
Para resolver el sistema de ecuaciones lineales:
1. La ecuación E
puede multiplicarse por una constante no nula λ y se puede usar
la ecuación resultante en vez de E
. Esta operación se denota por (λE
2. La ecuación E
puede multiplicarse por una constante no nula λ, sumarla a la
y usar la ecuación resultante en vez de E
. Esta operación se denota
por (E
3. La ecuaciones E
pueden intercambiarse. Esta operación se denota por E
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 coeﬁcientes.
Por esto un sistema lineal se reemplaza frecuentemente por una matriz, que contiene
2.3.1 Eliminación Gaussiana y sustitución hacia atrás
El sistema anterior lo podemos representar como una matriz, conocida como matriz
y realizar operaciones elementales sobre las ﬁlas para conseguir ceros por debajo de la
que equivale al siguiente sistema
en la última ecuación y sustituyendola en la ecuación E
. Despejando en la ecuación anterior se obtiene x
, 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
ﬁlas para conseguir los ceros. Esto también es necesario porque cuando los cálculos se
realizan usando aritmética de dígitos ﬁnitos 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
<<LinearAlgebra‘GaussianElimination‘
Como hemos visto, la función LinearSolve permite calcular la solución de un sistema
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 coeﬁcientes 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 coeﬁcientes en el producto de una matriz triangular inferior, L, por
una matriz triangular superior, U (factorización LU) se puede recurrir a
que produce esta factorización y da la información sobre que ﬁlas 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:
: −2x
utilizando la descomposición LU de la matriz de los coeﬁcientes y la orden LUSolve
In[1]:= <<LinearAlgebra‘GaussianElimination‘
In[2]:= MatrixForm[a = {{5, 3, 0}, {7, 9, 2},{-2, -8, -1}}].
−2 −8 −1
Out[3]:= LU[{{
},{7,9,2},{
}},{2,3,1}]
In[4]:= b={6,-3,7};
In[5]:= c=LUSolve[lu, b]
Out[5]:= {
In[6]:= a .c - b
Out[6]:= {0,0,0}
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 ﬁlas de dicha matriz para hacer la reducción
gaussiana. En términos matriciales, se leería:
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
Ejemplo 2 Resolver el sistema de ecuaciones:
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
utilizando la descomposición LU de la matriz de los coeﬁcientes 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}]
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}]]
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 coeﬁcientes una matriz que sigua la recurencia de la matriz del ejemplo
anterior y como vector de términos independientes el vector
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
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
Mathematica la calcula usando
SchurDecomposition[matriz]
Problema 15 Dada la matriz
Encontrar su descomposición QR y de Schur.
Resolución numérica de
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
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
+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.
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 veriﬁque una condición impuesta en el algoritmo de la forma
|f (x)| < ε
donde ε es una constante positiva préviamente ﬁjada 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 suﬁcientemente cerca del valor exacto de la raíz. En los
algoritmos iterativos en los que se genera una sucesión de aproximaciones {x
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
| < ε, criterio de la diferencia absoluta.
< ε, 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 veriﬁca 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
1. Se parte del intervalo [a
] = [a, b] .
2. Se calcula el punto medio del intervalo [a
= 0.5 · (a
Si |f (m
⇒α ≈ m
, se para el proceso.
Si f (a
) · f (m
) < 0 ⇒[a
) > 0 ⇒[a
3. Los cálculos se paran cuando |b
o cuando k > k
α ≈ m
son tolerancias ﬁjadas por el algoritmo y que pueden ser iguales
o no, k
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
[1, 1.25] , f (1.125) = 1.125 −0.5 sin1.125 −0.7 = −2. 613 4 × 10
< 0 ⇒[1.125, 1.25] ,
f (1.1875) = 1.1875−0.5 sin1.1875−0.7 = 2. 378 2×10
> 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 ﬁjo. 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
se parte de un valor x
, llamado pivote, desde el que se traza la recta tangente a la curva
y = f (x) en el punto (x
)) , de ecuación y −f (x
) . Esta recta
corta al eje de las x en un punto x
) que, en principio, se encuentra
más cerca de x
buscado. A continuación se traza la recta tangente a la curva en el
)) a partir del cual se localiza el punto x
) y así
sucesivamente. En general, obtenemos la fórmula x
), que nos
permite construir la sucesión {x
recursivamente, la cual converge a la raíz x
1. Se parte de un valor x
, llamado pivote.
2. Se calcula x
si |g (x
⇒α ≈ x
)| > ε
⇒k = k + 1.
3. El cálculo se para cuando |x
, donde nos asegu-
ramos que α ≈ x
Cuando lim
= α, diremos que la sucesión converge a la solución del problema
ya que α es un punto ﬁjo de g (x) .
Para saber las condiciones bajo las cuales son convergentes las iteraciones de punto
ﬁjo se utiliza el teorema:
Teorema 2 Dada una función g ∈ C
([a, b]) tal que |g
(x)| < 1 para todo x ∈ (a, b) ,
existe α ∈ (a, b) para el cual g (α) = α, dado x
∈ (a, b) y la sucesión {x
) , k ∈ N, se veriﬁca g (x
) ∈ (a, b) para todo k > 0, entonces la sucesió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.
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
Por tanto, el valor x
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
no pertenezca al dominio de la función f o que
f no sea derivable en x
. Las iteraciones del método de Newton convergen bajo las
condiciones que se especiﬁcan en el siguiente teorema:
Teorema 3 Dada f ∈ C
([a, b]) tal que existe α ∈ (a, b) para el cual f (α) = α y
(α) 6= 0 y dada {x
tal que si x
∈ (α −δ, α + δ) se veriﬁca que la sucesión
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
solución verdadera. Para poder comparar diferentes métodos introducimos la siguiente
Deﬁnición 1 Sea {x
una sucesión que converge a una solución α de la ecuación
f (x) = 0 y sea ε
el error absoluto cometido al considerar como solución ε
Si existen p ∈ N y c ∈ R diferentes de cero, tales que
= c, (3.2)
diremos que p es el orden de convergencia mientras que c es la constante del error
Si p = 1 diremos que la convergencia es lineal, si p = 2 se dice que es cuadrática,
El límite anterior signiﬁca que la sucesión {x
converge a la solución α aprox-
imadamente igual de rápido que la función
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++,
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],
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
−2 log x = 0.5
para diferentes valores de a, b, tol, nmax y cifras.
Dibujar la función f (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:
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];
Print[’’posible solución exacta: ’’, apm],
If[k≤nmax, Print[’’solución pedida: ’’, apm],
donde f1[x]=D[f[x],x], y se han de introducir los valores para x0, pre, cifras
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.
2. f (x) = 2x −e
3. f (x) = e
−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 =
Ejercicio 20 Dada la función f (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
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íﬁca, 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}]
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
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-
Interpolación y aproximación de
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
)) 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
(llamados nodos)
distintos dos a dos en la recta real y los valores correspondientes f(x
de una función el problema de interpolación polinomial consiste en encontrar un poli-
nomio de grado ≤ n, tal que
) , 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
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
(a, b) y x
∈ (a, b) para i = 0, 1, ..., n. Entonces, ∀x ∈ (a, b)
f (x) −p
) ... (x −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
(x)} de polinomios de interpolación obtenida aumentando
indeﬁnidamente 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
para que pase por los puntos exigidos. Esto es equivalente a resolver un sistema de
ecuaciones lineales, donde a
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á:
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];
observando que el polinomio pasa por todos los puntos.
Por otra parte, el comando
permite obtener el polinomio de interpolación que pasa por los puntos dados.
In[] :pol= Expand[InterpolatingPolynomial[datos,x]]
Plot[pol,{x,1,6}];
Ejercicio 22 Dada la tabla siguiente para la función f (x) = e
f (x) 1.0000 1.2214 1.4918 1.8221
1. Encontrar los valores aproximados de
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) .
2. Hacer una estimación del error.
Ejercicio 24 La función f (x) =
, 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}];
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.
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}];
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]]
dib1 = ListPlot[datos1, PlotStyle -> {RGBColor[1, 0, 0], PointSize[0.01]}];
dib2 = Plot[{newtonTotal[t], {t, 0, 6}];
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 signiﬁca 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
) , en el iésimo intervalo, entre los puntos
) y la función splin cúbico que se desea es de la forma
g (x) = g
) , x ∈ [x
y cumple las condiciones:
, i = 0, 1, ..., n −1, g
) , i = 0, 1, ..., n −2;
) , i = 0, 1, ..., n −2.
, i = 0, 1, ..., n −1.
Si se hace S
) , los valores de los coeﬁciente vienen dados
Como los nodos extremos no tienen ninguna condición hay distintas aproxima-
ciones, la más sencilla es la lineal S
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
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];
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.
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-
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.
un valor experimental y sea y
un valor de la ecuación
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
, sea mínima, es decir, minimíza la función
+ ... +e
Como el mínimo se alcanza al elegir de forma ”adecuada” a y b, se obtiene:
−b) (−x
) ⇒a
−b) (−1) ⇒a
+ bN =
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
y potenciales y = ax
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,
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áﬁca 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.
Se supone la relación
con errores deﬁnidos como
−... −a
y se minimiza la suma de cuadrados de estos errores, obteniéndose
un sistema de n+1 ecuaciones lineales con las incógnitas a
. 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
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
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 graﬁcamente 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];
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.
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
-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
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
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 coeﬁciente 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
y 12 24 50 95 190
1. Hallar la curva exponencial mínimo cuadrática y = ab
2. Calcula un polinomio interpolador a trozos con polinomios de grado dos
Como hemos comentado en la introducción, las posibilidades gráﬁcas 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áﬁcos de nivel y de densidad,
además de dibujar objetos y ﬁguras arbitrarias. En esta práctica exploraremos algunas
de las posibilidades que Mathematica ofrece a la hora de hacer gráﬁcas además de su
uso en el reconocimiento de los puntos extremos, en particular para funciones de dos
5.1 Gráﬁcas en Dos y Tres Dimensiones
5.1.1 Gráﬁcas en el plano.
Para hacer una gráﬁca 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
un valor máximo, x
Plot [expr, {x, x
Así la gráﬁca de la parábola y = −x
+ 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áﬁcas de
funciones que tienden a inﬁnito o que tienen singularidades, así por ejemplo podemos
producir la gráﬁca de la tangente en valores donde la tangente se hace inﬁnito (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.
Cuando Mathematica dibuja una gráﬁca, debe tomar muchas decisiones. Estas deci-
siones pueden ser modiﬁcadas 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 especiﬁcar en cualquier orden después de los argumentos
}, opciones]
Las opciones se especiﬁcan 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 especiﬁca 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áﬁco que no ayuda mucho en su
Modiﬁcando el estilo de una gráﬁca
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áﬁco.
Plot[expr, rango, PlotStyle->Thickness[a]]
El valor inicial para la función Plot es Thickness[0.004].
La función RGBColor permite especiﬁcar 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
,..., los argumentos de la función. Las longitudes
,... se especiﬁcan como fracciones del ancho total del gráﬁco.
Plot[expr, rango, PlotStyle->Dashing[{d
,...}]]
Todas estas opciones pueden usarse simultaneamente con PlotStyle si se especi-
ﬁcan en una lista de listas. Lo cual además permite dibujar varias curvas al mismo
tiempo con estilos diferentes.
Gráﬁcas de varias curvas
Plot permite obtener la gráﬁca 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
Plot[{ecuación 1, ecuación 2, ...}, {x, x
Como hemos indicado antes cada una de las líneas puede dibujar con un estilo
diferente, lo que permite su mejor visualización.
Gráﬁcas paramétricas
Este tipo de gráﬁcas 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áﬁcas en
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
[t],f
[t]},{t,t
5.1.2 Gráﬁcas Tridimensionales
La función Plot3D produce una gráﬁca 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
},{y,y
}, opciones];
Una opción interesante de Plot3D es que la gráﬁca 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 ﬁgura, sin
más que mover el cubo de referencia mediante el ratón.
La opción Show permite redibujar un gráﬁco, combinar varios de ellos o cambiar las
opciones de uno construido antes.
Los gráﬁcos tridimensionales estan ya coloreados por defecto.
La opción ParametricPlot3D produce gráﬁcas tridimensionales donde las coordenadas
x, y, z están dadas en términos de dos parámetros
ParametricPlot3D[{f
[u,v],f
[u,v]}, {u,u
}, {v,v
opciones], o
[u],f
[u]}, {u,u
}, opciones],
Al igual que antes, la ventaja de utiliza esta opción consiste sobre todo en el dibujo
de funciones que son diﬁciles de hacer en coordenadas cartesianas.
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:
Así la gráﬁca de la curva y = x
+ 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
= 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
10m/s. Podeis comprobar que este objeto sigue la trayectoria parabólica dada
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
2t −5t
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.
Para construir un sistema de coordenadas polares en el plano, se ﬁja 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)
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-
y = r sint
Ejercicio 33 Dibujar las siguientes curvas utillizando coordenadas paramétricas y carte-
sianas:
Ejercicio 34 Dibujar las siguientes gráﬁcas polares
r = 2 cos 3t (rosa de tres pétalos) ¿Cómo dibujarías una rosa de cuatro pétalos?¿Yde
= 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 superﬁcies, 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,
En general, las coordenadas polares se conocen por (r, θ). Utilizamos t como ángulo por comodidad
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.
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
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
y = 2 sint
Ejercicio 37 Dibujar la curva intersección del cilindro x
= 9 y el plano x = z.
Ejercicio 38 Dibujar la curva intersección del paraboloide x
= z y el plano x = y.
En un sistema de coordenadas esféricas un punto P del espacio se representa por un
trio ordenado (R, t, u)
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 ≤ π.
x = Rsinucos t
y = Rsinusint
z = Rcos u
u = arccos
Este tipo de coordenadas es especialmente útil para dibujos con un centro de
En general, las coordenadas esféricas se conocen por (ρ, θ, φ). Utilizamos la otra notación por
5.3 Dibujo de superﬁcies, parametrización de superﬁcies
Una superﬁcie necesita dos parámetros para poder dibujarla, el Mathematica dibuja de
forma inmediata superﬁcies que son funciones de dos variables, z = f(x, y)
Plot3D[x+y, {x,-1,1},{y,-1,1}];
Pero si las superﬁcies no son planos, su dibujo es mejor si se utilizan las coordenadas
Ejercicio 39 Dibujar las siguientes superﬁcies:
x = y (plano)
= 9 (cilindro de radio 3).
= 4z (paraboloide).
(cono).
= 1 (hiperboloide)
= 1 (esfera)
Ejercicio 40 Dibujar las siguientes superﬁcies dadas en coordenadas paramétricas e
identiﬁcalas:
x = (2 + cos u) cos v, y = (2 + cos u) sinv, z = sinu, 0 ≤ u ≤ 2π, 0 ≤ v ≤ 2π
Ejercicio 41 Encontrar, en su caso, las ecuaciones de las superﬁcies anteriores en
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
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.
D[f, x ]
calcula la derivada parcial
D[f, x , y, ...]
calcula la derivada múltiple
. . . f;
D[f, {x , n}]
proporciona la derivada n-ésima
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
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,
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, x ]
da la derivada total
Dt[f, x , y, ...]
da la derivada total múltiple
· · · f, y
Dt[f, x , Constants →{c, d,...}]
proporciona la derivada total con c, d, constantes. Podemos hacer una deﬁnición
Dt[y, x ] = algo
pudiendo anular la deﬁnició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
, 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íﬁcas 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
(x) sabiendo que cos(x + siny) = siny.
Ejercicio 43 La trayectoria de un móvil en dos dimensiones viene descrita por las
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 = π.
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
. Aproximar esta función en torno a los
puntos 0 y
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
Ejercicio 46 Dada la función
, (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áﬁcas de las funciones dadas.
Ejercicio 47 Aplicar el teorema de los incrementos ﬁnitos 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
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
+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.
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)
Ejercicio 51 Dibujar las curvas siguientes:
Curva intersección del cilindro x
Curva intersección del paraboloide x
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
, calcula y clasiﬁca sus puntos ex-
Ejercicio 53 Hallar los puntos extremos de las funciones siguientes y determinar
cuales son máximos, mínimos y puntos silla locales.
−xy ,
Dibujar las gráﬁcas 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
− x −y + 1 en el disco unidad. Haz
una representación gráﬁca.
Ejercicio 55 Hallar y clasiﬁca los puntos extremos no degenerados de la función
f(x, y) = −120x
Ejercicio 56 Hallar y clasiﬁcar los puntos extremos de la función f(x, y, z) = 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) = 1 −e
−(y−2)
1. Dibujar la gráﬁca 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.
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
+ xy = 2.
1. Demostrar que deﬁne 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 superﬁcie en un entorno del punto (1, 1, −1) .
3. Calcular la aproximación de segundo grado en dicho punto.
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áﬁcos . . . . . . . . . . . . . . . . . 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áﬁcas en Dos y Tres Dimensiones . . . . . . . . . . 5.1.1 Gráﬁcas en el plano. . . . . . . . . . . . . . . . 5.1.2 Gráﬁcas 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 superﬁcies, parametrización de superﬁcies . 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 . . . . . . . .
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áﬁcos. 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 deﬁnidas (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.
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 signiﬁcado. 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 signiﬁcado. 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 *)
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
por tanto. argumentos de los requeridos Mathematica devuelve un mensaje de error y como output la expresión sin evaluar.2 Funciones no incorporadas Como se ha indicado en la introducción. Aquí deﬁnimos la función g(x. 3] Out [] =6 En algunas ocasiones necesitamos una deﬁnición aplazada. Una función puede tener más de un argumento. 6 . Un ejemplo muy sencillo es deﬁnir una función que eleve al cuadrado su argumento. no todas las funciones requieren un único argumento.y_]= x y. f[x_]=x^2 f[2] Out [] =4 El carácter _ (referido como blanco) en la parte de la izquierda es muy importante.x] Si una función es invocada con más. El concepto análogo al concepto matemático de variable en la terminología de Mathematica es el término argumento. Por ejemplo. No hay que poner un blanco en la parte de la derecha de la deﬁnición.1] factorial[4] Out [] =24 En este caso el signo igual (=) debe ir precedido por dos puntos (:). Evidentemente. 3] 1. de forma que cuando queremos calcular sin(π/2) escribimos Sin[Pi/2]. o menos. Cuando una función requiere más de un argumento. cuando deﬁnimos la función factorial factorial[0] = 1. y) = xy: g[x_. factorial[x_ ]:= x factorial[x . podemos añadir funciones a Mathematica.que se representa por Sin. g[2. Sin[2. Mathematica es programable y. Aquí calculamos la derivada de x2 : D[x^2. estos van separados por comas.1.
1. vmax ejecutan una función para var = vmin hasta var = vmax . N[Sqrt[2]] Out [] =1.2 Aproximaciones numéricas Mathematica trabaja con aritmética exacta pero. para hacer la suma de los diez primeros números naturales. Los iteradores de la forma var. {i. e. Como veremos más adelante muchos problemas se han de resolver de forma aproximda. 1.20] Out [] =1. utilizar el comando anterior para calcular varias precisiones.1.3 Sumatorios i=n m P El sumatorio f (i) en Mathematica se expresa como Sum[f[i]. m}] En su forma más general la función Sum tiene la siguiente sintaxis: Sum[expr. 7 √ 2. Mathematica utiliza el comando N para dar una aproximación de un resultado numérico con la precisión deseada. hacemos Sum[i. no es operativa. para obtener una aproximación utilizaremos el comando N. vmin. Por ejemplo. n. {i. 10}] Out [] =55 En cambio.1. {i. {i. incrementando var en 1 en cada iteración. 2}] Out [] =25 1.41421 Por defecto Mathematica trabaja con números de seis cifras. hacemos Sum[i. En nuestro caso utilizaremos tres o cuatro elementos para un iterador. al menos. min. esta situación no es posible o. 10. a menudo. Podemos cambiar el número de dígitos con los que Mathematica nos presenta la aproximación: N[Sqrt[2]. 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. para hacer la suma de los 10 primeros números naturales impares. para calcular la raíz cuadrada de 2 introducimos Sqrt[2] √ Out [] = 2 En esta situación. y π con .4142135623730950488 Problema 1 Como ejemplo. Por ejemplo. max.
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 simpliﬁca 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].3 Posibilidades simbólicas y algebraicas Además de trabajar con expresiones numéricas. . D[%] Out [] =−ex sin ex 8 . Estas reglas también las siguen las funciones y constantes predeﬁnidas en Mathematica como por ejemplo Sin[x] Tan[0] Log[2] E Pi I Sqrt[8] .. • 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. Mathematica puede manipular expresiones algebraicas.1. 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.. 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 ∗.
2}] Out [] =2ex + 4xex + x2 ex Para calcular límites tenemos el comando Limit. terceras. : D[x^2 E^x.1 Problemas. 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. 9 . x− > 0] Out [] =∞ Para resolver ecuaciones Mathematica tiene el comando Solve: Solve[xˆ2 − 1 == 0. Por ejemplo. {x. y}] El comando Solve no puede resolver de forma exacta ecuaciones polinómicas de grado igual o mayor que cinco. x − yˆ2 == 0}. b a − a−b a+b Problema 2 Calcular y simpliﬁcar 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 .Hay que prestar atención al escribir esta función porque tanto el coseno como el número e son funciones predeﬁnidas en Mathematica y han de seguir las reglas de sintaxis descritas anteriormente. Limit[1/x. Este comando admite argumentos opcionales que nos permiten calcular derivadas segundas. 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.{x.
Problema 6 Calcular la derivada primera de xy 2 − x3 respecto de x y de y. por ejemplo.b->-2} Evaluarla en a = 1. restringiendo si es conveniente su dominio. Por ejemplo.4 Asignaciones Supongamos que queremos evaluar la expresión exp= (a ∗ b−a^b)/(a∗b − 1) en a = 3. No obstante. definición . pero para evitar problemas es recomendable abstenerse de usar letras mayúsculas en el nombre. simplemente aplicaremos una regla o lista de reglas. cuya sintaxis es de la forma: nombre-función[variable1_. al deﬁnir la sucesión a[n_]:= (−1) ˆn n+1 hay que tener en cuenta que el subrayado indica que n es la variable. las constantes. A continuación podemos escribir el tipo de variable. b = −2. al evaluar la función substituyendo las variables por los valores deseados ya no debemos escribir el subrayado. variable2_ . ¿Qué ha ocurrido? Como hemos visto en los ejemplos anteriores.. (sin espacios entre / y . las funciones y los comandos que Mathematica lleva incorporados tienen su primera letra en mayúscula. con el comando /. 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. Puede constar de una sola letra o de diversas letras..): exp /.{a->3. variablen_]:= donde nombre-función es el nombre que asignamos a esa función. Para ello no necesitamos deﬁnirla como una función. b = 1. a[n Integer] o a[n Real] 10 . El usuario puede deﬁnir sus propias funciones. Entre corchetes y separadas por comas escribiremos la variable o variables de las que dependerá nuestra función. . En la deﬁnició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. La forma de deﬁnirlas consiste en utilizar lo que se denomina una assignación.
Recordemos que si queremos que el resultado aparezca en forma decimal hemos de usar el comando N. veamos un ejemplo For[i=1.Print[i]] 1 3 5 For[inicio. Mathematica imprime en la pantalla (Print) los 10 primeros números primos (Prime). 1. 1. 10} expresa que la variable n toma los valores del 1 al 10 incrementándose en cada paso una unidad.i=i+2. Uno de los más habituales es el comando Do. n ∈ N. El iterador Table es muy usado para construir tablas 11 . Si ahora queremos cancelar una asignació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. Como ejemplo vamos a ejecutar Do[Print[Prime[n]].i≤5. Utilizando la ayuda de Mathematica y el comando N calcular con varias precisiones √ √ el valor de 3 2 i 5 π. argumento] ejecuta el argumento desde inicio hasta que falla el test.5 Iteradores Los iteradores son comandos que nos permiten realizar de forma sencilla procesos que se repiten un número determinado de veces. 10}] Out [] = 2 3 5 7 11 13 17 19 23 29 Como puede apreciarse. utilizaremos el comando Clear. {n.4. x] := n x. con el incremento que se pida. Se puede añadir otro argumento si queremos cambiar el incremento. incremento. test. La lista {n. i++ equivale a incrementar el paso en uno. 1.1 Problemas √ Problema 9 Deﬁnir raiz[n. 1.
bn desde n = 10 hasta n = 20 : 2. producir gráﬁcos de nivel y de densidad. n2 n = 1. b10000 : Problema 11 Muestra el valor de males. Trabajaremos sobre todo con la representación paramétrica de curvas y superfícies.Table[expr. While. . max. {i. b1000 . Por medio de Mathematica podemos dibujar funciones y datos en dos o tres dimensiones. y calcular 1. min. en particular de funciones de dos variables. b10 . Problema 10 Deﬁnir bn := 1 . . . Dedicaremos una práctica a explorar algunas de las posibilidades que Mathematica ofrece a la hora de hacer gráﬁcas.6 Gráﬁcos Las posibilidades gráﬁcas de Mathematica han sido una de las causas de su éxito. 12 . Estaremos interesados sobre todo en la ayuda que puede prestar la interpretación gráﬁca en el cálculo de los puntos extremos de funciones. 2. paso}] Otros iteradores. la sintaxis y el funcionamiento de los cuales los podemos encontrar con los comandos de ayuda de Mathematica. √ 2 con una precisión desde 1 hasta 10 cifras deci- 1. b100 . bn desde n = 10 hasta n = 100 pero con n múltiplo de 10 : 3. además de dibujar objetos y ﬁguras arbitrarias.
IdentityMatrix[n] genera la matriz identidad n × n. 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. Así. {n}] genera una matriz cero.1 Matrices En Mathematica los vectores se representan mediante listas.d}} representa la matriz 2 × 2 cuyas ﬁlas corresponden a cada una de las ﬁlas de la matriz: (a. {m}. como listas de listas. etc. b) y (c. 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. 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. d). El comando MatrixForm[matriz] 13 . cambios de base en espacios vectoriales. Con lo que aquí se exponga.Capítulo 2 Álgebra lineal 2.1. La idea será ofrecer una lista de los comandos necesarios y mostrar ejemplos que ilustren su utilización. Por ejemplo.b}. y las matrices. por ejemplo. resolución de sistemas de ecuaciones lineales. Table[0. {c. estudio de aplicaciones lineales con determinación de los subespacios núcleo e imagen. la lista de listas {{a. diagonalización.
14 . representando cada una de sus ﬁlas. si en la matriz de entrada algunos elementos son números reales aproximados. siempre que ambos tengan la misma longitud. m1. se puede controlar el número de cifras signiﬁcativas a manejar. en particular. La mayoría de las funciones matemáticas en Mathematica se pueden aplicar por separado a cada elemento de una lista. j de la matriz m. para todas las funciones que tienen el atributo Listable.imprime la matriz en forma de tablero bidimensional. como en cualquier otro cálculo numérico. Obsérvese que Mathematica supone implícitamente que el determinante es no nulo. Cuando se le da una matriz cuyos elementos son números exactos o símbolos. si v denota un cierto vector. Ahora bien. tiene sentido escribir m1+m2. i] da la ﬁla i-ésima de m.v. Det[m]. Por otra parte. k] para calcular la potencia k-ésima de m. Mathematica obtiene un resultado numérico aproximado. De hecho. Para que se tenga una matriz válida.v. Operaciones con matrices y vectores. Esto ocurre. Cálculo del determinante de una matriz cuadrada . de manera que los elementos de la matriz formen efectivamente un tablero rectangular. m[[i]] o Part[m.m2 De igual modo. una matriz es una lista de vectores. El comando Inverse[m] calcula la inversa de la matriz cuadrada m. Al multiplicar la inversa por la matriz original debería dar la matriz identidad. tienen sentido las operaciones v. Otros comandos que se utilizan habitualmente al trabajar con matrices son: Transpose[m] para calcular la traspuesta de la matriz m. producto. MatrixPower[m. Así. proporcionan resultados muy diferentes. Como ya se ha dicho.m1.m1. el programa proporciona la inversa exacta. haciendo así más clara su estructura. c m1. en ese caso. Mathematica admite las operaciones del álgebra matricial (suma. pues aunque se representan de igual forma. todas las ﬁlas han de tener la misma longitud. j]] proporciona el elemento i.v debiendo tener cuidado con estas dos últimas operaciones. si m1 y m2 son dos matrices dadas y c es un escalar. producto por escalar) siempre que las dimensiones sean las correctas. 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. Mathematica dispone de algunas órdenes para hacer referencia a los elementos de la matriz: m[[i.
Las funciones incorporadas que Mathematica ofrece para resolver este tipo de sistemas de ecuaciones son los siguientes: LinearSolve[m. cuando no se sabe con antelación cuántas variables hay en el problema.2 Sistemas de ecuaciones lineales Para resolver un sistema de ecuaciones lineales dado. Ejercicio 1 Discutir y resolver en su caso los siguientes sistemas:  2x + 3y − z = 0  1. proporciona una base del subespacio núcleo de la matriz m.2. RowReduce[m] transforma la matriz m en otra de ﬁlas reducidas. y después resolverlas usando el comando Solve. puede ser conveniente escribir todas y cada una de las ecuaciones explícitamente. esto es.1. En muchos casos. 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. procederemos directamente con los comandos involucrados y analizaremos en detalle algunos ejemplos. Este esquema también es útil a la hora de diseñar algoritmos. sobre todo si el número de ecuaciones y de incógnitas es elevado. 4x + 6y − z = 0  8x + 12y − 3z = 0 15 . y aplicar después operaciones matriciales para resolverlo. m es la matriz de coeﬁcientes y b es la matriz de los términos independientes.b] da un vector x que resuelve la ecuación matricial m · x = b. por tanto. NullSpace[m] da un conjunto de vectores cuyas combinaciones lineales satisfacen la ecuación matricial m · x = 0. mediante combinaciones lineales de las ﬁlas. puede resultar más adecuado convertir el sistema en una ecuación matricial. coincidiendo. En primer lugar. Un sistema de ecuaciones lineales se puede escribir en forma matricial como m · x = b. varias son las alternativas que Mathematica ofrece. el rango de la matriz con el número de ﬁlas no nulas de esta matriz. Como el estudiante ya está familiarizado con la teoría general de los sistemas de ecuaciones lineales. estamos en disposición de analizar (y resolver en su caso) cualquier sistema de ecuaciones lineales. sin embargo. donde x es el vector de variables. tal como se hace normalmente en Matemáticas.
en principio. x + ay + z = a  x+z =1   4x + 2y + z = ax 2x + 4y + 2z = ay 4. en general. soluciones algebraicas explícitas de una tal ecuación.  2x + 4y + 8z = az Valores y vectores propios Como es bien sabido.  x1 + x2 + 2x3 + x4 = 1   ax − 2y + z = 1 5.3   x1 + 3x2 + x3 − x4 = 6 2x1 + 7x2 + 3x3 − 4x4 = 15 6.2. Eigenvalues[N[m]] 16 .  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. de manera que es imposible dar resultados algebraicos explícitos para los valores y vectores propios de una matriz genérica. llamados vectores propios.1. resolver una ecuación polinomial de grado n. Mathematica dispone de los siguientes comandos para abordar este problema: Eigenvalues[m] proporciona una lista de los valores propios de la matriz m. 2. El cálculo de los valores propios de una matriz n × n supone. Eigenvectors[m] da una lista de los vectores propios de m (una base de cada subespacio propio). 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. 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. tales que m · xi = λi xi .
5 2 1 x + 5y = a 2x + y = b dependiente de dos parámetros. la cual proporciona una lista con las matrices c y j. Problema 14 Consideramos ahora el sistema ½ x + 2y = a x + 2y = b que es incompatible. mientras que Eigenvectors da una lista de vectores propios linealmente independientes. los valores y vectores propios de una matriz juegan un papel muy importante a la hora de analizar la diagonalizabilidad de dicha matriz. ((A − B)B)T . 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).2 Problemas de Álgebra Lineal  10 −6 −9 B= 6 −5 −7  −10 9 12  calcula A + B. La función Eigenvalues da siempre una lista de n valores propios para una matriz n×n. El método más eﬁciente es usar LinearSolve. cuando se da una matriz cuyos elementos son números reales aproximados. Mathematica encuentra valores numéricos aproximados para valores y vectores propios.proporciona una aproximación numérica a los valores propios. En el caso general. A2 . Mathematica lo indica. Por tanto. etc. si el número de tales vectores propios es menor que n. 2. B − 4A. Problema 13 Resolver el sistema ½ Problema 12 Dadas las matrices   3 −4 5 A= 8 0 −3  . Ejercicio 2 Estudia y resuelve el   x   x  2x   5x sistema + + + + 2y 3y 3y 6y + 3z = 6 + 8z = 19 + z = −1 + 4z = 5 17 . La función que lleva a cabo esta descomposición es JordanDecomposition. Como es bien sabido. dada una matriz m. pudiendo estar alguno de ellos repetidos. det(B 3 ) y las raíces del polinomio característico de A. entonces Eigenvectors añade vectores nulos a la lista hasta completarla con n vectores. (AB)−1 .
(2. 2. (2. ¿Para qué valores de a la matriz es diagonalizable? 18  . 1). −7. 0. hallando explícitamente la matriz de paso. −1. ecuaciones   ax x  x según los valores de a. −1). −1. −2. 2. 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 8 Dada la matriz  1 a 1 A =  −1 1 −a  1 0 a+1 1. Calcular el polinomio característico de A. otra con (1. Estudia su diagonalización en función de los valores de a. 2. (2. a ≥ 0 0 a −a  2 −3 −1 1 0 . 1. −4)  hallando los rangos de esas dos matrices y una base de su núcleo. 1. 2). (1. −2. −1. Ejercicio 6 Hallar la inversa de: C =  2 4 −2 5   2 1 −1 1  D= 0 2 5 2 −3 1. 0. 2. 3. 3. 0). 0 0 t−4  5 0   4  −1   (−2.Ejercicio 3 Estudia y resuelve. 0. 0. −1. 2. −2. 1). 2. (−1. 2. el sistema formado por las + y + z = 1 + ay + z = a + y + az = a2 Ejercicio 4 Forma una matriz cuyas ﬁlas sean los vectores (−1. −1. así como sus valores propios. 17. −2).  t−2 4 3 Evaluar el determinante de: A =  1 t + 1 −2  . 1. Diagonalizar A (si es posible) cuando a = 4.
. + a2n xn = b2. 2. 19 .. Los métodos iterativos para el cálculo de valores y vectores propios son usados por Mathematica en los comandos Eigenvalues[N[m]]. Para dichos valores.. 3x + y − z. B= 0 1 2  3 0 a 0 0 2 Ejercicio 10 Calcular los valores y vectores propios del endomorﬁsmo f : R3 −→ R3 deﬁnido por f (x. Para resolver el sistema de ecuaciones lineales: E1 : a11 x1 + a12 x2 + . z) = (x + y + z. −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  . y.. La ecuación Ei puede multiplicarse por una constante no nula λ y se puede usar la ecuación resultante en vez de Ei . 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  . calcular la matriz de paso y la matriz diagonal. 2 0 4 2 2 −1 0 0 2 0 0 5 µ ¶ 3 −2 Ejercicio 12 Dada la matriz A = −1 2 1. sumarla a la ecuación Ei y usar la ecuación resultante en vez de Ei . en particular veremos la resolución numérica de sistemas de ecuaciones lineales..  −1 3 0  . E2 : a21 x1 + a22 x2 + . Obtener su inversa utilizando el teorema de Cayley-Hamilton.. 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. + a1n xn = b1.  −2 3 0  . Esta operación se denota por (λEi ) → Ei . 2. Esta operación se denota por (Ei + λEj ) → Ei .. como ya hemos comentado.. Obtener p (A) donde p (x) = 3 + 2x − 5x2 .. 1. En : an1 x1 + an2 x2 + . La ecuación Ej puede multiplicarse por una constante no nula λ.3 Introducción a los Métodos Numéricos. 2. + ann xn = bn.3.
Esta operación se denota por Ei ↔ Ej . Al hacer este tipo de eliminación muchas veces se necesita cambiar el orden de las ﬁlas para conseguir los ceros.... sólo sus coeﬁcientes.   ..... En : a0 xn = b0 nn n. El Mathematica ofrece paquetes que permiten realizar de forma numérica muchos cálculos algebráicos.. Nosotros utilizaremos el paquete de eliminación gaussiana.. se van obteniendo el resto de las incógnitas. los pivotes. Por esto un sistema lineal se reemplaza frecuentemente por una matriz....3. . ..... Despejando xn en la última ecuación y sustituyendola en la ecuación En−1 se obtiene xn−1 .. conocida como matriz a1n a2n ..  a11 a12  a0 22   .1 Eliminación Gaussiana y sustitución hacia atrás como una matriz.  b0 n que equivale al siguiente sistema E1 : a11 x1 + a12 x2 + . a0 nn ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯  b1 b0  2  ..  a21 a22 .... 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.. E2 : . 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.. a1n a0 2n .  a11 a12 .. ..  bn El sistema anterior lo podemos representar ampliada. sucesivamente.... 2. ... a0 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... La ecuaciones Ej y Ei pueden intercambiarse.. es decir. Al realizar las operaciones anteriores las variables no cambian. Despejando en la ecuación anterior se obtiene xn−2 .. que contiene toda la información del sistema. . an1 an2 . + a1n xn = b1. + a0 xn = b0 22 2n 2.. ann ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯  b1 b2   . las ﬁlas para conseguir ceros por debajo de la .3.. que se carga mediante 20 . . y así. Esta técnica se conoce como pivoteo máximo de columna o pivoteo parcial. Esto también es necesario porque cuando los cálculos se realizan usando aritmética de dígitos ﬁnitos pueden aparecer muchos errores debido al redondeo de las cifras.
pero no así la de la derecha. -1}}]. como el primer paso se puede ver de forma abstracta como la factorización de la matriz de los coeﬁcientes en el producto de una matriz triangular inferior. 0}. b] Out[5]:= { 75 . -8.-3.2}. por una matriz triangular superior. la matriz de los coeﬁcientes es la misma pero cambian los términos independientes.<<LinearAlgebra‘GaussianElimination‘ Como hemos visto. 12 . es decir. Existen casos en que se quieren resolver varios sistemas de ecuaciones lineales donde coincide la parte de la izquierda del sistema. −81 } 44 44 22 In[6]:= a . la función LinearSolve permite calcular la solución de un sistema de ecuaciones lineales.0. 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 coeﬁcientes y la orden LUSolve In[1]:= <<LinearAlgebra‘GaussianElimination‘ In[2]:= MatrixForm[a = {{5. Por eso. 2}. 9. {7.0} 21 .3. −3 }}. In[5]:= c=LUSolve[lu.7}.b Out[6]:= {0.{7.{ −2 .{-2. −22 }.   5 3 0 9 2  Out[2]:=  7 −2 −8 −1 In[3]:= lu = LUFactor[a] Out[3]:= LU[{{ 5 . −38 . −37 .{2. 3.1}] 7 19 19 7 7 7 In[4]:= b={6. El segundo paso de volver hacia atrás sustituyendo se puede hacer mediante LUSolve. Estas dos ordenes están el el paquete <<LinearAlgebra‘GaussianElimination‘. U (factorización LU) se puede recurrir a LUFactor que produce esta factorización y da la información sobre que ﬁlas han de cambiarse para que se mantenga la estabilidad numérica en la computación.c .9. L. En este caso también se puede usar LinearSolve pero mucho del trabajo es repetitivo.
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 coeﬁcientes y la orden LUSolve.m}].m}.1. In[1]:= b1={6.{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 ﬁlas de dicha matriz para hacer la reducción gaussiana.1. Do[p[i.2.n}]. Do[p[i. Do[p[i. Do[p[i.m}].n}] Veamoslo en un ejemplo Ejemplo 3 Construir una matriz (8 × 8) mediante Do.c .n}]] 22 E2 : 7x1 + 9x2 + 2x3 = −1 .m}.j]. 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.i+1]=2.7}. m=8. n=8. Veamoslo Ejemplo 2 Resolver el sistema de ecuaciones: E1 : 5x1 + 3x2 = 2 E3 : −2x1 − 8x2 − x3 = −2 utilizando los resultados del problema anterior.1.{i. En términos matriciales. In[2]:= c=LUSolve[lu.m-1}].{i.{i. Estudiar para que valores del parámetro a tiene solución única. MatrixForm[a=Array[p. {m.-3.1. El Mathematica permite construir matrices utilizando la función Do[p[i.1.{i.1. b1] In[3]:= a .i]=7.{j.{j.j]=0.i-1]=-4.
. Ejercicio 16 Repetirlo para un sistema de 100 ecuaciones y 100 incógnitas.. de forma que A = QT R.Ejercicio 14 Resuelve el sistema representado en la matriz anterior utilizando como matrices de los términos independientes los vectores b = (9. Mathematica la calcula usando QRDecomposition[matriz] La descomposición de Schur de una matriz A consiste en encontrar dos matrices S y T.3. Utilizando Do para construir estos vectores.. tal que A = ST S T . . 5. 3. b = (2.. 3). 5. 5. 2.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.. 3. .. 5)..... 5. 23 . 5. Ejercicio 15 Resolver un sistema lineal de 20 ecuaciones y 20 incognitas. 5... ortonormal la primera y triangular la segunda. 5. 3).. ortogonal la primera y triangular superior la segunda. utilizando como matriz de coeﬁcientes una matriz que sigua la recurencia de la matriz del ejemplo anterior y como vector de términos independientes el vector b = (9. 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. 5..
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).1) sólo requiere el cálculo de una división. se vió la necesidad de utilizar técnicas numéricas para resolver las ecuaciones no lineales.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.1) donde f es una función real de variable real. Durante siglos se buscó la fórmula para resolver polinomios de quinto grado hasta que Abel demostró que no tenían solución.1) necesita extraer raíces cuadradas. 24 . al describir el movimiento de los planetas alrededor del sol o de los satélites alrededor de los planetas se obtienen órbitas elípticas. Estos resultados indican que. nos proponemos resolver ecuaciones de la forma f (x) = 0 (3. desde muy pronto. Si P (x) = ax + b. por ejemplo. 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. El caso más sencillo de ecuaciones no lineales es cuando la función f es una función polinómica P (x) . Las ecuaciones no lineales son más habituales de lo que pueda pensarse. cero o raíz de la ecuación. 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. se han de encontrar los ceros de la función: f (x) = x − e sin x − z. es decir. Si P (x) = ax2 + bx + c. la solución de (3. la solución de (3. 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.
bk+1 ] = [ak . |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. 25 . |xn+1 − xn | < ε. Si f (ak ) · f (mk ) < 0 ⇒ [ak+1 . Se basa en el teorema de Bolzano: Teorema 1 Dada una función f (x) continua en un intervalo [a. se para el proceso. mk ] . b] que veriﬁca la condición f (a) · f (b) < 0. Para construir el algoritmo de iteracción se crea una sucesión de intervalos encajados de la siguiente forma: 1. b0 ] = [a. después. b] . se utiliza como criterio de parada el que dos iteraciones sucesivas cumplan uno de los dos siguientes criterios: 1. existe α ∈ (a. aunque siempre converge a ella. Se calcula el punto medio del intervalo [ak . criterio de la diferencia relativa. En el caso de tener raíces muy próximas es conveniente determinar intervalos que contengan una única raíz. por lo que suele usarse inicialmente para determinar los intervalos donde aplicar los métodos iterativos más rápidos.Calcular la raíz de una ecuación con un ordenador utilizando técnicas numéricas tiene sus limitaciones. |xn+1 − xn | < ε. bk ] . bk+1 ] = [mk . Se parte del intervalo [a0 . construir de forma iterativa una sucesión de valores que converja a la solución. criterio de la diferencia absoluta. A menudo la raíz es un número real que no tiene una representación exacta en el ordenador. bk ] . k =k+1 Si f (ak ) · f (mk ) > 0 ⇒ [ak+1 . tendremos que conformarnos con una aproximación que veriﬁque una condición impuesta en el algoritmo de la forma |f (x)| < ε donde ε es una constante positiva préviamente ﬁjada 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 suﬁcientemente cerca del valor exacto de la raíz. mk = 0.5 · (ak + bk ) Si |f (mk )| < ε1 ⇒ α ≈ mk . 3. 2. En este caso. b) tal que f (α) = 0. 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.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. 2.
1. f (x1 )) .5 sin 1. para evitar un proceso excesivamente largo. se encuentra más cerca de x0 buscado. A continuación se traza la recta tangente a la curva en el 1 punto (x2 . f (2) = 2 − 0. 3. f (1) = 1 − 0. 1.125.7 = 7.7 = −2.5 − 0. obtenemos la fórmula xn+1 = xn − f 0 (xn ) f (xn ).25] . 1. 1. si |g (xk )| < ε1 ⇒ α ≈ xk . Como hemos comentado. se basa en utilizar una ecuación de la forma g (x) = x equivalente a f (x) = 0 con f (x) derivable. también llamado de Newton-Raphson. en principio. f (1.5 sin 1 − 0.1875] es decir.5) = 1. 120 74 < 0.5 sin 1. Ejemplo 4 Consideremos el ejemplo anterior f (x) = x − e sin x − z. pero no utiliza propiedades de la función que se estudia y su convergencia es muy lenta.25 − 0. 1. 2] . 1.1875) = 1. la cual converge a la raíz x0 .5 y z = 0. kmax es el valor de la iteración máxima que consideremos.301 25 > 0 ⇒ [1.125) = 1.7 = 0.7 = 0.5 sin 2 − 0.3. Esta recta 1 corta al eje de las x en un punto x2 = x1 − f 0 (x1 ) f (x1 ) que.7. f (1. 26 .7 = −0. que nos permite construir la sucesión {xn }n∈N recursivamente. Para encontrar el punto en el que f (x0 ) = 0 se parte de un valor x1 . después de cinco iteracciones sabemos que la raíz está en el intervalo [1. El cálculo se para cuando |xk − xk−1 | < ε2 o cuando k > kmax .15625 sabemos que el error que se comete es menor que 0. este método converje siempre y da cotas superiores e inferiores para la raíz buscada. desde el que se traza la recta tangente a la curva y = f (x) en el punto (x1 .1875] . donde nos aseguramos que α ≈ xk .0 312 5.5 sin 1. f (1. 550 8 × 10−2 > 0 ⇒ [1. 1 f 0 (xk−1 ) f (xk−1 ) . llamado pivote. f (x2 )) a partir del cual se localiza el punto x3 = x2 − f 0 (x2 ) f (x2 ) y así 1 sucesivamente. de ecuación y − f (x1 ) = f 0 (x1 ) (x − x1 ) . 2] . Los cálculos se paran cuando |bk − ak | < ε2 o cuando k > kmax . 1.25) = 1. luego será el intervalo [1.125 − 0. Se calcula xk = g (xk−1 ) = xk−1 − si |g (xk )| > ε1 ⇒ k = k + 1. Empezaremos localizando la raíz: f (0) = −0.5 sin 1. 2. 613 4 × 10−2 < 0 ⇒ [1.1875−0. luego empezamos en el intervalo [0.25] .2 Método de Newton El método de Newton. Es decir.25 − 0. con e = 0.5] .125 − 0. 845 35 > 0. por lo que si aproximamos la solución por el punto medio de éste. Se obtiene α ≈ mk = ak + bk 2 donde ε1 y ε2 son tolerancias ﬁjadas por el algoritmo y que pueden ser iguales o no. Se parte de un valor x0 . se para el proceso.5 − 0. En general. 3.7 = 2.7 < 0. f (1.1875−0.125.125. 378 2×10−2 > 0 ⇒ [1. es un ejemplo de un método de punto ﬁjo. llamado pivote.
etc. k ∈ N. b) para todo k > 0. Para saber las condiciones bajo las cuales son convergentes las iteraciones de punto ﬁjo se utiliza el teorema: Teorema 2 Dada una función g ∈ C 1 ([a. α + δ) se veriﬁca que la sucesión {xk }k∈N converge a α. 8 6 4 2 0. la rapidez con que se aproxima a la 27 . b) . al menos en las proximidades de una raíz. Las iteraciones del método de Newton convergen bajo las condiciones que se especiﬁcan en el siguiente teorema: Teorema 3 Dada f ∈ C 1 ([a. las cuales se supone que se irán acercando a la raíz de la función dada. b) para el cual f (α) = α y f 0 (α) 6= 0 y dada {xk }k∈N tal que si x0 ∈ (α − δ. o bien. 3.Cuando lim xk = α. es decir. debemos resaltar que la aplicación del método de Newton no siempre es posible. 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. existe α ∈ (a. No obstante.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. aproximar el comportamiento de la función y = f (x) por un comportamiento lineal y. 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 . sobre este último ir localizando las raíces. converge más rápidamente que el de la bisección. entonces la sucesión {xk }k∈N converge a α.5 1 1. b]) tal que existe α ∈ (a. diremos que la sucesión converge a la solución del problema k→∞ ya que α es un punto ﬁjo de g (x) . el valor xk se encuentra en la intersección de esta recta con el eje x. b) y la sucesión {xk }k∈N tal que xk = g (xk−1 ) . dado x0 ∈ (a. El hecho de utilizar la función g dada está motivado por la idea de aproximar funciones por sus rectas tangentes. de la secante. se veriﬁca g (xk ) ∈ (a.5 2 2.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. El algoritmo de Newton se emplea ampliamente porque. b) para el cual g (α) = α. b]) tal que |g 0 (x)| < 1 para todo x ∈ (a.
Si existen p ∈ N y c ∈ R diferentes de cero. sale=’’precisión’’. a=m]. Puede comprobarse que el método de la bisección es de orden 1 mientras que el de Newton es de orden 2.apm]. If[sale==’’precisión’’. If[Sign[f[b]]6=Sign[f[m]]. La conx vergencia es más rápida a medida que p aumenta.2) diremos que p es el orden de convergencia mientras que c es la constante del error asintótico. |εk |p (3.Break[]]. Print[’’posible solución exacta:’’. etc. b=b. si p = 2 se dice que es cuadrática.3.k++. El límite anterior signiﬁca 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≤nmax.Break[]]] La impresión de los resultados podemos realizarla con las siguientes instrucciones: apm=SetPrecision[m. tales que k→∞ lim |εk+1 | = c.cifras]. b=m.Print[’’solución pedida:’’. 3. Deﬁnició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 − α. If[Sign[f[a]]6=Sign[f[m]]. m=(a+b)/2. Si p = 1 diremos que la convergencia es lineal. Para poder comparar diferentes métodos introducimos la siguiente deﬁnición. If[b-a<tol. If[Abs[f[m]]<pre.solución verdadera. sale=’’tolerancia’’. por lo que un método de orden más alto es mejor que uno de orden más bajo.3 3. b0=b For[k=1.apm]. siempre que no aumente de forma desmedida el número de operaciones a realizar.1 Resolución de ecuaciones no lineales con Mathematica Método de la bisección Podemos escribir este algoritmo como: a0=a. 28 . a=a]. If[k≤nmax.
3.k]. tol. 29 .k]. pre. sale=’’precisión’’ . nmax y cifras. b.tol]. 1 Dibujar la función f (x) = −2 log x−0.cifras]. ’’. Dibujar primero las funciones para decidir el intervalo adecuado.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 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. If[Abs[f[x]]<tol.Print[’’Se ha llegado al número máximo de iteraciones’’]]] Print[’’Número de iteraciones: ’’. If[k≤nmax. f (x) = x cos x − log x. Obsérvese que apmt da la solución aproximada obtenida por Mathematica usando su propia aproximación.tol]. 1. Break[]]] apm=SetPrecision[x. Print[’’Error máximo cometido: ’’. y se han de introducir los valores para x0. Print[’’posible solución exacta: ’’. y=f[x]+f1[x]x. k≤nmax.02. x=x-(f[x]/f1[x]).x]. sale=’’tolerancia’’.3.5 y comprobar como de cerca se ha quedado x la aproximación obtenida. Print[’’Se ha llegado al número máximo de iteraciones’’]]] donde f1[x]=D[f[x]. Break[]]. ’’. apm]. For[k=1. apm]. Ejercicio 17 Utilizar el algoritmo del método de la bisección para resolver la ecuación 1 − 2 log x = 0. Print[’’solución pedida: Print[’’Número de iteraciones: Print[’’Error máximo cometido: ’’. If[Abs[y]<pre. If[sale==’’precisión’’. k++.
] encuentra las raíces de las ecuaciones ec1.3... f (x) = e−2x − 1 + x. Se puede usar también FindRoot[ecuación==0. {x. 2 Encuentra de forma aproximada el valor de su raíz con un error menor que 0.{x.y0}..xmax}] busca la solución y se para si x está fuera del intervalo (x min.b}] 30 . f (x) = 2x − e−x . x max) FindRoot[{ec1. InterpolateRoot[función. simultaneamente.. Ejercicio 19 Utilizar el método de Newton para encontrar.a. tos. suponiendo que la función tiene un ”buen” comportamiento.ec2.. x0}.}..01.b}] InterpolateRoot[ecuación..x] Si la función no es polinómica se ha de recurrir a: FindRoot[ecuación==0. Para encontrar las raíces de funciones polinómicas de forma numérica. con cinco decimales exac³ x ´2 . 3. {x. {x. No obstante. x0. la raíz de la ecuación sin x = 2 Ejercicio 20 Dada la función f (x) = 1 x + ex . x0. {x.xmin.{x..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. El paquete <<NumericaMath‘InterpolateRoot‘ trabaja de forma más especíﬁca.2. x0}] busca una solución numérica de la ecuación empezando en x = x0.a. si no se conoce con exactitud el punto inicial puede resultar muy costosa de utilizar. se utiliza: NSolve[ecuación==0. FindRoot[ecuación==0. 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.x1}] usa x0 y x1 como los dos primeros valores de x.. ec2. 3.{y.
Interval[{a.b}].b}].tolerancia] IntervalNewton[función.x. 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.Interval[{a.tolerancia] Ejercicio 21 Resuelve los problemas anteriores usando los métodos propios de Mathematica.x.Mathematica también usa los métodos numéricos explicados anteriormente. 31 . Utiliza los resultados para comparar como son de buenos los algoritmos introducidos.
. 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. técnicas que resultan muy útiles a los alumnos de ingenieria. resolución de ecuaciones diferenciales. f (xn ) de una función el problema de interpolación polinomial consiste en encontrar un polinomio de grado ≤ n. los valores del polinomio deben ser estimaciones razonables de los valores de la función desconocida.. Por tanto. f (x1 )...Capítulo 4 Interpolación y aproximación de funciones La interpolación. Estamos interesados en polinomios de grado mayor. Por otro lado. . Cuando el polinomio es de primer grado se obtiene la conocida interpolación lineal. x1 . En general. que es el cálculo de valores para una función tabulada en puntos que no aparecen en la tabla. Los nombres de muchos matemáticos famosos están asociados con métodos de interpolación: Newton. Bessel. . 1. Aunque hoy en día.. xn (llamados nodos) distintos dos a dos en la recta real y los valores correspondientes f (x0 )... 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.. Además. los n+1 puntos x0 . la interpolación con polinomios sirve como una excelente introducción para ciertas técnicas de aproximación de curvas suaves. el polinomio que satisface estos requisitos se conoce como polinomio interpolador o interpolante de la función f en los puntos x0 . como los de derivación e integración numérica... los estudiantes rara vez tiene que interpolar para valores de senos. Gauss.. es historicamente una tarea fundamental. n Este problema tiene solución única. 4.. Stirling. . 32 . etc. estos métodos resultan interesantes ya que constituyen la base para muchos procedimientos que estudiarán. x1 . dado un entero positivo n. i = 0. xn ..1 Interpolación polinómica de Newton Dado un conjunto de puntos (xi . . logaritmos y demás funciones no algebraicas a partir de tablas.. tal que pn (xi ) = f (xi ) ..
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.(4. ∀x ∈ (a.Hay dos procedimientos básicos para calcularlo: el de Newton y el Lagrange.1. El error tiene una dependencia directa de la derivada de orden n + 1 y de la proximidad de los puntos a los nodos. esta interpolación es peor al aumentar el grado debido al cáracter oscilatorio de los polinomios de grado alto. 1.4. 0}. 4. 1). Entonces. se observa que al crecer n. 1.a3. donde ai son las incognitas. sol = Solve[Table[y[[i]] == a0 + a1*x[[i]] + a2*(x[[i]])^2 + a3*(x[[i]])^3+a4*(x[[i]])^4. Solución: Un polinomio que pasa por cinco puntos debe ser de grado cuatro. Teorema 4 Si f ∈ C n+1 (a. 1. 1. 0). Ejemplo 5 Calcular el polinomio de interpolación que pasa por (1. 0}. b) se veriﬁca f (x) − pn (x) = f n+1 (ξ x ) (x − x0 ) (x − x1 ) . ..(6.. 4. n.(5.6}.5) .{5. veremos como calcular el polinomio mediante la resolución de un sistema de ecuaciones lineales. {a0.1. Un aspecto importante a considerar es la calidad de nuestra interpolación. In[] := datos={{1. {i.. nosotros. y={1. Este fenómeno se conoce como el efecto Runge.{4.0. (x − xn ) . Esto es equivalente a resolver un sistema de ecuaciones lineales.5..1. x={1. 1}.(2.5}}. b) y xi ∈ (a. b) De la fórmula anterior no se puede deducir que los polinomios de mayor grado correspondan a una interpolación mejor. es decir el error que se comete cuando se aproxima un punto distinto de los nodos. (n + 1)! ξ x ∈ (a. 1}. 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.{6.5}. 1). 5}].1 El efecto Runge Si se considera la sucesión {pn (x)} de polinomios de interpolación obtenida aumentando indeﬁnidamente la cantidad de nodos de interpolación. 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. Aunque utiliza las llamadas diferencias divididas.{2.2.a4}]. 0). El polinomio de Newton será: 33 .. Veamoslo en el siguiente ejemplo.a2. b) para i = 0. por sencillez.a1.2 Polinomio interpolador de Newton La ventaja del polinomio interpolador de Newton es la sencillez de su formulación. De hecho.0.1.
6}]. el comando InterpolatingPolynomial permite obtener el polinomio de interpolación que pasa por los puntos dados. {t. In[] :pol= Expand[InterpolatingPolynomial[datos.01 dib2 = Plot[newton[t]. 34 .2214 1.6 f (x) 1. Encontrar las cotas respectivas de los errores debidos a la interpolación.1353 1.4845 0. Interpolar con un polinomio cúbico que pase por los cuatro primeros puntos y utilizarlo para calcular f (0.5 1 0.5 −0.7 f (x) −1.7028 −1. 5}] Se pueden dibujar los puntos y el polinomio interpolador: dib1 = ListPlot[datos1.1494 0. 6}]. 1. Ejercicio 23 Dados los puntos x 0.{x. 2. Show[dib1. Comparar con el valor exacto.4918 1.2) .4 0.1.newton[t_] = Sum[sol[[1]][[i]][[2]]*t^(i . Por otra parte. 1. PointSize[0. dib2]. Encontrar los valores aproximados de √ 3 e por interpolación lineal y cúbica. 0.0 0. PlotStyle -> {RGBColor[1.0 0.1).5 1 0.1 −0.1518 0.5 2 3 4 5 6 Ejercicio 22 Dada la tabla siguiente para la función f (x) = ex x 0. 0].5 1 2 3 4 5 6 observando que el polinomio pasa por todos los puntos.2 0. 1.2 0.0000 1. {i.x]] Plot[pol. obtenido en la calculadora. 0.8221 1.
4. PlotStyle -> {RGBColor[1. Plot[g[t].0<t<1. 3.-t^3. {i. utilizaremos una interpolación mediante polinomios cúbicos cada cuatro nodos.newton1[t]. x={1. 3}] y utilizar Which para construir el polinomio a trozos: newtonTotal[t_]=Which[t<x[[3]].newton2[t]] Se pueden dibujar los puntos y el polinomio interpolador: dib1 = ListPlot[datos1.6}. 35 . dado un conjunto de nodos.-5. 1. sol2 = Solve[Table[y[[i]] == a0 + a1*x[[i]] + a2*(x[[i]])^2 . 1.1). 3}]. {t. se conoce como función de Runge y fue 1 + x2 la utilizada por Runge para demostrar el efecto que lleva su nombre.5 -4 -2 2 4 Por tanto.t^2. {a0. se suele utilizar la interpolación mediante polinomios cúbicos.1. El polinomio de Newton será: newton1[t_] = Sum[sol1[[1]][[i]][[2]]*t^(i . y={1. Hacer una estimación del error. 0.1.{t. {i.t-1. dib2]. 5}].5 1 0.1<t<2.2. 0].0.x[[3]]<t<x[[5]]. {a0. {i.1].a2}].t>2. Show[dib1. 6}].1). 5]. sol1 = Solve[Table[y[[i]] == a0 + a1*x[[i]] + a2*(x[[i]])^2 . 0. Calcular los polinomios interpoladores de grados 4 y 10.1. PointSize[0. dib2 = Plot[{newtonTotal[t].a1.5. Ejercicio 24 La función f (x) = 1 . 2. 3}] newton2[t_] = Sum[sol2[[1]][[i]][[2]]*t^(i . Para ello recordemos como se dibuja una función a trozos utilizando el Mathematica.4.0. Veremos el ejemplo anterior utilizando polinomios interpoladores de grado 2.01]}].5 2 1.2. 1.a2}]. {i. de dicha función en el intervalo [−5.a1. In[]:= In[]:= g[t_]:=Which[t<0.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.5}].5}.
n − 1. gi (xi+1 ) = gi+1 (xi+1 ) . gi (xi ) . i = 0. gn−1 (xn ) = yn . 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 2 3 4 5 6 4. pero este método también es problemático porque las uniones de los polinomios no tienen una pendiente continua. no pasan exactamente por todos los puntos de la función.. yi ) y (xi+1 . usaremos los de grado tres por ser los más conocidos... entre los puntos (xi ..5 0.. Por otro lado. se escribe la ecuación para un polinomio cúbico. . 1... i = 0. en el iésimo intervalo. i i 36 . .. i = 0. 1.. n − 2. 0 0 3.5 1. n − 2. 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.. y cumple las condiciones: 1. es decir. Así. i = 0. 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 .. . el estudio de los splines conduce a algunas otras formas especiales de polinomios (curvas de Bezier y splines-B) que no se interpolan. cuando los datos no son ”suaves” hay problemas con los polinomios de interpolación. 00 00 4..25 1 0. i = 0.75 0. . yi+1 ) y la función splin cúbico que se desea es de la forma g (x) = gi (xi ) . gi (xi+1 ) = gi+1 (xi+1 ) . 1. n − 2. 1. lo que signiﬁca que hay irregularidades locales.. xi+1 ] 2. n − 1..1.. pero que son de mucha utilidad para trazar curvas suaves.2 Interpolación con un splin cúbico No obstante. Aunque los splines pueden ser de cualquier grado. .25 1 -0. Para impedir este problema son de utilidad los tipos especiales de polinomios denominados splines. gi (xi ) = yi . Una solución es ajustar subregiones de los datos con polinomios diferentes tal y como se ha hecho en el apartado anterior. gi (xi+1 ) = gi+1 (xi+1 ) . x ∈ [xi .
5 0. In[]:=splin=Spline[datos. 37 1. 6hi bi = Si .{4. − hi 6 di = yi Como los nodos extremos no tienen ninguna condición hay distintas aproximaciones.00 00 Si se hace Si = gi (xi ) y Sn = gn−1 (xn ) .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 ci = yi+1 − yi 2hi Si + hi Si+1 .302 0.7 0.{3. 3. Compara los resultados que se obtienen con las distintas aproximaciones para t=0.25.1}.185 0. 4 3.5 2 2. la interpolación a trozos.3}.240 0.Axes->True].6 0.302 .106 0.Cubic] In[]:=Show[Graphics[{Line[datos].468 Dibujar una curva de interpolación usando 1.093 0.8 Magnitud aparente 0. un polinomio interpolador de Newton.4 0. la más sencilla es la lineal S0 = Sn = 0.579 0.561 0. una aproximación de splines cúbicos.4}}. los valores de los coeﬁciente vienen dados por ai = Si+1 − Si .4}.5 1.5 3 2.splin}.5 2 1.0 0. 2. 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 0.2 0.5 3 3.{2.
. El criterio de mínimos cuadrados. datos experimentales. Las funciones más usuales son las exponenciales y = aebx y potenciales y = axb . 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. por lo que se desea ajustarlos por una función que no sea un polinomio lineal. ei = Yi − yi . es decir. pero los resultados serían más engorrosos y difíciles de obtener. 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. 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. además de proporcionar un resultado único para un conjunto de datos. 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 . El criterio de mínimos cuadrados requiere que la suma de los errores. 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áﬁca no es lineal. en muchos casos los datos provenientes de pruebas experimentales no son lineales. 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. por lo que se suelen utilizar los logaritmos para linealizarlas log y = log a + bx. sea mínima. también coincide con el principio de máxima probabilidad de estadística. Se podría hacer un estudio análogo al anterior para el caso de estas funciones. Como el mínimo se alcanza al elegir de forma ”adecuada” a y b.4. 38 .. Por supuesto. en general. minimíza la función S = e2 + e2 + . + e2 = 1 2 n N X i=1 (Yi − axi − b)2 . Si los errores de medición poseen una distribución normal y si la desviación estandar es constante para todos los datos.
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 + .. 0. x]] ajusta los datos a la función ea+bx . Show[d1. Out[]= 702. En particular.. 100}]. 0]. an . {x. Para su resolución se usarán los métodos algebraícos explicados anteriormente..... + an + . variable] La relación deseada no tiene por que ser lineal y se permite más de una variable independiente.765}. 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 + .{32.2 95. − an xn i y se minimiza la suma de cuadrados de estos errores.942}..873}. + an i x2n = i . {1.3. d1 = ListPlot[datos.. N X i=1 i=1 xn Yi i un sistema de n+1 ecuaciones lineales con las incógnitas a0 ....02]}].1032}}. Se puede comprobar graﬁcamente como de bueno es este ajuste.x}. Mathematica posee una función integrada para realizar ajuste de datos por mínimos cuadrados Fit[datos.0 73.7 765 826 873 942 1032 datos={{20..7. Se trabaja con una lista de puntos y se suministra un patrón para ajustar la ecuación. .{51. d2 = Plot[da1. a1 . da1=Fit[datos..5 32.{95. PlotStyle -> {RGBColor[1..826}.5.7 51. función.{73.x}. Ejemplo 7 Ajustar una recta por mínimos cuadrados a la tabla 20. PointSize[0.172+ 3. 39 . + an xn con errores deﬁnidos como ei = Yi − yi = Yi − a0 − a1 xi − .7..Se supone la relación y = a0 + a1 x + ..39487 x.d2].{1. Exp[Fit[Log[datos]. 0.x].
1 6.9 42.7 -39.6 17.90 con las distintas curvas de interpolación obtenidas? 40 .1 -13. Calcular y dibuja el polinomio de sexto grado que interpola estos puntos. 4.2 6. Debes obtener una recta de mínimos cuadrados de la forma x = ay + b.1 11.12 10.1050 1000 950 900 850 800 750 20 40 60 80 100 También se pueden buscar funciones que ajusten datos tridimensionales. 5. Ejercicio 29 Parece que los datos siguientes se ajustan una ecuación cúbica. pero determinar el grado óptimo por mínimos cuadrados.986 0.1 5.1 1.0 20.4 -13.7 29. en este caso tendremos superfícies de ajuste.2 14.1 y 1.1 8. Dibujar los puntos y la curva de interpolación de forma intuitiva.6 -40.306 1.4 11.04 8.1 15.4 12.5 -34.4 -1.9 24.04 Ejercicio 27 Repetir el ejercicio anterior suponiéndo que los valores libres de error son las y.20 20.7 49.1 20.5 0.6 -30.0 -3.6 16.6 7.5 -0.2 13.1 23.1 Ejercicio 30 En un experimento se obtuvieron los siguientes datos t -1 -0.895 0.5 9. Observa que no es la misma recta que se obtuvo antes. x 1 2 3 4 5 6 y 5. 2. Ejercicio 26 Encuentrar la recta de mínimos cuadrados que se ajusta a los datos siguientes.151 0. ¿Qué valores obtienes para t = 0.8 36.2 9. 3.930 y -1 -0. Ejercicio 28 Ajustarlos suponiendo que es un polinomio de orden dos. Dibujar una curva de interpolación usando splines cúbicos.1 17.0 -28.5 4. Comparar los resultados.9 34.5 -48.6 -16.9 24.64 13. suponiendo que las x están libres de error.894 0.96 -0.7 13.1 1.86 -0.18 16. x 0.9 19.79 0.4 2.6 2.22 0.9 7.2 -51.
Calcula un polinomio interpolador a trozos con polinomios de grado dos 41 .0 154. 2. Hallar la curva exponencial mínimo cuadrática y = abx . 2. ¿Qué resultado consideras correcto? Ejercicio 32 Dados los datos siguientes x y 2 12 3 24 4 50 5 95 6 190 1. Calcular el coeﬁciente de correlación. registrada a las 11 a. 3.Ejercicio 31 Los datos siguientes representan la potencia diaria. Potencia 153.m. y la temperatura atmosférica.4 158.6 160. Utiliza tres puntos para calcular un polinomio de interpolación de grado dos. en una localidad cercana: Temperatura 95 96 97 99 94 . generada por una central eléctrica de servicio regional. durante el mes de agosto de 1998. Utiliza los dos resultados anteriores para calcular el valor de y cuando x = 98.5 159.0 1. Ajustarlos a una ecuación exponencial mediante mínimos cuadrados. en grados Fahrenheit. en megawatts.
Esta orden necesita al menos de dos argumentos.3}].2Pi}].-3. una expresión expr. Plot [expr. Mediante Mathematica se pueden dibujar funciones y datos en dos y tres dimensiones. 42 . {x. xmin . Para hacer una gráﬁca en dos dimensiones de una función de una variable se usa la orden Plot. además de dibujar objetos y ﬁguras arbitrarias.1 5. El rango es un triplete: la variable de la expresión. xmin . 5.1 Gráﬁcas en Dos y Tres Dimensiones Gráﬁcas en el plano. y un rango. en particular para funciones de dos variables. Obsérvese que Mathematica no muestra todo el rango de valores de y. un valor mínimo. y un valor máximo.{x. x. así por ejemplo podemos producir la gráﬁca de la tangente en valores donde la tangente se hace inﬁnito (recuerdese que los argumentos de las funciones trigonométricas deben estar en radianes. las posibilidades gráﬁcas del Mathematica han sido una de las causas de su éxito. Fuera del rango en que está dibujada la función el comportamiento de la tangente no es especialmente relevante.1. producir gráﬁcos de nivel y de densidad. En esta práctica exploraremos algunas de las posibilidades que Mathematica ofrece a la hora de hacer gráﬁcas además de su uso en el reconocimiento de los puntos extremos.xmax }] Así la gráﬁca de la parábola y = −x2 + 4 es producida por la siguiente orden: In[] := Plot [-x^2+4. muestra la región en que la función es interesante. a menos que se indique otra cosa) In[] := Plot [Tan[x].-2Pi. Además de este tipo de funciones Mathematica también puede hacer gráﬁcas de funciones que tienden a inﬁnito o que tienen singularidades. xmax .Capítulo 5 Estudio de funciones reales Como hemos comentado en la introducción. {x.
. se especiﬁcan como fracciones del ancho total del gráﬁco. por ejemplo. si no se especiﬁca 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. Estos argumentos deben ser números entre 0 y 1. debe tomar muchas decisiones.. La función RGBColor permite especiﬁcar un color: Dicha función tiene tres argumentos: el primero es la cantidad de rojo (Red). Recuerdese que mediante ??Plot o la orden Options pueden verse todas las opciones para la función Plot junto con sus valores por defecto. xmin . La función Dashing crea una línea a trazos en la que los sucesivos trazos dibujados o no dibujados son de longitud d1 . 43 .d2 . color y estilo de una curva. rango.d2 . Plot [expr.004]. Las longitudes d1 .. rango. los argumentos de la función. Plot[expr. PlotStyle->RGBColor[rojo. Se puede utilizar también GrayLevel si se desea un sombreado gris. su argumento es un número entre 0 y 1. Lo cual además permite dibujar varias curvas al mismo tiempo con estilos diferentes. verde. PlotStyle->GrayLevel[g]]. Estas decisiones pueden ser modiﬁcadas dependiendo de los valores de las opciones.xmax }.. opciones] Las opciones se especiﬁcan dando el nombre de la opción junto con el valor.. azul]] Plot[expr. si queremos determinar el rango de los valores de y usariamos la opción PlotRange. Finalmente.Opciones Cuando Mathematica dibuja una gráﬁca. cuyo argumento [a] es la razón del ancho de línea al de todo el gráﬁco.. el usar todos estos valores da un gráﬁco que no ayuda mucho en su evaluación. PlotStyle->Dashing[{d1 .. El grosor se cambia utilizando la expresión Thickness. rango. In[] := Options[Plot] Estas opciones se pueden especiﬁcar en cualquier orden después de los argumentos requeridos. Modiﬁcando el estilo de una gráﬁca Mediante la opción PlotStyle se puede cambiar el grosor..d2 .. donde 1 indica la presencia del color y 0 su ausencia. {x. en cambio otras. Plot[expr. PlotStyle->Thickness[a]] El valor inicial para la función Plot es Thickness[0. el segundo de verde (Green) y el tercero de azul (Blue).. Plot[expr.}]] Todas estas opciones pueden usarse simultaneamente con PlotStyle si se especiﬁcan en una lista de listas. rango.
{u. 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.fz [u. xmin . z están dadas en términos de dos parámetros ParametricPlot3D[{fx [u. opciones]. la ventaja de utiliza esta opción consiste sobre todo en el dibujo de funciones que son diﬁciles de hacer en coordenadas cartesianas.umax }. {u. opciones]. {x. Gráﬁcas paramétricas La opción ParametricPlot3D produce gráﬁcas tridimensionales donde las coordenadas x.xmax }. Al igual que antes.}.2 Gráﬁcas Tridimensionales La función Plot3D produce una gráﬁca trimensional donde se da la coordenada z en función de x e y. sin más que mover el cubo de referencia mediante el ratón. combinar varios de ellos o cambiar las opciones de uno construido antes. La opción Show permite redibujar un gráﬁco.tmax }] 5.umin .fy [t]}.vmax }.Gráﬁcas de varias curvas Plot permite obtener la gráﬁca de varias curvas al mismo tiempo.fz [u]}.1. Una opción interesante de Plot3D es que la gráﬁca obtenida puede verse desde distintos puntos de vista mediante ViewPoint.v].tmin .fy [u]. {v. ecuación 2.{t. .v]}. Gráﬁcas paramétricas Este tipo de gráﬁcas son muy útiles cuando se quiere dibujar simultáneamente los valores de x e y en función de un parámetro. {x.umax }. una función donde los valores de x e y vienen dados en función de un parámetro. opciones]. Los gráﬁcos tridimensionales estan ya coloreados por defecto. El Front End tiene una opción en el menú que permite visualizar los distintos enfoques que se le puede dar a la ﬁgura. o ParametricPlot3D[{fx [u].umin . en general se usa t como dicho parámetro ya que suele representar el tiempo. Permite asimismo dibujar gráﬁcas en coordenadas polares.v]. Como hemos indicado antes cada una de las líneas puede dibujar con un estilo diferente. lo que permite su mejor visualización. 44 . y..ymax }. La función ParametricPlot dibuja una curva parametrizada.xmin .xmax }].vmin .{y. ParametricPlot[{fx [t].. Sus argumentos son una expresión y los rangos para las dos variables: Plot3D[expr.ymin .fy [u.
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.{x.5. A partir de las leyes de Newton se pueden reescribir x e y en términos de dicho parámetro. t. Mathematica sabe representar este tipo de ecuaciones de forma directa cuando y = f (x) mediante Plot: Plot [expr. se ha de despejar la variable y y dibujar las dos curvas correspondientes In[] := Plot [{Sqrt[1-x^2]. x e y. a veces es útil introducir una tercera variable para representar una curva en el plano.2 5.-3.xmax }] Así la gráﬁca de la curva y = x3 + x es producida por la siguiente orden: In[] := Plot [x^3+x. a la que llamamos parámetro. Por otro lado. Veamoslo: • Si se quiere dibujar la circunferencia x2 +y 2 = 1 utilizando Plot. las ecuaciones de las curvas en el plano vienen dadas en coordenadas cartesianas. 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. No obstante. 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. Para determinar ésto se introduce una tercera variable. y = sin t. xmin .{t. 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.2 Pi}] • Para ver la versión temporal del parámetro.-1. obteniéndose las ecuaciones paramétricas √ x = 5 2t √ y = 5 2t − 5t2 45 .3}].{x.0. consideremos la trayectoria de un objeto lanzado al aire formando un ángulo de 45o con una velocidad inicial de 10m/s. ecuaciones paramétricas En general.2. La orden que permite dibujarlo es: ParametricPlot[{Cos[t]. {x.Sin[t]}.-Sqrt[1-x^2]}.1 Curvas en el plano y en el espacio Curvas en el plano.
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.{t. En general. ecuaciones paramétricas. Sqrt[2]}] El utilizar las ecuaciones paramétricas permite. Coordenadas polares Para construir un sistema de coordenadas polares en el plano. 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áﬁcas 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).2.0. 1 46 . además de utilizar la orden Plot. además. θ). 5. conocer el sentido de recorrido de la trayectoria.5 Sqrt[2] t-5 t^2}. ya que la curva se obtiene al variar un único parámetro. se ﬁja un punto O llamado origen (o polo) y desde O se considera un rayo inicial llamado eje polar. Ejercicio 35 Escribir las ecuaciones polares de las cónicas y dibujalas. por lo que es más interesante la utilización de coordenadas paramétricas. El dibujo de la trayectoria se puede obtener. A cada punto P del plano se le asignan las coordenadas polares (r. En el espacio. mediante ParametricPlot[{5 Sqrt[2] t .2 Curvas en el espacio. las coordenadas polares se conocen por (r. t)1 de la siguiente forma: r : distancia dirigida de O a P.Este conjunto de ecuaciones permite determinar en que punto está el objeto en cada instante. una curva se representa como la intersección de dos superﬁcies. r = 2 ± 3 sin t (caracoles). Utilizamos t como ángulo por comodidad de escritura.
θ. z). Ejercicio 36 Dibujar la curva dada por x = 2 cos t y = 2 sin t . t) es una representación polar de la proyección del punto P en el plano xy. φ). {t. Coordenadas cilíndricas En un sistema de coordenadas cilíndricas un punto P del espacio se representa por un trio ordenado (r. y u es el ángulo entre el eje z positivo y el segmento OP .-1. t) a P. Ejercicio 38 Dibujar la curva intersección del paraboloide x2 = z y el plano x = y. 0 ≤ u ≤ π.ParametricPlot3D[{t. t. Coordenadas esféricas En un sistema de coordenadas esféricas un punto P del espacio se representa por un trio ordenado (R. 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.t^2. donde R es la distancia de P hasta el origen. donde (r. Utilizamos la otra notación por comodidad de escritura. 2 47 .1}] Estudiaremos dos nuevos sistemas de coordenadas espaciales: el sistema de coordenadas cilíndricas y el sistema de coordenadas esféricas. t. las coordenadas esféricas se conocen por (ρ. u)2 .2t}. y z es la distancia orientada de (r. 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. En general. 0 ≤ t ≤ 2π. R ≥ 0 t es el mismo ángulo que se usa en coordenadas cilíndricas. z=t 0 ≤ t ≤ 2π Ejercicio 37 Dibujar la curva intersección del cilindro x2 + y2 = 9 y el plano x = z.
-1. Pero si las superﬁcies no son planos. su dibujo es mejor si se utilizan las coordenadas adecuadas. {x.5. lo que es más importante. Ejercicio 41 Encontrar.3 Dibujo de superﬁcies.1}]. z = sin u.4 Cálculo Diferencial Vamos a introducir ahora algunos comandos de los que dispone Mathematica para abordar. x2 + y2 = z 2 (cono). gran variedad de problemas que surgen en el Cálculo Diferencial en una y en varias variables. 0 ≤ u ≤ 2π. Desde luego. 0 ≤ v ≤ 2π (toro). no se trata aquí de estudiar a fondo esta disciplina matemática. las ecuaciones de las superﬁcies anteriores en coordenadas cartesianas.{y. Ejercicio 39 Dibujar las siguientes superﬁcies: x = y (plano) x2 + y2 = 9 (cilindro de radio 3). el Mathematica dibuja de forma inmediata superﬁcies que son funciones de dos variables. y en muchos casos resolver con éxito. 5. para entender qué es lo que se está haciendo 48 .1}. 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. en su caso. y) Plot3D[x+y. parametrización de superﬁcies Una superﬁcie necesita dos parámetros para poder dibujarla.-1. x2 + y2 − z 2 = 1 (hiperboloide) x2 + y2 + z 2 = 1 (esfera) Ejercicio 40 Dibujar las siguientes superﬁcies dadas en coordenadas paramétricas e identiﬁcalas: r=3 √ r=2 z r=z r2 = z 2 + 1 R=1 π t= 4 π u= 4 x = (2 + cos u) cos v. x2 + y2 = 4z (paraboloide). y = (2 + cos u) sin v. z = f (x.
x ] da la derivada total df . . y. .. x .4. Derivative[1][f ] de manera que Derivative[1] puede ser considerado como el operador de diferenciación.] calcula la derivada múltiple D[f .. esto es. x ] calcula la derivada parcial ∂ f.5. v. {x . f ’’[x] da la derivada segunda de una función de una variable. . y así sucesivamente. . derivar implícitamente.}] calcula la derivada parcial de f respecto a x considerando u. x . se puede usar la forma funcional explícita y[x] para efectuar la derivación: Así es posible. mientras que ∂xn ∂ ∂ . n}] proporciona la derivada n-ésima ∂n f . . dx 49 . por ejemplo.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. . ∂x D[f . NonConstants →{u.. v. como el operador que al actuar sobre una función f proporciona su función derivada. La forma completa de f ’ es. ∂x ∂y D[f . El objeto f ’ en Mathematica es el resultado de aplicar el funcional de diferenciación a la función f . de hecho. . El comando D[f . Obviamente. f. también como funciones de x. 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 para obtener la diferencial total de una función f es Dt[f ] mientras que Dt[f . estos comandos también sirven si la función f depende sólo de x: Si y depende de x. Los siguientes comandos proporcionan otras formas de calcular derivadas: f ’[x] obtiene la derivada primera de una función de una variable..
Dt[ecuaci´n.. Los comandos anteriores resuelven este problema. obteniéndose una expresión de donde se podrá despejar la derivada. el rotacional y el laplaciano de un campo vectorial f . Para concluir este apartado diremos que el paquete Calculus‘VectorAnalysis. y. Podemos hacer una deﬁnición 5. x .. A veces ocurre que una función y(x) viene dada implícitamente por una cierta ecuación e interesa calcular su derivada. d.. La función que Mathematica incorpora para esta eventualidad es Outer. 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. x ] o efectúa la derivada de la ecuación con respecto a x.] da la derivada total múltiple d d · · · f.. constantes. dy con el comando explícita para dx Dt[y. y dx dy Dt[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. . Los comandos respectivos son: Grad[f ]. Dada una aplicación f : Rn −→ Rm . a veces interesará calcular su matriz jacobiana y su determinante jacobiano. 50 . Curl[f ] y Laplacian[f ]. Div[f ]..m dispone de funciones especíﬁcas para el cálculo del gradiente. x ] = algo pudiendo anular la deﬁnición para la derivada con Clear[y]. la divergencia. d. Constants →{c.}] proporciona la derivada total con c. x . Así. Dibujar la trayectoria desde t = 0 hasta t = 2π y la recta tangente en los puntos t = 1.Dt[f .7 y t = π.4.
y) = (0. Ejercicio 45 Calcular las derivadas parciales de la función x3 y − xy 3 f (x. 1) según el vector (1. Dibujar la función y puntos 0 y 2 el polinomio en dicho intervalo. 1. Ejercicio 48 Calcular la derivada direccional de la función 1 f (x. 0). así como su interpretación geométrica: Ejercicio 49 Dibujar la curva 2x2 − 2xy + y2 + x + 2y + 1 = 0. 51 . π] vale V (t) = e−t . Dibujar la curva y las dos tangentes. y) = x2 + y2  0. Dibuja las gráﬁcas de las funciones dadas. 5. ¿Es diferenciable? ¿Se cumple el teorema de Young? 4. Estudia su continuidad en todo su dominio.2. y) = 2 2 x  + y2  xy si (x. Determinar los puntos de corte de estas rectas tangente y los ejes coordenados. y) = (0. Ejercicio 47 Aplicar el teorema de los incrementos ﬁnitos para ver cuales de las funciones anteriores del problema 45 son diferenciables en el punto (0. 0) . Calcula sus derivadas parciales en todo el dominio. 1. 3. Ejercicio 44 Una fuente de alimentación suministra un voltaje periódico en el tiempo 2 de modo que en [−π. 0) 1. y.4. 0) f (x. z) = p 2 + y2 + z2 x en el punto (2. 2. Calcula la ecuación de sus tangentes en los puntos de abcisa x = −1/2. y) = x2 + y 4  0 si (x. Estudiar la continuidad de las derivadas parciales calculadas en el problema anterior.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. y) 6= (0. (x. 0) f (x. Aproximar esta función en torno a los π mediante un polinomio de Taylor de grado cuatro. (x. y) 6= (0. 0) Ejercicio 46 Dada la función ¢ ¡   xy x2 − y2 .
Suponiendo que estas curvas son las seguidas por un móvil. r = 2 ± 3 sin t (caracoles). calcula y clasiﬁca sus puntos extremos. Calcular el error cometido al aproximar la función por este polinomio de Taylor. 3. y) = ¡1+x −y . f (x. y) = 1 − e−(x−1) 2 −(y−2)2 1. Haz una representación gráﬁca. Ejercicio 53 Hallar los puntos extremos de las funciones siguientes y determinar cuales son máximos. 52 . y) = −120x3 − 30x4 + 18x5 + 5x6 + 30xy 2 Dibujarla. Calcular el polinomio de Taylor de grado 2 de U en uno de los mínimos obtenidos. y. z) = x2 + xy + y 2 + z 2 . Curva intersección del paraboloide x2 = z y el plano x = y. y) = x2 + 3y 2 e1−x −y . 2 2 f (x. Ejercicio 54 Usar el método de los multiplicadores de Lagrange para hallar los valores máximo y mínimo absoluto de f (x. Obtener los máximos y mínimos de U. y) = x2 + y2 − xy. f (x. y) = x2 − y2 − xy . 2. ¿Y su aceleración? Ejercicio 52 Dibujar la función f (x. Dibujar las gráﬁcas correspondientes.Ejercicio 50 Dibujar las curvas siguientes y estudia en que puntos la función no tiene derivada. ¢ e 2 2 f (x. Ejercicio 51 Dibujar las curvas siguientes: Curva intersección del cilindro x2 + y 2 = 9 y el plano x = z. y) = x2 + y 2 − x − y + 1 en el disco unidad. Ejercicio 56 Hallar y clasiﬁcar los puntos extremos de la función f (x. Demuéstralo. mínimos y puntos silla locales. ¿cúal es la velocidad de dicho móvil en cada uno de los puntos?. 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. Dibujar la gráﬁca 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). y) = x2 + y 2 . Ejercicio 55 Hallar y clasiﬁca los puntos extremos no degenerados de la función f (x.
2. Determinar sus puntos críticos. 3. 2. Calcular las aproximaciones de Taylor de primer y segundo grado en el punto (0. 1. 0) . −1) . y) = y sin (πx). 3. Determinar sus puntos críticos restringidos al plano z = 1. Demostrar que deﬁne a z como una función de x e y en un entorno del punto (1. 1. Calcular el plano tangente a esta superﬁcie en un entorno del punto (1. 53 . 4. Calcular la aproximación de segundo grado en dicho punto. 1. Dibujarla. −1) . Ejercicio 59 Dada la ecuación z 4 + x2 z 3 + y 2 + xy = 2. 1.Ejercicio 58 Dada la función f (x.
Documents Similar To practicas2005
Valores y Vectores Propios - 2008
Esta Bili Dad de Voltage
Sol Diagonalizacion
More From Noi Zamora
Obwohl Der Zuständige Sachbearbeiter Da Ist
dgpn_AspectosGenerales

References: Resolución 
 Resolución 
 resolución 
 resolución

Resolución 
 resolución 
 Resolución 
 resolución 
 resolución 
 resolución

 Resolución 
 Resolución 
 resolución 
 resolución 
 resolución 
 Resolución 
 Resolución 
 resolución 
 resolución 
 resolución