Logo Studenta

Método Lagrange en c

Esta es una vista previa del archivo. Inicie sesión para ver el archivo original

#include<iostream> 
#include<math.h>
#include <stdlib.h>
#include<iomanip> 
 
using namespace std; 
 
class funcion{ 
	private: 
	int i, n, j;
	double cp, b1[50],b2[50], o, p, q, r, s, t; 
	public: 
	void xfx(int n){
		char resp='0';
		do{
		cout<<"\nIngresa los valores de para x: \n";
		for(i=0; i<n;i++){
			cout<<"x["<<i<<"]= ";
			cin>>b1[i];
		}
		cout<<"\n\nIngresa los valores de para f(x): \n";
		for(i=0; i<n;i++){
			cout<<"fx["<<i<<"]= ";
			cin>>b2[i];
		}
		cout<<"\n|x\t|\t";
		for(i=0; i<n;i++){
			cout<<b1[i]<<"\t|\t";
		}
		cout<<"\n|f(x)\t|\t";
		for(i=0; i<n;i++){
			cout<<b2[i]<<"\t|\t";
		}
		cout<<endl<<endl;
		cout<<"\n\n¿Los valores son correctos? s/n\n";
		cin>>resp;
		}while(resp!='s');
	} 
	double Pi(int i, int n, double o){
		double multi = 1;
		for (int k=0; k<=n; k++) {
 			if (k!=i)
				multi=multi*((o-b1[k])/(b1[i]-b1[k]));
 		}
		return multi;
	}//o punto p interpolacion
	void Lagrangiano(double o, int p){
		double suma=0, pii=0;
 		for (i=0; i<=p; i++) {
 			pii= Pi(i,p,o);
 			suma+=(pii*b2[i]);
 		}
		cout<<"\n\nEl valor para f"<<p<<"("<<o<<") es... "<<suma<<endl<<endl;
	}
}; 
class Metodo:public funcion{ 
	public: 
 void Lag(int m, int n, double o){
 	xfx (m);
 	Lagrangiano(o, n);	
			system("pause"); 
		} 
}; 
int main(){ 
	int n1, n2;
	double n3; 
	char rei='0'; 
	system("cls");
	do{
		char resp='0'; 
		cout<<"Ingresa el número de muestras n...";
		cin>>n1;
		do{
		cout<<"\nIngresa el grado de interpolación g...";
		cin>>n2;
		if(n2>n1)
			cout<<"g es incorrecto, intentar de nuevo.\n\n";
		else
			resp='s';
		}while(resp!='s');
		cout<<"\nIngresa el punto a interpolar de x...";
		cin>>n3;
		Metodo obj1; 
		obj1.Lag(n1, n2, n3);
		cout<<"\n\n¿Deseas repetir el programa? s/n... ";
		cin>>rei;
	}while(rei=='s');
	system("cls");
	return 0; 
}

Continuar navegando