Anda di halaman 1dari 48

Análisis numérico

El análisis numérico o cálculo numérico es la rama de las matemáticas que se encarga de


diseñar algoritmos para, a través de números y reglas matemáticas simples, simular
procesos matemáticos más complejos aplicados a procesos del mundo real.

Introducción general
El análisis numérico es una rama de las matemáticas cuyos límites no son del todo precisos.
De una forma rigurosa, se puede definir como la disciplina ocupada de describir, analizar y
crear algoritmos numéricos que nos permitan resolver problemas matemáticos, en los que
estén involucradas cantidades numéricas, con una precisión determinada.

En el contexto del cálculo numérico, un algoritmo es un procedimiento que nos puede


llevar a una solución aproximada de un problema mediante un número finito de pasos que
pueden ejecutarse de manera lógica. En algunos casos, se les da el nombre de métodos
constructivos a estos algoritmos numéricos.

El análisis numérico cobra especial importancia con la llegada de los ordenadores. Los
ordenadores son útiles para cálculos matemáticos extremadamente complejos, pero en
última instancia operan con números binarios y operaciones matemáticas simples.

Desde este punto de vista, el análisis numérico proporcionará todo el andamiaje necesario
para llevar a cabo todos aquellos procedimientos matemáticos susceptibles de expresarse
algorítmicamente, basándose en algoritmos que permitan su simulación o cálculo en
procesos más sencillos empleando números.

Conceptos generales
A partir de aquí, aparece un concepto adicional, el de error. Este concepto aparece como
consecuencia de la naturaleza finita de los ordenadores que solo pueden operar con
números representados de forma finita.

Definido el error, junto con el error admisible, pasamos al concepto de estabilidad de los
algoritmos. Muchas de las operaciones matemáticas pueden llevarse adelante a través de la
generación de una serie de números que a su vez alimentan de nuevo el algoritmo
(feedback). Esto proporciona un poder de cálculo y refinamiento importantísimo a la
máquina que a medida que va completando un ciclo va llegando a la solución. El problema
ocurre en determinar hasta cuándo deberá continuar con el ciclo, o si nos estamos alejando
de la solución del problema.

Finalmente, otro concepto paralelo al análisis numérico es el de la representación, tanto de


los números como de otros conceptos matemáticos como los vectores, polinomios, etc. Por
ejemplo, para la representación en ordenadores de números reales, se emplea el concepto de
coma flotante que dista mucho del empleado por la matemática convencional.

Aplicaciones
En general, estos métodos se aplican cuando se necesita un valor numérico como solución a
un problema matemático, y los procedimientos "exactos" o "analíticos" (manipulaciones
algebraicas, teoría de ecuaciones diferenciales, métodos de integración, etc.) son incapaces
de dar una respuesta. Debido a ello, son procedimientos de uso frecuente por físicos e
ingenieros, y cuyo desarrollo se ha visto favorecido por la necesidad de éstos de obtener
soluciones, aunque la precisión no sea completa. Debe recordarse que la física
experimental, por ejemplo, nunca arroja valores exactos sino intervalos que engloban la
gran mayoría de resultados experimentales obtenidos, ya que no es habitual que dos
medidas del mismo fenómeno arrojen valores exactamente iguales.

Otro motivo que ha propiciado el auge del análisis numérico ha sido el desarrollo de los
ordenadores. El aumento brutal de la potencia de cálculo ha convertido en posibles y en
eficientes a algoritmos poco dados a su realización a mano.

Problemas
Clasificación según su dimensión

Los problemas de esta disciplina se pueden dividir en dos grupos fundamentales:

• Problemas de dimensión finita: aquellos cuya respuesta son un conjunto finito de


números, como las ecuaciones algebraicas, los determinantes, los problemas de
valores propios, etc.

• Problemas de dimensión infinita: problemas en cuya solución o planteamiento


intervienen elementos descritos por una cantidad infinita de números, como
integración y derivación numéricas, cálculo de ecuaciones diferenciales,
interpolación, etc.

Clasificación atendiendo a su naturaleza o motivación

Asimismo, existe una subclasificación de estos dos grandes apartados en tres categorías de
problemas, atendiendo a su naturaleza o motivación para el empleo del cálculo numérico:

• 1) Problemas de tal complejidad que no poseen solución analítica.

• 2) Problemas en los cuales existe una solución analítica, pero ésta, por complejidad
u otros motivos, no puede explotarse de forma sencilla en la práctica.
• 3) Problemas para los cuales existen métodos sencillos pero que, para elementos
que se emplean en la práctica, requieren una cantidad de cálculos excesiva; mayor
que la necesaria para un método numérico.

Áreas de estudio
El análisis numérico se divide en diferentes disciplinas de acuerdo con el problema a
resolver.

Cálculo de los valores de una función

Uno de los problemas más sencillos es la evaluación de una función en un punto dado. Para
polinomios, uno de los métodos más utilizados es el algoritmo de Horner, ya que reduce el
número de operaciones a realizar. En general, es importante estimar y controlar los errores
de redondeo que se producen por el uso de la aritmética de punto flotante.

Interpolación, extrapolación y regresión

La interpolación resuelve el problema siguiente: dado el valor de una función desconocida


en un número de puntos, ¿cuál es el valor de la función en un punto entre los puntos dados?
El método más sencillo es la interpolación lineal, que asume que la función desconocida es
lineal entre cualquier par de puntos sucesivos. Este método puede generalizarse a la
interpolación polinómica, que suele ser más precisa pero que sufre el llamado fenómeno de
Runge. Otros métodos de interpolación usan otro tipo de funciones interpoladoras dando
lugar a la interpolación mediante splines y a la interpolación trigonométrica. Otros métodos
de interpolación utilizando derivadas sucesivas de la función son mediante los polinomios
de Taylor y la aproximación de Padé.

La extrapolación es muy similar a la interpolación, excepto que ahora queremos encontrar


el valor de la función desconocida en un punto que no está comprendido entre los puntos
dados.

La regresión es también similar, pero tiene en cuenta que los datos son imprecisos. Dados
algunos puntos, y una medida del valor de la función en los mismos (con un error debido a
la medición), queremos determinar la función desconocida. El método de los mínimos
cuadrados es una forma popular de conseguirlo.

Resolución de ecuaciones y sistemas de ecuaciones

Otro problema fundamental es calcular la solución de una ecuación o sistema de ecuaciones


dado. Se distinguen dos casos dependiendo de si la ecuación o sistema de ecuaciones es o
no lineal. Por ejemplo, la ecuación 2x + 5 = 3 es lineal mientras que la ecuación 2x2 + 5 = 3
no lo es.

Mucho esfuerzo se ha puesto en el desarrollo de métodos para la resolución de sistemas de


ecuaciones lineales. Métodos directos, i.e., métodos que utilizan alguna factorización de la
matriz son el método de eliminación de Gauss, la descomposición LU, la descomposición
de Cholesky para matrices simétricas (o hermíticas) definidas positivas, y la
descomposición QR. Métodos iterativos como el método de Jacobi, el método de Gauss-
Seidel, el método de las aproximaciones sucesivas y el método del gradiente conjugado se
utilizan frecuentemente para grandes sistemas.

En la resolución numérica de ecuaciones no lineales algunos de los métodos más conocidos


son los métodos de bisección, de la secante y de la falsa posición. Si la función es además
derivable y la derivada se conoce, el método de Newton es muy utilizado. Este método es
un método de iteración de punto fijo. La linealización es otra técnica para resolver
ecuaciones no lineales.

Descomposición espectral y en valores singulares

Bastantes problemas importantes pueden ser expresados en términos de descomposición


espectral (el cálculo de los vectores y valores propios de una matriz) o de descomposición
en valores singulares. Por ejemplo, el análisis de componentes principales utiliza la
descomposición en vectores y valores propios.

Optimización

Los problemas de optimización buscan el punto para el cual una función dada alcanza su
máximo o mínimo. A menudo, el punto también satisface cierta restricción.

Ejemplos de ,problemas de optimización son la programación lineal en que tanto la función


objetivo como las restricciones son lineales. Un método famoso de programación lineal es
el método simplex.

El método de los multiplicadores de Lagrange puede usarse para reducir los problemas de
optimización con restricciones a problemas sin restricciones.

[editar] Evaluación de integrales

Artículo principal: Integración numérica

La integración numérica, también conocida como cuadratura numérica, busca calcular el


valor de una integral definida. Métodos populares utilizan alguna de las fórmulas de
Newton–Cotes (como la regla del rectángulo o la regla de Simpson) o de cuadratura
gaussiana. Estos métodos se basan en una estrategia de "divide y vencerás", dividiendo el
intervalo de integración en subintervalos y calculando la integral como la suma de las
integrales en cada subintervalo, pudiéndose mejorar posteriormente el valor de la integral
obtenido mediante el método de Romberg. Para el cálculo de integrales múltiples estos
métodos requieren demasiado esfuerzo computacional, siendo útil el método de Monte
Carlo.

[editar] Ecuaciones diferenciales


El análisis numérico también puede calcular soluciones aproximadas de ecuaciones
diferenciales, bien ecuaciones diferenciales ordinarias, bien ecuaciones en derivadas
parciales. Los métodos utilizados suelen basarse en discretizar la ecuación correspondiente.
Es útil ver la derivación numérica.

Para la resolución de ecuaciones diferenciales ordinarias los métodos más utilizados son el
método de Euler y los métodos de Runge-Kutta.

Las ecuaciones en derivadas parciales se resuelven primero discretizando la ecuación,


llevándola a un subespacio de dimensión finita. Esto puede hacerse mediante un método de
los elementos finitos.

Método de Newton
De Wikipedia, la enciclopedia libre
Saltar a navegación, búsqueda

En análisis numérico, el método de Newton (conocido también como el método de


Newton-Raphson o el método de Newton-Fourier) es un algoritmo eficiente para
encontrar aproximaciones de los ceros o raíces de una función real. También puede ser
usado para encontrar el máximo o mínimo de una función, encontrando los ceros de su
primera derivada.

Contenido
[ocultar]

• 1 Historia
• 2 Descripción del método
• 3 Obtención del Algoritmo
• 4 Convergencia del Método
• 5 Estimación del Error
• 6 Teorema de Convergencia Local del Método de Newton
• 7 Ejemplo
• 8 Codigo en MatLab
• 9 Referencias

• 10 Enlaces externos

[editar] Historia
El método de Newton fue descrito por Isaac Newton en De analysi per aequationes número
terminorum infinitas (escrito en 1669, publicado en 1711 por William Jones) y en De
metodis fluxionum et serierum infinitarum (escrito en 1671, traducido y publicado como
Método de las fluxiones en 1736 por John Colson). Sin embargo, su descripción difiere en
forma sustancial de la descripción moderna presentada más arriba: Newton aplicaba el
método solo a polinomios, y no consideraba las aproximaciones sucesivas xn, sino que
calculaba una secuencia de polinomios para llegar a la aproximación de la raíz x.
Finalmente, Newton ve el método como puramente algebraico y falla al no ver la conexión
con el cálculo.

Isaac Newton probablemente derivó su método de forma similar aunque menos precisa del
método de François Viète. La esencia del método de Viète puede encontrarse en el trabajo
del matemático persa Sharaf al-Din al-Tusi.

[editar] Descripción del método


El método de Newton-Raphson es un método abierto, en el sentido de que su convergencia
global no está garantizada. La única manera de alcanzar la convergencia es seleccionar un
valor inicial lo suficientemente cercano a la raíz buscada. Así, se ha de comenzar la
iteración con un valor razonablemente cercano al cero (denominado punto de arranque o
valor supuesto). La relativa cercanía del punto inicial a la raíz depende mucho de la
naturaleza de la propia función; si ésta presenta múltiples puntos de inflexión o pendientes
grandes en el entorno de la raíz, entonces las probabilidades de que el algoritmo diverja
aumentan, lo cual exige seleccionar un valor supuesto cercano a la raíz. Una vez se ha
hecho esto, el método linealiza la función por la recta tangente en ese valor supuesto. La
abscisa en el origen de dicha recta será, según el método, una mejor aproximación de la raíz
que el valor anterior. Se realizarán sucesivas iteraciones hasta que el método haya
convergido lo suficiente.

Sea f : [a, b] -> R función derivable definida en el intervalo real [a, b]. Empezamos con un
valor inicial x0 y definimos para cada número natural n

Donde f ' denota la derivada de f.

Nótese que el método descrito es de aplicación exclusiva para funciones de una sola
variable con forma analítica o implícita cognoscible. Existen variantes del método
aplicables a sistemas discretos que permiten estimar las raíces de la tendencia, así como
algoritmos que extienden el método de Newton a sistemas multivariables, sistemas de
ecuaciones, etc.

[editar] Obtención del Algoritmo


Tres son las formas principales por las que tradicionalmente se ha obtenido el algoritmo de
Newton-Raphson.
La primera de ellas es una simple interpretación geométrica. En efecto, atendiendo al
desarrollo geométrico del método de la secante, podría pensarse en que si los puntos de
iteración están lo suficientemente cerca (a una distancia infinitesimal), entonces la secante
se sustituye por la tangente a la curva en el punto. Así pues, si por un punto de iteración
trazamos la tangente a la curva, por extensión con el método de la secante, el nuevo punto
de iteración se tomará como la abscisa en el origen de la tangente (punto de corte de la
tangente con el eje X). Esto es equivalente a linealizar la función, es decir, f se reemplaza
por una recta tal que contiene al punto (x0, f (x0)) y cuya pendiente coincide con la derivada
de la función en el punto, f'(x0). La nueva aproximación a la raíz, x1, se logra la intersección
de la función lineal con el eje X de ordenadas. Matemáticamente:

Ilustración de una iteración del método de Newton (la función f se demuestra en azul y la
línea de la tangente está en rojo). Vemos que xn + 1 es una aproximación mejor que xn para la
raíz x de la función f.

En la ilustración adjunta del método de Newton se puede ver que xn + 1 es una mejor
aproximación que xn para el cero (x) de la función f.

Una forma alternativa de obtener el algoritmo es desarrollando la función f (x) en serie de


Taylor, para un entorno del punto xn:

Si se trunca el desarrollo a partir del término de grado 2, y evaluamos en xn + 1:


Si además se acepta que xn + 1 tiende a la raíz, se ha de cumplir que f(xn + 1) = 0, luego,
sustituyendo en la expresión anterior, obtenemos el algoritmo.

Finalmente, hay que indicar que el método de Newton-Raphson puede interpretarse como
un método de iteración de punto fijo. Así, dada la ecuación f(x) = 0, se puede considerar el
siguiente método de iteración de punto fijo:

Se escoge h (x) de manera que g'(r)=0 (r es la raíz buscada). Dado que g'(r) es:

Entonces:

Como h (x) no tiene que ser única, se escoge de la forma más sencilla:

Por tanto, imponiendo subíndices:

Expresión que coincide con la del algoritmo de Newton-Raphson

[editar] Convergencia del Método


El orden de convergencia de este método es, por lo menos, cuadrático. Sin embargo, si la
raíz buscada es de multiplicidad algebraica mayor a uno (i.e, una raíz doble, triple, ...), el
método de Newton-Raphson pierde su convergencia cuadrática y pasa a ser lineal de
constante asintótica de convergencia 1-1/m, con m la multiplicidad de la raíz.

Existen numerosas formas de evitar este problema, como pudieran ser los métodos de
aceleración de la convergencia tipo Δ² de Aitken o el método de Steffensen. Derivados de
Newton-Raphson destacan el método de Ralston-Rabinowitz, que restaura la convergencia
cuadrática sin más que modificar el algoritmo a:
Evidentemente, este método exige conocer de antemano la multiplicidad de la raíz, lo cual
no siempre es posible. Por ello también se puede modificar el algoritmo tomando una
función auxiliar g(x) = f(x)/f'(x), resultando:

Su principal desventaja en este caso sería lo costoso que pudiera ser hallar g(x) y g'(x) si
f(x) no es fácilmente derivable.

Por otro lado, la convergencia del método se demuestra cuadrática para el caso más
habitual en base a tratar el método como uno de punto fijo: si g'(r)=0, y g' '(r) es distinto de
0, entonces la convergencia es cuadrática. Sin embargo, está sujeto a las particularidades de
estos métodos.

Nótese de todas formas que el método de Newton-Raphson es un método abierto: la


convergencia no está garantizada por un teorema de convergencia global como podría
estarlo en los métodos de falsa posición o de bisección. Así, es necesario partir de una
aproximación inicial próxima a la raíz buscada para que el método converja y cumpla el
teorema de convergencia local.

[editar] Estimación del Error


Se puede demostrar que el método de Newton-Raphson tiene convergencia cuadrática: si α
es raíz, entonces:

para una cierta constante C. Esto significa que si en algún momento el error es menor o
igual a 0,1, a cada nueva iteración doblamos (aproximadamente) el número de decimales
exactos. En la práctica puede servir para hacer una estimación aproximada del error:

Error relativo entre dos aproximaciones sucesivas:

Con lo cual se toma el error relativo como si la última aproximación fuera el valor exacto.
Se detiene el proceso iterativo cuando este error relativo es aproximadamente menor que
una cantidad fijada previamente.
[editar] Teorema de Convergencia Local del Método de
Newton
Sea . Si , y , entonces existe un r>0 tal
que si , entonces la sucesión xn con verifica que:

para todo n y xn tiende a p cuando n tiende a infinito.

Si además , entonces la convergencia es cuadrática.

[editar] Ejemplo
Consideremos el problema de encontrar un número positivo x tal que cos(x) = x3.
Podríamos tratar de encontrar el cero de f(x) = cos(x) - x3.

Sabemos que f '(x) = -sin(x) - 3x2. Ya que cos(x) ≤ 1 para todo x y x3 > 1 para x>1,
deducimos que nuestro cero está entre 0 y 1. Comenzaremos probando con el valor inicial
x0 = 0,5

Los dígitos correctos están subrayados. En particular, x6 es correcto para el número de


decimales pedidos. Podemos ver que el número de dígitos correctos después de la coma se
incrementa desde 2 (para x3) a 5 y 10, ilustando la convergencia cuadrática.

En pseudocódigo, esto es:

function newtonIterationFunction(x) {
return x - (cos(x) - x^3) / (-sin(x) - 3*x^2)
}

var x := 0,5

for i from 0 to 99 {
print "Iteraciones: " + i
print "Valor aproximado: " + x
xold := x
x := newtonIterationFunction(x)
if x = xold {
print "Solución encontrada!"
break
}
}

[editar] Codigo en MatLab


Programa escrito en Matlab para hallar las raíces usando el método de NEWTON-
RAPHSON

disp ('NEWTON-RAPHSON')
xo=input('Valor inicial =');
n=input ('numero de iteraciones=');
salida=ones(n,4); % matiz de salida de datos
for i=1:n
x1=xo-[(exp(-xo)-xo)]/[(-exp(-xo)-1)];
vsal=[xo;x1];
er=[[abs((xo-x1)/xo)]]*100; % error relativo porcentual
ea=[[abs((x1-xo)/x1)]]*100; % error
xo=x1;

salida(i,1)=i;
salida(i,2)=x1;
salida(i,3)=er;
salida(i,4)=ea;
end
disp('ite raiz er ea');
disp(num2str(salida));

El programa siguiente hace el cálculo para una superficie.

syms x1
syms x2
syms x3
V=['sin(x1)+2^x2+log(x3)-7';'3*x1+2*x2-x3^3+1 ';'x1+x2+x3-5
'];
%se calcula el jacobiano:
DV(1,:)=[diff(V(1,:),x1), diff(V(1,:),x2),diff(V(1,:),x3)];
DV(2,:)=[diff(V(2,:),x1), diff(V(2,:),x2),diff(V(2,:),x3)];
DV(3,:)=[diff(V(3,:),x1), diff(V(3,:),x2),diff(V(3,:),x3)];
%se da el valor de partida:
x1=0;
x2=4;
x3=2;
x_1o=[x1;x2;x3];
%se calcula H en ese punto
Vo(1,:)=eval(V(1,:));
Vo(2,:)=eval(V(2,:));
Vo(3,:)=eval(V(3,:));
%Se calcula el Jacobiano en ese punto
DV1=eval(DV);
%se calcula la Inversa del JAcobiano en ese punto
DV_1=DV1^-1;
%se calcula el siguiente valor de iteración
x_1=[x1;x2;x3]-DV_1*Vo;
%cantidad de iteraciones maxima:
n=50;
%se define a = n, si se cumple condicion de error antes, cambia
a=n;

for i=1:n
%error relativo entre aproximaciones sucecivas
er=norm(x_1-x_1o)/norm(x_1);
if er<.0001
a=i;
break; end

x1=x_1(1);
x2=x_1(2);
x3=x_1(3);
x_1o=[x1;x2;x3];
Vo(1,:)=eval(V(1,:));
Vo(2,:)=eval(V(2,:));
Vo(3,:)=eval(V(3,:));
DV1=eval(DV);
DV_1=DV1^-1;
x_1=[x1;x2;x3]-DV_1*Vo;

end
a
x_1

METODOS NUMERICOS

. Introducción
La ciencia y la tecnología describen los fenómenos reales mediante modelos matemáticos.
El estudio de estos modelos permite un conocimiento más profundo del fenómeno, así
como de su evolución futura. La matemática aplicada es la rama de las matemáticas que se
dedica a buscar y aplicar las herramientas más adecuadas a los problemas basados en estos
modelos. Desafortunadamente, no siempre es posible aplicar métodos analíticos clásicos
por diferentes razones:

• No se adecúan al modelo concreto.


• Su aplicación resulta excesivamente compleja.
• La solución formal es tan complicada que hace imposible cualquier interpretación
posterior.
• Simplemente no existen métodos analíticos capaces de proporcionar soluciones al
problema.

En estos casos son útiles las técnicas numéricas, que mediante una labor de cálculo más o
menos intensa, conducen a soluciones aproximadas que son siempre numérica. El
importante esfuerzo de cálculo que implica la mayoría de estos métodos hace que su uso
esté íntimamente ligado al empleo de computadores. De hecho, sin el desarrollo que se ha
producido en el campo de la informática resultaría difícilmente imaginable el nivel actual
de utilización de las técnicas numéricas en ámbitos cada día más diversos1.

Errores
El concepto de error es consustancial con el cálculo numérico. En todos los problemas es
fundamental hacer un seguimiento de los errores cometidos a fin de poder estimar el grado
de aproximación de la solución que se obtiene.

Los errores asociados a todo cálculo numérico tienen su origen en dos grandes factores:

• Aquellos que son inherentes a la formulación del problema.


• Los que son consecuencia del método empleado para encontrar la solución del
problema.

Dentro del grupo de los primeros, se incluyen aquellos en los que la definición matemática
del problema es sólo una aproximación a la situación física real. Estos errores son
normalmente despreciables; por ejemplo, el que se comete al obviar los efectos relativistas
en la solución de un problema de mecánica clásica. En aquellos casos en que estos errores
no son realmente despreciables, nuestra solución será poco precisa independientemente de
la precisión empleada para encontrar las soluciones numéricas.

Otra fuente de este tipo de errores tiene su origen en la imprecisión de los datos físicos:
constantes físicas y datos empíricos. En el caso de errores en la medida de los datos
empíricos y teniendo en cuenta su carácter generalmente aleatorio, su tratamiento analítico
es especialmente complejo pero imprescindible para contrastar el resultado obtenido
computacional-mente.

En lo que se refiere al segundo tipo de error (error computacional), tres son sus fuentes
principales:

1.
Equivocaciones en la realización de las operaciones (errores de bulto). Esta fuente
de error es bien conocida por cualquiera que haya realizado cálculos manualmente o
empleando una calculadora. El empleo de computadores ha reducido enormemente
la probabilidad de que este tipo de errores se produzcan. Sin embargo, no es
despreciable la probabilidad de que el programador cometa uno de estos errores
(calculando correctamente el resultado erróneo). Más aún, la presencia de bugs no
detectados en el compilador o en el software del sistema no es inusual. Cuando no
resulta posible verificar que la solución calculada es razonablemente correcta, la
probabilidad de que se haya cometido un error de bulto no puede ser ignorada. Sin
embargo, no es esta la fuente de error que más nos va a preocupar.
2.
El error causado por resolver el problema no como se ha formulado, sino mediante
algún tipo de aproximación. Generalmente está causado por la sustitución de un
infinito (sumatorio o integración) o un infinitesimal (diferenciación) por una
aproximación finita. Algunos ejemplos son:

• El cálculo de una función elemental (por ejemplo, Seno x) empleando


sólo n términos de los infinitos que constituyen la expansión en serie de
Taylor.
• Aproximación de la integral de una función por una suma finita de
los valores de la función, como la empleada en la regla del trapezoide.
• Resolución de una ecuación diferencial reemplazando las derivadas
por una aproximación (diferencias finitas).
• Solución de la ecuación f(x) = 0 por el método de Newton-Raphson:
proceso iterativo que, en general, converge sólo cuando el número de
iteraciones tiende a infinito.

Denominaremos a este error, en todas sus formas, como error por truncamiento, ya
que resulta de truncar un proceso infinito para obtener un proceso finito.
Obviamente, estamos interesados en estimar, o al menos acotar, este error en
cualquier procedimiento numérico.
3.
Por último, la otra fuente de error de importancia es aquella que tiene su origen en
el hecho de que los cálculos aritméticos no pueden realizarse con precisión
ilimitada. Muchos números requieren infinitos decimales para ser representados
correctamente, sin embargo, para operar con ellos es necesario redondearlos.
Incluso en el caso en que un número pueda representarse exactamente, algunas
operaciones aritméticas pueden dar lugar a la aparición de errores (las divisiones
pueden producir números que deben ser redondeados y las multiplicaciones dar
lugar a más dígitos de los que se pueden almacenar). El error que se introduce al
redondear un número se denomina error de redondeo.

2.1 Definiciones
Ahora que disponemos de una idea correcta de qué es el error y de cual es su origen,
podemos formalizar el concepto de error. Generalmente, no conocemos el valor de una
cierta magnitud y hemos de conformarnos con un valor aproximado x. Para estimar la
magnitud de este error necesitamos dos definiciones básicas:

Error absoluto
de x:
(1)

Error relativo
de x:

(2)

En la práctica, se emplea la expresión:

(3)

En general, no conocemos el valor de este error, ya que no es habitual disponer del valor

exacto de la magnitud, sino sólo de una acotación de su valor, esto es, un número , tal
que:
(4)

o bien:
(5)

De acuerdo con este formalismo, tenemos que un numero se representará del siguiente
modo:

= (6)

2.2 Dígitos significativos


Sea x un número real que, en general, tiene una representación decimal infinita. Podemos
decir que x ha sido adecuadamente redondeado a un número con d decimales, al que
denominaremos x(d), si el error de redondeo, es tal que:
(8)

Ejemplo 1: Exprese el número x=35.47846 correctamente redondeado a cuatro (x(4)) y tres


(x(3)) decimales. Calcular el error cometido.

Solución: en el primer caso obtenemos:

x(4) = 35.4785

En el segundo caso, la aproximación correcta es:

x(3) = 35.478

y no la siguiente:
x(3) = 35.479

Es decir, no es correcto redondear por exceso cuando el dígito anterior es 5 y proviene de


un acarreo previo.

Otra forma de obtener el número de cifras significativas es mediante truncamiento, en


donde simplemente se eliminan los dígitos de orden inferior. El error cometido en este caso
es:

(9)

y que, en general, conduce a peores resultados que el método anterior.

Ejemplo 2: Exprese el número x=35.47846 truncado a cuatro (x(4)) y tres (x(3)) decimales.
Calcular el error cometido.
Solución:

x(4) = 35.4784
=

x(3) = 35.478
=

2.3 Propagación de errores


Cuando se resuelve un problema matemático por métodos numéricos y aunque las
operaciones se lleven a cabo exactamente, obtenemos una aproximación numérica del
resultado exacto. Es importante tratar de conocer el efecto que sobre el resultado final del
problema tiene cada una de las operaciones realizadas.

Para estudiar como se propaga en error, veamos cual es el efecto que cada una de las
operaciones básicas tiene sobre el error final cuando se aplican sobre dos números

y :

= (10)

= (11)

= (12)

= (13)

Cuando el problema consiste en calcular el resultado y = f(x)tenemos la siguiente fórmula


aproximada de propagación del error:

(14)
En el caso más general, en que una función depende de más de una variable (

), la fórmula aproximada de propagación del error maximal es:

(15)

Ejemplo 3: Determinar el error máximo cometido en el cálculo y = x1 x22 para

y .

Solución: El error cometido, de acuerdo con la ecuación (15), se puede calcular mediante:

Sustituyendo valores, obtenemos:

Por lo que el resultado final se debe expresar como:

Ejemplo 4: Sea el siguiente sistema de ecuaciones lineales:

en donde ; b = 1 / a y d = b - a¿Con qué exactitud podemos


determinar el producto xy?

Solución: Primero resolveremos el sistema de ecuaciones por reducción:


Ecuaciones que conducen a la siguiente expresión para el producto:

(16)

Resolveremos ahora el problema por dos métodos. Primero, calcularemos el error asociado
a cada una de las variables y los términos de la expresión anterior:

Sustituyendo valores, obtenemos el siguiente resultado:

Una forma mucho más adecuada de resolver este problema consiste en sustituir en la
expresión (16) los valores de b y d por sus correspondientes expresiones en función de a.
Sustituyendo y operando, obtenemos que el producto y el error asociado vienen dados por:

que, sustituyendo valores, conduce al resultado:


Si ambos resultados son correctos ¿Por qué el error es mucho menor en el segundo caso que
en el primero? La respuesta es simple: en el segundo caso hemos eliminado operaciones
intermedias, permitiendo que algunos errores se cancelen mutuamente. En general, cuanto
menor sea el número de pasos intermedios que efectuemos para alcanzar la solución, menor
será el error cometido.

2.4 Ejercicios adicionales


1.
¿Con qué exactitud es necesario medir el radio de una esfera para que su volumen
sea conocido con un error relativo menor de 0.01%? ¿Cuantos decimales es
necesario emplear para el valor de ?

Soluciones: . El número debe expresarse al menos con seis


cifras decimales.

2.

Supongamos una barra de hierro de longitud l y sección rectangular fija por


uno de sus extremos. Si sobre el extremo libre aplicamos una fuerza F perpendicular
a la barra, la flexión s que ésta experimenta viene dada por la expresión:

en donde E es una constante que depende sólo del material denominada módulo de
Young. Conociendo que una fuerza de 140 Kp aplicada sobre una barra de 125 cm
de longitud y sección cuadrada de 2.5 cm produce una flexión de 1.71 mm, calcular
el módulo de Young y el intervalo de error. Suponer que los datos vienen afectados
por un error máximo correspondiente al de aproximar por truncamiento las cifras
dadas.

3. Aritmética de computadores
Los computadores no almacenan los números con precisión infinita sino de forma
aproximada empleando un número fijo de bits (apócope del término inglés Binary Digit) o
bytes (grupos de ocho bits). Prácticamente todos los computadores permiten al programador
elegir entre varias representaciones o 'tipos de datos'. Los diferentes tipos de datos pueden
diferir en el número de bits empleados, pero también (lo que es más importante) en cómo el
número representado es almacenado: en formato fijo (también denominado 'entero') o en
punto flotante2 (denominado 'real').
3.1 Aritmética de punto fijo
Un entero se puede representar empleando todos los bits de una palabra de computadora,
con la salvedad de que se debe reservar un bit para el signo. Por ejemplo, en una máquina
con longitud de palabra de 32 bits, los enteros están comprendidos entre -(231 - 1) y 231 - 1 =
2147483647. Un número representado en formato entero es 'exacto'. Las operaciones
aritméticas entre números enteros son también 'exactas' siempre y cuando:

1.
La solución no esté fuera del rango del número entero más grande o más pequeño
que se puede representar (generalmente con signo). En estos casos se dice que se
comete un error de desbordamiento por exceso o por defecto (en inglés: Overflow y
Underflow) y es necesario recurrir a técnicas de escalado para llevar a cabo las
operaciones.
2.
La división se interpreta que da lugar a un número entero, despreciando cualquier
resto.
Por estos motivos, la aritmética de punto fijo se emplea muy raramente en cálculos no
triviales.

3.2 Números en punto flotante

3.2.1 Notación científica normalizada

En el sistema decimal, cualquier número real puede expresarse mediante la denominada


notación científica normalizada. Para expresar un número en notación científica
normalizada multiplicamos o dividimos por 10 tantas veces como sea necesario para que
todos los dígitos aparezcan a la derecha del punto decimal y de modo que el primer dígito
después del punto no sea cero. Por ejemplo:

En general, un número real x distinto de cero, se representa en notación científica


normalizada en la forma:

(17)

en donde r es un número tal que y n es un entero (positivo, negativo o cero).


Exactamente del mismo modo podemos utilizar la notación científica en el sistema binario.
En este caso, tenemos que:

(18)

donde m es un entero. El número q se denomina mantisa y el entero m exponente. En un


ordenador binario tanto q como m estarán representados como números en base 2. Puesto
que la mantisa q está normalizada, en la representación binaria empleada se cumplirá que:

3.2.2 Representación de los números en punto flotante

En un ordenador típico los números en punto flotante se representan de la manera descrita


en el apartado anterior, pero con ciertas restricciones sobre el número de dígitos de q y m
impuestas por la longitud de palabra disponible (es decir, el número de bits que se van a
emplear para almacenar un número). Para ilustrar este punto, consideraremos un ordenador
hipotético que denominaremos MARC-32 y que dispone de una longitud de palabra de 32
bits (muy similar a la de muchos ordenadores actuales). Para representar un número en
punto flotante en el MARC-32, los bits se acomodan del siguiente modo:
Signo del número real x: 1 bit
Signo del exponente m: 1 bit
Exponente (entero |m|): 7 bits
Mantisa (número real |q|): 23 bits
En la mayoría de los cálculos en punto flotante las mantisas se normalizan, es decir, se
toman de forma que el bit más significativo (el primer bit) sea siempre '1'. Por lo tanto, la
mantisa q cumple siempre la ecuación (19).

Dado que la mantisa siempre se representa normalizada, el primer bit en q es siempre 1, por
lo que no es necesario almacenarlo proporcionando un bit significativo adicional. Esta
forma de almacenar un número en punto flotante se conoce con el nombre de técnica del
'bit fantasma'.

Se dice que un número real expresado como aparece en la ecuación (18) y que satisface la
ecuación (19) tiene la forma de punto flotante normalizado. Si además puede representarse
exactamente con |m| ocupando 7 bits y |q| ocupando 24 bits, entonces es un número de
máquina en el MARC-323

La restricción de que |m| no requiera más de 7 bits significa que:


Ya que , la MARC-32 puede manejar números tan pequeños como 10-38 y tan
38
grandes como 10 . Este no es un intervalo de valores suficientemente generoso, por lo que
en muchos casos debemos recurrir a programas escritos en aritmética de doble precisión e
incluso de precisión extendida.

Como q debe representarse empleando no más de 24 bits significa que nuestros números de
máquina tienen una precisión limitada cercana a las siete cifras decimales, ya que el bit
menos significativo de la mantisa representa unidades de . Por tanto, los
números expresados mediante más de siete dígitos decimales serán objeto de aproximación
cuando se almacenen en el ordenador.

Por ejemplo: 0.5 representado en punto flotante en el MARC-32 (longitud de palabra de 32


bits) se almacena en la memoria del siguiente modo:

Ejemplo 5: Suponga un ordenador cuya notación de punto fijo consiste en palabras de


longitud 32 bits repartidas del siguiente modo: 1 bit para el signo, 15 bits para la parte
entera y 16 bits para la parte fraccionaria. Represente los números 26.32,
y 12542.29301 en base 2 empleando esta notación de punto fijo y notación de punto
flotante MARC-32 con 32 bits. Calcule el error de almacenamiento cometido en cada caso.

Solución: El número 26.32 en binario se escribe del siguiente modo:

Empleando las representaciones comentadas, obtenemos:

Si expresamos el error como la diferencia entre el valor y el número realmente almacenado


en el ordenador, obtenemos:

En cuanto a los otros dos números, obtenemos:


Antes de entrar con detalle en la aritmética de los números en punto flotante, es interesante
notar una propiedad de estos números de especial importancia en los cálculos numéricos y
que hace referencia a su densidad en la línea real. Supongamos que p, el número de bits de

la mantisa, sea 24. En el intervalo (exponente f = 0) es posible representar 224


números igualmente espaciados y separados por una distancia 1/224. De modo análogo, en

cualquier intervalo hay 224 números equiespaciados, pero su densidad en este


caso es 2f/224. Por ejemplo, entre 220 = 1048576 y 221 = 2097152 hay 224 = 16777216

números, pero el espaciado entre dos números sucesivos es de sólo . De este hecho se
deriva inmediatamente una regla práctica: cuando es necesario comparar dos números en
punto flotante relativamente grandes, es siempre preferible comparar la diferencia relativa a
la magnitud de los números. En la figura (1) se representa gráficamente la separación entre
dos números consecutivos en función del exponente f en el rango f = [20,30].

Figure: Evolución de la separación entre dos


números consecutivos en función del exponente, f, de
la representación en punto flotante de un número real.
[bb=55 60 455 410, clip=true,
scale=0.7]eps/expon

3.3 Aritmética de punto flotante


En este apartado analizaremos los errores inherentes a la aritmética de los números de
punto flotante. Primero consideraremos el error que surge como consecuencia de que los
números reales no se pueden almacenar, en general, de forma exacta en un ordenador.
Después analizaremos las cuatro operaciones aritméticas básicas y finalmente ampliaremos
el estudio a un cálculo más complejo.

3.3.1 Números de máquina aproximados

Estamos interesados en estimar el error en que se incurre al aproximar un número real


positivo x mediante un número de máquina del MARC-32. Si representamos el número
mediante:

en donde cada ai es 0 ó 1 y el bit principal es a1 = 1. Un número de máquina se puede


obtener de dos formas:

• Truncamiento: descartando todos los bits excedentes . El número


resultante, x' es siempre menor que x (se encuentra a la izquierda de x en la recta
real).
• Redondeo por exceso: Aumentamos en una unidad el último bit remanente a24 y
después eliminamos el exceso de bits como en el caso anterior.

Todo lo anterior, aplicado al caso del MARC-32, se resume diciendo que si x es un número
real distinto de 0 dentro del intervalo de la máquina, entonces el número de máquina x* más
cercano a x satisface la desigualdad:

(20)

que se puede escribir de la siguiente forma:


Ejemplo 6: ¿Cómo se expresa en binario el número x = 2/3? ¿Cuáles son los números de
máquina x' y x'' próximos en el MARC-32?

El número 2/3 en binario se expresa como:

Los dos números de máquina próximos, cada uno con 24 bits, son:
x' =

x'' =

en donde x' se ha obtenido por truncamiento y x'' mediante redondeo por exceso.
Calculamos ahora las diferencias x - x' y x'' - x para estimar cual es el error cometido:

x - x' =

x'' - x =

Por tanto, el número más próximo es fl(x) = x'' y los errores de redondeo absoluto y relativo
son:

|fl(x) - x| =

= 2-25 < 2-24

3.3.2 Las operaciones básicas

Vamos a analizar el resultado de operar sobre dos números en punto flotante normalizado
de l-dígitos de longitud, x e y, que producen un resultado normalizado de l-dígitos.
Expresaremos esta operación como:
en donde op es +, -, ó . Supondremos que en cada caso la mantisa del resultado es
primero normalizada y después redondeada (operación que puede dar lugar a un
desbordamiento que requeriría renormalizar el número). El valor de la mantisa redondeada
a p bits, qr, se define como (de una forma más rigurosa que en el caso anterior):

en donde la función redondeo por defecto es el mayor entero menor o igual a x y la

función redondeo por exceso es el menor entero mayor o igual a x. Para números
enteros, esta función se traduce en la bien conocida regla de sumar 1 en la posición p + 1.
Teniendo en cuenta sólo la mantisa, redondear de este modo da lugar a un intervalo
máximo del error de:
(21)

y un error relativo máximo en el intervalo:

(22)

Analizaremos ahora el error generado por cada una de las operaciones básicas:

Multiplicación.
La operación de multiplicar dos números expresados en punto flotante implica
sumar los exponentes y multiplicar las mantisas. Si la mantisa resultante no está
normalizada, se recurre a renormalizar el resultado ajustando adecuadamente el
exponente. Después, es necesario redondear la mantisa a p bits. Para analizar el
error de esta operación supongamos dos números:

Tenemos entonces que el producto será:


xy = qx qy 2fx + fy

en donde el valor de la mantisa se encontrará en el rango:


ya que tanto x como y satisfacen la ecuación (19). Por tanto, la normalización del
producto qx qy implica un desplazamiento a la derecha de, como máximo, una
posición. La mantisa redondeada será entonces uno de estos dos posibles valores:

en donde , que es el error de redondeo, cumple la ecuación (21). Tenemos


entonces:

en donde, de acuerdo con la ecuación (22), tenemos:

Por tanto, la cota del error relativo en la multiplicación es la misma que la que surge
por redondear la mantisa.

División.
Para llevar a cabo la división en punto flotante, se divide la mitad de la mantisa del
numerador por la mantisa del denominador (para evitar cocientes mayores de la
unidad), mientras que los exponentes se restan. Esto es:

Puesto que ambas mantisas satisfacen la ecuación (18), el valor del cociente estará
acotado entre los límites:

Aplicando un análisis similar al empleado en el caso de la multiplicación,


obtenemos:
en donde, de acuerdo con la ecuación (22), tenemos:

Es decir, la cota máxima del error relativo en la división, como en el caso anterior,
es la misma que la que surge por redondear la mantisa.
Adición y sustracción.
La operación de suma o resta se realiza del siguiente modo: se toma la mantisa del
operando de menor magnitud (supongamos que es y) y se desplaza fx - fy posiciones
a la derecha. La mantisa resultante es sumada (o restada) y el resultado se normaliza
y después se redondea. Es decir:

El análisis del error cometido en esta operación es más complejo que los estudiados
hasta ahora, por lo que no lo vamos a ver en detalle. Sin embargo, el resultado final
indica que la cota máxima del error cometido en la adición y la sustracción viene
dado por:

En conclusión, en todas las operaciones aritméticas elementales en punto flotante, el error


absoluto del resultado es no mayor de 1 en el bit menos significativo de la mantisa.

Sin embargo, los errores de redondeo se acumulan a medida que aumenta el número de
cálculos. Si en el proceso de calcular un valor se llevan a cabo N operaciones aritméticas es

4
posible obtener, en el mejor de los casos, un error de redondeo total del orden de
(que coincide con el caso en que los errores de redondeo están aleatoriamente distribuidos,
por lo que se produce una cancelación parcial). Desafortunadamente, este error puede
crecer muy rápidamente por dos motivos:
• Es muy frecuente que la regularidad del cálculo o las peculiaridades del computador
den lugar a que el error se acumule preferentemente en una dirección; en cuyo caso

el error de redondeo se puede aproximar a .


• En circunstancias especialmente desfavorables pueden existir operaciones que
incremente espectacularmente el error de redondeo. Generalmente, este fenómeno
se da cuando se calcula la diferencia entre dos números muy próximos, dando lugar
a un resultado en el cual los únicos bits significativos que no se cancelan son los de
menor orden (en los únicos en que difieren). Puede parecer que la probabilidad de
que se de dicha situación es pequeña, sin embargo, algunas expresiones
matemáticas fomentan este fenómeno.

Veamos con un ejemplo los problemas comentados anteriormente. Hay dos formas de
calcular las soluciones de la familiar ecuación cuadrática:

ax2 + bx + c = 0

que son:

(23)

(24)

Cualquiera de estas dos expresiones da problemas cuando a, c o ambos, son pequeños. En


estos casos, el valor del discriminante es muy próximo al valor de b:

por lo que la diferencia viene afectada de un error de redondeo


importante. En efecto, la ecuación (23) evalúa bien la raíz más grande en valor absoluto,
pero da pésimos resultados al estimar la raíz menor en valor absoluto. Por otra parte, la
ecuación (24) calcula bien la raíz menor (siempre en valor absoluto) pero no la raíz más
grande.

La solución del problema pasa por emplear una expresión mejor condicionada. En este
caso, es preferible calcular previamente:
(25)

y las dos raíces a partir de valor de q como:


(26)

Ejemplo: Calcular las raíces de la siguiente ecuación cuadrática:

ax2 + bx + c = 0

siendo:

Solución: Empleando la ecuación (23), obtenemos:

Sin embargo, empleando la expresión (24):

Por último, empleando las expresiones (25) y (26) se obtienen ambas soluciones correctas:

3.4 Desbordamiento por exceso y desbordamiento por


defecto
En la discusión anterior, hemos ignorado la posibilidad de que el resultado de una
operación del punto flotante pueda no ser representable mediante el esquema fijo (l-bits)
empleado por el ordenador. La magnitud más grande que puede representarse mediante la
fórmula general (18) es:

(27)
en donde F es el mayor exponente positivo representable (generalmente 27 - 1) y M es la
mantisa que tiene todos sus bits puestos a 1 ( M = 1 - 224). Un desbordamiento por exceso
de punto flotante (overflow en inglés) se origina cuando el resultado de una operación de
punto flotante tiene una magnitud mayor que la representada por la ecuación (27).

Ejemplo: Con q = 8 (y por tanto F = 27 - 1 = 127), las siguientes operaciones aritméticas


dan lugar a desbordamiento por exceso:

El desbordamiento por defecto (underflow en inglés) se produce cuando el resultado de una


operación en punto flotante es demasiado pequeño, aunque no nulo, como para que se
pueda expresar en la forma dada por la ecuación (18). El número más pequeño

representable suponiendo que siempre trabajamos con mantisas normalizadas es ,


en donde -F es el exponente negativo más grande permitido (generalmente -2-q-1). Por
ejemplo, con q=8 resulta -F = -128.

Ejemplo: Con q = 8 (y por tanto -F = -128), la siguiente operación aritmética da lugar a


desbordamiento por defecto:

El desbordamiento por exceso es casi siempre resultado de un error en el cálculo. Sin


embargo, en el caso del desobordamiento por defecto, en muchas ocasiones es posible
continuar el cálculo reemplazando el resultado por cero.

3.5 Condicionamiento y estabilidad


La 'inestabilidad' en un cálculo es un fenómeno que se produce cuando los errores de
redondeo individuales se propagan a través del cálculo incrementalmente. Veamos
brevemente este fenómeno y el problema relacionado con este: el 'condicionamiento' del
método o del problema.

La mejor forma de ver este fenómeno es a través de un ejemplo. Supongamos el siguiente


sistema de ecuaciones diferenciales:
que tiene la siguiente solución general:

En el caso particular en que las condiciones iniciales de nuestro problema son:


y1(0) = -y2(0) = 1

es posible determinar que el valor de las constantes a1 y a2 es: a1 = 0 & y & a2 = 1

Hasta este punto, las soluciones son exactas. Sin embargo, supongamos que el sistema de
ecuaciones anterior se resuelve empleando un método numérico cualquiera con el fin de

calcular los valores de las funciones y1 y y2 en una secuencia de puntos y

que el error del método da lugar a un valor de . Ya que a1 multiplica a un


exponencial creciente cualquier valor, por pequeño que sea, de a1 dará lugar a que el
término ex domine sobre el término e-x para valores suficientemente grandes de x (ver figura
(2)). La conclusión que se obtiene es que no es posible calcular una solución al sistema de
ecuaciones diferenciales anterior que, para valores suficientemente grandes de x, no de
lugar a un error arbitrariamente grande en relación con la solución exacta.

Figure: Representación gráfica de las funciones y =


e-x e en donde se pone
de manifiesto que ambas funciones difieren
rápidamente a partir de un cierto valor de la ordenada
x.
[scale=0.7]eps/sinu

El problema anterior se dice que es inherentemente inestable, o empleando una


terminología más común en cálculo numérico, se dice que está 'mal condicionado' (ill-
conditioned).

4. Cálculo de raíces de ecuaciones


El objeto del cálculo de las raíces de una ecuación es determinar los valores de x para los
que se cumple:

f(x) = 0 (28)

La determinación de las raíces de una ecuación es uno de los problemas más antiguos en
matemáticas y se han realizado un gran número de esfuerzos en este sentido. Su
importancia radica en que si podemos determinar las raíces de una ecuación también
podemos determinar máximos y mínimos, valores propios de matrices, resolver sistemas de
ecuaciones lineales y diferenciales, etc...

La determinación de las soluciones de la ecuación (28) puede llegar a ser un problema muy
difícil. Si f(x) es una función polinómica de grado 1 ó 2, conocemos expresiones simples
que nos permitirán determinar sus raíces. Para polinomios de grado 3 ó 4 es necesario
emplear métodos complejos y laboriosos. Sin embargo, si f(x) es de grado mayor de cuatro
o bien no es polinómica, no hay ninguna fórmula conocida que permita determinar los
ceros de la ecuación (excepto en casos muy particulares).

Existen una serie de reglas que pueden ayudar a determinar las raíces de una ecuación:

• El teorema de Bolzano, que establece que si una función continua, f(x), toma en los
extremos del intervalo [a,b] valores de signo opuesto, entonces la función admite, al
menos, una raíz en dicho intervalo.
• En el caso en que f(x) sea una función algebraica (polinómica) de grado n y
coeficientes reales, podemos afirmar que tendrá n raíces reales o complejas.
• La propiedad más importante que verifican las raíces racionales de una ecuación
algebraica establece que si p/q es una raíz racional de la ecuación de coeficientes
enteros:
entonces el denominador q divide al coeficientes an y el numerador p divide al
término independiente a0.

Ejemplo: Pretendemos calcular las raíces racionales de la ecuación:

3x3 + 3x2 - x - 1 = 0

Primero es necesario efectuar un cambio de variable x = y/3:

y después multiplicamos por 32:

y3 + 3y2 -3y -9 = 0

con lo que los candidatos a raíz del polinomio son:

Sustituyendo en la ecuación, obtenemos que la única raíz real es y = -3, es decir,

(que es además la única raíz racional de la ecuación). Lógicamente,


este método es muy poco potente, por lo que sólo nos puede servir a modo de
orientación.

La mayoría de los métodos utilizados para el cálculo de las raíces de una ecuación son
iterativos y se basan en modelos de aproximaciones sucesivas. Estos métodos trabajan del
siguiente modo: a partir de una primera aproximación al valor de la raíz, determinamos una
aproximación mejor aplicando una determinada regla de cálculo y así sucesivamente hasta
que se determine el valor de la raíz con el grado de aproximación deseado.

4.1 Método de la bisección


Es el método más elemental y antiguo para determinar las raíces de una ecuación. Está
basado directamente en el teorema de Bolzano explicado con anterioridad. Consiste en
partir de un intervalo [x0,x1]tal que f(x0)f(x1) < 0, por lo que sabemos que existe, al menos,
una raíz real. A partir de este punto se va reduciendo el intervalo sucesivamente hasta
hacerlo tan pequeño como exija la precisión que hayamos decidido emplear.

Figure: Diagrama de flujo correspondiente a la


implementación del método de la bisección.
[scale=0.9]eps/bisecc

El algoritmo empleado se esquematiza en la figura (3). Inicialmente, es necesario


suministrar al programa el número máximo de iteraciones MaxIter, la tolerancia , que
representa las cifras significativas con las que queremos obtener la solución y dos valores
de la variable independiente, x0 y x1, tales que cumplan la relación f(x0)f(x1) < 0. Una vez
que se comprueba que el intervalo de partida es adecuado, lo dividimos en dos

subintervalos tales que y y determinamos en qué subintervalo se


encuentra la raíz (comprobando de nuevo el producto de las funciones). Repetimos el

proceso hasta alcanzar la convergencia (hasta que ) o bien hasta que se excede el
número de iteraciones permitidas (Iter > MaxIter), en cuyo caso es necesario imprimir un
mensaje de error indicando que el método no converge.

Dos operaciones representadas en el esquema de la figura (3) requieren una explicación


adicional:

• El punto medio del intervalo se calcula como en lugar de

emplear . Se sigue de este modo una estrategia general al efectuar


cálculos numéricos que indica que es mejor calcular una cantidad añadiendo un
pequeño término de corrección a una aproximación obtenida previamente. Por
ejemplo, en un computador de precisión limitada, existen valores de x0 y x1 para los

cuales xm calculado mediante se sale del intervalo [x0,x1].


• La convergencia ( ) se calcula mediante la

expresión . De este modo, el término , representa el


número de cifras significativas con las que obtenemos el resultado.
• 4.2 Método de las aproximaciones sucesivas
• Dada la ecuación f(x) = 0, el método de las aproximaciones sucesivas reemplaza
esta ecuación por una equivalente, x=g(x), definida en la forma g(x)=f(x)+x. Para
encontrar la solución, partimos de un valor inicial x0 y calculamos una nueva
aproximación x1=g(x0). Reemplazamos el nuevo valor obtenido y repetimos el

proceso. Esto da lugar a una sucesión de valores , que si


converge, tendrá como límite la solución del problema.

Figure: Interpretación geométrica del método de las
aproximaciones sucesivas.
[scale=0.9]eps/as-1

• En la figura (4) se representa la interpretación geométrica del método. Partimos de
un punto inicial x0 y calculamos y = g(x0). La intersección de esta solución con la
recta y=x nos dará un nuevo valor x1 más próximo a la solución final.
• Sin embargo, el método puede divergir fácilmente. Es fácil comprobar que el
método sólo podrá converger si la derivada g'(x) es menor en valor absoluto que la
unidad (que es la pendiente de la recta definida por y=x). Un ejemplo de este caso se
muestra en la figura (5). Esta condición, que a priori puede considerarse una severa
restricción del método, puede obviarse fácilmente. Para ello basta elegir la función
g(x) del siguiente modo:


• de forma que tomando un valor de adecuado, siempre podemos hacer que g(x)
cumpla la condición de la derivada.


Figure: Demostración gráfica de que el método de
las aproximaciones sucesivas diverge si la derivada
g'(x) > 1.
[scale=0.9]eps/as-2
4.3 Método de Newton
Este método parte de una aproximación inicial x0 y obtiene una aproximación mejor, x1,
dada por la fórmula:

(29)

La expresión anterior puede derivarse a partir de un desarrollo en serie de Taylor.


Efectivamente, sea r un cero de f y sea x una aproximación a r tal que r=x+h. Si f'' existe y
es continua, por el teorema de Taylor tenemos:

0 = f(r) = f(x+h) = f(x) + hf'(x) + O(h2) (30)

en donde h=r-x. Si x está próximo a r (es decir hes pequeña), es razonable ignorar el
término O(h2):

0 = f(x) + hf'(x) (31)

por lo que obtenemos la siguiente expresión para h:

(32)

A partir de la ecuación (32) y teniendo en cuenta que r=x+h es fácil derivar la ecuación
(29).
Figure: Interpretación geométrica del método de
Newton.
[scale=0.9]eps/new-1

El método de Newton tiene una interpretación geométrica sencilla, como se puede apreciar
del análisis de la figura (6). De hecho, el método de Newton consiste en una linealización
de la función, es decir, f se reemplaza por una recta tal que contiene al punto (x0,f(x0)) y
cuya pendiente coincide con la derivada de la función en el punto, f'(x0). La nueva
aproximación a la raíz, x1, se obtiene de la intersección de la función linear con el eje X de
ordenadas.

Veamos como podemos obtener la ecuación (29) a partir de lo dicho en el párrafo anterior.
La ecuación de la recta que pasa por el punto (x0,f(x0)) y de pendiente f'(x0) es:

y - f(x0) = f'(x0)(x-x0) (33)

de donde, haciendo y=0 y despejando x obtenemos la ecuación de Newton-Raphson (29).

Figure: Dos situaciones en las que el método de


Newton no funciona adecuadamente: (a) el método no
alcanza la convergencia y (b) el método converge
hacia un punto que no es un cero de la ecuación.
[scale=0.9]eps/new-2

El método de Newton es muy rápido y eficiente ya que la convergencia es de tipo


cuadrático (el número de cifras significativas se duplica en cada iteración). Sin embargo, la
convergencia depende en gran medida de la forma que adopta la función en las
proximidades del punto de iteración. En la figura (7) se muestran dos situaciones en las que
este método no es capaz de alcanzar la convergencia (figura (7a)) o bien converge hacia un
punto que no es un cero de la ecuación (figura (7b)).

4.4 Método de la secante


El principal inconveniente del método de Newton estriba en que requiere conocer el valor
de la primera derivada de la función en el punto. Sin embargo, la forma funcional de f(x)
dificulta en ocasiones el cálculo de la derivada. En estos casos es más útil emplear el
método de la secante.

El método de la secante parte de dos puntos (y no sólo uno como el método de Newton) y
estima la tangente (es decir, la pendiente de la recta) por una aproximación de acuerdo con
la expresión:

(34)

Sustituyendo esta expresión en la ecuación (29) del método de Newton, obtenemos la


expresión del método de la secante que nos proporciona el siguiente punto de iteración:

(35)
Figure: Representación geométrica del método de la
secante.
[scale=0.9]eps/secante

En la siguiente iteración, emplearemos los puntos x1 y x2para estimar un nuevo punto más
próximo a la raíz de acuerdo con la ecuación (35). En la figura (8) se representa
geométricamente este método.

En general, el método de la secante presenta las mismas ventajas y limitaciones que el


método de Newton-Raphson explicado anteriormente.

4.5 Método de Steffensen


El método de Steffensen presenta una convergencia rápida y no requiere, como en el caso
del método de la secante, la evaluación de derivada alguna. Presenta además, la ventaja
adicional de que el proceso de iteración sólo necesita un punto inicial. Este método calcula
el siguiente punto de iteración a partir de la expresión:

4.6 Método de la falsa posición


El método de la falsa posición pretende conjugar la seguridad del método de la bisección
con la rapidez del método de la secante. Este método, como en el método de la bisección,
parte de dos puntos que rodean a la raíz f(x) = 0, es decir, dos puntos x0 y x1tales
que f(x0)f(x1) < 0. La siguiente aproximación, x2, se calcula como la intersección con el eje
X de la recta que une ambos puntos (empleando la ecuación (35) del método de la secante).
La asignación del nuevo intervalo de búsqueda se realiza como en el método de la
bisección: entre ambos intervalos, [x0,x2] y [x2,x1], se toma aquel que cumpla f(x)f(x2) < 0.
En la figura (9) se representa geométricamente este método.
Figure: Representación geométrica del método de la
falsa posición.
[scale=0.9]eps/falpos

La elección guiada del intervalo representa una ventaja respecto al método de la secante ya
que inhibe la posibilidad de una divergencia del método. Por otra parte y respecto al
método de la bisección, mejora notablemente la elección del intervalo (ya que no se limita a
partir el intervalo por la mitad).

Figure: Modificación del método de la falsa posición


propuesta por Hamming. La aproximación a la raíz se
toma a partir del punto de intersección con el eje X de
la recta que une los puntos ( x0,f(x0)/2) y (x1,f(x1)) si la
función es convexa en el intervalo (figura a) o bien a
partir de la recta que une los puntos (x0,f(x0)) y
(x1, f(x1)/2) si la función es cóncava en el intervalo
(figura b).
[scale=0.9]eps/hamming

Sin embargo, el método de la falsa posición tiene una convergencia muy lenta hacia la
solución. Efectivamente, una vez iniciado el proceso iterativo, uno de los extremos del
intervalo tiende a no modificarse (ver figura (9)). Para obviar este problema, se ha
propuesto una modificación del método, denominada método de Hamming. Según este
método, la aproximación a una raíz se encuentra a partir de la determinación del punto de
intersección con el eje X de la recta que une los puntos ( x0,f(x0)/2) y (x1,f(x1)) si la función
es convexa en el intervalo o bien a partir de la recta que une los puntos (x0,f(x0)) y
(x1, f(x1)/2) si la función es cóncava en el intervalo. En la figura (10) se representa
gráficamente el método de Hamming.

Como hemos comentado, el método de Hamming requiere determinar la concavidad o


convexidad de la función en el intervalo de iteración. Un método relativamente sencillo
para determinar la curvatura de la función consiste en evaluar la función en el punto medio
del intervalo, f(xm) (en donde xm se calcula como en el método de la bisección) y comparar
este valor con la media de los valores de la función en los extremos del

intervalo, . Tenemos entonces que:

5. Puntos fijos e iteración funcional


El método de Newton y el de Steffenson son ejemplos de procedimientos mediante los
cuales se calcula una sucesión de puntos empleando una fórmula de recurrencia como la
siguiente:

xn+1 = F(xn) (37)

El algoritmo definido de este modo se denomina iteración funcional.

Ejemplo: En el caso del método de Newton, la expresión (37) se escribiría del modo:

en tanto que para el método de Steffensen resulta ser:


La fórmula (37) puede utilizarse para generar sucesiones que no convergen, como por
ejemplo la sucesión 1, 3, 9, 27,..., que se obtiene con x0=1 y F(x)=3x. Sin embargo, estamos

interesados en aquellos casos para los que existe . Es decir, aquellos casos
para los que se cumple:

Es fácil comprobar que si F es continua se cumple la siguiente relación entre F y s:

Tenemos, por tanto, que F(s)=s y denominamos a s punto fijo de la función F. Podemos
considerar al punto fijo como un valor al que se fija la función durante el proceso iterativo.

Como hemos visto en el apartado anterior, con frecuencia un problema matemático puede
reducirse al problema de encontrar un punto fijo de una función. En este caso, nos
limitaremos a analizar el caso más sencillo en que F envía en sí mismo algún conjunto

cerrado y además se trata de una aplicación contractiva. Se dice que una


transformación es contractiva si existe un número menor que 1 que satisfaga la relación:

(38)

para todos los puntos x e y en el dominio de F.

Las aplicaciones contractivas cumplen una propiedad de gran importancia, que se puede
expresar del siguiente modo:

Sea F una aplicación contractiva que va de un conjunto cerrado a C. Entonces F


tiene un punto fijo. Más aún, este punto fijo es el límite de toda sucesión que se obtenga a

partir de la ecuación (37) con cualquier punto inicial .

El enunciado anterior, conocido como teorema de la aplicación contractiva se puede


demostrar fácilmente. Para ello, primero escribimos xn en la forma:
De acuerdo con la expresión anterior, vemos que la sucesión [xn]converge si y sólo si la
serie

converge. Para demostrar que esta serie converge, basta con demostrar que la serie

(39)

converge.

Por otra parte, usando la propiedad de las aplicaciones contractivas expresada por (38)
junto con la ecuación (37), podemos escribir:

(40)

La relación expresada por (40) puede repetirse para obtener:


(41)

Para comprobar que la sucesión (39) converge, podemos utilizar el criterio de comparación,
de modo que a partir de la expresión (41) obtenemos:

Es decir, la sucesión converge tal como establece el teorema de la aplicación contractiva


expresado anteriormente.

Comprobemos ahora que el punto fijo es efectivamente único. Para ello, supongamos que
existen dos puntos fijos, x e y. De acuerdo con la relación (38), tenemos:
Ya que es un número finito menor que uno, la única forma de que la ecuación anterior se
cumpla es si |x-y| = 0; es decir, si el punto fijo es único.

Ejemplo: Demuestre que la sucesión [xn] definida recursivamente de acuerdo con:

es contractiva y tiene un punto fijo.

Para comprobar que la función anterior es contractiva, calculemos la diferencia entre dos
términos cualesquiera de la sucesión anterior:

(por la desigualdad triangular). Por tanto, de acuerdo con el teorema de la aplicación


contractiva, la sucesión debe converger a un único punto fijo, cuyo valor es 2
(compruébelo).

6. Resolución de sistemas de ecuaciones


lineales
El objetivo de este apartado es examinar los aspectos numéricos que se presentan al
resolver sistemas de ecuaciones lineales de la forma:

(42)

Se trata de un sistema de n ecuaciones con n incógnitas, x1, x2, ..., xn. Los elementos aij y bi
son números reales fijados.

El sistema de ecuaciones (42) se puede escribir, empleando una muy útil representación
matricial, como:
(43)

Entonces podemos denotar estas matrices por A, x y b de forma que la ecuación se reduce
simplemente a:

Ax=b (44)

Los métodos de resolución de sistemas de ecuaciones se pueden dividir en dos grandes


grupos:

• Los Métodos exactos o algoritmos finitos que permiten obtener la solución del
sistema de manera directa.
• Los Métodos aproximados que utilizan algoritmos iterativos e infinitos y que
calculan las solución del sistema por aproximaciones sucesivas.

Al contrario de lo que pueda parecer, en muchas ocasiones los métodos aproximados


permiten obtener un grado de exactitud superior al que se puede obtener empleando los
denominados métodos exactos, debido fundamentalmente a los errores de truncamiento que
se producen en el proceso.

De entre los métodos exactos analizaremos el método de Gauss y una modificación de éste
denominado método de Gauss-Jordan. Entre los métodos aproximados nos centraremos en
el estudio de los métodos de Richardson, Jacobi y Gauss-Seidel.

6.1 Métodos de resolución exacta


Antes de abordar el estudio de los métodos de resolución exacta de sistemas de ecuaciones
lineales, analizaremos algunas propiedades y relaciones útiles que caracterizan a estos
sistemas.