Ayuda con metodo Biseccion
Publicado por Vicky (2 intervenciones) el 13/06/2008 05:03:25
Hola:
necesito de su ayuda para saber como evaluar el valor de una variable en una ecuacion dada por el usuario, en mi programa primero pido el grado de la ecuacion y despues en un for guardo mi ecuacion en coef [i], donde i va ser el grado(x^3,x^2 ,x,etc), ya guardado en la variable un ejemplo kedaria asi 3x^3+2x^2+10x-20 aki les dejo mi programa, ojala me puedan ayudar, es para mi examen este metodo es el de biseccion:
#include <iostream.h> //PARA EL CIN Y EL COUT
#include <stdlib.h> //PARA EXIT
#include <stdio.h> //PARA PRINTF Y SCANF
#include <math.h> //PARA FABS (Valor absoluto)
#include <conio.h>
void main ()
{
float xmin,xmax,error,erro,f,fxd,fxi,Xm,fxm;
int A,B,C,D,i,cont,grad,itera;
float coef[12];
i=1;
cout<<" M E T O D O B I S E C C I O N ";
printf(" DAME LOS COEFICIENTES DE LA ECUACION A A CALCULAR ");
printf(" Ingrese el maximo grado de su ecuacion: ");
scanf("%d",&grad);
printf(" Ingrese el intervalo de analisis: ");
printf(" Valor minimo XI: ");scanf("%f",&xmin);
printf("Valor maximo XD: ");scanf("%f",&xmax);
printf("DAME EL NUMERO DE ITERACIONES: ");cin>>itera;
printf("Dame el error minimo permitido: ");cin>>erro;
for(i=grad;i>=0;i--)
{
printf("Ingrese el coeficiente de grado %d: ",i);
scanf("%f",&coef[i]);
}
while(i<=itera)
{
do
{
error=xmax-xmin;
fxd=f(xmax);
fxi=f(xmin);
Xm=(xmin+xmax)/2;
fxm=f(Xm);
if(fxm>0)
{
fxd=Xm;
}
else
{
fxi=Xm;
}
cont=0;
if(error<=erro)
{
cont=1;
}
else
{
cont=1;
}
}while(cont==0);
printf(" RAIZ ENCONTRADA...");
printf(" El valor de la raiz es: %f",Xm);
printf(" Con un error de: %f",error);
}
}
necesito de su ayuda para saber como evaluar el valor de una variable en una ecuacion dada por el usuario, en mi programa primero pido el grado de la ecuacion y despues en un for guardo mi ecuacion en coef [i], donde i va ser el grado(x^3,x^2 ,x,etc), ya guardado en la variable un ejemplo kedaria asi 3x^3+2x^2+10x-20 aki les dejo mi programa, ojala me puedan ayudar, es para mi examen este metodo es el de biseccion:
#include <iostream.h> //PARA EL CIN Y EL COUT
#include <stdlib.h> //PARA EXIT
#include <stdio.h> //PARA PRINTF Y SCANF
#include <math.h> //PARA FABS (Valor absoluto)
#include <conio.h>
void main ()
{
float xmin,xmax,error,erro,f,fxd,fxi,Xm,fxm;
int A,B,C,D,i,cont,grad,itera;
float coef[12];
i=1;
cout<<" M E T O D O B I S E C C I O N ";
printf(" DAME LOS COEFICIENTES DE LA ECUACION A A CALCULAR ");
printf(" Ingrese el maximo grado de su ecuacion: ");
scanf("%d",&grad);
printf(" Ingrese el intervalo de analisis: ");
printf(" Valor minimo XI: ");scanf("%f",&xmin);
printf("Valor maximo XD: ");scanf("%f",&xmax);
printf("DAME EL NUMERO DE ITERACIONES: ");cin>>itera;
printf("Dame el error minimo permitido: ");cin>>erro;
for(i=grad;i>=0;i--)
{
printf("Ingrese el coeficiente de grado %d: ",i);
scanf("%f",&coef[i]);
}
while(i<=itera)
{
do
{
error=xmax-xmin;
fxd=f(xmax);
fxi=f(xmin);
Xm=(xmin+xmax)/2;
fxm=f(Xm);
if(fxm>0)
{
fxd=Xm;
}
else
{
fxi=Xm;
}
cont=0;
if(error<=erro)
{
cont=1;
}
else
{
cont=1;
}
}while(cont==0);
printf(" RAIZ ENCONTRADA...");
printf(" El valor de la raiz es: %f",Xm);
printf(" Con un error de: %f",error);
}
}
Valora esta pregunta


0