#include
#include
int Exponencial(float x0,int aux2){
float product;
product = 1.00;
while ((aux2)!=0){
product *= x0;
aux2--;
}
return product; /*de aqui sale el cuadrada de cada*/
}
float Horner (float x0,float *P, int N){
float *Q,aux,a;
int i,j,product;
aux = 0.00;
Q= (double*)malloc(N*sizeof(double)); /*reservamos la memoria para el vector*/
for (i=N-1;i>=0;i--){
if (i==N-1)
Q[i] = P[i]; /*bn=an*/
else
Q[i] = P[i] + (Q[i+1]*x0); /*bk=ak+ bk+1*x */
}
printf("{ ");
for ( i=0;i
printf("} ");
j = 0;
for (i=N-1;i>=0;i--){
if (i!=0)
aux += Q[i]*Exponencial(x0,N-1-j-1);/*te calcula las b para poder multiplicarlo*/
/* a=Exponencial(x0,N-1-j-1);*/
printf("da:%f\n",aux);
j++;
}
printf ("E valor numerico del polinomio es:%f\n", aux);
return 0.00;
}
int main(){
float P[5]={-61.0,50.00,-48.00,16.00,3.00};
Horner (3,P, 5);
return 0;
}
No hay comentarios:
Publicar un comentario