Metodo De La Secante C++

  • Uploaded by: Anonymous m6YHFwuK
  • 0
  • 0
  • February 2021
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Metodo De La Secante C++ as PDF for free.

More details

  • Words: 406
  • Pages: 2
Loading documents preview...
//MÉTODO DE SECANTE #include #include using namespace std; void secante(double, double, double, int); // prototipo de función double f (double); // prototipo de función int main() { int imax; // número máximo de iteraciones double a, b; // extremos izquierdo y derecho del intervalo original double epsilon; // criterio de convergencia //ƒobtiene los datos de entrada cout << "Introduzca los límites del intervalo de búsqueda original, a y b : "; cin >> a >> b; cout << "Introduzca los criterios de convergencia : "; cin >> epsilon; cout << "Introduzca el número máximo de iteraciones permitidas : "; cin >> imax; secante(a, b, epsilon, imax); return 0; } //Esta función implementa el método de la secante para encontrar //una raiz de una funcion void secante(double a, double b, double epsilon, int imax) { int i;//ƒcontador de iteraciones actuales double x0, x1;//valores izquierdo y derecho de x del intervalo actual double f0, f1;//función evaluada en estos puntos double dx0;//delta x0 double dx1;//delta x1 //repeticion de los datos de entrada transmitidos cout << "\nEl intervalo de búsqueda original es de " << a << " a " << b << "El criterio de convergencia es : intervalo < " << epsilon << "El número máximo de iteraciones permitido es " << imax << endl; //determina la raiz x0 = a; f0 = f(x0); dx0 = abs(b - a); //iteraciones for (i = 1; i <= imax; i++) { x1 = x0 + dx0; f1 = f(x1); if(abs(f1) < epsilon) // se encuentra la raiz { cout << "\nSe encontró una raiz en x = " << x1 + dx1 << endl << "en " << i << " iteraciones" << endl; cout << "El valor de la funcion es" << f1 << endl; system("pause"); //PERMITIR MOSTRAR EN PATALLA(DETENER) return; }

else // hace la siguiente iteracion { dx1 = (f1 / (f0 - f1))*dx0; x0 = x1; dx0 = dx1; f0 = f1; } } cout << "\nDespués de " << imax << " iteraciones, no se encontro ninguna raiz " << "dentro del criterio de convergencia\n" << "La búsqueda de una raiz ha fallado debido a iteraciones excesivas\n" << "después del número máximo de " << imax << " iteraciones" << endl; return; } //funcion para evaluar f(x) double f(double x) { const double PI = 2 * asin(1.0); // valor de pi return(exp(-x) - sin (0.5 * PI * x)); system ("pause"); return 0; }

Related Documents


More Documents from "Alexander Sausedo"