Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/04/2012, 22:18
drd222
 
Fecha de Ingreso: marzo-2012
Mensajes: 30
Antigüedad: 12 años, 1 mes
Puntos: 0
Problema en c++

Tengo que resolver el problema del polinomio de legendre donde ya tengo la logica y todo pero el problema es ke no me vota los resultados correctos
Este es el codigo completo...
#include <iostream>
#include <cmath>
using namespace std;

Código C++:
Ver original
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. void leerdatos(unsigned &n, double &x){
  5.     cout<<"Orden(n)? "<<endl;
  6.     cin>>n;
  7.     cout<<"Numero (x)? "<<endl;
  8.     cin>>x;
  9. }
  10.  
  11. double leg(unsigned n, double x){
  12.     if (n==0) return 1;
  13.     if (n==1) return x;
  14.     double le0=1,le1=x, le2,aux;
  15.     for (unsigned int i=2; i<=n; i=i+1){
  16.         le2=((2*n-1)/n)*x*le1;
  17.         aux=((n-1)/n)*le0;
  18.         le2=le2-aux;
  19.         le0=le1; le1=le2;
  20.     }
  21.     return le2;
  22. }
  23.  
  24. void mostrar(unsigned int n, double x, double le2){
  25.     cout<<"Legendre ("<<n<<", "<<x<<") = "<<le2<<endl;
  26. }
  27.  
  28. int main(){
  29.     cout<<"***Legendre enesimo (n) de un numero real (x) ***"<<endl;
  30.     cout<<"Orden = 0 para salir"<<endl;
  31.     unsigned n; double le2,x;
  32.     leerdatos(n,x);
  33.     le2=leg(n,x);
  34.     mostrar(n,x,le2);
  35.     return 0;
  36. }

El problema esta en esta funcion, bueno eso es lo que creo yo

Código C++:
Ver original
  1. double leg(unsigned n, double x){
  2.     if (n==0) return 1;
  3.     if (n==1) return x;
  4.     double le0=1,le1=x, le2,aux;
  5.     for (unsigned int i=2; i<=n; i=i+1){
  6.         le2=((2*n-1)/n)*x*le1;
  7.         aux=((n-1)/n)*le0;
  8.         le2=le2-aux;
  9.         le0=le1; le1=le2;
  10.     }
  11.     return le2;
  12. }

Donde por ejemplo para n=2 y x=2 los resultados deberian ser
le2=6 y aux=0,5
le2=6-0,5= 5,5 siendo este ultimo (5,5) el resultado que deberia mostrarse pero por alguna razon no funciona =( por favor si me dieran una ayuda. Gracias de antemano

Última edición por drd222; 24/04/2012 a las 22:28