06/02/2013, 12:12
|
| | Fecha de Ingreso: septiembre-2012 Ubicación: Lima
Mensajes: 46
Antigüedad: 12 años, 2 meses Puntos: 4 | |
Respuesta: pequeña duda Intente arreglar tu programa masomenos queda asi:
Código:
#include<stdio.h>
#include<math.h>
#include<iostream>
float iteracion(float n1, float n);
int main()
{
int c;
float x1;
float Er=0.001;
printf("Newthon Rapshon\n");
printf("La ecuacion es e^5x\n");
printf("\nEl Error relativo es de 0.001%");
printf("\nTomando en cuanta que e=2.7182");
printf("\n Escriva el valor de x para la funcion e^.5x\n");
scanf("%f",&x1);
iteracion(x1,Er);
std::cin.get();
return 0;
}
float iteracion(float n1, float n)
{
float xi;
float fxi;
float ai;
float fai;
float deriv;
float fun;
float i=1;
float e1;
float e=2.7182;
xi=n1;
fxi=e*pow(xi,0.5);
while(i>=0.0001)
{
deriv=(0.5*e)*pow(xi,0.5);
fun=e*pow(xi,0.5);
ai=xi-(fun/deriv);
fai=e*pow(ai,0.5);
i=fabs(((e1-ai)/e1)*100);
printf("\nXi=%2.8f f(Xi)=%2.8f \nXi+1=%2.8f f(Xi+1)=%2.8f\n",xi,fxi,ai,fai);
printf("\n el porcentaje de error es: %0.001f\n",i);
xi=ai;
fxi=fai;
e1=fabs(ai);
ai=0;
fai=0;
}
return ai;
}
aunque no le veo mucho sentido a tu programa da flojera tener que revisar todo eso de metodos numericos |