Vous êtes sur la page 1sur 6

PRACTICA 6.

SECANTE
OBJETIVO:
Explicar el mtodo de la secante para entender su procedimiento y utilizacin
adecuada y comparar con los mtodos anteriores para determinar un criterio de
que mtodo es ms eficiente.

MARCO TEORICO:
Es un mtodo de tipo abierto, el cual requiere de dos puntos iniciales, los cuales
pueden ser arbitrarios. Lo que hace bsicamente, es trazar rectas secantes a la
curva de la ecuacin que se est analizando, y verificar la interseccin de dichas
rectas con el eje de las X para conocer si es la raz que se busca.
Al ser un mtodo abierto, converge con la raz con una velocidad semejante a la
de Newton-Raphson, aunque de igual forma corre el riesgo de no converger con
esta nunca. Su principal diferencia con el mtodo de Newton-Raphson es que no
se requiere obtener la derivada de la funcin para realizar las aproximaciones, lo
cual facilita las cosas al momento de crear un cdigo para encontrar races por
medio de este mtodo.

Frmula
Debido a que el mtodo de la secante se basa en el mtodo de Newton-Raphson,
pero evitando el usar la derivada de la funcin. Lo anterior lo logra haciendo uso
de la siguiente aproximacin:

Si se sustituye dicha aproximacin en el lugar de la derivada en la frmula de


newton-Raphson, se obtiene lo siguiente:

DESARROLLO:
#include <cstdlib>
#include <iostream.h>
#include <conio.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
class secante {
private:
double xi1, xi,xii, e,fx,ac,ant;
int i,m;

public:
secante()
{
m=0;
//xi1, xi,xii, error,fx=0.0;
cout<<endl<<endl<<endl<<"Ingresa el valor xi-1 ";
cin>>xi1;
cout<<"Ingresa el valor de xi ";
cin>>xi;
cout<<"Ingresa el numero de iteraciones que deseas que realice el programa ";
cin>>i;
}

double funcion(double x)
{
fx= (tan(x)+(exp(-x)));
return(fx);
}
double era(double ac, double ant)
{
e= fabs(((ac-ant)/ac)*100);
return (e);
}
void imprimir(double xi1,double xi,double xii,double e)
{
cout<<xi1<<"\t\t"<<xi <<"\t\t"<<xii<<"\t\t"<<e <<" % "<<endl;
}

void sec ()
{
float error;
int n=0;

{
cout<<endl<< "Xi-1 \t\t Xi \t\t X1+1 \t\t Error %"<<endl<<endl;
do
{
xii=(xi-(funcion(xi)*((xi1)-(xi))/funcion(xi1)-funcion(xi)));
error=era(xi,xii);
cout<<n<<"\t\t"<<xi<<"\t\t"<<"\t\t"<<error<<endl;
n++;
xi1=xi;
xi=xii;

imprimir(xi1,xi,xii,era(ac,ant));
}
while(error>=1);
}
}
};
main()
{

system("color 9");
secante obj1;
obj1.sec();
getch();
}

CONCLUSION:
El mtodo de la secante reemplaza los valores en secuencia estricta: el nuevo
valor ri+1 sustituye a ri y ri reemplaza a ri-1. Por lo tanto, algunas veces los dos
valores estn en el mismo lado de la raz, lo que puede llevar, en ciertos casos a
divergencias.
Aunque el mtodo de la secante puede ser divergente en algunos casos, cuando
converge lo hace ms rpido que el mtodo de Regla Falsa. La inferioridad de
este ltimo se debe a que un extremo permanece fijo, para mantener a la raz
dentro del intervalo.

Vous aimerez peut-être aussi