metodo de la secante en scilab

28
Clase 4 Método de la Secante en Scilab para Raíces de Ecuaciones

Upload: tensor

Post on 15-Apr-2017

695 views

Category:

Education


4 download

TRANSCRIPT

Page 1: Metodo de la secante en scilab

Clase 4

Método de la Secante en Scilab para Raíces de Ecuaciones

Page 2: Metodo de la secante en scilab

Método de la Secante

Hace un tiempo habíamos estado hablando de los métodos

numéricos más importantes para hallar raíces de ecuaciones,

algunos de intervalo y otro que solo necesitaban un valor inicial

para comenzar a trabajar, antes hablábamos del conocido método

de la secante para Matlab en este post, y luego de un tiempo de

haber comenzado a conocer más sobre Scilab decidimos

comenzar a hacer nuestras implementaciones en este poderoso

software libre.

Page 3: Metodo de la secante en scilab

Método de la Secante

A continuación explicaremos a grandes rasgos el algoritmo o los

pasos que sigue este método para dar con la raíz de la función

que estamos buscando.

Page 4: Metodo de la secante en scilab

¿En qué consiste el método de la secante?

Cuando hablamos del método de Newton-Raphson, nos

encontramos con el ‘inconveniente’ que para llevar a cabo este

método necesitábamos conocer la derivada de la función que

íbamos a procesar. En el método de la secante no necesitamos la

derivada, la podemos aproximar por diferencias finitas, es decir

que si tengo una función podemos aproximar su derivada de la

siguiente forma:

Page 5: Metodo de la secante en scilab

¿En qué consiste el método de la secante?

Page 6: Metodo de la secante en scilab

¿En qué consiste el método de la secante?

Ahora el método no hace uso de la tangente a la curva en un

punto como puede ser el caso de Newton-Raphson sino que se

hace uso, como su nombre lo indica de una recta secante para lo

cual se necesitan dos puntos, esto lo vemos en la figura 1.

Page 7: Metodo de la secante en scilab

Fig 1. Primera iteración del método de la secante

Page 8: Metodo de la secante en scilab

¿En qué consiste el método de la secante?

El método necesita dos puntos iniciales , posteriormente se traza

una recta que une los puntos entonces el valor de la abscisa

donde esa nueva recta corta al eje será que en el ejemplo de a

figura 1 vemos que equivale a , posteriormente se repite el

proceso y la nueva recta se trazará desde el punto y el nuevo

será el nuevo corte que tenga la recta con el eje es decir en

nomenclatura será , generalizado este procedimiento se tiene

entonces.

Page 9: Metodo de la secante en scilab

Aproximación a la pendiente de la recta, o la derivada de la función:

Page 10: Metodo de la secante en scilab

Método de la Secante

Entonces relaciónela con el ejemplo de la figura 1,

para la primera iteración del método, entonces

es , es por lo tanto será , ahora ¿cómo quedaría

la ecuación para hallar a ?:

Page 11: Metodo de la secante en scilab

Código en Scilab.

Para este código, definimos una función a la cual llamaremos

secante.sci, la cual puede o no recibir parámetros, en nuestro caso

no recibirá parámetros.

Page 12: Metodo de la secante en scilab

Código en Scilab.El funcprot(0) que ven al inicio es para evitar que Scilab nos

muestre Warnings cuando modificamos y redefinimos dicha

función (es para evitar la molestia), posteriormente definimos

también la variable que será retornada que será la equivalente a

y que será donde retornemos el valor de la raíz, luego, como

hemos hecho con muchos de los métodos donde es necesario que

se ingresen los valores de un intervalo, se hace una visualización

del comportamiento de la gráfica y a partir de ahí se pueden

escoger mejor los límites, todo esto se ve a continuación.

Page 13: Metodo de la secante en scilab

Código en Scilab.

Page 14: Metodo de la secante en scilab

Código en Scilab.

Cuando ya se ha hecho la respectiva

visualización, se piden los datos para comenzar el

método, luego instanciamos las variables error

(err) y tolerancia al error, con estas se

determinará cuando termina el programa, entre

menor sea la tolerancia al error mayor será la

precisión.

Page 15: Metodo de la secante en scilab

Código en Scilab.

Page 16: Metodo de la secante en scilab

Código en Scilab.

Finalmente cuanto todas las variables necesarias están

instanciadas, se da inicio a las iteraciones como se ve a

continuación, donde se aplica la formula que vimos anteriormente

para el método de la secante, cuando el error es menor que la

tolerancia que le hemos dado, entonces el ciclo termina y se

retorna la variable la cual contiene la raíz que buscamos.

Page 17: Metodo de la secante en scilab

Código en Scilab.

Page 18: Metodo de la secante en scilab

Código en Scilab.

¡Un ejemplo!

A continuación te mostramos como es el

funcionamiento del código anterior, vamos a

buscar cuando se hace 0 la función , la cual

mostramos aquí abajo.

Page 19: Metodo de la secante en scilab

Código en Scilab.

En primer lugar debemos asegurarnos de tener el archivo

secante.sci en el folder donde nos encontramos trabajando en

scilab para que este lo reconozca a la hora de cargar la función en

el worspace, después de verificado lo anterior procedemos a

cargar dicha función al espacio de trabajo de Scilab, lo hacemos

mediante el comando exec(‘secante.sci’,-1) damos ‘enter’ y luego

usamos la sentencia deff() para definir la función que vamos a

usar, y así cada vez que vayamos a cambiar la función, en este

caso f(x)=exp(-x)-x. Finalmente llamamos a la función secante().

Page 20: Metodo de la secante en scilab

Código en Scilab.

Page 21: Metodo de la secante en scilab

Código en Scilab.

Inmediatamente iniciamos la función se nos pide

ingresar un valor inferior del eje X y otro superior

para realizar la visualización del comportamiento

de la función en ese tramo, a lo que, en este caso

ingresamos 0 y 3, entonces se crea una ventana

gráfica como se ve a continuación.

Page 22: Metodo de la secante en scilab

Código en Scilab.

Page 23: Metodo de la secante en scilab

Código en Scilab.

Y la gráfica que se muestra para este caso es la

siguiente, donde podemos ver aproximadamente

donde se produce el corte con X uqe es

aproximadamente 0.6.

Page 24: Metodo de la secante en scilab

Código en Scilab.

Page 25: Metodo de la secante en scilab

Código en Scilab.

Una vez visualizada la gráfica (y sin cerrar la

ventana del dibujo) se nos pedirá ingresar los dos

valores que necesita el método, por lo que

ingresaremos dos valores arbitrarios, por ejemplo

-3 y 3 respectivamente, una vez damos ‘enter’ el

programa rápidamente nos retornará la raíz de la

función.

Page 26: Metodo de la secante en scilab

Código en Scilab.

Page 27: Metodo de la secante en scilab

Código en Scilab.

Y si luego queremos comprobar el resultado

podemos evaluar ese valor en la propia función

como a continuación.

Page 28: Metodo de la secante en scilab

Código en Scilab.

si queremos más precisión le disminuimos la

tolerancia y ya está