Ad01

Ad02

Mostrando las entradas con la etiqueta bairstow's method. Mostrar todas las entradas
Mostrando las entradas con la etiqueta bairstow's method. Mostrar todas las entradas

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();

}

Ad3