






Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Asignatura: Cálculo Numérico I, Profesor: Patricio Cifuentes, Carrera: Matemáticas, Universidad: UAM
Tipo: Apuntes
1 / 11
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!







La mayor parte de las funciones que aparecen en matem´aticas son dif´ıcilmente evaluables. No solamente aquellas que aparecen como soluciones de algunos problemas y no pueden expresarse algebraica- mente en t´erminos de funciones elementales, sino que estas mis- mas funciones elementales —incluyendo entre ellas las funciones trigonom´etricas, la exponencial, y sus inversas— son dif´ıciles de evaluar. Recordemos que sus valores se obtienen com´unmente de tablas ya calculadas o por medio de m´aquinas calculadoras. Para calcular estas tablas, para programar estas calculadoras, para esti- mar valores num´ericos relacionados con aquellas funciones, nece- sitamos t´ecnicas que nos permitan, a partir de la definici´on de la funci´on, aproximarnos al valor real que queremos estimar con- trolando en todo momento la magnitud del error que estamos come- tiendo. Estas t´ecnicas, reglas, m´etodos, junto con su justificaci´on te´orica, y por tanto control de su error, es lo que constituye el c´alculo num´erico.
Desde la aparici´on de las calculadoras electr´onicas —incluyendo entre ellas los ordenadores, grandes y peque˜nos— el panorama del c´alculo num´erico ha cambiado enormemente. Ya no se trata de buscar m´etodos y reglas que en unas pocas operaciones nos faciliten el valor buscado; ya no tiene tanta importancia el n´umero de ope- raciones necesario para realizar un c´alculo, es m´as importante la estabilidad de ese c´alculo a pesar del gran n´umero de operaciones, el control del error que produce la aritm´etica del ordenador.
No significa esto que no haya problemas en los cuales sea necesario
buscar m´etodos que limiten el n´umero de operaciones. Son por lo general problemas que antes de la aparici´on del ordenador eran to- talmente inabordables debido a su magnitud pero que con la nueva tecnolog´ıa son f´acilmente programables. Estamos pensando en par- ticular en los problemas de inversi´on de matrices y resoluci´on de sistemas lineales de gran tama˜no, aunque no sea este el ´unico caso.
Las reglas aritm´eticas que hemos aprendido en la escuela est´an basadas en el sistema num´erico de base diez (sistema decimal). Hemos aprendido de memoria unas tablas que contienen la suma y el producto de los diez primeros n´umeros naturales (que utilizamos como d´ıgitos) y a partir de ellas sabemos como operar con n´umeros de cualquier magnitud siempre que est´en expresados en t´erminos de estos diez d´ıgitos. La expresi´on de cualquier n´umero natural N en t´erminos de estos diez d´ıgitos viene dada por la concatenaci´on de los restos que resultan de dividir por diez el n´umero N y sus sucesivos cocientes. Es decir, la primera cifra —que situamos a la derecha— es el resto R 1 de dividir N entre diez, con cociente N 1 ; la segunda cifra —que situamos inmediatamente a la izquierda de aquella— es el resto R 2 de dividir N 1 entre diez, con cociente N 2 ; iteramos este proceso hasta que obtenemos un ´ultimo resto Rk — que situamos inmediatamente a la izquierda de la concatenaci´on de restos obtenidos hasta el momento— al obtener por cociente cero. As´ı la expresi´on decimal del n´umero N es la concatenaci´on de restos RkRk− 1... R 2 R 1 todos ellos n´umeros entre cero y nueve que representamos usualmente por las cifras 0, 1 ,... , 9.
Esta es la representaci´on num´erica que todos conocemos desde nues- tra m´as tierna infancia descrita en t´erminos un tanto sofisticados con el fin de observar la arbitrariedad contenida en la elecci´on del n´umero diez en este proceso —arbitrariedad seguramente debida al hecho de ser ´este el n´umero total de dedos, lo que nos per- mite utilizar las manos como un ´abaco natural. Una vez obser- vada esta arbitrariedad nada nos impide cambiar los t´erminos y jugar a reconstruir nuestra aritm´etica elemental en una base dis- tinta. Puede ser ´esta cualquier n´umero positivo b mayor que uno. Necesitaremos para esta aritm´etica un n´umero b de cifras que repre- senten los b primeros n´umeros naturales incluido el cero. El proceso
la botella por medio de marcas en la serie de n´umeros 1, 2, 4, 8, 16, y 1, 2, 4, 8. Es particularmente interesante la forma de indicar el d´ıa del mes ya que con estos n´umeros se cubren exactamente los 31 d´ıas posibles.
Ejercicio. Escribir en base dos los n´umeros en base diez siguien- tes: 521, 473, 1024. Escribir en base diez los n´umeros 1000101(2, (^121212) (3, 54321(6.
Otras bases especialmente importantes aparte de dos y diez son las bases ocho y dieciseis, que por ser potencias de dos tienen una tra- ducci´on especialmente f´acil de unas a otras, siendo las expresiones de cualquier numero m´as cortas cuanto mayor es la base que se uti- liza. Para convertir un n´umero de base dos a base ocho o dieciseis o viceversa basta tener una tabla de los d´ıgitos de ´estas ´ultimas en base dos:
Base 8 Base 16 000 0 0000 0 1000 8 001 1 0001 1 1001 9 010 2 0010 2 1010 A 011 3 0011 3 1011 B 100 4 0100 4 1100 C 101 5 0101 5 1101 D 110 6 0110 6 1110 E 111 7 0111 7 1111 F
Cualquier n´umero en base dos —100010001110101101— se trans- forma a base ocho o a base dieciseis separando desde la derecha bloques de tres o cuatro d´ıgitos respectivamente, y sustituy´endolos por el d´ıgito en la base correspondiente:
100 010 001 110 101 101(2 = 421655(
10 0010 0011 1010 1101(2 = 223AD(
Los n´umeros en bases dos, ocho, diez, y dieciseis se denominan bina- rios, octales, decimales, y hexagesimales respectivamente. Muchas calculadoras digitales est´an preparadas para operar en cualquiera de estas bases.
Hasta ahora hemos hablado de la representaci´on de n´umeros en- teros. Para representar n´umeros fraccionarios podemos utilizar en
cualquier base m´etodos an´alogos a los utilizados en base diez. ¿Qu´e significa la expresi´on decimal 31′27? Expresado en fracciones quiere decir 31 + 102 + 1072. Esta idea para representar la parte fraccionaria de un n´umero puede utilizarse en cualquier base b: la parte frac- cionaria de un n´umero se expresa como suma de fracciones cuyos numeradores son enteros entre 0 y b − 1 y cuyos denominadores son las potencias de b.
Ejemplo. 0 ′ (^13265) (8 = 1· 8 −^1 + 3· 8 −^2 + 2· 8 −^3 + 6· 8 −^4 + 5· 8 −^6.
Sabido esto, ¿como representaremos un n´umero fraccionario x en una base dada b? Supongamos que a 1 , a 2 , a 3 ,... son las cifras del desarrollo: x = 0′a 1 a 2 a 3 · · · = a 1 ·b−^1 + a 2 ·b−^2 + a 3 ·b−^3 +.... Ob- servemos que b·x = a 1 + a 2 ·b−^1 + a 3 ·b−^3 +... y, por tanto, a 1 es la parte entera de b·x; b(b·x − a 1 ) = a 2 + a 3 ·b−^1 +... , de forma que a 2 es la parte entera de b(b·x − a 1 ), etc.
Ejemplo. Expresar en base 3 el n´umero 0′ (^31) (10.
0’31 x 3 = 0’93 su parte entera es 0 0’93 x 3 = 2’79 —”— 2 0’79 x 3 = 2’37 —”— 2 0’37 x 3 = 1’11 —”— 1 0’11 x 3 = 0’33 —”— 0 0’33 x 3 = 0’99 —”— 0 etc.
Obtenemos 0′ (^31) (10 = 0′ 022100.. .(3. ¿Hasta cu´ando debemos con- tinuar el c´alculo? Dado que el n´umero cuyo desarrollo fraccionario estamos calculando es racional, las cifras deben repetirse de forma peri´odica a partir de alg´un lugar. Esto ocurrir´a en cuanto la parte fraccionaria en base 10, que siempre tiene el mismo n´umero de cifras —en nuestro ejemplo 2—, se repita por primera vez; a partir de este punto todos los c´alculos se repiten.
Al calcular num´ericamente con una m´aquina debemos considerar principalmente dos tipos de n´umeros: enteros y de coma flotante (en ingl´es,floating point). Por medio de los segundos tratamos de
importantes que pueden producirse. El primero de ellos es el de llegar a un exponente por encima de N 1 , se produce entonces un error que la m´aquina detecta inmediatamente y que anuncia como overflow. El segundo es el de bajar del exponente −N 0 ; en este caso overflow la m´aquina puede no anunciar el error y poner en la variable corres- pondiente el valor cero (el error aparecer´a si, por ejemplo, tratamos de dividir por esa cantidad. Sabido lo anterior es f´acil experimentar con nuestra m´aquina (por ejemplo, con nuestra calculadora) para determinar los valores de N 0 y N 1. Este tipo de error se conoce con el nombre de underflow. underflow
En el entorno Matlab que vamos a utilizar existe una constante llamada eps que es el mayor n´umero que sumado a 1 no produce efecto alguno.
En todo c´alculo num´erico debemos esperar un error: los m´etodos que utilizamos en nuestros c´alculos son generalmente aproximados; los datos de partida proceden de medidas de precisi´on limitada; las operaciones a que sometemos estos datos producen valores interme- dios cuyo n´umero de cifras debe reducirse; los valores num´ericos que tratamos de calcular son generalmente reales y por tanto raramente expresable en t´erminos finitos; etc. No debe por tanto preocuparnos el que en nuestros c´alculos acarreemos un cierto error sino el con- trolar en todo momento ese error y mantenerlo por debajo de un extremo prefijado.
Llamaremos error de un resultado xa a la diferencia entre ´este y el valor x que tratamos de determinar. M´as concretamente
E(xa) = xa − x.
Con esta definici´on del error en xa estamos adem´as estableciendo un signo en ´este, criterio que mantendremos en el resto de estas notas.
El error E que acabamos de definir es el que llamaremos error abso- luto. M´as importante a la hora de determinar la validez de nuestros error absoluto c´alculos es el error relativo: error relativo
Er(xa) =
E(xa) x
xa − x x
que est´a definido siempre que x 6 = 0.
El error en un c´alculo nunca podr´a determinarse con exactitud (ello equivaldr´ıa a poder determinar el valor exacto de x) simplemente se acotar´a.
Una forma de referirse al error relativo en un sistema de numeraci´on de base b es por medio del n´umero de cifras significativas en un cifras significativas resultado. Diremos que xa contiene n cifras significativas de x si la diferencia entre las mantisas de xa y x es menor de b/2 unidades en su cifra m+1. Con esta definici´on la expresi´on n cifras significativas pudiera en alg´un caso querer decir algo ligeramente distinto de lo que coloquialmente pudiera entenderse. (Ejemplo: 3’1416 tiene 5 cifras significativas del n´umero π = 3′ 14159... .)
El error en un c´alculo puede proceder de diversas causas. 1. Equivocaciones.
Hemos de se˜nalar en primer lugar el error de c´alculo, es decir el error que comete el calculista por equivocaci´on. Incluimos aqu´ı los errores de programaci´on. La forma de evitar este tipo de error es la verificaci´on de los c´alculos y la comprobaci´on de los programas. El verificar un programa completo puede resultar una tarea compleja y poco agradable. Tal vez la mejor estrategia sea la de dividir el programa en partes (subrutinas) y comprobar separadamente cada una de ellas experimentalmente con datos sencillos de los que es f´acil deducir el resultado esperado.
Al resolver problemas f´ısicos suelen darse dos tipos de errores. Primeramente aquellos que proceden de la medici´on de los datos. Los sistemas de medida nunca pueden ser exactos —en realidad, seg´un nuestros modelos, tratamos las m´as de las veces de medir algo que consideramos un n´umero real— y por tanto ya tendremos una ´ınfima desviaci´on de partida. En segundo lugar debemos tener en cuenta que el modelo f´ısico que utilizamos —las ecuaciones que modelan el experimento— suele obtenerse a trav´es de aproxima- ciones que simplifican las propiedades f´ısicas —linealizaci´on, ...— y que por tanto producir´an desviaciones respecto de la realidad. Tanto unas como otras desviaciones no ser´an objeto de estudio por parte del C´alculo Num´erico sino que de ellas se ocupa el estudio de la estabilidad del modelo —ecuaciones diferenciales, ´algebra li-
1 − cos x x^2
que evite la diferencia entre dos n´umeros pr´oximos que aparece en el numerador cuando x est´a pr´oximo a cero.
Por ruido al evaluar una funci´on nos referimos a la indetermi- ruido al evaluar una funci´on naci´on que puede aparecer en los valores de una funci´on cuando se trata de analizar experimentalmente una propiedad cualitativa. Por ejemplo, si tratamos de ver donde est´a el cero del polinomio P (x) = x^3 − 3 x^2 + 3x − 1 dando valores y utilizamos aritm´etica de seis d´ıgitos
Incluso, con aritm´etica de siete d´ıgitos
cuando en realidad P (0′9998) < 0.
Supongamos que queremos evaluar una funci´on f , derivable, con error al evaluar una funci´on derivada continua, en un punto x y que para ello disponemos de una aproximaci´on ˜x de forma que lo que calcularemos es f (˜x). ¿Cu´al es el error? Para evaluarlo podemos utilizar el teorema del punto medio (o, lo que viene a ser lo mismo, la definici´on de derivada),
|f (˜x) − f (x)| ≈ f ′(˜x)|˜x − x|.
Es decir, el error se multiplica por el valor de la derivada de f (que ser´a aproximadamente la misma en x que en ˜x.
Al sumar un n´umero grande de t´erminos los errores de redondeo se sumas acumulan. Veamos como proceder para conseguir que este error de redondeo sea lo menor posible. Queremos hallar S = a 1 + a 2 + · · · + an donde cada ai es un FLO. Al realizar la suma debemos operar n − 1 veces:
S 2 = FLO(a 1 + a 2 ) = (a 1 + a 2 )(1 + ε 2 ) S 3 = FLO(S 2 + a 3 ) = (S 2 + a 3 )(1 + ε 3 )
.................. Sn = FLO(Sn− 1 + an) = (Sn− 1 + an)(1 + εn)
donde los εi son los errores relativos de redondeo.
Si S es la verdadera suma de a 1 + a 2 + · · · + an entonces
Sn − S = Sn − (a 1 + · · · + an) = Sn− 1 (1 + εn) + anεn − (a 1 + · · · + an− 1 ) =... = a 1 (ε 2 + · · · + εn) + a 2 (ε 2 + · · · + εn)
Para que este t´ermino sea lo menor posible, la mejor estrategia es la de escribir a 1 + a 2 + · · · + an en orden creciente de los |an|, es decir sumar de menor a mayor.
Debemos mencionar finalmente los errores debidos a los m´etodos num´ericos utilizados. Lo que calculan no es en general lo que se quiere calcular y por tanto el mismo m´etodo num´erico debe hacer un estudio de cu´al es el error que lleva asociado. Este estudio es parte fundamental de las t´ecnicas analizadas en el presente curso.