Chương trình Java để tìm tất cả các gốc của một phương trình bậc hai

Trong chương trình này, bạn sẽ học cách tìm tất cả các nghiệm nguyên của một phương trình bậc hai và in chúng bằng format () trong Java.

Để hiểu ví dụ này, bạn nên có kiến ​​thức về các chủ đề lập trình Java sau:

  • Câu lệnh Java if… else
  • Java Math sqrt ()

Dạng chuẩn của phương trình bậc hai là:

 ax2 + bx + c = 0

Ở đây, a, b và c là các số thực và a không thể bằng 0.

Chúng ta có thể tính căn bậc hai bằng công thức:

 x = (-b ± √(b2-4ac)) / (2a)

Các ±dấu hiệu cho thấy sẽ có hai rễ:

 root1 = (-b + √(b2-4ac)) / (2a) root1 = (-b - √(b2-4ac)) / (2a)

Thuật ngữ này được gọi là định thức của một phương trình bậc hai. Nó chỉ rõ bản chất của rễ. Đó là,b2-4ac

  • nếu định thức> 0 , các gốc là thực và khác
  • nếu định thức == 0 , căn là thực và bằng
  • nếu định thức <0 , các gốc rất phức tạp và khác nhau

Ví dụ: Chương trình Java để tìm gốc của phương trình bậc hai

 public class Main ( public static void main(String() args) ( // value a, b, and c double a = 2.3, b = 4, c = 5.6; double root1, root2; // calculate the determinant (b2 - 4ac) double determinant = b * b - 4 * a * c; // check if determinant is greater than 0 if (determinant> 0) ( // two real and distinct roots root1 = (-b + Math.sqrt(determinant)) / (2 * a); root2 = (-b - Math.sqrt(determinant)) / (2 * a); System.out.format("root1 = %.2f and root2 = %.2f", root1, root2); ) // check if determinant is equal to 0 else if (determinant == 0) ( // two real and equal roots // determinant is equal to 0 // so -b + 0 == -b root1 = root2 = -b / (2 * a); System.out.format("root1 = root2 = %.2f;", root1); ) // if determinant is less than zero else ( // roots are complex number and distinct double real = -b / (2 * a); double imaginary = Math.sqrt(-determinant) / (2 * a); System.out.format("root1 = %.2f+%.2fi", real, imaginary); System.out.format("root2 = %.2f-%.2fi", real, imaginary); ) ) )

Đầu ra

 root1 = -0.87 + 1.30i và root2 = -0.87-1.30i

Trong chương trình trên, các hệ số a, b và c được đặt lần lượt là 2.3, 4 và 5.6. Sau đó, giá trị determinantđược tính là .b2 - 4ac

Dựa trên giá trị của định thức, các gốc được tính như cho trong công thức trên. Lưu ý rằng chúng tôi đã sử dụng hàm thư viện Math.sqrt()để tính căn bậc hai của một số.

Chúng tôi đã sử dụng format()phương pháp để in các gốc đã tính toán.

Các format()chức năng cũng có thể được thay thế bằng printf()như:

 System.out.printf("root1 = root2 = %.2f;", root1);

thú vị bài viết...