Está en la página 1de 13

Solucin de ecuaciones no lineales

Kevin Rivera
Escuela de sistemas informticos, Universidad de El Salvador
San Salvador, El Salvador
kevinrev26@gmail.com
Abstract En los siguientes prrafos se explora la
capacidad de los mtodos numricos para encontrar races de
ecuaciones no lineales, se experimenta tanto con mtodos
abiertos y cerrados. Se analiza el error provocado por el
almacenamiento de los nmeros en el computador y que ocurre
cuando se aplica un mtodo numrico con una tolerancia
respectiva. Ademas se muestra la eficiencia de estos algoritmos
en Scilab.

I.

INTRODUCCIN

Resolver una ecuacin consiste en encontrar aquellos


valores de la(s) variable(s) para los cuales se cumple una igualdad en
particular, ecuaciones o igualdades tales como x + 2 = 8, y + x -3 =
6, cumplen con lo dicho anteriormente y resolverlas no es un proceso
delicado o minucioso, salvo para el segundo ejemplo, que en
particular, se necesita ms informacin para resolverse. En muchos
mbitos de ingeniera se desea dar solucin a ciertas ecuaciones que
aparecen en la prctica y poseen una caracterstica especial: Se desea
resolver una ecuacin de tipo () = 0, donde f(x) es una funcin no
lineal difcil o imposible de analizar con algebra comn. Se desea
conocer aquellos valores de x para los cuales lo anterior sea cierto, a
estos valores se le conoce como races de la funcin. Cuando los
mtodos analticos no son suficientes, aparecen a la ayuda los
mtodos numricos. La principal discrepancia entre los mtodos
anteriores es que existe una aproximacin para uno, mientras que
para el otro se conoce el valor verdadero encontrado. El lgebra
comn trabaja con cantidades infinitas, la capacidad computacional
de las maquinas calculadoras es finita; de aqu surge un error que
debe ser tratado con especial atencin para detectar problemas en la
situaciones aplicadas de cada mtodo. En los mtodos numricos no
se conoce a priori las cantidades verdaderas o exactas, esto da lugar
a comprender que los resultados obtenidos por los mtodos
numricos, son solo aproximaciones aceptables de la cantidad real,
esto es, por la manera en cmo se operan las cantidades dentro de la
computadora, no es posible dar un resultado 100% verdadero, preciso
o seguro; esto no es en absoluto un impedimento, ya que los errores
reciben un tratamiento especfico y se logran aproximaciones
bastante buenas que sirven en la prctica con un grado de precisin
considerado aceptado para un problema en particular estudiado.

II. RESOLUCION DE ECUACIONES NO LINEALES EN


SCILAB
Para el desarrollo de los puntos posteriores, se consideran
nicamente funciones no lineales con una variable como incgnita;
este tipo de problemas son fciles de trabajar para dar una
introduccin y comprensin a la naturaleza iterativa de los mtodos.
Para encontrar aproximaciones de races a cualquier ecuacin dada,
se siguen una serie de pasos:

Graficar con algn paquete de software la


funcin a estudiar
Establecer una tolerancia, esto es, establecer
una precisin que deber tener la respuesta en
particular
Realizar una aproximacin de acuerdo a lo
analizado en el primer paso.

Se presentan para ejemplificar la teora, 3 funciones que


sirven de base para la compresin en la utilizacin de los modos,
maneras o metodologas en cada uno de las funciones siguientes.

A. Primera funcin
Fsolve
Scilab provee un mtodo numrico para la resolucin de
ecuaciones no lineales de una sola variable, esta funcin utiliza el
mtodo numrico de Powell modificado, cuyo estudio sobrepasa la
competencia de este documento. La llamada de la funcin se
consigue de la siguiente manera:
[x [,v [,info]]]=fsolve(x0,fct [,fjac] [,tol])
En donde x representa el valor de la raz, v el valor de fct
en x y la variable info establece que tan buena es la solucin para 5
valores enteros conocidos. Para apreciar la utilizacin de este funcin
se analizaran tres funciones cuya regla de asignacin se ira
presentado a lo largo de los prrafos siguientes.
Se presenta un polinomio que se especifica a continuacin:
5 3 4 + 10 8 = 0
Cuyo valor o races, podra encontrarse entre el intervalo
cerrado [0.5, 3]. Para verificar si esto es cierto, nos ayudaremos de
una graficadora.

Se observa que la grfica toca, intercepta, al eje x en tres


puntos: en 1.0, 1.3 y en 2.6 aproximadamente. Desde este
procedimiento se logra conseguir las races de una manera
rudimentaria e imprecisa, para establecer ms precisin hara falta
calculo numrico computacional.

Para hacer la siguiente aproximacin establecemos como


1.3, un valor cercano.

Para realizar una aproximacin utilizando Scilab es


necesario definir la funcin a utilizar. Para ello contamos con el
comando deff que nos facilita establecer la regla de asignacin para
las funciones a estudiar. Al comprobar una buena escritura le
asignamos un valor a la funcin, luego de definirla como sigue:

Luego la prxima raz viene dada por lo anterior, los


decimales que se muestra, solo son relevantes en la medida como lo
es la tolerancia, es decir 10 de ellos, tambin debemos recordar que
Scilab establece como significantes 16 dgitos; por lo tanto no es
posible asegurar la relevancia a partir de ah.
Es posible establecer las aproximaciones en un vector, para
ahorrar trabajo a la hora de invocar la funcin, lo anterior puede ser
escrito as:
Ahora bastara con definir la tolerancia requerida y el valor
de la aproximacin inicial. Para establecer lo ltimo necesitamos
asignar un nmero n de cifras significativas en nuestros resultados,
sin embargo el mtodo a utilizar define por s mismo un valor para la
tolerancia, 1.0x10-10 segn la documentacin oficial de Scilab, esta
precisin es ms que suficiente para nuestros casos prcticos.
Ahora necesitamos una aproximacin inicial para la raz,
como se dijo anteriormente, encontramos 3 races en el intervalo de
0.5 a 3, en la consola definiremos nuestra aproximacin a 0.9 para
encontrar la primera y luego invocaremos el mtodo fsolve como se
muestra a continuacin:

Claro que con lo anterior, se pierden las variables y el


proceso no asegura una precisin de magnitud igual, a la tolerancia a
lo sumo. Pero para nuestro ejemplo al ingresar cualquiera de los
valores obtenidos, se logra el valor cero deseado.

Newton-Rahpson
Los aspectos tericos del mtodo, as como la
implementacin en Scilab no se cubren en este documento; para la
utilizacin del algoritmo es necesario establecer la tolerancia, la
aproximacin, y la derivada de la funcin.
Los nombres de las variables pueden variar, el indicar
establece 5 nmeros enteros (de 0 a 4) para mostrar que tan bien se
realiz la operacin, en nuestro caso 1 significa que el error relativo
entre la aproximacin y el valor anterior a la raz, es al menos el
valor de la tolerancia establecida. Esto asegura que nos encontramos
con una aproximacin bastante buena.

La tolerancia define la cantidad de cifras significativas en


la respuesta, para este y los dems ejemplos a desarrollar se definen 6
cifras significativas con la formula siguiente
= (0.5102 )%
Como n=6, obtenemos = 0.0005% al dividir este valor
entre 100, tendremos la tolerancia para el problema en cuestin.

El script utilizado no se muestra, pero su implementacin


puede encontrarse en cualquier lugar de internet. En nuestro caso, las
variables se definen internamente y ninguna es entrada de usuario,
para ejemplos de pedaggicos es un buen razonamiento. Ahora, para
definir la derivada se utiliza la funcin deff como se hizo
anteriormente. El valor aproximado ser 0.9. Con estos datos de
entrada, se genera lo siguiente:

Secante
En este mtodo se aproxima, con un error aceptable, la
derivada del mtodo de Newton. As se ahora la molestia de evaluar
la derivada en cada paso del mtodo. Las aproximaciones son las
mismas al igual que la tolerancia.
Se ha hablado de la naturaleza iterativa de los mtodos
presentados, ac se presenta el primero y establece un valor de la raz
aproximado, pero Qu tan buena es la aproximacin? Dependiendo
de la tolerancia. Adems de fijar las cifras con las que se trabaja (el 1
sin decimales proviene de la salida que el script utiliza) tambin se
utiliza para mtodo de parada, ya que sin valores predefinidos, se
puede obtener un ciclo infinito no deseado. Las siguientes muestran
la aproximacin para 1.3 y 2.5. Lgicamente entre ms cercana la
aproximacin de la raz, menos iteraciones existirn.

El anlisis de cada mtodo se describe en otro apartado,


pero debido a la implementacin de cada mtodo, es posible
establecer con el nmero de pasos en cada una de las races, cada
cual es ms o menos eficiente de acuerdo a ciertos criterios.

Biseccin
Para utilizar el mtodo de biseccin, es necesario establecer
un intervalo que contiene, al menos, una raz en l. El nico
inconveniente ser cuando existan ms de una raz en un intervalo
dado, ya que este mtodo no necesita una aproximacin; es necesario
establecer el punto medio del intervalo. A medida la funcin cambia
de signo, tambin es la nueva eleccin del punto medio en cada
iteracin.
El valor de la raz con este mtodo y este ejemplo
particular siempre ser: 2.60, ya que el mtodo converge en las
cercanas del punto medio y del signo de cada valor en el intervalo de
cada iteracin.

Para solucionar este aparente problema debemos redefinir


el intervalo tal que contenga solo una raz. Digamos, [0.9, 1.1] y [1.3,
1.4]. Los resultados a continuacin.

Lo que facilita el clculo simblico para polinomios, si no


se quisiera, la funcin puede llamarse de otra forma con ciertos
parmetros para inicializar de manera inmediata el polinomio:

Donde se define un vector rengln con los coeficientes que


posee la variable x, empezando con aquella de exponente cero y
colocando un coeficiente de cero donde no existe la variable, seguido
de el nombre de la variable y la letra c usada como abreviatura de
coeff, ahora necesitamos encontrar sus races, para ello usamos el
mtodo roots cuya invocacin es la siguiente:

Utilizando poly() y roots()


Scilab provee un par de funciones que son utilizadas para
encontrar las races de polinomios nicamente, como en nuestro
ejemplo. La funcin poly() permite definir un polinomio de la
siguiente manera:

Obtenindose una forma simple de encontrar las races de


un polinomio de manera fcil. Si se es observador puede apreciar que
la funcin roots encuentra las races complejas, dependiendo del
grado del polinomio podemos encontrar una combinacin de races
reales y complejas, sabiendo que las ltimas solo se muestran en
pares conjugados, como el ejemplo anterior lo ensea.

B. Segunda funcin
La segunda funcin a analizar es la que se muestra a
continuacin:
Ahora es posible utilizar la variable x como semilla y
construir polinomios como los de nuestro ejemplo.

= 3 + 8
Una vez ms, un anlisis grafico previo a la utilizacin de
los mtodos nos permitir ingresar las aproximaciones y optimizar el
tiempo de ejecucin de nuestros algoritmos. La grfica, acotada para
el intervalo cerrado de [3, 5]:

La grafica se corta en algn lugar entre 3 y 3.2, as como


tambin entre 4 y 4.2.

Fsolve
Enviaremos una variable con valores entre las races como
se ha dicho anteriormente as como tambin la definicin en Scilab
de nuestro ejemplo.

Como se predijo anteriormente, la convergencia es bastante


rpida y se alcanza en pocas iteraciones el valor ms aproximado de
la raz.

Secante
Veamos que sucede con este mtodo al ingresar 3.1 y 4.1
como races aproximadas en el algoritmo.

Los valores aproximados deberan encontrar las races de


una manera rpida al ser ingresados en los algoritmos, ya que, como
lo muestra la figura anterior, las aproximaciones escogidas son
bastante cercanas a las races encontradas.

Newton-Rahpson
Luego encontrar la derivada de la funcin ejemplo e
ingresar las aproximaciones 3.1 y luego 4.1 al script
obtenemos:

Como es apreciable en el esquema anterior, la funcin corta


al eje x en un valor cercano a -0.5 y0020a 2. Se utiliza el intervalo [2,2] En los siguientes clculos estas ser las aproximaciones a usar.
Al hacer una comparacin simple para el ejemplo anterior,
aunque el mtodo de Newton necesita evaluar la derivada en las
aproximaciones, posee una mejor eficiencia, de manera muy general
a grandes rasgos, que la secante. Veamos que sucede al aplicar el
mtodo de biseccin para nuestro intervalo dado

Fsolve
Utilizando un vector fila con los datos aproximados y al
invocar fsolve tenemos:

Biseccin
El mtodo de biseccin necesita evaluar la funcin en los
lmites del intervalo, al multiplicar estos valores, podemos asumir de
acuerdo al signo, si el intervalo contiene una o ms races.

El mtodo utilizado en fsolve, no converge hacia la


segunda raz, debemos pedir ms resultados al mtodo como se
muestra:
En nuestro caso, al evaluar el lmite inferior (3), el superior (5) y al
multiplicarlos, el resultado es un nmero positivo, o en otras palabras
mayor a cero. Podemos asumir que el intervalo contiene un nmero
par de races. Nuevamente debemos aproximar el intervalo a un valor
o rango cercano a la raz, como se hizo anteriormente, esto se deja a
comprobacin del lector.

C. Tercera funcin
En nuestro tercer ejemplo se muestra una funcin
trigonomtrica combinada con otro tipo de funciones. Qu pasa con
los mtodos numricos al ser aplicados a este tipo de funciones? En
primer lugar debemos estar conscientes de haber introducido bien la
funcin original con parntesis respectivos, si esto no es as, puede
ocasionar grandes errores y otros disparates en los resultados
obtenidos. Otro inconveniente es que al encontrarse una funcin
peridica, podemos encontrar ms de una raz, evento que es
importante saber manejar en los diferentes mtodos.
La ltima funcin de nuestros ejemplos viene definida as
=

2 +

cos( 1) + 2

Para la aproximacin de -0.5 no hay ningn problema,


porque el indicador arroja 1 como valor, lo que demuestra que la
iteracin y la resolucin ha sido exitosa.
Al ingresar la otra aproximacin tenemos

Es de recordar la manera en como hemos definido nuestra


tolerancia, as podemos establecer cuantas cifras son significantes en
los resultados obtenidos.

Secante
Nos libramos de la definicin de la derivada, falta
comprobar que tan eficiente es el mtodo cuanto se presentan este
tipo de funciones.

Como se ha determinado, dependiendo de las llamadas a la


funcion, puede haber fallo, en este caso es importante notar la
aproximaciones individuales al invocar la funcion, ya que el vector
renglon no nos fue util.

Newton-Rahpson
Este es un claro ejemplo del porque el mtodo de Newton
puede ser complicado, la derivada tiene un aspecto complejo debido
a que tenemos un cociente de funciones f(x)/g(x) Los resultados se
muestran a continuacin:

Se nos libra el problema de la derivada, aunque con un


precio en el tiempo de ejecucin del problema.

Biseccin
Al aplicar el algoritmo de biseccin obtenemos

Lo cual es esperado de acuerdo a la grfica, el mtodo no


podr encontrar una raz a un nmero mximo de iteraciones.
Nuevamente se deja a conveniencia encontrar un nuevo intervalo que
contenga al menos una solucin para el problema especificado.

III. ANALISIS DE ERRORES


Los mtodos numricos viven de aproximaciones, es por
esa razn que se debe proporcionar un tratamiento adecuado a los
errores, as como desarrollar criterios para establecer que tan
confiables son los resultados obtenidos al aplicar los algoritmos. Una
manera de lograr amabas cosas es estableciendo el nmero de cifras
significativas en la respuesta.

Funcin 3

Los mtodos numricos deben establecer una precisin as


como una exactitud aceptables, para ello, el concepto de error es
crucial al analizar los datos obtenidos.

Regula Falsi

Para normalizar la evaluacin o dicho de otra forma, tener


un criterio objetivo de comparacin entre los diferentes mtodos, se
presentan cada uno con una tolerancia antes descrita, una precisin
de 6 cifras, aplicados a los intervalos definidos en los prrafos
anteriores y se utilizara como valor verdadero aquel que resulta de la
invocacin de fsolve. Los mtodos, as como las races y los errores
obtenidos se muestran en las siguientes tabulaciones.
Biseccin
Funcin 1

Funcin 2

Funcin 1

Funcin 2

Funcin 3

Error Absoluto

n/a

n/a

n/a

n/a

1.3565689

n/a

n/a

2.609924

2.6099245

5E-05

5E-07

Punto fijo

n/a

3.1625234

n/a

n/a

Funcin 1

n 4.1533282

n/a

n/a

n/a

n/a

n/a

1.7390851

n/a

n/a

Funcin 2

Funcin 3

Secante
Funcin 1

Funcin 2

Funcin 3

n/a

1.739085

1.7390851

5.75015E-06

1E-07

Fsolve

Error relativo

Error Absoluto

0.999998

0.0002

2E-06

n/a

1.3565689

n/a

n/a

n/a

2.6099245

n/a

n/a

3 n/a

n/a

4 n/a

n/a

n/a

n/a

n/a

n/a

n/a

1.7390851

n/a

n/a

Fsolve
1

Error relativo
1

Error Absoluto

1.3565689

26.28461407

0.3565689

n/a

2.6099245

n/a

n/a

n/a

3.1625234

n/a

n/a

n/a

4.1533282

n/a

n/a

n/a

n/a

1.7390851

n/a

n/a

Error relativo

Error Absoluto

1.356568

1.3565689

9E-05

9E-07

2.609924

2.6099245

5E-05

5E-07

3.162523

3.1625234

4E-05

4E-07

4.153328

4.1533282

2E-05

2E-07

Newton modificado

Fsolve

Error relativo

Error Absoluto

Funcin 1

1.739085

1.7390851

1E-05

1E-07

1.356568

1.3565689

6.63438E-05

9E-07

2.609924

2.6099245

1.91576E-05

5E-07

3.162523

3.1625234

1.26481E-05

4E-07

4.153328

4.1533282

4.81542E-06

2E-07

n/a

n/a

n/a

n/a

1.7390851

n/a

n/a

Newton

Funcin 2

Fsolve

Funcin 2

Funcin 1

2E-07

.1533282

Error relativo

4.81542E-06

n/a

Fsolve

n/a

4.1533282

.1625234

/a
Funcin 3

4.153328

Fsolve

Error relativo

Error Absoluto

1.356568

1.3565689

6.63438E-05

9E-07

2.609924

2.6099245

1.91576E-05

5E-07

3.162523

3.1625234

1.26481E-05

4E-07

Funcin 3

Regula Falsi Mod.

Fsolve

Error relativo

Error Absoluto

Funcin 1

n/a

1.3565689

n/a

n/a

n/a

2.6099245

n/a

n/a

n/a

3.1625234

n/a

n/a

n/a

4.1533282

n/a

n/a

n/a

n/a

n/a

n/a

1.7390851

n/a

n/a

Funcin 2

Funcin 3

ya que en situaciones parecidas, la disponibilidad de mtodos


numricos es una ventaja y opaca la eficacia de este gran algoritmo.
El mtodo de punto fijo modificado, posee caractersticas
importantes que deben ser expuestas. La primera de ellas es que su
implementacin no requiere muchas lneas de cdigo, (Consultar [4]
para disponer de los cdigos aqu utilizados), esto hace que la
eficiencia (que se ver ms adelante) sea de proporcin a considerar
frente a otros algoritmos. Otra caracterstica importante es que brinda
aproximaciones bastante aceptables de 2 o 3 cifras significativas,
dichas aproximaciones son realmente tiles para trabajar con
clculos no muy grandes.

IV. ANALISIS DE EFICIENCIA


Punto Fijo Mod.

Fsolve

Error relativo

Error Absoluto

Funcin 1

1.000187

0.0187

0.000187

1.356217

1.3565689

0.025940444

0.0003519

2.610283

2.6099245

0.01373603

0.0003585

3.162597

3.1625234

0.002327256

7.36E-05

4.153794

4.1533282

0.011215102

0.0004658

0.000017

n/a

0.000017

1.73887

1.7390851

0.012368572

0.0002151

Funcin 2

Funcin 3

En aquellos renglones donde aparece una E, quiere decir un


magnitud de orden exponencial, para objetos prcticos, un error
demasiado pequeo. Si se presta una minuciosa atencin a las tablas
anteriores; Aquellos los resultados donde aparece un valor de orden
E, son los que presentan una estabilidad o confianza con respecto al
valor verdadero. Los mtodos con esta caracterstica son slidos en
su implementacin y a la hora de arrojar los resultados. Dependiendo
de su implementacin, algunos resultan ms eficientes que otros.

Para analizar la efectividad, el tiempo consumido y en otras


palabras, la eficiencia; scilab cuenta con una funcin que etiqueta
cada parte de un cdigo de acuerdo al nmero de invocaciones, el
esfuerzo de compilador nativo y el tiempo en ejecutar dicha lnea de
cdigo.
Para analizar y tratar de tomar una decisin acerca de que
mtodo usar en situaciones prcticas, se resolver el siguiente
problema con los mtodos anteriormente presentados para luego,
mostrar la eficiencia de dos maneras usando Scilab:
Suponga que est diseando un tanque esfrico, como se
muestra, de almacenamiento de agua para un poblado pequeo de un
pas en desarrollo. El volumen del lquido que puede contener dicho
tanque se calcula de la siguiente manera:
= 2

(3 )
3

Donde el volumen se especifica en pie3, la profundidad del


tanque en pies as como su radio. Si R=3 m A qu profundidad debe
llenarse el tanque de modo que contenga 30m3?

El smbolo n/a quiere decir que no se pudo utilizar el


mtodo, una caracterstica importante es que esta terminologa
aparece en aquellos algoritmos llamados cerrados o de otra forma,
aquellos que encierran la raz en medio de un intervalo. Al necesitar
dos valores de entrada en sus procedimientos, se deja fuera si existe
ms de una raz en el intervalo, la condicin que deben cumplir es
que al evaluar la funcin en los extremos, estos deben ser de signo
contrario. Si no se cumple, entonces el mtodo no se puede aplicar o
debe acotarse el intervalo para redefinir el punto medio y la
evaluacin de la condicin.
Tambin existe discrepancia a la hora de encontrar una
solucin en mtodos como los de Punto Fijo. Aqu el algoritmo no es
capaz de convergir en una de la races de la funcin. Debido a que
sobrepasa la cantidad de iteraciones expuestas, es mejor detener la
bsqueda para no sobrecargar o caer en un ciclo infinito.
Con excepcin de lo anterior, el mtodo Newton
modificado demanda saber la segunda derivada, para nuestro
ejemplo prctico, es un proceso engorroso e ineficiente introducir la
segunda derivada en el programa. Se ha obviado estas operaciones,

El primer paso para la resolucin de este problema, es


estandarizar todas las medidas. Se tomaran 3 cifras significativas en
los clculos y las conversiones son las siguientes:
30 3 1.06103 3
3 0.984101

Sin embargo resulta ms fcil trabajar con cantidades


pequeas y/o enteres y con unidades familiares, entonces en primera
instancia se utilizaran metros para posteriormente hacer la
conversin respectiva en la respuesta.
Ahora analizamos la funcin del volumen anteriormente
presentada. Est claro que necesitamos un valor de h, cuya imagen
sea 30 m3. Por comodidad las variables se cambian de la siguiente
manera:
= 2

(3 )
3

Usando algebra o cualquier mtodo analtico, la solucin se


encontrara despejando. Para resolver este problema usando mtodos
numricos necesitamos definir una nueva funcin con base a los
parmetros o requisitos que se piden. Esta nueva forma es
() = 30 2

(9 )
3

Qu valor se est buscando? Aquel valor de x que vuelve


cero la imagen en G(x), en otras palabras debemos encontrar las
races de esta funcin. Si obtenemos una aproximacin decente,
habremos encontrado la respuesta al problema.
Partiendo de la siguiente grafica se determina la cantidad
de races que posee la funcin a analizar.

Newton modificado

2.0269057

2.0269057

Punto fijo

2.0269057

2.0269057

Punto fijo modificado

2.026906

2.0269057

Falsa posicin

2.0269057

2.0269057

Falsa posicin modificado

2.0269055

2.0269057

Secante

2.0269057

2.0269057

Con tres decimales, todos los mtodos convergen en una


sola respuesta a saber (recordando tener precaucin si se realiza
truncamiento o redondeo):
= 2.026 .
Si se introduce este valor en la funcin que proporciona el
problema, debera encontrarse un resultado bastante cercano a 30.
Hay que hacer notar que esta respuesta est dada en metros, el
problema demanda un valor en pies; la conversin es muy sencilla y
no se muestra, as como su prueba en la funcin original.

A. Qu mtodo utilizar?
Los resultados arrojan resultados con poco error relativo
para cada uno, dado estos valores no se puede determinar un mtodo
optimo por sobre otro en este caso en particular. Debemos recurrir a
otro parmetro de comparacin: Tiempo de ejecucin.
No hablara aqu sobre cun importante es ahorrar tiempo
en determinadas tareas. Se hara nfasis en cada mtodo, cada lnea de
cdigo al invocarse, en todas esas acciones se consume tiempo.
Scilab posee diferentes maneras de representar esto: Profile y tic/toc.

La ecuacin muestra tres races, conjetura lgica porque la


funcin contiene una variable de tercer grado. Cul de ellas tiene
relevancia en nuestro problema? Debemos apegarnos a la naturaleza
fsica de nuestro problema, x representa la profundidad, una longitud.
No existen longitudes menores que cero, as que la raz prxima a -2
queda descartada.
Si se observa con atencin, en la primera funcin 9 es un
valor critico ya que vuelve cero la imagen, los valores que toma x,
para x > 9 son irrelevantes, ya que la funcin se vuelve negativa y no
es fsicamente posible un volumen negativo de cierto lquido. As
que la raz que debemos buscar se encuentra en el intervalo entre 1 y
3, se usara 1.8 para los mtodos que piden aproximacin o abiertos y
[1.5, 2.5], para aquellos llamados cerrados. La tabla resume los
resultados obtenidos, se incluye la evaluacin de fsolve.
Mtodo

Raz encontrada

fsolve

Biseccin

2.0269055

2.0269057

Newton

2.0269057

2.0269057

1) Profile
Cuando se agrega a una macro (funcin, procedimiento,
script) un perfil, Scilab toma medida de cuantas veces es ejecutada
cada lnea de cdigo y cunto tarda el cpu en procesarla. Se procede
a continuacin a mostrar el uso de las funciones profile con el
mtodo de Newton Modificado.
La figura muestra, en primer lugar, la compilacin y/o
ejecucin de una macro para que sea utilizada en el entorno de Scilab
(Dicha macro debe estar en el directorio de trabajo del programa),
luego se le agrega un perfil a nuestra funcin, se ejecuta y se pide al
programa que muestre el perfil.
Una tabla aparece en donde la primera columna muestra
cuantas veces es ejecutada cada lnea de cdigo (las filas representan
las lneas de cdigo), la segunda columna muestra el tiempo en que
el programa ejecuta dicha lnea, y la tercera columna es una medida
del programa para el esfuerzo del compilador.

grfica. Si sometemos todos los mtodos a prueba, podemos realizar


una comparacin en funcin de las tres variables antes mencionadas,
a continuacin se muestra una grfica similar para el mtodo de
Newton.

Como se aprecia, la complejidad en las lneas de cdigo


aumente en comparacin con la modificacin a este mtodo. Sin
embargo el CPU no se demora considerablemente en ninguna lnea
de cdigo.
2) Tic/Toc
Al usar en conjunto estas dos funciones en el entorno de
Scilab se muestra el tiempo que llevo ejecutar la operacin
intermedia. Por ejemplo:

Si adems ejecutamos la funcin plotprofile(macro) el


programa nos mostrara un histograma, que se incluye a continuacin.

Como lo muestra el grafico, la lnea nueve es la que ms


tiempo tarda el CPU en realizar (ver implementacin), a su vez, la
complejidad (operaciones realizadas con los datos) reside en la lnea
10. El nmero de llamadas a cada lnea se muestra en la primera

Hay diferentes maneras de mostrar el tiempo que fue


necesario para ejecutar un conjunto de instrucciones. Por tal motivo

no se muestra para todos los mtodos, ya que su aplicacin es


ilustrativa en ltima instancia.

V.

CONCLUSIONES

Scilab brinda una rpida solucin para implementar los


mtodos numricos por computadora, su sintaxis es amigable,
intuitiva y de fcil aprehensin. Sin embargo el no contar con calculo
simblico dificulta en una o mayor medida la captura de funciones y,
cuando es requerido, sus derivadas. La versin disponible en la web
de www.wolframalpha.com ayuda a solventar tales limitaciones.
El mtodo de punto fijo demanda conocer una funcin g(x)
que cumpla con las condiciones suficientes para el teorema de punto
fijo, si lo anterior no se cumple, se corre el riesgo de no encontrar
una aproximacin en un intervalo de tiempo determinado, sin
embargo la modificacin, incluyendo a la secante, en el mtodo
permite encontrar una aproximacin y que la funcin converja en una
cantidad mnima de iteraciones, dependiendo a su vez, de la
definicin de g(x).
Los mtodos cerrados poseen una gran sencillez en su
algoritmo y tienen caractersticas potentes si se les brinda valores que
acoten de manera adecuada una raz. Se debe utilizar herramientas
grficas para valorar o apreciar un intervalo correcto; las
aproximaciones son consideras aceptadas respecto a la tolerancia
preestablecida, todos estos factores hacen de estos mtodos bastante
tiles en aplicaciones donde conocer una aproximacin puntual
resulte difcil.
El mtodo falsa posicin o Regula Falsi resulta ineficiente
por el nmero de invocaciones que deben realizarse a cada parte del
algoritmo, si las aproximaciones en los intervalos no son muy buenas
puede conllevar a iteraciones muy grandes y a un estancamiento.
Frente a su similar, la modificacin de este algoritmo reduce
considerablemente este aspecto, aunque con alto precio por el
aumento en la complejidad.

REFERENCIAS
[1]

[2]

[3]

[4]

S. C. Chapra y R. P. Canale, Mtodos nmericos para


ingenieros, 5ta ed, McGraw-Hill Interamericana, Mexico:
Mexico D.F., 2007.
W. M. Flores, Introduccin a los mtodos numericos, 1ra ed.,
Revista digital Matemtica, Costa Rica: Instituo Tecnologico
de Costa Rica, 2013.
S. Nakamura, Metodos nmericos aplicados con software, 1ra
ed., Ed. Prentice Hall Hispanoamerica, Mexico: Mexico D.F.,
1992.
Los codigos utilizados para la resolucion de los problemas se
pueden descargar de: Sitio mediafire o Sitio en Dropbox

También podría gustarte