Go4Expert (http://www.go4expert.com/)
-   C++ (http://www.go4expert.com/articles/cpp-tutorials/)
-   -   Find roots of any linear algebraic nth order equation by Regula Falsi method (http://www.go4expert.com/articles/roots-linear-algebraic-nth-equation-t23017/)

 coderzone 14Aug2010 19:16

Find roots of any linear algebraic nth order equation by Regula Falsi method

Find roots of any linear algebraic nth order equation by Regula Falsi method

### The Code

Code: Cpp

`#include <stdio.h>#include <conio.h>#include <math.h>#define ACC 0.00001#define N 10int degree;float coeff[N];void input(void);float power(float,int);float F(float);/******************************************************//*****  Finds the  root  of any linear algebraic  *****//*****  any order equation by Regula Falsi method *****//******************************************************/void main(){    char ch;    clrscr();    do    {        input();        printf("Do you wish to continue[y/n]\n");        fflush(stdin);        scanf("%c",&ch);    }while(ch=='Y' || ch=='y');}void input(void){    int i,print;    float a,b;    float f;    printf("\nEnter the degree of diferential equation\n");    scanf("%d",&degree);    print=degree;    for(i=0;i<=degree;i++)    {        printf("Enter the co-efficient of x to the power of %d\t",print--);        scanf("%f",&coeff[i]);    }    do    {        printf("\nEnter the values of a and b\n");        scanf("%f%f",&a,&b);        if(F(a)*F(b)>0)            printf("\nThere is no root in the given interval please re-enter\n");    }while(F(a)*F(b)>0);    if(F(a)*F(b)==0)    {        if(F(a)==0)            printf("\n%f  is the root of the equation\n",a);        else if(F(b)==0)            printf("\n%f  is the root of the equation\n",b);        else            printf("\n%f  and %f  are the roots of the equation\n",a,b);    }    do    {        f=((a*F(b))-(b*F(a)))/(F(b)-F(a));        if(F(a)*F(f)<0)            b=f;        else if(F(b)*F(f)<0)            a=f;    }while(fabs(F(f))>=ACC);    printf("\n%f  is the root\n",f);}float F(float x){    int i,deg;    float func=0.0;    deg=degree;    for(i=0;i<=degree;i++)    {        func=func+coeff[i]*power(x,deg);        deg--;    }    return(func);}float power(float x,int deg){    int i;    float res=1;;    for(i=1;i<=deg;i++)        res=res*x;    return(res);}`

 shabbir 4Sep2010 12:21

Re: Find roots of any linear algebraic nth order equation by Regula Falsi method

Nominate this article for Article of the month - Aug 2010 before September 15 2010.

 All times are GMT +5.5. The time now is 01:32.