lunes, 5 de diciembre de 2011

mi primer programa ke corrio de analisis

bueno aki les presento mi codigo del primer codigo ke me corrio..es el de interpolacion de lagrange

#include<iostream>
#include<string.h>
#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<stdlib.h>
#include<iomanip>
using namespace std;
char opcion;
class Lagrange
{
      private:
              int n, i, j;
              float *vecx, *vecy, *li, x, res, mult, Ev, Vv;
      public:
              Lagrange();
              void guardado();
              void organiza();
              void Li();
              void resultado();
};
Lagrange::Lagrange()
{
   cout<<"\n\n\t\tPuntos conocidos =  ";
   cin>>n;
   vecx = new float[n];
   vecy = new float[n];
   li = new float[n];
  
   res = 0;
   mult = 1;
  
}

void Lagrange::guardado()
{
cout<<"\n\n\n\t\tIngrese el valor de las x y f(x) correspondiente\n";

    for(j=0; j<n; j++) 
    {
    cout<<"\n\t\t\t\tx"<<j<<" =  ";
    cin>>vecx[j];
    cout<<"\n\t\t\t\tf("<<j<<") = ";
    cin>>vecy[j];
    }
}
void Lagrange::Li()
{
cout<<"\n\n\t\tIngrese el valor de x a evaluar f(x) = ";
cin>>x;
 for(j=0; j<n; j++) 
    {
        for(i=0; i<n; i++) 
        {
            if(j != i)
   mult *= (x - vecx[i])/(vecx[j] - vecx[i]);
  }
 li[j] = mult;
 mult = 1;
 }

 cout<<"\n\n\t\t\t\tx\tf(x)";
 cout<<"\n\t\t\t\t";
 for(j=0; j<n; j++) 
    {
  cout<<vecx[j]<<"\t"<<vecy[j];
  cout<<"\n\t\t\t\t";
 }
}
void Lagrange::resultado()
{
 cout<<"\n\n\n\t\tEl polinomio es la suma de L(x)*f(x)";
 cout<<"\n\n\t\t\t\tL(x)"<<"\t\t"<<"f(x)"<<endl<<endl;

    for(j=0; j<n; j++)
  cout<<"\t\t\t\t"<<setprecision(4)<<li[j]<<"\t\t"<<vecy[j]<<endl;

    for(j=0; j<n; j++) 
    {
  res += (vecy[j]*li[j]);
 }
cout<<"\n\n\t\t\tResultado: "<<setprecision(5)<<res;
cout<<"\n\n\t\t\tIngresa el valor verdadero: ";
cin>>Vv;
Ev = ((Vv - res)/Vv)*100;
cout<<"\n\n\t\t\tEl error verdadero es: "<<Ev<<" %";
}
void Lagrange::organiza()
{
guardado();
Li();
getch();
resultado();
getch();
}
int main()
{
do
{
   
cout<<"\n\n\n\n\n\t\t\t INTERPOLACION DE LAGRANGE";
cout<<endl<<endl<<"\n\n\n\t\t\t";
system("pause");
system("cls");
Lagrange a;
a.organiza();
system("cls");
cout<<"\n\n\tCalcular otra interpolacion de Lagrange (s/n)?"<<"\t";
cin>>opcion;
system("cls");
if(toupper(opcion)!='S')
{
cout<<endl<<endl<<"\n\n\n\t\t\t";
cout<<"PROGRAMA FINALIZADO";
getch();
}
}
while(toupper(opcion)=='S');
}



No hay comentarios:

Publicar un comentario