Solucion de Ecuaciones No Lineales utilizando Scilab

13
Solución de ecuaciones no lineales Kevin Rivera  Escuela de sistemas informáticos, Universidad de El Salvador San Salvador, El Salvador [email protected] Abstract    En los siguientes párrafos se explora la capacidad de los métodos numéricos para encontrar raíces de ecuaciones no lineales, se experimenta tanto con métodos abiertos y cerrados. Se analiza el error provocado por el almacenamiento de los números en el computador y que ocurre cuando se aplica un método numérico con una tolerancia respectiva. Ademas se muestra la eficiencia de estos algoritmos en  Scilab . I. INTRODUCCIÓN Resolver una ecuación consiste en encontrar aquellos valores de la(s) variable(s) para los cuales se cumple una igualdad en  particular, ecuaciones o igualdades tale s como  x + 2 = 8 ,  y + x -3 = 6 , cumplen con lo dicho anteriormente y resolverlas no es un pr oceso delicado o minucioso, salvo para el segundo ejemplo, que en  particular, se necesita más información para resolverse. En muchos ámbitos de ingeniería se desea dar solución a ciertas ecuaciones que aparecen en la práctica y poseen una característica especial: Se desea resolver una ecuación de tipo  () = 0, donde f(x) es una función no lineal difícil o imposible de analizar con algebra común.  Se desea conocer aquellos valores de  x  para los cuales lo anterior sea cierto, a estos valores se le conoce como raíces de la función. Cuando los métodos analíticos no son suficientes, aparecen a la ayuda los métodos numéricos. La principal discrepancia entre los métodos anteriores es que existe una aproximación para uno, mientras que  para el otro se conoce el valor verdadero encontrado. El álgebra común trabaja con cantidades infinitas, la capacidad computacional de las maquinas calculadoras es finita; de aquí surge un error que debe ser tratado con especial atención para detectar problemas en la situaciones aplicadas de cada método. En los métodos numéricos no se conoce a priori las cantidades verdaderas o exactas, esto da lugar a comprender que los resultados obtenidos por los métodos numéricos, son solo aproximaciones aceptables de la cantidad real, esto es, por la manera en cómo 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 específico y se logran aproximaciones  bastante buenas que sirven en la práctica con un grado d e precisión 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 incógnita; este tipo de problemas son fáciles de trabajar para dar una introducción y comprensión a la naturaleza iterativa de los métodos. Para encontrar aproximaciones de raíces a cualquier ecuación dada, se siguen una serie de pasos:  Graficar con algún paquete de software la función a estudiar  Establecer una tolerancia, esto es, establecer una precisión que deberá tener la respuesta en  particular  Realizar una aproximación de acuerdo a lo analizado en el primer paso. Se presentan para ejemplificar la teoría, 3 funciones que sirven de base para la compresión en la utilización de los modos, maneras o metodologías en cada uno de las funciones siguientes.  A.  Primera función  Fsolve Scilab provee un método numérico para la resolución de ecuaciones no lineales de una sola variable, esta función utiliza el método numérico de  Powell  modificado, cuyo estudio sobrepasa la competencia de este documento. La llamada de la función se consigue de la siguiente manera: [x [,v [,info]]]=fsolve(x0,fct [,fjac] [,tol]) En donde  x representa el valor de la raíz, v el valor de  fct en x y la variable info establece que tan buena es la solución para 5 valores enteros conocidos. Para apreciar la utilización de este función se analizaran tres funciones cuya regla de asignación se ira  presentado a lo largo de l os párrafos siguientes. Se presenta un polinomio que se especifica a continuación: 3 +10 8=0 Cuyo valor o raíces, podría encontrarse entre el intervalo cerrado [0.5, 3]. Para verificar si esto es cierto, nos ayudaremos de una graficadora.

description

Resolución de problemas aplicando métodos numéricos para ecuaciones no lineales.

Transcript of Solucion de Ecuaciones No Lineales utilizando Scilab

Page 1: Solucion de Ecuaciones No Lineales utilizando Scilab

7/17/2019 Solucion de Ecuaciones No Lineales utilizando Scilab

http://slidepdf.com/reader/full/solucion-de-ecuaciones-no-lineales-utilizando-scilab 1/13

Solución de ecuaciones no linealesKevin Rivera

 Escuela de sistemas informáticos, Universidad de El Salvador

San Salvador, El [email protected]

Abstract —   En los siguientes párrafos se explora la

capacidad de los métodos numéricos para encontrar raíces de

ecuaciones no lineales, se experimenta tanto con métodos

abiertos y cerrados. Se analiza el error provocado por el

almacenamiento de los números en el computador y que ocurre

cuando se aplica un método numérico con una tolerancia

respectiva. Ademas se muestra la eficiencia de estos algoritmos

en Scilab .

I.  INTRODUCCIÓNResolver una ecuación 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 procesodelicado o minucioso, salvo para el segundo ejemplo, que en particular, se necesita más información para resolverse. En muchosámbitos de ingeniería se desea dar solución a ciertas ecuaciones queaparecen en la práctica y poseen una característica especial: Se desearesolver una ecuación de tipo () = 0, donde f(x) es una función no

lineal difícil o imposible de analizar con algebra común.  Se deseaconocer aquellos valores de x  para los cuales lo anterior sea cierto, aestos valores se le conoce como raíces de la función. Cuando losmétodos analíticos no son suficientes, aparecen a la ayuda losmétodos numéricos. La principal discrepancia entre los métodosanteriores es que existe una aproximación para uno, mientras que

 para el otro se conoce el valor verdadero encontrado. El álgebra

común trabaja con cantidades infinitas, la capacidad computacionalde las maquinas calculadoras es finita; de aquí surge un error quedebe ser tratado con especial atención para detectar problemas en lasituaciones aplicadas de cada método. En los métodos numéricos nose conoce a priori las cantidades verdaderas o exactas, esto da lugara comprender que los resultados obtenidos por los métodosnuméricos, son solo aproximaciones aceptables de la cantidad real,esto es, por la manera en cómo se operan las cantidades dentro de lacomputadora, no es posible dar un resultado 100% verdadero, precisoo seguro; esto no es en absoluto un impedimento, ya que los erroresreciben un tratamiento específico y se logran aproximaciones

 bastante buenas que sirven en la práctica con un grado de precisiónconsiderado aceptado para un problema en particular estudiado.

II.  RESOLUCION DE ECUACIONES NO LINEALES ENSCILAB

Para el desarrollo de los puntos posteriores, se consideranúnicamente funciones no lineales con una variable como incógnita;este tipo de problemas son fáciles de trabajar para dar unaintroducción y comprensión a la naturaleza iterativa de los métodos.Para encontrar aproximaciones de raíces a cualquier ecuación dada,se siguen una serie de pasos:

  Graficar con algún paquete de software lafunción a estudiar

  Establecer una tolerancia, esto es, establecer

una precisión que deberá tener la respuesta en particular

  Realizar una aproximación de acuerdo a lo

analizado en el primer paso.

Se presentan para ejemplificar la teoría, 3 funciones quesirven de base para la compresión en la utilización de los modos,maneras o metodologías en cada uno de las funciones siguientes.

 A. 

 Primera función

 Fsolve

Scilab provee un método numérico para la resolución deecuaciones no lineales de una sola variable, esta función utiliza elmétodo numérico de  Powell  modificado, cuyo estudio sobrepasa lacompetencia de este documento. La llamada de la función seconsigue de la siguiente manera:

[x [,v [,info]]]=fsolve(x0,fct [,fjac] [,tol])

En donde x representa el valor de la raíz, v el valor de fct

en x y la variable info establece que tan buena es la solución para 5valores enteros conocidos. Para apreciar la utilización de este funciónse analizaran tres funciones cuya regla de asignación se ira

 presentado a lo largo de los párrafos siguientes.

Se presenta un polinomio que se especifica a continuación:

3 + 1 0 8 = 0 

Cuyo valor o raíces, podría encontrarse entre el intervalocerrado [0.5, 3]. Para verificar si esto es cierto, nos ayudaremos deuna graficadora.

Page 2: Solucion de Ecuaciones No Lineales utilizando Scilab

7/17/2019 Solucion de Ecuaciones No Lineales utilizando Scilab

http://slidepdf.com/reader/full/solucion-de-ecuaciones-no-lineales-utilizando-scilab 2/13

Page 3: Solucion de Ecuaciones No Lineales utilizando Scilab

7/17/2019 Solucion de Ecuaciones No Lineales utilizando Scilab

http://slidepdf.com/reader/full/solucion-de-ecuaciones-no-lineales-utilizando-scilab 3/13

El script utilizado no se muestra, pero su implementación puede encontrarse en cualquier lugar de internet. En nuestro caso, lasvariables se definen internamente y ninguna es entrada de usuario,

 para ejemplos de pedagógicos es un buen razonamiento. Ahora, paradefinir la derivada se utiliza la función deff   como se hizoanteriormente. El valor aproximado será 0.9. Con estos datos deentrada, se genera lo siguiente:

Se ha hablado de la naturaleza iterativa de los métodos presentados, acá se presenta el primero y establece un valor de la raízaproximado, pero ¿Qué tan buena es la aproximación? Dependiendode la tolerancia. Además de fijar las cifras con las que se trabaja (el 1sin decimales proviene de la salida que el script utiliza) también seutiliza para método de parada, ya que sin valores predefinidos, se

 puede obtener un ciclo infinito no deseado. Las siguientes muestranla aproximación para 1.3 y 2.5. Lógicamente entre más cercana laaproximación de la raíz, menos iteraciones existirán.

 

Secante

En este método se aproxima, con un error aceptable, laderivada del método de Newton. Así se ahora la molestia de evaluarla derivada en cada paso del método. Las aproximaciones son lasmismas al igual que la tolerancia.

Page 4: Solucion de Ecuaciones No Lineales utilizando Scilab

7/17/2019 Solucion de Ecuaciones No Lineales utilizando Scilab

http://slidepdf.com/reader/full/solucion-de-ecuaciones-no-lineales-utilizando-scilab 4/13

Page 5: Solucion de Ecuaciones No Lineales utilizando Scilab

7/17/2019 Solucion de Ecuaciones No Lineales utilizando Scilab

http://slidepdf.com/reader/full/solucion-de-ecuaciones-no-lineales-utilizando-scilab 5/13

 

Utilizando poly() y roots()

Scilab  provee un par de funciones que son utilizadas paraencontrar las raíces de polinomios únicamente, como en nuestroejemplo. La función  poly()  permite definir un polinomio de lasiguiente manera:

Ahora es posible utilizar la variable  x como semilla yconstruir polinomios como los de nuestro ejemplo.

Lo que facilita el cálculo simbólico para polinomios, si nose quisiera, la función puede llamarse de otra forma con ciertos

 parámetros para inicializar de manera inmediata el polinomio:

Donde se define un vector renglón con los coeficientes que posee la variable x, empezando con aquella de exponente cero ycolocando un coeficiente de cero donde no existe la variable, seguidode el nombre de la variable y la letra “c” usada como abreviatura de

“coeff”, ahora necesitamos encontrar sus raíces, para ello usamos el

método roots cuya invocación es la siguiente:

Obteniéndose una forma simple de encontrar las raíces deun polinomio de manera fácil. Si se es observador puede apreciar quela función roots encuentra las raíces complejas, dependiendo del

grado del polinomio podemos encontrar una combinación de raícesreales y complejas, sabiendo que las últimas solo se muestran en

 pares conjugados, como el ejemplo anterior lo enseña.

 B. 

Segunda función

La segunda función a analizar es la que se muestra acontinuación:

= + 8 

Una vez más, un análisis grafico previo a la utilización delos métodos nos permitirá ingresar las aproximaciones y optimizar eltiempo de ejecución de nuestros algoritmos. La gráfica, acotada parael intervalo cerrado de [3, 5]:

Page 6: Solucion de Ecuaciones No Lineales utilizando Scilab

7/17/2019 Solucion de Ecuaciones No Lineales utilizando Scilab

http://slidepdf.com/reader/full/solucion-de-ecuaciones-no-lineales-utilizando-scilab 6/13

 

La grafica se corta en algún lugar entre 3 y 3.2, así comotambién entre 4 y 4.2.

 Fsolve

Enviaremos una variable con valores entre las raíces comose ha dicho anteriormente así como también la definición en Scilab

de nuestro ejemplo.

Los valores aproximados deberían encontrar las raíces deuna manera rápida al ser ingresados en los algoritmos, ya que, comolo muestra la figura anterior, las aproximaciones escogidas son

 bastante cercanas a las raíces encontradas.

 Newton-Rahpson

Luego encontrar la derivada de la función ejemplo eingresar las aproximaciones 3.1 y luego 4.1 al  script

obtenemos:

Como se predijo anteriormente, la convergencia es bastanterápida y se alcanza en pocas iteraciones el valor más aproximado dela raíz.

Secante

Veamos que sucede con este método al ingresar 3.1 y 4.1como raíces aproximadas en el algoritmo.

Page 7: Solucion de Ecuaciones No Lineales utilizando Scilab

7/17/2019 Solucion de Ecuaciones No Lineales utilizando Scilab

http://slidepdf.com/reader/full/solucion-de-ecuaciones-no-lineales-utilizando-scilab 7/13

 

Al hacer una comparación simple para el ejemplo anterior,aunque el método de Newton necesita evaluar la derivada en lasaproximaciones, posee una mejor eficiencia, de manera muy generala grandes rasgos, que la secante. Veamos que sucede al aplicar elmétodo de bisección para nuestro intervalo dado

 BisecciónEl método de bisección necesita evaluar la función en los

límites del intervalo, al multiplicar estos valores, podemos asumir deacuerdo al signo, si el intervalo contiene una o más raíces.

En nuestro caso, al evaluar el límite inferior (3), el superior (5) y almultiplicarlos, el resultado es un número positivo, o en otras palabrasmayor a cero. Podemos asumir que el intervalo contiene un número

 par de raíces. Nuevamente debemos aproximar el intervalo a un valoro rango cercano a la raíz, como se hizo anteriormente, esto se deja acomprobación del lector.

C.  Tercera función

En nuestro tercer ejemplo se muestra una funcióntrigonométrica combinada con otro tipo de funciones. ¿Qué pasa conlos métodos numéricos al ser aplicados a este tipo de funciones? En

 primer lugar debemos estar conscientes de haber introducido bien lafunción original con paréntesis respectivos, si esto no es así, puedeocasionar grandes errores y otros disparates en los resultadosobtenidos. Otro inconveniente es que al encontrarse una función

 periódica, podemos encontrar más de una raíz, evento que esimportante saber manejar en los diferentes métodos.

La última función de nuestros ejemplos viene definida así

= +

cos( 1) + 2  

Como es apreciable en el esquema anterior, la función cortaal eje x en un valor cercano a -0.5 y0020a 2. Se utiliza el intervalo [-2,2] En los siguientes cálculos estas será las aproximaciones a usar.

 Fsolve

Utilizando un vector fila con los datos aproximados y alinvocar fsolve tenemos:

El método utilizado en fsolve, no converge hacia lasegunda raíz, debemos pedir más resultados al método como semuestra:

Para la aproximación de -0.5 no hay ningún problema, porque el indicador arroja 1 como valor, lo que demuestra que laiteración y la resolución ha sido exitosa.

Al ingresar la otra aproximación tenemos

Page 8: Solucion de Ecuaciones No Lineales utilizando Scilab

7/17/2019 Solucion de Ecuaciones No Lineales utilizando Scilab

http://slidepdf.com/reader/full/solucion-de-ecuaciones-no-lineales-utilizando-scilab 8/13

 

Como se ha determinado, dependiendo de las llamadas a lafuncion, puede haber fallo, en este caso es importante notar laaproximaciones individuales al invocar la funcion, ya que el vector

renglon no nos fue util.

 Newton-Rahpson

Este es un claro ejemplo del porque el método de Newton puede ser complicado, la derivada tiene un aspecto complejo debidoa que tenemos un cociente de funciones  f(x)/g(x) Los resultados semuestran a continuación:

Es de recordar la manera en como hemos definido nuestratolerancia, así podemos establecer cuantas cifras son significantes enlos resultados obtenidos.

Secante

 Nos libramos de la definición de la derivada, faltacomprobar que tan eficiente es el método cuanto se presentan estetipo de funciones.

Se nos libra el problema de la derivada, aunque con un precio en el tiempo de ejecución del problema.

 Bisección

Al aplicar el algoritmo de bisección obtenemos

Lo cual es esperado de acuerdo a la gráfica, el método no podrá encontrar una raíz a un número máximo de iteraciones. Nuevamente se deja a conveniencia encontrar un nuevo intervalo quecontenga al menos una solución para el problema especificado.

Page 9: Solucion de Ecuaciones No Lineales utilizando Scilab

7/17/2019 Solucion de Ecuaciones No Lineales utilizando Scilab

http://slidepdf.com/reader/full/solucion-de-ecuaciones-no-lineales-utilizando-scilab 9/13

III.  ANALISIS DE ERRORESLos métodos numéricos viven de aproximaciones, es por

esa razón que se debe proporcionar un tratamiento adecuado a loserrores, así como desarrollar criterios para establecer que tanconfiables son los resultados obtenidos al aplicar los algoritmos. Unamanera de lograr amabas cosas es estableciendo el número de cifrassignificativas en la respuesta.

Los métodos numéricos deben establecer una precisión asícomo una exactitud aceptables, para ello, el concepto de error escrucial al analizar los datos obtenidos.

Para normalizar la evaluación o dicho de otra forma, tenerun criterio objetivo de comparación entre los diferentes métodos, se

 presentan cada uno con una tolerancia antes descrita, una precisiónde 6 cifras, aplicados a los intervalos definidos en los párrafosanteriores y se utilizara como valor verdadero aquel que resulta de lainvocación de fsolve. Los métodos, así como las raíces y los erroresobtenidos se muestran en las siguientes tabulaciones.

Bisección Fsolve Error relativo Error Absoluto

Función 1 n/a 1 n/a n/a

n/a 1.3565689 n/a n/a

2.609924 2.6099245 5E-05 5E-07

Función 2 n/a 3.1625234 n/a n/a

n/a

4.1533282 n/a n/a

Función 3 n/a 0 n/a n/a

n/a 1.7390851 n/a n/a

Secante Fsolve Error relativo Error Absoluto

Función 1 1 1 0 0

1.356568 1.3565689 9E-05 9E-07

2.609924 2.6099245 5E-05 5E-07

Función 2 3.162523 3.1625234 4E-05 4E-07

4.153328 4.1533282 2E-05 2E-07

Función 3 0 0 0 0

1.739085 1.7390851 1E-05 1E-07

 Newton Fsolve Error relativo Error Absoluto

Función 1 1 1 0 0

1.356568 1.3565689 6.63438E-05 9E-07

2.609924 2.6099245 1.91576E-05 5E-07

Función 2 3.162523 3.1625234 1.26481E-05 4E-07

4.153328 4.1533282 4.81542E-06 2E-07

Función 3 0 0 n/a 0

1.739085 1.7390851 5.75015E-06 1E-07

Regula Falsi Fsolve Error relativo Error Absoluto

Función 1 0.999998 1 0.0002 2E-06

n/a 1.3565689 n/a n/a

n/a 2.6099245 n/a n/a

Función 2 n/a 3.1625234

n/a n/a

n/a 4.1533282

n/a n/a

Función 3 n/a 0 n/a n/a

n/a 1.7390851 n/a n/a

Punto fijo Fsolve Error relativo Error Absoluto

Función 1 1 1 0 0

1 1.3565689 26.28461407 0.3565689

n/a 2.6099245 n/a n/a

Función 2 n/a 3.1625234 n/a n/a

n/a 4.1533282 n/a n/a

Función 3 0 0 n/a 0

n/a 1.7390851 n/a n/a

 Newton modificado Fsolve Error relativo Error Absoluto

Función 1 1 1 0 0

1.356568 1.3565689 6.63438E-05 9E-07

2.609924 2.6099245 1.91576E-05 5E-07

Función 2 3.162523 3.1625234 1.26481E-05 4E-07

4.153328 4.1533282 4.81542E-06 2E-07

Función 3 n/a 0 n/a n/a

n/a 1.7390851 n/a n/a

Page 10: Solucion de Ecuaciones No Lineales utilizando Scilab

7/17/2019 Solucion de Ecuaciones No Lineales utilizando Scilab

http://slidepdf.com/reader/full/solucion-de-ecuaciones-no-lineales-utilizando-scilab 10/13

Regula Falsi Mod. Fsolve Error relativo Error Absoluto

Función 1 1 1 0 0

n/a 1.3565689 n/a n/a

n/a 2.6099245 n/a n/a

Función 2 n/a 3.1625234 n/a n/a

n/a 4.1533282 n/a n/a

Función 3 n/a 0 n/a n/a

n/a 1.7390851 n/a n/a

Punto Fijo Mod. Fsolve Error relativo Error Absoluto

Función 1 1.000187 1 0.0187 0.000187

1.356217 1.3565689 0.025940444 0.0003519

2.610283 2.6099245 0.01373603 0.0003585

Función 2 3.162597 3.1625234 0.002327256 7.36E-05

4.153794 4.1533282 0.011215102 0.0004658Función 3 0.000017 0 n/a 0.000017

1.73887 1.7390851 0.012368572 0.0002151

En aquellos renglones donde aparece una E, quiere decir unmagnitud de orden exponencial, para objetos prácticos, un errordemasiado pequeño. Si se presta una minuciosa atención a las tablasanteriores; Aquellos los resultados donde aparece un valor de orden‘E’, son los que presentan una estabilidad o confianza con respecto al

valor verdadero. Los métodos con esta característica son sólidos ensu implementación y a la hora de arrojar los resultados. Dependiendode su implementación, algunos resultan más eficientes que otros.

El símbolo n/a quiere decir que no se pudo utilizar elmétodo, una característica importante es que esta terminologíaaparece en aquellos algoritmos llamados cerrados o de otra forma,aquellos que encierran la raíz en medio de un intervalo. Al necesitardos valores de entrada en sus procedimientos, se deja fuera si existemás de una raíz en el intervalo, la condición que deben cumplir esque al evaluar la función en los extremos, estos deben ser de signocontrario. Si no se cumple, entonces el método no se puede aplicar odebe acotarse el intervalo para redefinir el punto medio y laevaluación de la condición.

También existe discrepancia a la hora de encontrar una

solución en métodos como los de Punto Fijo. Aquí el algoritmo no escapaz de convergir en una de la raíces de la función. Debido a quesobrepasa la cantidad de iteraciones expuestas, es mejor detener la

 búsqueda para no sobrecargar o caer en un ciclo infinito.

Con excepción de lo anterior, el método Newtonmodificado demanda saber la segunda derivada, para nuestroejemplo práctico, es un proceso engorroso e ineficiente introducir lasegunda derivada en el programa. Se ha obviado estas operaciones,

ya que en situaciones parecidas, la disponibilidad de métodosnuméricos es una ventaja y opaca la eficacia de este gran algoritmo.

El método de punto fijo modificado, posee característicasimportantes que deben ser expuestas. La primera de ellas es que suimplementación no requiere muchas líneas de código, (Consultar [4]

 para disponer de los códigos aquí utilizados), esto hace que laeficiencia (que se verá más adelante) sea de proporción a considerar

frente a otros algoritmos. Otra característica importante es que brindaaproximaciones bastante aceptables de 2 o 3 cifras significativas,dichas aproximaciones son realmente útiles para trabajar concálculos no muy grandes.

IV.  ANALISIS DE EFICIENCIAPara analizar la efectividad, el tiempo consumido y en otras

 palabras, la eficiencia; scilab cuenta con una función que etiqueta cada parte de un código de acuerdo al número de invocaciones, elesfuerzo de compilador nativo y el tiempo en ejecutar dicha línea decódigo.

Para analizar y tratar de tomar una decisión acerca de quemétodo usar en situaciones prácticas, se resolverá el siguiente

 problema con los métodos anteriormente presentados para luego,mostrar la eficiencia de dos maneras usando Scilab:

Suponga que está diseñando un tanque esférico, como semuestra, de almacenamiento de agua para un poblado pequeño de un

 país en desarrollo. El volumen del líquido que puede contener dichotanque se calcula de la siguiente manera:

= ℎ(3 ℎ)

Donde el volumen se especifica en pie3, la profundidad deltanque en pies así como su radio. Si R=3 m ¿A qué profundidad debellenarse el tanque de modo que contenga 30m3?

El primer paso para la resolución de este problema, esestandarizar todas las medidas. Se tomaran 3 cifras significativas enlos cálculos y las conversiones son las siguientes:

30 ≡ 1.0610  

3 ≡ 0.98410  

Page 11: Solucion de Ecuaciones No Lineales utilizando Scilab

7/17/2019 Solucion de Ecuaciones No Lineales utilizando Scilab

http://slidepdf.com/reader/full/solucion-de-ecuaciones-no-lineales-utilizando-scilab 11/13

Sin embargo resulta más fácil trabajar con cantidades pequeñas y/o enteres y con unidades familiares, entonces en primerainstancia se utilizaran metros para posteriormente hacer laconversión respectiva en la respuesta.

Ahora analizamos la función del volumen anteriormente presentada. Está claro que necesitamos un valor de h, cuya imagensea 30 m3. Por comodidad las variables se cambian de la siguiente

manera:

= (3 )

Usando algebra o cualquier método analítico, la solución seencontraría despejando. Para resolver este problema usando métodosnuméricos necesitamos definir una nueva función con base a los

 parámetros o requisitos que se piden. Esta nueva forma es

() = 30 ( 9 )

¿Qué valor se está buscando? Aquel valor de  x que vuelvecero la imagen en G(x), en otras palabras debemos encontrar lasraíces de esta función. Si obtenemos una aproximación decente,habremos encontrado la respuesta al problema.

Partiendo de la siguiente grafica se determina la cantidadde raíces que posee la función a analizar.

La ecuación muestra tres raíces, conjetura lógica porque lafunción contiene una variable de tercer grado. ¿Cuál de ellas tienerelevancia en nuestro problema? Debemos apegarnos a la naturalezafísica de nuestro problema, x representa la profundidad, una longitud.

 No existen longitudes menores que cero, así que la raíz próxima a -2queda descartada.

Si se observa con atención, en la primera función 9 es unvalor critico ya que vuelve cero la imagen, los valores que toma x,

 para x > 9 son irrelevantes, ya que la función se vuelve negativa y noes físicamente posible un volumen negativo de cierto líquido. Así

que la raíz que debemos buscar se encuentra en el intervalo entre 1 y3, se usara 1.8 para los métodos que piden aproximación o abiertos y[1.5, 2.5], para aquellos llamados cerrados. La tabla resume losresultados obtenidos, se incluye la evaluación de fsolve.

Método Raíz encontrada fsolve

Bisección 2.0269055 2.0269057

 Newton 2.0269057 2.0269057

 Newton modificado 2.0269057 2.0269057

Punto fijo 2.0269057 2.0269057

Punto fijo modificado 2.026906 2.0269057

Falsa posición 2.0269057 2.0269057

Falsa posición modificado 2.0269055 2.0269057

Secante 2.0269057 2.0269057

Con tres decimales, todos los métodos convergen en unasola respuesta a saber (recordando tener precaución si se realizatruncamiento o redondeo):

ℎ = 2.026 . 

Si se introduce este valor en la función que proporciona el problema, debería 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 conversión es muy sencilla yno se muestra, así como su prueba en la función original.

 A. 

¿Qué método utilizar?Los resultados arrojan resultados con poco error relativo para cada uno, dado estos valores no se puede determinar un métodooptimo por sobre otro en este caso en particular. Debemos recurrir aotro parámetro de comparación: Tiempo de ejecución.

 No hablara aquí sobre cuán importante es ahorrar tiempoen determinadas tareas. Se hara énfasis en cada método, cada línea decódigo al invocarse, en todas esas acciones se consume tiempo.Scilab posee diferentes maneras de representar esto: Profile y tic/toc.

1) ProfileCuando se agrega a una macro (función, procedimiento,

script) un perfil, Scilab toma medida de cuantas veces es ejecutada

cada línea de código y cuánto tarda el cpu en procesarla. Se procedea continuación a mostrar el uso de las funciones  profile  con elmétodo de Newton Modificado.

La figura muestra, en primer lugar, la compilación y/oejecución 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 función, se ejecuta y se pide al

 programa que muestre el perfil.

Una tabla aparece en donde la primera columna muestracuantas veces es ejecutada cada línea de código (las filas representanlas líneas de código), la segunda columna muestra el tiempo en queel programa ejecuta dicha línea, y la tercera columna es una medidadel programa para el esfuerzo del compilador.

Page 12: Solucion de Ecuaciones No Lineales utilizando Scilab

7/17/2019 Solucion de Ecuaciones No Lineales utilizando Scilab

http://slidepdf.com/reader/full/solucion-de-ecuaciones-no-lineales-utilizando-scilab 12/13

 

Si además ejecutamos la función  plotprofile(macro)  el programa nos mostrara un histograma, que se incluye a continuación.

Como lo muestra el grafico, la línea nueve es la que mástiempo tarda el CPU en realizar (ver implementación), a su vez, lacomplejidad (operaciones realizadas con los datos) reside en la línea10. El número de llamadas a cada línea se muestra en la primera

gráfica. Si sometemos todos los métodos a prueba, podemos realizaruna comparación en función de las tres variables antes mencionadas,a continuación se muestra una gráfica similar para el método de

 Newton.

Como se aprecia, la complejidad en las líneas de códigoaumente en comparación con la modificación a este método. Sinembargo el CPU no se demora considerablemente en ninguna líneade código.

2) Tic/Toc

Al usar en conjunto estas dos funciones en el entorno deScilab se muestra el tiempo que llevo ejecutar la operaciónintermedia. Por ejemplo:

Hay diferentes maneras de mostrar el tiempo que fuenecesario para ejecutar un conjunto de instrucciones. Por tal motivo

Page 13: Solucion de Ecuaciones No Lineales utilizando Scilab

7/17/2019 Solucion de Ecuaciones No Lineales utilizando Scilab

http://slidepdf.com/reader/full/solucion-de-ecuaciones-no-lineales-utilizando-scilab 13/13

no se muestra para todos los métodos, ya que su aplicación esilustrativa en última instancia.

V.  CONCLUSIONESScilab brinda una rápida solución para implementar los

métodos numéricos por computadora, su sintaxis es amigable,intuitiva y de fácil aprehensión. Sin embargo el no contar con calculosimbólico dificulta en una o mayor medida la captura de funciones y,

cuando es requerido, sus derivadas. La versión disponible en la webde www.wolframalpha.com ayuda a solventar tales limitaciones.

El método de punto fijo demanda conocer una función g(x)que cumpla con las condiciones suficientes para el teorema de puntofijo, si lo anterior no se cumple, se corre el riesgo de no encontraruna aproximación en un intervalo de tiempo determinado, sinembargo la modificación, incluyendo a la secante, en el método

 permite encontrar una aproximación y que la función converja en unacantidad mínima de iteraciones, dependiendo a su vez, de ladefinición de g(x).

Los métodos cerrados poseen una gran sencillez en sualgoritmo y tienen características potentes si se les brinda valores que

acoten de manera adecuada una raíz. Se debe utilizar herramientasgráficas para valorar o apreciar un intervalo correcto; lasaproximaciones son consideras aceptadas respecto a la tolerancia

 preestablecida, todos estos factores hacen de estos métodos bastanteútiles en aplicaciones donde conocer una aproximación puntualresulte difícil.

El método falsa posición o Regula Falsi resulta ineficiente por el número de invocaciones que deben realizarse a cada parte delalgoritmo, 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 modificación de este algoritmo reduceconsiderablemente este aspecto, aunque con alto precio por el

aumento en la complejidad.

REFERENCIAS[1]  S. C. Chapra y R. P. Canale,  Métodos númericos para

ingenieros, 5ta ed, McGraw-Hill Interamericana, Mexico:Mexico D.F., 2007.

[2]  W. M. Flores, Introducción a los métodos numericos, 1ra ed.,Revista digital Matemática, Costa Rica: Instituo Tecnologicode Costa Rica, 2013.

[3]  S. Nakamura,  Metodos númericos aplicados con software, 1raed., Ed. Prentice Hall Hispanoamerica, Mexico: Mexico D.F.,1992.

[4]  Los codigos utilizados para la resolucion de los problemas se pueden descargar de: Sitio mediafire o Sitio en Dropbox