introducci on al c alculo num erico y algunas nociones sobre ...introducci on construcci on de los m...

Post on 21-Jan-2021

10 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Introduccion al calculo numerico

y algunas nociones sobre los errores

Julio Mulero

@juliomulero

julio.muleroDepartamento de Matematicas

Universidad de Alicante

Carmen Gandıa

Departamento de MatematicasUniversidad de Alicante

@juliomulero (julio.mulero@ua.es) Metodos Numericos 1 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Outline

1 IntroduccionQue son los metodos numericosRecorrido historico

2 Construccion de los metodosIdeas basicas para la construccion de metodos

3 Definiciones basicasFuentes de errorAnalisis del error

4 Otras consideraciones importantesEl desarrollo de TaylorHerramientas informaticas

@juliomulero (julio.mulero@ua.es) Metodos Numericos 2 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Outline

1 IntroduccionQue son los metodos numericosRecorrido historico

2 Construccion de los metodosIdeas basicas para la construccion de metodos

3 Definiciones basicasFuentes de errorAnalisis del error

4 Otras consideraciones importantesEl desarrollo de TaylorHerramientas informaticas

@juliomulero (julio.mulero@ua.es) Metodos Numericos 3 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Que son los metodos numericos

@juliomulero (julio.mulero@ua.es) Metodos Numericos 4 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Que son los metodos numericos

Se puede decir que el Analisis Numerico moderno comienza con el documentode 1947 de John von Neumann y Herman Goldstine, “Inversion numerica dematrices de alto orden” (Bulletin of the AMS, Noviembre de 1947), uno de los

primeros trabajos en estudiar el error de redondeo e incluir una discusion de lo

que hoy se llama computacion cientıfica . Aunque el Analisis Numerico tiene

una historia mas larga y rica, el Analisis Numerico “moderno” se caracteriza por

el uso de ordenadores numericos programables y Analisis Matematico frente a

la necesidad de resolver problemas matematicos cuyas aplicaciones resultan

complejas. La necesidad de avances en dichas aplicaciones, como la prediccionbalıstica, el transporte de neutrones y la dinamica de fluidos multidimensional noconstante, impulso el desarrollo de la computadora y dependıa fuertemente de losavances en Analisis Numerico y Modelizacion Matematica.

SIAM Historia del analisis numerico y la computacion cientıfica Proyecto 2007.

@juliomulero (julio.mulero@ua.es) Metodos Numericos 5 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Que son los metodos numericos

Peter Karl Henrici (1923-1987), un matematico suizo experto en

Analisis Numerico , lo definio como:

la teorıa de los metodos constructivos en Analisis Matematico.

El caracter constructivo del Calculo Numerico es muy importante puestoque, propuesto un problema matematico, ademas de estudiar la existenciade solucion, hay que dar un procedimiento para calcularla de modo explicito.

Esta solucion se construira mediante algoritmos , entendiendo por tal una

especificacion no ambigua de operaciones aritmeticas en un orden prefijado.

Estos procedimientos son los llamados metodos numericos .

@juliomulero (julio.mulero@ua.es) Metodos Numericos 6 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Que son los metodos numericos

Un metodo numerico de resolucion de un determinado problema es:

un conjunto de reglas que permite la obtencion mediante un numero finitode operaciones elementales, de un resultado que se aproxima de alguna

manera a la solucion del problema en cuestion.

La aparicion de los ordenadores y su creciente potencia de calculo hapotenciado el uso y desarrollo de metodos numericos para resolver multitudde problemas y ha hecho posible abordar problemas tan complejos como elde la prediccion meteorologica.

Esto ha supuesto un cambio radical en la situacion que el estudio de losmetodos numericos lleva camino de convertirse en una de las ramas masimportantes de las matematicas y, desde luego una de las de masactualidad.

@juliomulero (julio.mulero@ua.es) Metodos Numericos 7 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Que son los metodos numericos

Los objetivos esenciales de esta disciplina son:

1) Dado un problema matematico, encontrar/construir algoritmos que, bajo

ciertas condiciones, permitan obtener una solucion aproximada del problemapropuesto.

2) Analizar las condiciones bajo las cuales la solucion del algoritmo es proximaa la verdadera, estimando los errores en la solucion aproximada.

Se trata pues de encontrar metodos aproximados para resolver todo tipo deproblemas matematicos y analizar los errores producidos en estasaproximaciones.

@juliomulero (julio.mulero@ua.es) Metodos Numericos 8 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Un breve recorrido historico

@juliomulero (julio.mulero@ua.es) Metodos Numericos 9 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Breve recorrido historico

Las matematicas suministran un lenguaje que se utiliza en las ciencias e

ingenierıas para describir con rigor modelos que pretenden representarfenomenos reales.

Las dificultades que surgen en el estudio de estos problemas ha estimuladoel desarrollo de las matematicas generando la necesidad de teorıasabstractas y contribuyendo de este modo a construir el pensamientomatematico actual.

Pero, junto a cada nuevo concepto que permite profundizar en la estructura

del conocimiento matematico, surge la necesidad de desarrollar tecnicasque permitan utilizar esos conceptos de un modo cuantitativo preciso.

@juliomulero (julio.mulero@ua.es) Metodos Numericos 10 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Breve recorrido historico

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

calculo simbolico para resolver ecuaciones de la complejidad con la que sepresentaban 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 calculos por procedimientos numericos aproximados.

@juliomulero (julio.mulero@ua.es) Metodos Numericos 11 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Breve recorrido historico

Por ejemplo, las siguientes integrales definidas:∫ 2

0

sin x2dx

∫ 2

1

e√xdx

O las siguientes ecuaciones:

ex = cos x x5 + x4 − 3x2 + x − 12 = 0 tanx = 5/3

¡No tienen solucion “formal”!

@juliomulero (julio.mulero@ua.es) Metodos Numericos 12 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Breve recorrido historico

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

exponencial de las capacidades de calculo automatico . Este hechocondiciona de un modo radical el modo de calcular y las tecnicas comienzana adaptarse a este nuevo medio de calculo.

Los medios de calculo electronico permiten realizar una elevada cantidad deoperaciones algebraicas en periodos muy reducidos de tiempo. En esemomento surge la necesidad de disenar algoritmos capaces de aproximar lassoluciones a los problemas, mediante operaciones elementales.

Los sistemas de ecuaciones numericas lineales, por ejemplo, aun cuando elnumero de variables fuese muy elevado, podıan ya directamente serresueltos por estas tecnicas. Tambien, las ecuaciones diferenciales, quetienen funciones como incognitas y que involucran operadores diferenciales,podıan ser resueltas eficientemente, si bien necesitaban de un pasointermedio que permitiera convertirlas en ecuaciones numericas.

@juliomulero (julio.mulero@ua.es) Metodos Numericos 13 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Breve recorrido historico

No es de extranar que los nombres de los que han fundamentado el analisismatematico clasico, como Newton, Fourier, Gauss, Legendre, Euler,Chebyshev y otros, se utilicen para denominar metodos y procedimientosdel calculo numerico.

En todo el proceso de desarrollo de las matematicas, el ser humano hatratado de ayudarse mediante artilugios que simplificaran su labor. Primerofueron simples guijarros (calculi, en latın), despues fueron instrumentosmecanicos simples como el abaco, instrumentos mecanicos articulados

como las maquinas de Pascal , de Schickard o la maquina analıtica de

Babbage (aunque nunca la termino) y, finalmente, los ordenadores .

@juliomulero (julio.mulero@ua.es) Metodos Numericos 14 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Breve recorrido historico

Maquina de Pascal (1642) Maquina de Shickard (1623)

@juliomulero (julio.mulero@ua.es) Metodos Numericos 15 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Breve recorrido historico

Maquina analıtica

Charles Babbage (1791–1871)

@juliomulero (julio.mulero@ua.es) Metodos Numericos 16 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Breve recorrido historico

La creacion de los programas que ejecutan los calculos requieren que unordenador los interprete y ejecute las instrucciones escritas en el, debe

escribirse en un lenguaje de programacion .

El trabajo que Ada Lovelace , hija de Anabella Milbanke Byron y LordByron, realizo para la maquina de Babbage le hizo ganarse el tıtulo deprimera programadora de computadoras del mundo, aunque Babbage nuncacompleto la construccion de la maquina.

Alan Mathison Turing es considerado el padre de la informatica moderna.

@juliomulero (julio.mulero@ua.es) Metodos Numericos 17 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Breve recorrido historico

Lenguajes de programacion

Ada Lovelace (1815–1852)

@juliomulero (julio.mulero@ua.es) Metodos Numericos 18 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Breve recorrido historico

Alan Mathison Turing (1912–1954)

q https://elultimoversodefermat.wordpress.com/2019/06/28/

alan-mathison-turing-enhebrasmatematicas/

@juliomulero (julio.mulero@ua.es) Metodos Numericos 19 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

El conocimiento y tecnologıa actual permite realizar calculos de gran complejidad.

Sin embargo, un computador produce resultados en respuesta a calculosprogramados que posiblemente difieren ligeramente de los valores exactos esperados.Esto es consecuencia de que trabajan con una aritmetica discreta que no coincideplenamente con la aritmetica exacta de los numeros enteros o reales.

El ser humano no ha logrado todavıa realizar por medios fısicos, todos los calculosque su mente puede concebir, ni siguiera a representar en la memoria de unordenador mas que un subconjunto finito del conjunto de todos los numeros quepuede 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) Metodos Numericos 20 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Outline

1 IntroduccionQue son los metodos numericosRecorrido historico

2 Construccion de los metodosIdeas basicas para la construccion de metodos

3 Definiciones basicasFuentes de errorAnalisis del error

4 Otras consideraciones importantesEl desarrollo de TaylorHerramientas informaticas

@juliomulero (julio.mulero@ua.es) Metodos Numericos 21 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Ideas basicas para la construccion de metodos

@juliomulero (julio.mulero@ua.es) Metodos Numericos 22 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Ideas basicas para la construccion de metodos

El objetivo principal de esta disciplina es la construccion y aplicacion demetodos numericos fiables y eficientes para resolver un determinadoproblema matematico. Se suelen tener en cuenta los siguientesaspectos/pasos:

1) Sustituir el problema inicial por un algoritmo de calculo, que contiene unparametro n.

2) Probar la convergencia del algoritmo, es decir asegurar que las

aproximaciones, xn, a la solucion, x , son tan proximas como se desee;estimando la rapidez o velocidad de convergencia.

3) Procurar la estabilidad del algoritmo, que significa, hablandocoloquialmente, que pequenas modificaciones en los datos no ocasionenfuertes cambios en el resultado final; o, de otra forma, si los calculos no seefectuan con exactitud (debido a los redondeos) no obstante se tieneconvergencia a la solucion.

4) Realizar el organigrama y/o el programa del algoritmo en cuestion en unadecuado lenguaje de programacion.

@juliomulero (julio.mulero@ua.es) Metodos Numericos 23 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

La convergencia

@juliomulero (julio.mulero@ua.es) Metodos Numericos 24 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Ideas basicas para la construccion de metodos

Definicion (convergencia)

Un algoritmo es un procedimiento que describe de forma precisa una sucesionfinita de operaciones elementales que deben ser ejecutadas en un ordenespecificado para resolver un problema o para obtener una aproximacion adicha solucion a partir de unos datos de entrada.

Los algoritmos implementan los metodos numericos para la resolucion de prob-lemas. Estos metodos pueden ser:

Iterativos: Si el metodo va generando una sucesion que, en determinadascondiciones, converge a la solucion exacta del problema, esdecir, si el algoritmo es reiterativo, en el sentido de que haypasos de el que se repiten un numero arbitrario de veces hastaque se cumpla cierto criterio de parada.

Directos: Si no son iterativos.

@juliomulero (julio.mulero@ua.es) Metodos Numericos 25 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Ideas basicas para la construccion de metodos

Definicion (convergencia)

Un algoritmo es un procedimiento que describe de forma precisa una sucesionfinita de operaciones elementales que deben ser ejecutadas en un ordenespecificado para resolver un problema o para obtener una aproximacion adicha solucion a partir de unos datos de entrada.

Los algoritmos implementan los metodos numericos para la resolucion de prob-lemas. Estos metodos pueden ser:

Iterativos: Si el metodo va generando una sucesion que, en determinadascondiciones, converge a la solucion exacta del problema, esdecir, si el algoritmo es reiterativo, en el sentido de que haypasos de el que se repiten un numero arbitrario de veces hastaque se cumpla cierto criterio de parada.

Directos: Si no son iterativos.

@juliomulero (julio.mulero@ua.es) Metodos Numericos 25 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Ideas basicas para la construccion de metodos

Se entiende que un metodo numerico iterativo converge si la sucesion

formada por las aproximaciones obtenidas en cada iteracion (xn)n∈Nconverge a lo que sera la solucion de nuestro problema.

Cuanto menor sea el numero de iteraciones necesarias para obtener lasolucion del problema con una tolerancia fijada de antemano, mayor sera lavelocidad de convergencia del metodo.

Se dice que un metodo numerico iterativo diverge si los resultados

obtenidos en cada iteracion se van alejando cada vez mas de la solucionexacta.

Por este motivo, al implementar un metodo numerico mediante elcorrespondiente algoritmo suele ser una buena tecnica que el criterio deparada contemple un numero maximo de iteraciones a realizar.

@juliomulero (julio.mulero@ua.es) Metodos Numericos 26 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

La estabilidad

@juliomulero (julio.mulero@ua.es) Metodos Numericos 27 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Ideas basicas para la construccion de metodos

Definicion (estabilidad)

Un algoritmo es estable cuando un error “pequeno” en las condiciones ini-ciales produce desviaciones “pequenas” en el resultado. En caso contrario,el algoritmo se dice inestable.

@juliomulero (julio.mulero@ua.es) Metodos Numericos 28 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Ideas basicas para la construccion de metodos

import numpy as np

# Resolucion del sistema de ecuaciones# 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.])

# Resolucion del sistema de ecuaciones#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) Metodos Numericos 29 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Ideas basicas para la construccion de metodos

Definicion

Supongamos que ε representa un error inicial y que ε(n) representa el creci-miento de dicho error despues 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 quepodamos acotarlo; pero si 0 < K < 1, entonces un error exponencialdisminuye a cero cuando n→∞.

Y Un crecimiento lineal es casi inevitable y puede ser permitido. Un crecimientoexponencial debe evitarse. El objetivo de esta asignatura no es el analisis de estasconsideraciones, pero conviene saber que la teorıa del error constituye una partemuy importante de los metodos numericos.

@juliomulero (julio.mulero@ua.es) Metodos Numericos 30 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

El tiempo invertido

@juliomulero (julio.mulero@ua.es) Metodos Numericos 31 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Ideas basicas para la construccion de metodos

La eleccion de un metodo numerico para la resolucion de un problemamatematico se realiza atendiendo a varios criterios:

1) Elegir aquel metodo que minimice los errores.

2) Elegir aquel metodo que minimice el numero de operaciones efectuadas,directamente relacionado con el costo computacional.

3) Elegir aquel metodo que minimice la memoria requerida para almacenardatos, cada vez menos importante debido a las grandes capacidades actualesde los medios de calculo a nuestra disposicion.

O simplemente, podrıamos adoptar como criterio mas adecuado el deseleccionar aquel metodo que produciendo errores dentro de margenesadmisibles, necesite el menor costo computacional. . .

y, por tanto, la menor inversion de tiempo .

@juliomulero (julio.mulero@ua.es) Metodos Numericos 32 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Ideas basicas para la construccion de metodos

La eleccion de un metodo numerico para la resolucion de un problemamatematico se realiza atendiendo a varios criterios:

1) Elegir aquel metodo que minimice los errores.

2) Elegir aquel metodo que minimice el numero de operaciones efectuadas,directamente relacionado con el costo computacional.

3) Elegir aquel metodo que minimice la memoria requerida para almacenardatos, cada vez menos importante debido a las grandes capacidades actualesde los medios de calculo a nuestra disposicion.

O simplemente, podrıamos adoptar como criterio mas adecuado el deseleccionar aquel metodo que produciendo errores dentro de margenesadmisibles, necesite el menor costo computacional. . .

y, por tanto, la menor inversion de tiempo .

@juliomulero (julio.mulero@ua.es) Metodos Numericos 32 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Por ejemplo. . .

Ejemplo 1

Sea el polinomio p(x) = a0 + a1x + a2x2 + · · · + an−1x

n−1 + anxn, donde

ai ∈ R, i = 1, . . . , n. Supongamos que deseamos calcular el numero deoperaciones necesarias para conocer el valor del polinomio p en el punto x0.¿Cuantas operaciones seran necesarias?

1 El calculo de una potencia de orden k (xko ) implica k − 1 productos. El

numero total de productos sera:

0 + 1 + 2 + · · ·+ n =n(n + 1)

2.

2 La suma de n + 1 sumandos implica n sumas.

3 El numero total de operaciones sera:

n +n2 + n

2=

n2 + 3n

2.

@juliomulero (julio.mulero@ua.es) Metodos Numericos 33 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Por ejemplo. . .

Ejemplo 1

Ahora bien, el polinomio puede escribirse tambien como

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

donde ai ∈ R, i = 1, . . . , n. ¿Cuantas operaciones seran necesarias ahora?

Cada parentesis contiene dos operaciones elementales: un producto y unasuma.

Hay n parentesis.

El numero total de operaciones sera 2n.

@juliomulero (julio.mulero@ua.es) Metodos Numericos 34 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Por ejemplo. . .

Ejemplo 2

Supongamos que queremos resolver un sistema de ecuaciones lineales: Sea

a11x1 + a12x2 + · · ·+ a1nxn = b1

...an1x1 + an2x2 + · · ·+ annx

n = bn

¿Cuantas operaciones seran necesarias?

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

A =

a11 . . . a1n

.... . .

...an1 . . . ann

, X =

x1

...xn

y b =

b1

...bn

,

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

@juliomulero (julio.mulero@ua.es) Metodos Numericos 35 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Por ejemplo. . .

Si el sistema es compatible determinado, podemos aplicar la Regla deCramer.

Si llamamos ∆ al determinante de la matriz A y ∆i al determinante de lamatriz que resulta de sustituir la columna i-esima de la matriz A por lacolumna b, se tiene que:

xi =∆i

∆, para todo i = 1, . . . , n.

La pregunta es. . . ¿Cuantas operaciones elementales necesitamos realizarpara resolver el sistema?

@juliomulero (julio.mulero@ua.es) Metodos Numericos 36 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Por ejemplo. . .

Recordemos que el determinante de una matriz cuadrada

A =

a11 a12 . . . . . . a1n

a21 a22 . . . . . . a2n

......

. . ....

......

... . . . a(n−1)(n−1) a(n−1)n

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

se define como

|A| =∑σ∈S

(−1)inv(σ)a1i1a2i2 . . . anin .

donde inv(σ) se define como el numero de inversiones de la permutacion σcon respecto a la permutacion principal de n elementos,

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

@juliomulero (julio.mulero@ua.es) Metodos Numericos 37 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Por ejemplo. . .

¿Cuantas operaciones elementales debemos realizar?

|A| =∑σ∈S

(−1)inv(σ)a1i1a2i2 . . . anin .

Cada sumando de la suma anterior tiene n factores: n − 1 productos porcada 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, ademas, calcular ncocientes, 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) Metodos Numericos 38 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Por ejemplo. . .

¿Cuantas operaciones elementales debemos realizar?

|A| =∑σ∈S

(−1)inv(σ)a1i1a2i2 . . . anin .

Cada sumando de la suma anterior tiene n factores: n − 1 productos porcada 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, ademas, calcular ncocientes, 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) Metodos Numericos 38 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Por ejemplo. . .

Supongamos ahora que nuestro sistema es el siguiente:

16 3 13 14 9 6 15 17 7 218 19 1 1 8 14 5 5 17 13 19 17 6 15 13 10 16 12 11

18 10 19 1 16 3 14 5 11 1613 16 14 2 4 2 18 19 18 192 3 15 16 10 10 19 7 6 36 8 15 14 9 19 11 4 15 11

11 18 8 6 13 7 3 5 15 919 16 13 19 14 12 3 12 8 019 19 3 1 15 4 5 9 11 7

x1

x2

x3

x4

x5

x6

x7

x8

x9

x10

=

1111111111

Necesitaremos hacer 10Γ(12)− 1 = 10− 11!− 1 = 399167999 operaciones,lo que supone un total de unos 400 segundos (suponiendo que cadaoperacion requiere 10−6 segundos).

Si el sistema tuviera dimension 15, el tiempo empleado serıa de unos 10anos.

@juliomulero (julio.mulero@ua.es) Metodos Numericos 39 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Outline

1 IntroduccionQue son los metodos numericosRecorrido historico

2 Construccion de los metodosIdeas basicas para la construccion de metodos

3 Definiciones basicasFuentes de errorAnalisis del error

4 Otras consideraciones importantesEl desarrollo de TaylorHerramientas informaticas

@juliomulero (julio.mulero@ua.es) Metodos Numericos 40 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Primeras observaciones

@juliomulero (julio.mulero@ua.es) Metodos Numericos 41 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Primeras observaciones

El uso de ordenadores implica conocer, al menos tener una idea, de comofunciona internamente.

La clave del trabajo interno del ordenador reside en el sistema binario. Yesto implica que no todos los numeros pueden ser “representados” conexactitud en su memoria (finita).

Ejemplo

El numero 0.1 posee infinitos dıgitos en base 2, ası que, al ser almacenado en unordenador digital, necesitara ser “redondeado”.

@juliomulero (julio.mulero@ua.es) Metodos Numericos 42 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Primeras observaciones

Pero. . . ¿Como almacena los numeros un ordenador? Para hacernos unaidea es suficiente con trabajar en base 10.

Como es sabido todo numero real no nulo x puede expresarse de modounico en la forma x = ±m × 10q con 0.1 ≤ m < 1 y q ∈ Z, a m se ledenomina mantisa y a q, exponente .

A fin de almacenar dicho numero en el ordenador, debemos guardar susigno, la mantisa y su exponente con su signo, pero para guardar m y qsolo disponemos de un numero finito de dıgitos.

Si, por ejemplo, q solo pudiera tener dos dıgitos en base 10 el intervalo delos numeros representables estarıa contenido en el dado por:

10−100 ≤ |x | < 1099.

@juliomulero (julio.mulero@ua.es) Metodos Numericos 43 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Primeras observaciones

Y, ademas, dentro de dicho intervalo no todos los numeros podran serrepresentados 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 mas usual) o corte tras el k-esimo dıgito.

@juliomulero (julio.mulero@ua.es) Metodos Numericos 44 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Primeras observaciones

El “Institute for Electrical and Electronic Engineers” establecio en 1985 unprotocolo de representacion de numeros reales en los ordenadores quevienen observando desde entonces los fabricantes de los procesadores dondelos ordenadores realizan las operaciones.

En la actualidad, la mayorıa de los procesadores que realizan los calculos enun ordenador trabajan con numeros reales que se representa en comaflotante en binario (base 2) utilizando registros de 32 o 64 dıgitos (bits).

En ellos, se utiliza el primer dıgito para senalar el signo del numero y/o:Precision simple (float): 32 bits, de los cuales uno corresponde al signo, ≈ 8al exponente y 8 a la mantisa.Precision 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) encontrareis una breve descripcion.

@juliomulero (julio.mulero@ua.es) Metodos Numericos 45 / 66

Introduccion Construccion de los metodos Definiciones basicas 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(’00111101110011001100110011001101 ’)

# 0. 10000000149011612

@juliomulero (julio.mulero@ua.es) Metodos Numericos 46 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Fuentes de error

@juliomulero (julio.mulero@ua.es) Metodos Numericos 47 / 66

Introduccion Construccion de los metodos Definiciones basicas 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) Metodos Numericos 48 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Fuentes de error

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

@juliomulero (julio.mulero@ua.es) Metodos Numericos 49 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Fuentes de error

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

@juliomulero (julio.mulero@ua.es) Metodos Numericos 50 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Fuentes de error

La aplicacion de metodos numericos nos lleva a la consideracion de loserrores inherentes a los mismos, que son basicamente los que siguen:

Errores en los datos iniciales , por ejemplo si son resultado de una medidacon algun instrumento.

Errores de redondeo , debidos al hecho de que el ordenador maneja solo unnumero finito de cifras significativas o dıgitos.

Errores de truncatura o discretizacion , que provienen de sustituir unproblema continuo por otro discreto, por ejemplo una serie por una sumafinita, una derivada por un cociente incremental, o una integral definida por una suma de un numero finito de terminos, etc.

@juliomulero (julio.mulero@ua.es) Metodos Numericos 51 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Fuentes de error

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

x=0while x!=10:

x=x+0.1

Traceback (most recent call last):

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

KeyboardInterrupt

@juliomulero (julio.mulero@ua.es) Metodos Numericos 52 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Fuentes de error

import math

18817 - 10864*math.sqrt(3)

Out[1]: 2.6571717171464115e-05

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

Out[2]: 2.6571717083117823e-05

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

Out[3]: False

@juliomulero (julio.mulero@ua.es) Metodos Numericos 53 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Analisis del error

@juliomulero (julio.mulero@ua.es) Metodos Numericos 54 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Analisis del error

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

en un calculo x , determina el error absoluto cometido:

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

Otra representacion del error cometido viene dada por el error relativo ,que se define como el cociente:

er (x) =ea(x)

|x | =|x − x ||x | , si x 6= 0 (sin unidades).

Si multiplicamos por 100, obtendremos el error relativo porcentual que daidea del porcentaje de error en la medida.

Y, por ultimo, podemos considerar:

er (x) =ea(x)

|x | =|x − x ||x | , si x 6= 0.

@juliomulero (julio.mulero@ua.es) Metodos Numericos 55 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Analisis del error

Ejemplo

Supongamos que se tiene que medir la longitud de un puente y de unremache, obteniendose 9999cm y 9cm, respectivamente. Si los valores ver-daderos son 10000cm y 10cm, calcula en cada caso:

El error absoluto.

Los errores relativos.

Solucion

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

er (x) =|x − x ||x | =

|10000− 9999||10000| = 0.0001.

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

er (x) =|10− 9||10| = 0.1.

@juliomulero (julio.mulero@ua.es) Metodos Numericos 56 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Analisis del error

Ejemplo

Supongamos que se tiene que medir la longitud de un puente y de unremache, obteniendose 9999cm y 9cm, respectivamente. Si los valores ver-daderos son 10000cm y 10cm, calcula en cada caso:

El error absoluto.

Los errores relativos.

Solucion

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

er (x) =|x − x ||x | =

|10000− 9999||10000| = 0.0001.

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

er (x) =|10− 9||10| = 0.1.

@juliomulero (julio.mulero@ua.es) Metodos Numericos 56 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Analisis del error

Ejemplo

Si un determinado calculo produce como resultado x = 1.2345×1012 siendoel valor exacto esperado x = 1.2331× 1012. Calcula:

El error absoluto.

Los errores relativos.

@juliomulero (julio.mulero@ua.es) Metodos Numericos 57 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Analisis del error

Dado que x es desconocido, tambien lo seran 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 practicos, muchos metodos numericos generan una sucesion deaproximaciones (xn)n∈N de forma que xn → x , donde x es el valor buscado(metodos iterativos). En este contexto, suele utilizarse tambien el cociente,

que se conoce como error relativo aproximado ,

en =xn − xn−1

xnpara todo n ∈ N.

Ademas, suele establecerse una tolerancia como criterio de parada. En cadaiteracion se calculara el error relativo aproximado que se comparara con latolerancia establecida de forma que el proceso iterativo finaliza cuandoen < t, siendo t la tolerancia fijada de antemano.

@juliomulero (julio.mulero@ua.es) Metodos Numericos 58 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Outline

1 IntroduccionQue son los metodos numericosRecorrido historico

2 Construccion de los metodosIdeas basicas para la construccion de metodos

3 Definiciones basicasFuentes de errorAnalisis del error

4 Otras consideraciones importantesEl desarrollo de TaylorHerramientas informaticas

@juliomulero (julio.mulero@ua.es) Metodos Numericos 59 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

El desarrollo de Taylor

Brook Taylor (1685–1731)

@juliomulero (julio.mulero@ua.es) Metodos Numericos 60 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

El desarrollo de Taylor

Por su utilidad en el resto de la asignatura, vamos a recordar brevementelas formulas 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 paracualquier x0 ∈ (a, b):

f (x) = Pn(x) + Rn(x),

donde

Pn(x) =n∑

k=0

f (k)(x0)

k!(x − x0)k ,

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

Rn(x) =f (n+1)(ξx)

(n + 1)!(x − x0)n+1,

donde ξx es un punto entre x0 y x , es el resto n-esimo de Taylor de f en x0.

@juliomulero (julio.mulero@ua.es) Metodos Numericos 61 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

El desarrollo de Taylor

Ejemplos

Algunos desarrollos notables son:

ex = 1 + x +x2

2!+

x3

3!+ · · ·+ xn

n!+

xn+1

(n + 1)!eξx .

sin x = x +x3

3!+

x5

5!+ · · ·+ (−1)n−1x2n−1

(2n − 1)!+

sin(ξx + (2n + 1)π2

)

(2n + 1)!x2n+1.

log(1 + x) = x − x2

2+

x3

3− x4

4+ · · ·+ (−1)n−1xn

n+

(−1)nxn+1

(n + 1)(ξx + 1)n+1.

@juliomulero (julio.mulero@ua.es) Metodos Numericos 62 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Herramientas informaticas

@juliomulero (julio.mulero@ua.es) Metodos Numericos 63 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Que es Python

Python es un lenguaje de programacion interpretado (se ejecuta sin

necesidad de ser procesado por el compilador y se detectan los errores entiempo de ejecucion) de tipado dinamico (las variables se comprueban entiempo de ejecucion.) cuya filosofıa hace hincapie en una sintaxis quefavorezca un codigo legible.

Se trata de un lenguaje de programacion multiparadigma (soportaprogramacion funcional, programacion imperativa y programacion orientadaa objetos), gratuito (no dispone de licencia para programar) y disponible enlos sistemas operativos mas usuales.

https://www.python.org/

@juliomulero (julio.mulero@ua.es) Metodos Numericos 64 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Que es Spyder

Spyder es un potente entorno de desarrollo interactivo para el lenguaje

Python que posee funciones avanzadas de edicion, pruebas interactivas,depuracion e introspeccion y un entorno informatico numerico gracias alsoporte de IPython (interprete interactivo mejorado de Python) ybibliotecas populares de Python como Numpy, Scipy o matplotlib (trazadointeractivo 2D / 3D).

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

@juliomulero (julio.mulero@ua.es) Metodos Numericos 65 / 66

Introduccion Construccion de los metodos Definiciones basicas Otras consideraciones importantes

Introduccion al calculo numerico

y algunas nociones sobre los errores

Julio Mulero

@juliomulero

julio.muleroDepartamento de Matematicas

Universidad de Alicante

Carmen Gandıa

Departamento de MatematicasUniversidad de Alicante

@juliomulero (julio.mulero@ua.es) Metodos Numericos 66 / 66

top related