Friday, 17 November 2017

Java Program to Implement Regular Falsi Algorithm


Code:

/**
 * Java Program to Implement Regular Falsi Algorithm
 **/

public class RegularFalsi
{
    /** function to find root for **/
    public double f(double x)
    {
        /** make your own function here but accordingly change (s, t) **/

         return Math.cos(x) - x * x * x;

        // return x * x * x - 3 * x + 4;
        // return Math.cos(x) - 3 * x + 1;
        // return 2 * x - Math.log(x)/Math.log(10) - 7;
        // return x * x - Math.log(x) - 12;
    }
    /** function to find root **/
    public double findRoot(double s, double t, double e, int m)
    {
        double r = 0.0,fr;
        int n, side = 0;

        /** starting values at endpoints of interval **/
        double fs = f(s);
        double ft = f(t);

        for (n = 0; n < m; n++)
        {

            r = (fs * t - ft * s) / (fs - ft);
            if (Math.abs(t - s) < e * Math.abs(t + s)) 
                break;
            fr = f(r);

            if (fr * ft > 0)
            {
                /** fr and ft have same sign, copy r to t **/
                t = r; 
                ft = fr;
                if (side == -1) 
                    fs /= 2;
                side = -1;
            }
            else if (fs * fr > 0)
            {
                /** fr and fs have same sign, copy r to s **/
                s = r;  
                fs = fr;
                if (side == +1) 
                    ft /= 2;
                side = +1;
            }
            else
            {
                /** fr * f_ very small (looks like zero) **/
                break;
            } 
        }
        return r;
    }
    /** Main function **/
    public static void main(String[] args)
    {
        System.out.println("Regular Falsi Test ");

        RegularFalsi rf = new RegularFalsi();
        /** lower limit **/
        double s = 0;
        /** upper limit **/
        double t = 1;
        /** half of upper bound for relative error **/
        double e = 5E-15;
        /** number of iterations **/
        int iterations = 100;

        System.out.println("\nRoot : "+ rf.findRoot(s, t, e, iterations));
    }
}

Output:

Regular Falsi Test

Root : 0.8654740331016145


More Java Programs:

















100+ Best Home Decoration Ideas For Christmas Day 2019 To Make Home Beautiful

Best gifts for Christmas Day | Greeting cards for Christmas Day | Gift your children a new gift on Christmas day This Christmas d...