Ad01

Ad02

viernes, 20 de diciembre de 2013

Raíces de ecuaciones: Método de Bairstow, código C | Roots of equations: Bairstow's method, code C


#include <stdio.h>
#include <math.h>
#include <conio.h>
#include <stdlib.h>
#define F(x)(x*x)-4
#define FD(x)(2*x)
#define FP(x)(x*x)+x-4
#define FE(x,y)(x*y)+1

void main()
{
clrscr();
gotoxy(10,6); printf("                 METODO DE BAIRSTOW ");
gotoxy(10,7);printf(" Este codigo fue hecho por Jair Beltran USCO Garzon ");
int i,n;
float fx,fdx,x0,x1,fx1,fx2,r,s,dr=0,ds=0,j,a[10],b[10],c[10];
flushall();
gotoxy(10,8);printf("Digite el grado del polinomio (mayor que 1): ");
scanf ("%d", &n);
gotoxy(10,9);printf("Digite los coeficientes: ");
for (i=0; i<=n; i++)
{
gotoxy(36,9); printf("a(%d)= ",i);
scanf ("%f", &a[i]);
}
gotoxy(10,10);printf("Digite la suposicion del coeficiente r: ");
scanf ("%f", &r);
gotoxy(10,11);printf("Digite la suposicion del coeficiente s: ");
scanf ("%f", &s);
do
{
b[0] = a[0]; c[0] = a[0];
b[1] = a[1] - r*b[0];
c[1] = b[1] - r*c[0];
for (i=2; i<=n; i++)
{
b[i] = a[i] - r*b[i-1] - s*b[i-2];
c[i] = b[i] - r*c[i-1] - s*c[i-2];
}
j = c[n-2]*c[n-2] - c[n-3]*(c[n-1] - b[n-1]);
dr = (b[n-1]*c[n-2] - b[n]*c[n-3])/j;
ds = (b[n]*c[n-2] - b[n-1]*(c[n-1] - b[n-1]))/j;
r += dr; s += ds;
} while (dr > 0.01 || ds > 0.01);
gotoxy(10,13);printf("La ecuacion resultante es x^2 + (%f)x + (%f)", r, s);
gotoxy(10,15);printf("Digite un valor para hallar las raiz del polinomio: ");
scanf("%f",&x0);
fx=x0*x0+r*x0+s;
do
{
fx=x0*x0+r*x0+s;
fdx=2*x0+r;
x1=(x0-(fx/fdx));
x0=x1;
}
while (fabs(fx)>=0.00001);
{}
gotoxy(10,16);printf("La raiz encontrada es igual a %10.5f",x0);
gotoxy(10,18);printf("Presione una tecla para volver al menu de ecuaciones de raices");
getch();

}

3 comentarios:

  1. Este comentario ha sido eliminado por el autor.

    ResponderBorrar
  2. muchas gracias amigo me funciono me diste una muy buena idea para hacer el programa =)

    ResponderBorrar
  3. no me funciono
    me dice error returned

    ResponderBorrar

Ad3