Está en la página 1de 70

Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Introducción al cálculo numérico


y algunas nociones sobre los errores

Julio Mulero
@juliomulero Carmen Gandı́a

julio.mulero Departamento de Matemáticas


Departamento de Matemáticas Universidad de Alicante
Universidad de Alicante

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 1 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Outline

1 Introducción
Qué son los métodos numéricos
Recorrido histórico

2 Construcción de los métodos


Ideas básicas para la construcción de métodos

3 Definiciones básicas
Fuentes de error
Análisis del error

4 Otras consideraciones importantes


El desarrollo de Taylor
Herramientas informáticas

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 2 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Outline

1 Introducción
Qué son los métodos numéricos
Recorrido histórico

2 Construcción de los métodos


Ideas básicas para la construcción de métodos

3 Definiciones básicas
Fuentes de error
Análisis del error

4 Otras consideraciones importantes


El desarrollo de Taylor
Herramientas informáticas

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 3 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Qué son los métodos numéricos

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 4 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Qué son los métodos numéricos

Se puede decir que el Análisis Numérico moderno comienza con el documento


de 1947 de John von Neumann y Herman Goldstine, “Inversión numérica de
matrices de alto orden” (Bulletin of the AMS, Noviembre de 1947), uno de los
primeros trabajos en estudiar el error de redondeo e incluir una discusión de lo
que hoy se llama computación cientı́fica . Aunque el Análisis Numérico tiene
una historia más larga y rica, el Análisis Numérico “moderno” se caracteriza por
el uso de ordenadores numéricos programables y Análisis Matemático frente a
la necesidad de resolver problemas matemáticos cuyas aplicaciones resultan
complejas. La necesidad de avances en dichas aplicaciones, como la predicción
balı́stica, el transporte de neutrones y la dinámica de fluidos multidimensional no
constante, impulsó el desarrollo de la computadora y dependı́a fuertemente de los
avances en Análisis Numérico y Modelización Matemática.

SIAM Historia del análisis numérico y la computación cientı́fica Proyecto 2007.

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 5 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Qué son los métodos numéricos

Peter Karl Henrici (1923-1987), un matemático suizo experto en


Análisis Numérico , lo definió como:
la teorı́a de los métodos constructivos en Análisis Matemático.

El carácter constructivo del Cálculo Numérico es muy importante puesto


que, propuesto un problema matemático, además de estudiar la existencia
de solución, hay que dar un procedimiento para calcularla de modo explicito.

Esta solución se construirá mediante algoritmos , entendiendo por tal una


especificación no ambigua de operaciones aritméticas en un orden prefijado.

Estos procedimientos son los llamados métodos numéricos .

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 6 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Qué son los métodos numéricos

Un método numérico de resolución de un determinado problema es:


un conjunto de reglas que permite la obtención mediante un número finito
de operaciones elementales, de un resultado que se aproxima de alguna
manera a la solución del problema en cuestión.

La aparición de los ordenadores y su creciente potencia de cálculo ha


potenciado el uso y desarrollo de métodos numéricos para resolver multitud
de problemas y ha hecho posible abordar problemas tan complejos como el
de la predicción meteorológica.

Esto ha supuesto un cambio radical en la situación que el estudio de los


métodos numéricos lleva camino de convertirse en una de las ramas más
importantes de las matemáticas y, desde luego una de las de más
actualidad.

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 7 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Qué son los métodos numéricos

Los objetivos esenciales de esta disciplina son:

1) Dado un problema matemático, encontrar/construir algoritmos que, bajo


ciertas condiciones, permitan obtener una solución aproximada del problema
propuesto.
2) Analizar las condiciones bajo las cuales la solución del algoritmo es próxima
a la verdadera, estimando los errores en la solución aproximada.

Se trata pues de encontrar métodos aproximados para resolver todo tipo de


problemas matemáticos y analizar los errores producidos en estas
aproximaciones.

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 8 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Un breve recorrido histórico

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 9 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Breve recorrido histórico

Las matemáticas suministran un lenguaje que se utiliza en las ciencias e


ingenierı́as para describir con rigor modelos que pretenden representar
fenómenos reales.
Las dificultades que surgen en el estudio de estos problemas ha estimulado
el desarrollo de las matemáticas generando la necesidad de teorı́as
abstractas y contribuyendo de este modo a construir el pensamiento
matemático actual.
Pero, junto a cada nuevo concepto que permite profundizar en la estructura
del conocimiento matemático, surge la necesidad de desarrollar técnicas
que permitan utilizar esos conceptos de un modo cuantitativo preciso.

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 10 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Breve recorrido histórico

En la primera parte del siglo XX es ya muy manifiesta la insuficiencia del


cálculo simbólico para resolver ecuaciones de la complejidad con la que se
presentaban en los modelos de las ciencias e ingenierı́as.
De hecho, durante la primera mitad de este siglo aparece un
sentimiento de incapacidad por la imposibilidad material de llevar a cabo
los cálculos por procedimientos numéricos aproximados.

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 11 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Breve recorrido histórico

Por ejemplo, las siguientes integrales definidas:


Z 2 Z 2 √
sin x 2 dx e x dx
0 1

O las siguientes ecuaciones:

e x = cos x x 5 + x 4 − 3x 2 + x − 12 = 0 tanx = 5/3

¡No tienen solución “formal”!

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 12 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Breve recorrido histórico

Este sentimiento se mitiga en la segunda mitad del siglo con el desarrollo


exponencial de las capacidades de cálculo automático . Este hecho
condiciona de un modo radical el modo de calcular y las técnicas comienzan
a adaptarse a este nuevo medio de cálculo.
Los medios de cálculo electrónico permiten realizar una elevada cantidad de
operaciones algebraicas en periodos muy reducidos de tiempo. En ese
momento surge la necesidad de diseñar algoritmos capaces de aproximar las
soluciones a los problemas, mediante operaciones elementales.
Los sistemas de ecuaciones numéricas lineales, por ejemplo, aun cuando el
número de variables fuese muy elevado, podı́an ya directamente ser
resueltos por estas técnicas. También, las ecuaciones diferenciales, que
tienen funciones como incógnitas y que involucran operadores diferenciales,
podı́an ser resueltas eficientemente, si bien necesitaban de un paso
intermedio que permitiera convertirlas en ecuaciones numéricas.

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 13 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Breve recorrido histórico

No es de extrañar que los nombres de los que han fundamentado el análisis


matemático clásico, como Newton, Fourier, Gauss, Legendre, Euler,
Chebyshev y otros, se utilicen para denominar métodos y procedimientos
del cálculo numérico.
En todo el proceso de desarrollo de las matemáticas, el ser humano ha
tratado de ayudarse mediante artilugios que simplificaran su labor. Primero
fueron simples guijarros (calculi, en latı́n), después fueron instrumentos
mecánicos simples como el ábaco, instrumentos mecánicos articulados
como las máquinas de Pascal , de Schickard o la máquina analı́tica de
Babbage (aunque nunca la terminó) y, finalmente, los ordenadores .

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 14 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Breve recorrido histórico

Máquina de Pascal (1642) Máquina de Shickard (1623)

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 15 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Breve recorrido histórico

Máquina analı́tica

Charles Babbage (1791–1871)

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 16 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Breve recorrido histórico

La creación de los programas que ejecutan los cálculos requieren que un


ordenador los interprete y ejecute las instrucciones escritas en él, debe
escribirse en un lenguaje de programación .

El trabajo que Ada Lovelace , hija de Anabella Milbanke Byron y Lord


Byron, realizó para la máquina de Babbage le hizo ganarse el tı́tulo de
primera programadora de computadoras del mundo, aunque Babbage nunca
completó la construcción de la máquina.
Alan Mathison Turing es considerado el padre de la informática moderna.

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 17 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Breve recorrido histórico

Lenguajes de programación

Ada Lovelace (1815–1852)

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 18 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Breve recorrido histórico

Alan Mathison Turing (1912–1954)


q https://elultimoversodefermat.wordpress.com/2019/06/28/
alan-mathison-turing-enhebrasmatematicas/

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 19 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

El conocimiento y tecnologı́a actual permite realizar cálculos de gran complejidad.


Sin embargo, un computador produce resultados en respuesta a cálculos
programados que posiblemente difieren ligeramente de los valores exactos esperados.
Esto es consecuencia de que trabajan con una aritmética discreta que no coincide
plenamente con la aritmética exacta de los números enteros o reales.
El ser humano no ha logrado todavı́a realizar por medios fı́sicos, todos los cálculos
que su mente puede concebir, ni siguiera a representar en la memoria de un
ordenador más que un subconjunto finito del conjunto de todos los números que
puede manejar.
Es cierto, sı́, los ordenadores han ayudado mucho, pero hay que
comprender bien su funcionamiento porque pueden ser incluso fuentes de
errores . . .

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 20 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Outline

1 Introducción
Qué son los métodos numéricos
Recorrido histórico

2 Construcción de los métodos


Ideas básicas para la construcción de métodos

3 Definiciones básicas
Fuentes de error
Análisis del error

4 Otras consideraciones importantes


El desarrollo de Taylor
Herramientas informáticas

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 21 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Ideas básicas para la construcción de métodos

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 22 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Ideas básicas para la construcción de métodos

El objetivo principal de esta disciplina es la construcción y aplicación de


métodos numéricos fiables y eficientes para resolver un determinado
problema matemático. Se suelen tener en cuenta los siguientes
aspectos/pasos:
1) Sustituir el problema inicial por un algoritmo de cálculo, que contiene un
parámetro n.
2) Probar la convergencia del algoritmo, es decir asegurar que las
aproximaciones, xn , a la solución, x, son tan próximas como se desee;
estimando la rapidez o velocidad de convergencia.
3) Procurar la estabilidad del algoritmo, que significa, hablando
coloquialmente, que pequeñas modificaciones en los datos no ocasionen
fuertes cambios en el resultado final; o, de otra forma, si los cálculos no se
efectúan con exactitud (debido a los redondeos) no obstante se tiene
convergencia a la solución.
4) Realizar el organigrama y/o el programa del algoritmo en cuestión en un
adecuado lenguaje de programación.

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 23 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

La convergencia

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 24 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Ideas básicas para la construcción de métodos

Definición (convergencia)
Un algoritmo es un procedimiento que describe de forma precisa una sucesión
finita de operaciones elementales que deben ser ejecutadas en un orden
especificado para resolver un problema o para obtener una aproximación a
dicha solución a partir de unos datos de entrada.

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 25 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Ideas básicas para la construcción de métodos

Definición (convergencia)
Un algoritmo es un procedimiento que describe de forma precisa una sucesión
finita de operaciones elementales que deben ser ejecutadas en un orden
especificado para resolver un problema o para obtener una aproximación a
dicha solución a partir de unos datos de entrada.

Los algoritmos implementan los métodos numéricos para la resolución de prob-


lemas. Estos métodos pueden ser:
Iterativos: Si el método va generando una sucesión que, en determinadas
condiciones, converge a la solución exacta del problema, es
decir, si el algoritmo es reiterativo, en el sentido de que hay
pasos de él que se repiten un número arbitrario de veces hasta
que se cumpla cierto criterio de parada.
Directos: Si no son iterativos.

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 25 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Ideas básicas para la construcción de métodos

Se entiende que un método numérico iterativo converge si la sucesión


formada por las aproximaciones obtenidas en cada iteración (xn )n∈N
converge a lo que será la solución de nuestro problema.
Cuanto menor sea el número de iteraciones necesarias para obtener la
solución del problema con una tolerancia fijada de antemano, mayor será la
velocidad de convergencia del método.
Se dice que un método numérico iterativo diverge si los resultados
obtenidos en cada iteración se van alejando cada vez más de la solución
exacta.
Por este motivo, al implementar un método numérico mediante el
correspondiente algoritmo suele ser una buena técnica que el criterio de
parada contemple un número máximo de iteraciones a realizar.

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 26 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

La estabilidad

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 27 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Ideas básicas para la construcción de métodos

Definición (estabilidad)
Un algoritmo es estable cuando un error “pequeño” en las condiciones ini-
ciales produce desviaciones “pequeñas” en el resultado. En caso contrario,
el algoritmo se dice inestable.

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 28 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Ideas básicas para la construcción de métodos

import numpy as np

# R e s o l u c i o n del sistema de e c u a c i o n e s
# x + y = 2
# x + 1 . 00001y = 2 . 00001

A = np . array ( [ [1 , 1 ] ,[1 , 1 . 00001 ] ] )


b = np . array ( [2 , 2 . 00001 ] )

np . linalg . solve (A , b )

Out [ 1 ] : array ( [ 1 . , 1 . ] )

# R e s o l u c i o n del sistema de e c u a c i o n e s
#x + y = 2
# x + 1 . 00001y = 2

A = np . array ( [ [1 , 1 ] ,[1 , 1 . 00001 ] ] )


b = np . array ( [2 , 2 ] )

np . linalg . solve (A , b )

Out [ 2 ] : array ( [ 2 . , 0 . ] )

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 29 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Ideas básicas para la construcción de métodos

Definición
Supongamos que ε representa un error inicial y que ε(n) representa el creci-
miento de dicho error después de n operaciones.
Si |ε(n)| ≈ nε, se dice que el crecimiento es lineal.
Si |ε(n)| ≈ K n ε, entonces se dice que el crecimiento es exponencial.
Si K > 1, entonces un error exponencial crece cuando n → ∞ sin que
podamos acotarlo; pero si 0 < K < 1, entonces un error exponencial
disminuye a cero cuando n → ∞.

Y Un crecimiento lineal es casi inevitable y puede ser permitido. Un crecimiento


exponencial debe evitarse. El objetivo de esta asignatura no es el análisis de estas
consideraciones, pero conviene saber que la teorı́a del error constituye una parte
muy importante de los métodos numéricos.

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 30 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

El tiempo invertido

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 31 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Ideas básicas para la construcción de métodos

La elección de un método numérico para la resolución de un problema


matemático se realiza atendiendo a varios criterios:
1) Elegir aquel método que minimice los errores.

2) Elegir aquel método que minimice el número de operaciones efectuadas,


directamente relacionado con el costo computacional.

3) Elegir aquel método que minimice la memoria requerida para almacenar


datos, cada vez menos importante debido a las grandes capacidades actuales
de los medios de cálculo a nuestra disposición.

O simplemente, podrı́amos adoptar como criterio más adecuado el de


seleccionar aquel método que produciendo errores dentro de márgenes
admisibles, necesite el menor costo computacional. . .

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 32 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Ideas básicas para la construcción de métodos

La elección de un método numérico para la resolución de un problema


matemático se realiza atendiendo a varios criterios:
1) Elegir aquel método que minimice los errores.

2) Elegir aquel método que minimice el número de operaciones efectuadas,


directamente relacionado con el costo computacional.

3) Elegir aquel método que minimice la memoria requerida para almacenar


datos, cada vez menos importante debido a las grandes capacidades actuales
de los medios de cálculo a nuestra disposición.

O simplemente, podrı́amos adoptar como criterio más adecuado el de


seleccionar aquel método que produciendo errores dentro de márgenes
admisibles, necesite el menor costo computacional. . .

y, por tanto, la menor inversión de tiempo .

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 32 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Por ejemplo. . .

Ejemplo 1

Sea el polinomio p(x) = a0 + a1 x + a2 x 2 + · · · + an−1 x n−1 + an x n , donde


ai ∈ R, i = 1, . . . , n. Supongamos que deseamos calcular el número de
operaciones necesarias para conocer el valor del polinomio p en el punto x0 .
¿Cuántas operaciones serán necesarias?

1 El cálculo de una potencia de orden k (xok ) implica k − 1 productos. El


número total de productos será:
n(n + 1)
0 + 1 + 2 + ··· + n = .
2
2 La suma de n + 1 sumandos implica n sumas.
3 El número total de operaciones será:

n2 + n n2 + 3n
n+ = .
2 2
@juliomulero (julio.mulero@ua.es) Métodos Numéricos 33 / 66
Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Por ejemplo. . .

Ejemplo 1
Ahora bien, el polinomio puede escribirse también como

p(x) = a0 + x(a1 + x(a2 + · · · + x(an−1 + an x))).

donde ai ∈ R, i = 1, . . . , n. ¿Cuántas operaciones serán necesarias ahora?

Cada paréntesis contiene dos operaciones elementales: un producto y una


suma.
Hay n paréntesis.
El número total de operaciones será 2n.

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 34 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Por ejemplo. . .

Ejemplo 2
Supongamos que queremos resolver un sistema de ecuaciones lineales: Sea

a11 x1 + a12 x2 + · · · + a1n x n = b1 



..

. 
an1 x1 + an2 x2 + · · · + ann x n = bn

¿Cuántas operaciones serán necesarias?

Sabemos que el sistema se puede escribir como AX = b, donde


     
a11 . . . a1n x1 b1
 . .. ..   ..  . 
A =  .. , X =  y b =  ..  ,

. .   .
an1 . . . ann xn bn

donde A ∈ Mn×n (R) y b ∈ Mn×1 (R).


@juliomulero (julio.mulero@ua.es) Métodos Numéricos 35 / 66
Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Por ejemplo. . .

Si el sistema es compatible determinado, podemos aplicar la Regla de


Cramer.
Si llamamos ∆ al determinante de la matriz A y ∆i al determinante de la
matriz que resulta de sustituir la columna i-ésima de la matriz A por la
columna b, se tiene que:
∆i
xi = , para todo i = 1, . . . , n.

La pregunta es. . . ¿Cuántas operaciones elementales necesitamos realizar
para resolver el sistema?

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 36 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Por ejemplo. . .

Recordemos que el determinante de una matriz cuadrada

a11 a12 . . . ... a1n


 
 a21 a22 . . . ... a2n 
 .. .. .. ..
 
.. 
A=  . . . . . 

 . .
 .. ..

. . . a(n−1)(n−1) a(n−1)n 
an1 an2 . . . an(n−1) ann

se define como X
|A| = (−1)inv (σ) a1i1 a2i2 . . . anin .
σ∈S

donde inv (σ) se define como el número de inversiones de la permutación σ


con respecto a la permutación principal de n elementos,

1, 2, 3, . . . , n.

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 37 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Por ejemplo. . .

¿Cuántas operaciones elementales debemos realizar?


X
|A| = (−1)inv (σ) a1i1 a2i2 . . . anin .
σ∈S

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 38 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Por ejemplo. . .

¿Cuántas operaciones elementales debemos realizar?


X
|A| = (−1)inv (σ) a1i1 a2i2 . . . anin .
σ∈S

Cada sumando de la suma anterior tiene n factores: n − 1 productos por


cada sumando.
Hay un total de n! sumandos: En total, n!(n − 1) productos.
Los n! sumandos dan lugar a n! − 1 sumas.
Como debemos resolver n + 1 determinantes y, además, calcular n
cocientes, obtenemos un total de

(n+1)(n!(n−1)+n!−1)+n = (n+1)n!(n−1+1)−1 = nΓ(n+2)−1 operaciones.

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 38 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Por ejemplo. . .

Supongamos ahora que nuestro sistema es el siguiente:


    
16 3 13 14 9 6 15 17 7 2 x1 1
 18 19 1 1 8 14 5 5 17 1   x2   1 
    
 3 19 17 6 15 13 10 16 12 11   x3   1 
    
 18 10 19 1 16 3 14 5 11 16   x4   1 
    
 13 16 14 2 4 2 18 19 18 19   x5   1 
  = 
 2 3 15 16 10 10 19 7 6 3   x6   1 
    
 6 8 15 14 9 19 11 4 15 11   x7   1 
    
 11 18 8 6 13 7 3 5 15 9   x8   1 
    
 19 16 13 19 14 12 3 12 8 0   x9   1 
19 19 3 1 15 4 5 9 11 7 x10 1

Necesitaremos hacer 10Γ(12) − 1 = 10 − 11! − 1 = 399167999 operaciones,


lo que supone un total de unos 400 segundos (suponiendo que cada
operación requiere 10−6 segundos).
Si el sistema tuviera dimensión 15, el tiempo empleado serı́a de unos 10
años.
@juliomulero (julio.mulero@ua.es) Métodos Numéricos 39 / 66
Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Outline

1 Introducción
Qué son los métodos numéricos
Recorrido histórico

2 Construcción de los métodos


Ideas básicas para la construcción de métodos

3 Definiciones básicas
Fuentes de error
Análisis del error

4 Otras consideraciones importantes


El desarrollo de Taylor
Herramientas informáticas

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 40 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Primeras observaciones

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 41 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Primeras observaciones

El uso de ordenadores implica conocer, al menos tener una idea, de cómo


funciona internamente.
La clave del trabajo interno del ordenador reside en el sistema binario. Y
esto implica que no todos los números pueden ser “representados” con
exactitud en su memoria (finita).

Ejemplo
El número 0.1 posee infinitos dı́gitos en base 2, ası́ que, al ser almacenado en un
ordenador digital, necesitará ser “redondeado”.

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 42 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Primeras observaciones

Pero. . . ¿Cómo almacena los números un ordenador? Para hacernos una


idea es suficiente con trabajar en base 10.
Como es sabido todo número real no nulo x puede expresarse de modo
único en la forma x = ±m × 10q con 0.1 ≤ m < 1 y q ∈ Z, a m se le
denomina mantisa y a q, exponente .
A fin de almacenar dicho número en el ordenador, debemos guardar su
signo, la mantisa y su exponente con su signo, pero para guardar m y q
solo disponemos de un número finito de dı́gitos.
Si, por ejemplo, q solo pudiera tener dos dı́gitos en base 10 el intervalo de
los números representables estarı́a contenido en el dado por:

10−100 ≤ |x| < 1099 .

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 43 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Primeras observaciones

Y, además, dentro de dicho intervalo no todos los números podrán ser


representados con exactitud, como ya hemos visto anteriormente.
Si, por ejemplo, solo pueden ser utilizados k dı́gitos para almacenar m,
dado x cualquiera del intervalo anterior, quedarı́a representado como:

x = ±m × 10q ,

con m obtenida por redondeo (lo más usual) o corte tras el k-ésimo dı́gito.

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 44 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Primeras observaciones

El “Institute for Electrical and Electronic Engineers” estableció en 1985 un


protocolo de representación de números reales en los ordenadores que
vienen observando desde entonces los fabricantes de los procesadores donde
los ordenadores realizan las operaciones.

En la actualidad, la mayorı́a de los procesadores que realizan los cálculos en


un ordenador trabajan con números reales que se representa en coma
flotante en binario (base 2) utilizando registros de 32 o 64 dı́gitos (bits).
En ellos, se utiliza el primer dı́gito para señalar el signo del número y/o:
Precisión simple (float): 32 bits, de los cuales uno corresponde al signo, ≈ 8
al exponente y 8 a la mantisa.
Precisión doble (double): 64 bits, de los cuales uno corresponde al signo,
≈ 11 al exponente y 52 a la mantisa.
q En Faires and Burden (2004) encontraréis una breve descripción.

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 45 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Primeras observaciones

import struct

def float_to_bin ( num ) :


return format ( struct . unpack ( ’! I ’ , struct . pack ( ’! f ’ , num ) )
[ 0 ] , ’ 032b ’)

def bin_to_float ( binary ) :


return struct . unpack ( ’! f ’ , struct . pack ( ’! I ’ , int ( binary , 2
)))[0]

float_to_bin ( 0 . 1 )

# ’ 00111101110011001100110011001101 ’

bin_to_float ( ’ 0 0 1 1 1 1 0 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 ’)

# 0. 10000000149011612

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 46 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Fuentes de error

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 47 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Fuentes de error

q https://elultimoversodefermat.wordpress.com/2020/01/09/
la-guerra-es-siempre-el-mayor-error/
q http://www-users.math.umn.edu/~arnold/disasters/patriot.html

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 48 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Fuentes de error

q http://www-users.math.umn.edu/~arnold/disasters/ariane.html

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 49 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Fuentes de error

q http://www-users.math.umn.edu/~arnold/disasters/sleipner.html

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 50 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Fuentes de error

La aplicación de métodos numéricos nos lleva a la consideración de los


errores inherentes a los mismos, que son básicamente los que siguen:

Errores en los datos iniciales , por ejemplo si son resultado de una medida
con algún instrumento.
Errores de redondeo , debidos al hecho de que el ordenador maneja solo un
número finito de cifras significativas o dı́gitos.
Errores de truncatura o discretización , que provienen de sustituir un
problema continuo por otro discreto, por ejemplo una serie por una suma
finita, una derivada por un cociente incremental, o una integral defi
nida por una suma de un número finito de términos, etc.

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 51 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Fuentes de error

Tal y como hemos visto, (0.1)10 tiene infinitos decimales en el sistema binario. . .

x=0
while x ! = 10 :
x=x+0.1

Traceback ( most recent call last ) :

File " < ipython - input - 31 - 8597211ccc15 > " , line 3 , in < module >
x=x+0.1

K e y b o ard Int erru pt

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 52 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Fuentes de error

import math

18817 - 10864 * math . sqrt ( 3 )

Out [ 1 ] : 2 . 65 717 171 71 4 6 4 1 1 5 e - 05

1 / ( 18817 + 10864 * math . sqrt ( 3 ) )

Out [ 2 ] : 2 . 65 717 170 83 1 1 7 8 2 3 e - 05

18817 - 10864 * math . sqrt ( 3 ) = = 1 / ( 18817 + 10864 * math . sqrt ( 3 ) )

Out [ 3 ] : False

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 53 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Análisis del error

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 54 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Análisis del error

La diferencia (en valor absoluto) entre el valor exacto x y el valor obtenido


en un cálculo x, determina el error absoluto cometido:

ea (x) = |x − x| (en las mismas unidades que los datos).

Otra representación del error cometido viene dada por el error relativo ,
que se define como el cociente:
ea (x) |x − x|
er (x) = = , si x 6= 0 (sin unidades).
|x| |x|
Si multiplicamos por 100, obtendremos el error relativo porcentual que da
idea del porcentaje de error en la medida.
Y, por último, podemos considerar:
ea (x) |x − x|
ẽr (x) = = , si x 6= 0.
|x| |x|

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 55 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Análisis del error

Ejemplo
Supongamos que se tiene que medir la longitud de un puente y de un
remache, obteniéndose 9999cm y 9cm, respectivamente. Si los valores ver-
daderos son 10000cm y 10cm, calcula en cada caso:
El error absoluto.
Los errores relativos.

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 56 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Análisis del error

Ejemplo
Supongamos que se tiene que medir la longitud de un puente y de un
remache, obteniéndose 9999cm y 9cm, respectivamente. Si los valores ver-
daderos son 10000cm y 10cm, calcula en cada caso:
El error absoluto.
Los errores relativos.

Solución

ea (x) = |x − x| = |10000 − 9999| = 1cm, ea (x) = |10 − 9| = 1cm,


|x − x| |10000 − 9999| |10 − 9|
er (x) = = = 0.0001. er (x) = = 0.1.
|x| |10000| |10|

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 56 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Análisis del error

Ejemplo

Si un determinado cálculo produce como resultado x = 1.2345 × 1012 siendo


el valor exacto esperado x = 1.2331 × 1012 . Calcula:
El error absoluto.
Los errores relativos.

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 57 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Análisis del error

Dado que x es desconocido, también lo serán los errores absoluto y relativo.


Por este motivo, se suelen manejan cotas de error εa (x) y εr (x):

|ea (x)| ≤ εa (x) y |er (x)| ≤ εr (x).

A efectos prácticos, muchos métodos numéricos generan una sucesión de


aproximaciones (xn )n∈N de forma que xn → x, donde x es el valor buscado
(métodos iterativos). En este contexto, suele utilizarse también el cociente,
que se conoce como error relativo aproximado ,

xn − xn−1
en = para todo n ∈ N.
xn
Además, suele establecerse una tolerancia como criterio de parada. En cada
iteración se calculará el error relativo aproximado que se comparará con la
tolerancia establecida de forma que el proceso iterativo finaliza cuando
en < t, siendo t la tolerancia fijada de antemano.

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 58 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Outline

1 Introducción
Qué son los métodos numéricos
Recorrido histórico

2 Construcción de los métodos


Ideas básicas para la construcción de métodos

3 Definiciones básicas
Fuentes de error
Análisis del error

4 Otras consideraciones importantes


El desarrollo de Taylor
Herramientas informáticas

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 59 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

El desarrollo de Taylor

Brook Taylor (1685–1731)

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 60 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

El desarrollo de Taylor

Por su utilidad en el resto de la asignatura, vamos a recordar brevemente


las fórmulas de Taylor para funciones reales de una o varias variables.

Teorema
Si f : [a, b] → R continua y derivable hasta el orden n + 1, entonces para
cualquier x0 ∈ (a, b):
f (x) = Pn (x) + Rn (x),
donde
n
X f (k) (x0 )
Pn (x) = (x − x0 )k ,
k!
k=0

es el polinomio de Taylor de grado n para f en x0 , y

f (n+1) (ξx )
Rn (x) = (x − x0 )n+1 ,
(n + 1)!
donde ξx es un punto entre x0 y x, es el resto n-ésimo de Taylor de f en x0 .

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 61 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

El desarrollo de Taylor

Ejemplos
Algunos desarrollos notables son:

x2 x3 xn x n+1 ξx
ex = 1 + x + + + ··· + + e .
2! 3! n! (n + 1)!

x3 x5 (−1)n−1 x 2n−1 sin(ξx + (2n + 1) π2 ) 2n+1


sin x = x + + + ··· + + x .
3! 5! (2n − 1)! (2n + 1)!
x2 x3 x4 (−1)n−1 x n (−1)n x n+1
log(1 + x) = x − + − + ··· + + .
2 3 4 n (n + 1)(ξx + 1)n+1

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 62 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Herramientas informáticas

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 63 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Qué es Python

Python es un lenguaje de programación interpretado (se ejecuta sin


necesidad de ser procesado por el compilador y se detectan los errores en
tiempo de ejecución) de tipado dinámico (las variables se comprueban en
tiempo de ejecución.) cuya filosofı́a hace hincapié en una sintaxis que
favorezca un código legible.
Se trata de un lenguaje de programación multiparadigma (soporta
programación funcional, programación imperativa y programación orientada
a objetos), gratuito (no dispone de licencia para programar) y disponible en
los sistemas operativos más usuales.

https://www.python.org/

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 64 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Qué es Spyder

Spyder es un potente entorno de desarrollo interactivo para el lenguaje


Python que posee funciones avanzadas de edición, pruebas interactivas,
depuración e introspección y un entorno informático numérico gracias al
soporte de IPython (intérprete interactivo mejorado de Python) y
bibliotecas populares de Python como Numpy, Scipy o matplotlib (trazado
interactivo 2D / 3D).

https://www.spyder-ide.org/

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 65 / 66


Introducción Construcción de los métodos Definiciones básicas Otras consideraciones importantes

Introducción al cálculo numérico


y algunas nociones sobre los errores

Julio Mulero
@juliomulero Carmen Gandı́a

julio.mulero Departamento de Matemáticas


Departamento de Matemáticas Universidad de Alicante
Universidad de Alicante

@juliomulero (julio.mulero@ua.es) Métodos Numéricos 66 / 66

También podría gustarte