Java >> Java tutorial >  >> Java

Java-programmer til at finde alle rødder til en kvadritisk ligning

En ligning siges at være en Avgradsligning hvis den har formen ax2+bx+c=0 hvor a,b,c er reelle tal og a ikke er lig med 0. Standardformen for ligningen og formlen til at beregne det samme er som følger:

En andengradsligning har to rødder, og disse to rødder afhænger af diskriminanten. I ovenstående formel er sqrt((b*b)-(4*a*c)) kendt som diskriminanten.

  • Hvis diskriminanten er positiv, så er rødderne reelle og ulige.
  • Hvis diskriminanten er 0, så er rødderne reelle og lige store.
  • Hvis diskriminanten er negativ, så er rødderne ulige og imaginære.

Her får vi en andengradsligning, og vores opgave er at finde rødderne til den ligning. For eksempel,

Input: 1 -2 1

Output: 1 1

Program 1:Find andengradsligning

I dette program findes rødderne til andengradsligningerne i selve hovedmetoden.

Algorithme:

  1. Start
  2. Deklarer variablerne a,b,c.
  3. Initialiser variablerne a,b,c.
  4. Beregn rødderne af andengradsligningen i selve hovedmetoden.
  5. Tjek, om rødder er mulige eller ej ved at bruge betingelse a==0.
  6. Beregn diskriminanten som Discriminant=sqrt((b*b)-(4*a*c)).
  7. Hvis diskriminant.>0, så er rødderne reelle og ulige.
  8. Beregn rødderne som ( -b+ diskriminant ) /(2 *a) og ( -b - diskriminant ) /(2 *a).
  9. Hvis diskriminant=0, så er rødderne reelle og lige store.
  10. Beregn rødderne som (-b + Diskriminant) /( 2*a).
  11. Hvis diskriminant>0, så er rødderne komplekse og forskellige.
  12. Beregn rødderne som (-b/(2*a)) + iD og (-b/(2*a)) - iD.
  13. Vis rødderne.
  14. Stop

Nedenfor er koden til det samme.

I dette eksempel vil vi direkte finde rødderne til andengradsligningerne. Først deklareres og initialiseres koefficienterne for de kvadratiske ligninger. Og så finder vi direkte rødderne til andengradsligningen i selve hovedmetoden.

//Java Program to find the roots of the quadratic equation
import java.util.Scanner;
public class QuadraticEquation
{

     public static void main(String []args)
     {
        Scanner sc=new Scanner(System.in);
        double a,b,c;      //Quadratic Variables declaration
        System.out.println("Enter the value of a..");
        a=sc.nextDouble();   //Quadratic Variables Initialization
        System.out.println("Enter the value of b..");
        b=sc.nextDouble();    //Quadratic Variables Initialization
        System.out.println("Enter the value of c..");
        c=sc.nextDouble();   //Quadratic Variables Initialization
        
        double d=(b*b)-(4*a*c);    //Find the determinant
        double D= Math.sqrt(d);
        double r=2*a;
        
        //Check for Roots
        if(D>0)
        {
            System.out.println("Roots are real and unequal");
            double root1=(D-b)/r;
            double root2=(-D-b)/r;
            System.out.println("Roots are..");
            System.out.println(root1);
            System.out.println(root2);
        }
        else if(D==0)
        {
            System.out.println("The roots of the quadratic equation are real and equal.");
            double root=(-b)/r;
            System.out.println("Root is "+root);
        }
        else
        {
            System.out.println("The roots of the quadratic equation are complex and different");
            System.out.println("Roots are ");
            System.out.println((-b/r)+" +i" + D);
            System.out.println((-b/r)+" -i" + D);
        }
     }
}


Indtast værdien af ​​a.. 15
Indtast værdien af ​​b.. 68
Indtast værdien af ​​c.. 3
Rødder er reelle og ulige
Rødder er..
-0,044555558333472335
-4,488777774999861

Program 2:Find andengradsligning

I denne metode findes rødderne til andengradsligningerne ved hjælp af funktioner.

Algorithme

  1. Start
  2. Deklarer variablerne a,b,c.
  3. Initialiser variablerne a,b,c.
  4. Kald en funktion for at beregne rødderne af andengradsligningen.
  5. Tjek, om rødder er mulige eller ej ved at bruge betingelse a==0.
  6. Beregn diskriminanten som Discriminant=sqrt((b*b)-(4*a*c))
  7. Hvis diskriminant.>0, så er rødderne reelle og ulige.
  8. Beregn rødderne som ( -b+ diskriminant ) /(2 *a) og ( -b - diskriminant ) /(2 *a).
  9. Hvis diskriminant=0, så er rødderne reelle og lige store.
  10. Beregn rødderne som (-b + Diskriminant) /( 2*a)
  11. Hvis diskriminant>0, så er rødderne komplekse og forskellige.
  12. Beregn rødderne som (-b/(2*a)) + iD og (-b/(2*a)) - iD
  13. Vis rødderne.
  14. Stop

Nedenfor er koden til det samme.

I dette eksempel vil vi bruge metoder til at finde rødderne til andengradsligningerne. Først deklareres og initialiseres koefficienterne for de kvadratiske ligninger. Og så kaldes en funktion til at finde rødderne til andengradsligningen.

//Java Program to find the roots of quadratic equation using Functions
import java.util.Scanner;
import static java.lang.Math.*;

public class QuadraticEquation
{
     public static void main(String []args)
     {
        Scanner sc=new Scanner(System.in);
        int a,b,c;    //Quadratic Variables Declaration
        System.out.println("Enter the value of a..");
        a=sc.nextInt();   //Quadratic Variables Initialization
        System.out.println("Enter the value of b..");
        b=sc.nextInt();    //Quadratic Variables Initialization
        System.out.println("Enter the value of c..");
        c=sc.nextInt();;   //Quadratic Variables Initialization
         quadraticRoots(a,b,c);   //Function Call
     
     }

     static void quadraticRoots(int a,int b,int c)
     {
        //Check whether roots are possible or not
        if (a == 0)   
        {  
           System.out.println("The value of a cannot be 0.");  
           return;  
        }  
       //calculating discriminant (d)  
       int d = b * b - 4 * a * c;  
       double D = sqrt(abs(d));  
       if (d > 0)   
       {  
          System.out.println("The roots of the equation are real and different. \n");  
          System.out.println((double)(-b + D) / (2 * a) + "\n"+ (double)(-b - D) / (2 * a));  
       }  
       else if (d == 0)   
       {  
          System.out.println("The roots of the equation are real and same. \n");  
          System.out.println(-(double)b / (2 * a) + "\n"+ -(double)b / (2 * a));  
       }  
       // executes if d < 0  
       else   
       {  
          System.out.println("The roots of the equation are complex and different. \n");  
          System.out.println(-(double)b / (2 * a) + " + i"+ D + "\n"+ -(double)b / (2 * a)+ " - i" + D);  
        }   
     }
}


Indtast værdien af ​​a.. 7
Indtast værdien af ​​b.. 7
Indtast værdien af ​​c.. 7
Rødderne til ligningen er komplekse og forskellige.

-0,5 + i12.12435565298214
-0,5 - i12.12435565298214


Java tag