Programa c++ de biseccion con clase
Enviado por Jose Molina • 9 de Octubre de 2015 • Práctica o problema • 1.060 Palabras (5 Páginas) • 189 Visitas
/*
IPN
Programa Biseccion
Objetivo: encntrar la raiz de una funcion con biseccion
fecha de entrega 08/09/15
*/
using namespace std;
#include <iostream>
#include <cmath>
struct Bise
{
double IntMen; //Intervalo Menor = Xa
double fxa; // Valor de Xa evaludo en la funcion
double IntMay; //Intervalo Mayor = Xb
double fxb; // Valor de Xb evaludo en la funcion
double Emin; // Error minimo
double Xm; // Punto Medio
double fxm; // Valor de Punto Medio evaluado en la funcion
};
void SolicitIntervalo(Bise *AptA); // Solicita Xa, Xb, Error minimo y calcula Fxa, Fxb
void BiseccionInicial(Bise *AptA); // Valida que de inicia sea una grafica valida para la biseccion
void EvaluarPunOpues(Bise *AptA); //Compara en que sector Xa-Xm * Xm-Xb se procede con la biseecion
double Funcion(double I); //Evalua los distintos puntos en la funcion dada
void CalMedia(Bise *AptA); // Calcula el punto medio
void Imprimir(Bise *A);
int main(void)
{
system("cls");
Bise A;
Bise *AptA;
AptA = &A;
double C=0;
int It=0;
SolicitIntervalo(AptA);
BiseccionInicial(AptA);
cout<<endl;
Imprimir(AptA);
cout<<endl;
cout << "fxa: "<< AptA->fxa << endl;
cout << "fxb: "<< AptA->fxb << endl;
cout << "Biseccion procede" << endl << endl;
do
{ It++;
CalMedia(AptA);
AptA->fxm = Funcion(AptA->Xm);
cout << endl;
EvaluarPunOpues(AptA);
C=AptA->fxm;
if(C < 0 )
{
C = AptA->fxm *-1;
}
cout << endl << endl;
cout<<"Nemuero de iteraciones: "<<It<<endl;
Imprimir(AptA);
}
while(C >(AptA->Emin) );
{
cout << endl << endl;
cout << "Biseccion Final" << endl;
CalMedia(AptA);
AptA->fxm = Funcion(AptA->Xm);
}
...