[ Foro de C++ ]
estoy realiazando un programa para metodos numericos de la regla de Simpson de 1/3 y 3/8 combinado pero me aparece el error de "undefined reference to", y no se como arreglarlo. este es el codigo en C++.
#include<iostream>
#include<iomanip>
#include<cmath>
#include <cstdlib>
//#include"Caratula.h"
using namespace std;
float funcion(float );
float simpson13m(float ,int ,float ,float );
float simpson38(float ,float ,float );
float simpsoncom(float ,int ,float ,float );
int main(void){
//Caratula();
//system("pause");system("cls");
cout<<"\t----Integracion----\n----Regla de Simpson----\n";//pagina 663 5ta edicion
cout<<"Limites de integracion de la funcion f(x)=10+2x-6x^2+x^4:\n";
float a,b,h;
int n,m;
cout<<setprecision(9);
cout<<"\nLimite superior: ";cin>>b;
cout<<"\nLimite inferior: ";cin>>a;
cout<<"\nNumero de segmentos: ";
cin>>n;
m=n+1;
cout<<"\nNumero de puntos: "<<m<<"\n";
h=(b-a)/n;
float f[m],xn[m],Res;
for(int i=0;i<m;i++){
xn[i]=a+(h*i);
cout<<"x"<<i<<"="<<xn[i]<<"\n";
}
for(int j=0;j<m;j++){
f[j]=funcion(xn[j]);
cout<<"f"<<j<<"="<<f[j]<<"\n";
}
Res=simpsoncom(f[m],m,a,b);
cout<<"I= "<<Res<<"\n"<<endl;
system("pause");
return 0;
}
float funcion(float a){
return(10+2*(a)-pow(6*(a),2)+pow(a,4));
}
float simpson13m(float f[],int m,float a,float b){
float sum1=0,sum2=0;
for(int i=1;i<m-1;i+=2){
sum1=sum1+f[i];
}
for(int j=2;j<m-2;j+=2){
sum2=sum2+f[j];
}
return ((b-a)*((f[0]+4*sum1+2*sum2)/3*m));
}
float simpson38(float f[],float a, float b){
return ((b-a)*((f[0]+3*(f[1]+f[2])+f[3])/8));
}
float simpsoncom(float f[],int m,float a, float b){
double odd;
odd=m/2;
if(odd>0 && m>1){
return simpson13m(f[m],m,a,b);
}
else{
float I1=0,I2=0,It=0;
int tam=m-3;
float ft[3];
ft[0]=f[m-3];
ft[1]=f[m-2];
ft[2]=f[m-1];
ft[3]=f[m];
I1=simpson13m(f[tam],tam,a,b);
I2=simpson38(ft[3],a,b);
It=I1+I2;
return It;
}
}
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)