Progrmión: el método de iseión Este texto fue esrito por Egor Mximenko y Mri de los Angeles Isidro Perez. Ojetivos. Enter l ide del método de iseión, progrmr el método de iseión usndo un ilo while, pror l funión progrmd on vrios ejemplos. Requisitos. El teorem del vlor intermedio, l sintxis del ilo while, l sintxis del operdor ondiionl if, progrmión on funiones, usr funiones omo rgumentos de otrs funiones. El teorem del vlor intermedio (repso 1. El primer teorem del vlor intermedio (Bernhrd Bolzno y Augustin- Louis Cuhy. Sen, R tles que <, se f: [, ] R un funión ontinu que tom vlores de signos opuestos en y, esto es, ( f( < 0 y f( > 0 o ( f( 0 y f( 0. (1 Entones existe l menos un punto en el intervlo (, tl que f(. 2. Primer teorem del vlor intermedio, sin fórmuls. Si un funión } {{ mi su signo en un intervlo errdo, } on qué propiedd? es deir, en los extremos tom vlores de signos, entones est funión } {{ } qué he? en el intervlo ierto orrespondiente. 3. Modelo. L funión f 1 (x := x 2 2 es ontinu en R (en prtiulr, en [1, 2] y tom vlores de signos opuestos en los extremos del intervlo [1, 2]: f 1 (1 = 0, f 1 (2 = 0. Por el teorem del vlor existe un punto en (1, 2 tl que. Diujemos l gráfi de l funión f 1 en un intervlo más mplio que [1, 2]: f1 = @(x x.^ 2-2; xs = linspe(-1, 3, 201 ; plot(xs, f1(xs; Progrmión: el método de iseión, págin 1 de 6
4. Ejemplos. Pr d un de ls siguientes funiones f k muestre que f k tom vlores de signos opuestos en los puntos k y k, demás diuje l gráfi de l funión f k en un intervlo más mplio que [ k, k ]. Ls funiones f k son ontinus en R y por lo tnto en [ k, k ]. f 2 (x = sen(x, 2 = 2, 2 = 4. f 2 ( 2, f 2 ( 2. f 3 (x = x 5 + x 1, 3 = 0, 3 = 1. f 3 ( 3 =, f 3 ( 3 =. f 4 (x = e x + x 2, 4 = 0, 4 = 1. Ide del método de iseión f 4 ( 4 =, f 4 ( 4. 5. Divide y venerás. Se f: [, ] R un funión ontinu que umple on (1. Tommos l proximión l ríz omo el punto medio del intervlo [, ]: = +. 2 Si f( tiene el mismo signo que f(, entones f mi su signo en [, ], y tiene que existir un ríz en este intervlo. Psmos este intervlo: nuevo :=, nuevo :=. // // Si f( tiene el mismo signo que f(, entones f mi su signo en [, ], y tiene que existir un ríz en el último intervlo. Psmos este intervlo: nuevo :=, nuevo :=. // // En mos sos, hemos reduido el intervlo de usqued l mitd. Progrmión: el método de iseión, págin 2 de 6
6. Los siguientes diujos muestrn l eleión de los extremos nuevos del intervlo, denotdos por y, depio de los signos de f(, f( y f(. Cso f( < 0, f( > 0, f( < 0 Cso f( < 0, f( > 0, f( > 0 :=, := :=, := Cso f( > 0, f( < 0, f( < 0 Cso f( > 0, f( < 0, f( > 0 :=, := :=, := 7. Form reve pr esriir l ondiión que l funión tiene signos opuestos en los extremos del intervlo. L ondiión (1 se puede esriir revemente de l siguiente mner: f(f( 0. (2 Puede ser que los números f( y f( son muy pequeños, y el produto f(f( se represent en l máquin omo el ero ( rithmeti underflow. Pr evitr est situión, en vez de (2 se reomi usr l siguiente ondiión que mtemátimente es equivlente (2, pero es más segur pr los álulos: sign(f( sign(f( 0. (3 Progrmión: el método de iseión, págin 3 de 6
Algo termin, lgo ontinú 8. Terminr undo hemos ptdo l ríz en un intervlo pequeño. Si en lgún momento nuestro intervlo [, ] que ontiene l ríz se hizo muy orto, digmos su longitud es menor que un número xtol ddo, entones podemos terminr los álulos y regresr ulquier punto de este intervlo. 9. Terminr undo el vlor de l funión es demsido pequeño. Hitulmente lulmos los vlores de f proximdmente. Si f( es menor que un preisión dd, denotd por ytol, entones no hy sentido tomr en uent el signo de f(, y lo más nturl es terminr los álulos y regresr omo un proximión l ríz. 10. Terminr undo y hemos trjdo demsido. Por seguridd, podemos otr el número máximo de iteriones permitids por un número smx. 11. Condiión de terminión. Hst qué momento ontinur el proeso de iseión? Suponemos que desde el iniio están ddos dos números reles positivos xtol, ytol, y un número entero positivo smx. Nuestr funión dee prrse en ulquier de los siguientes tres sos: Cundo el número s de ls iteriones relizds es myor o igul que smx. Cundo f( < ytol, donde es l proximión otenid de l ríz. Cundo hemos enontrdo un intervlo de longitud xtol que ontiene un ríz de l funión. Resumen: l ondiión de terminión es ( ( s smx / xtol ( s( </> ytol. 12. Condiión de ontinuión. Cuándo se ontinu el proeso? Cundo todví no se umple l ondiión pr terminr. Entones l ondiión de ontinuión se otiene l } {{ } repetir/negr/olvidr/ignorr l ondiión de terminión. Utilie l ley de Augustus De un mtemátio y lógio ritánio pr esriir l ondiión de ontinuión: Progrmión: el método de iseión, págin 4 de 6
13. Operiones lógis en el lenguje Mtl/Otve. Ejeute los siguientes tres omndos uno por uno en el intérprete: true && flse && true true flse true true && true && true 14. Gurdr los vlores en los puntos,,. Por lo omún, l operión más ostos es l evluión de l funión f en un punto ddo. Pr no evlur f vris vees en el mismo punto, gurdremos f(, f(, f( en vriles espeiles f, f, f. Cundo mimos o, resignmos tmién f o f, respetivmente. Antes del ilo no tenemos, por eso definimos f omo un número más grnde que ytol, pr grntizr que se umple l ondiión f( ytol. / 15. Progrmr l funión ise. Completr el ódigo de l siguiente funión, gurdrl en un rhivo ise.m. L funión regres un proximión de l ríz y el número de los psos hehos. funtion [, s] = ise(f, 0, 0, xtol, ytol, smx, =???; f = f(???; =???; f = f(???; f = ytol + 1; s =???; while???, =???; f =???; if???, =???; f =???; else, =???; f =???; s = s +???; Progrmión: el método de iseión, págin 5 de 6
16. Prues. Progrmmos un funión testise que pli l funión ise los ejemplos que vimos en el Ejeriio 4. Se reomi gurdr en un rhivo testise.m ls tres siguientes funiones junts: funtion [] = testise(, f1 = @(x x.^ 2-2; [1, s1] = ise(f1, 1.0, 2.0, 1.0E-10, 1.0E-10, 100; showonetest( Ejemplo 1, s1, 1, f1(1; [2, s2] = ise(@sin,???,???, 1.0E-10, 1.0E-10, 100; showonetest( Ejemplo 2, s2, 2, sin(2; f3 = @(x???; [3, s3] = ise(f3,???; showonetest(???; [4, s4] = ise(@f4,???; showonetest(???; funtion [] = showonetest(title, s,, v, printf( %s. Despues de %d psos otenemos...\n, title, s; printf( el punto %.10f donde l funion vle %.2e.\n\n,, v; funtion [y] = f4(x, y =???; En el primer rgumento de printf se reomi utilizr omills simples. Después de esriir y gurdr testise.m, en el intérprete de Mtl/Otve es sufiiente mir l rpet tul l rpet donde están gurddos los rhivos ise.m y testise.m (pueden ser útiles los omndos pwd, d y ls, y ejeutr testise( 17. Más ejemplos. Invente lgún otro ejemplo y gréguelo en l prue. 18. Ejeriio. El ódigo de l prue se puede esriir de mner más elegnte y onis. L llmd de l funión ise se puede mover dentro l funión showonetest; por supuesto, se modifi l list de los rgumentos de showonetest. Entones el ódigo de l funión testise puede ser sí:... f1 =???; showonetest( Ejemplo 1, f1, 1.0, 2.0, 1.0E-10, 1.0E-10, 100; showonetest( Ejemplo 2, @sin,???;... Progrmión: el método de iseión, págin 6 de 6