Python ax2 bx + c = 0

Trong bài đăng trên blog này, tôi sẽ chỉ cho bạn cách tạo một hàm python sẽ giải bất kỳ phương trình bậc hai nào

Đầu tiên, một phương trình bậc hai là gì?

Phương trình bậc hai là một phương trình đại số có thể sắp xếp thành ax2 + bx + c = 0 trong đó a, b, c đã biết và a ≠ 0. Nếu a = 0 thì phương trình trở thành tuyến tính vì không có số hạng x2

Thứ hai, làm thế nào để giải phương trình này?

  • Bằng cách kiểm tra
  • Hoàn thành hình vuông
  • Công thức phương trình bậc hai

Chúng ta sẽ sử dụng công thức bậc hai là

Trong đó a, b & c là các hệ số đã biết khi sắp phương trình thành ax2 + bx + c = 0

Chúng tôi sử dụng công thức Bậc hai vì nó có thể được sử dụng trong mọi tình huống và không có sắc thái nào giống như các phương pháp khác

Phần đầu tiên của mã là xác định một hàm sẽ chấp nhận 3 tham số. một, b & c

Để sử dụng công thức bậc hai, chúng ta sẽ sử dụng hàm căn bậc hai từ mô-đun toán học đã nhập

Trước khi đưa các tham số vào công thức, chúng ta có thể tính xem chúng ta sẽ nhận được bao nhiêu nghiệm thực bằng cách sử dụng biệt thức. Biệt thức là b2 – 4ac

Nếu b2 – 4ac > 0 thì có 2 nghiệm thực

Nếu b2 – 4ac = 0 thì có 1 nghiệm thực

Nếu b2 – 4ac < 0 thì không có nghiệm thực. [Có những nghiệm phức sử dụng số ảo, nhưng chúng ta sẽ không đi sâu vào vấn đề đó ở đây, có thể trong phần 2]

Hãy thêm tính phân biệt và câu lệnh IF tùy thuộc vào kết quả vào hàm

Tiếp theo, hãy thay a, b & c vào công thức bậc hai

Khi biệt thức = 0 ta chỉ cần tìm giá trị của root1 vì nó bằng root2. Biết biệt thức = 0, chúng ta có thể đơn giản hóa phương trình thành

Trong mã tôi đã chọn để lại công thức đầy đủ trong

Vậy là xong mã của chúng ta, cuối cùng hãy kiểm tra chức năng với 3 kịch bản phân biệt khác nhau

Trong đại số, phương trình bậc hai được sử dụng rộng rãi trong rất nhiều công việc. Một phương trình bậc hai [đa thức bậc hai] luôn có một số hạng bình phương phân biệt nó với các phương trình tuyến tính thông thường của chúng ta

Trong hướng dẫn này, chúng ta sẽ sử dụng thư viện toán học [dựng sẵn trong Python] để giải phương trình bậc hai bằng Python

Chúng ta cũng sẽ cần numpy để làm việc với mảng và matplotlib để vẽ đồ thị của phương trình bậc hai bằng Python

Nếu bạn chưa cài đặt, vui lòng mở “Command Prompt” [trên Windows] và cài đặt nó bằng mã sau


pip install numpy
pip install matplotlib

Công thức phương trình bậc hai

Chúng ta bắt đầu với việc tìm hiểu dạng chuẩn của phương trình bậc hai

$$ax^2 + bx + c = 0$$

trong đó a, b, c là các số thực và \[a \neq 0\]

Vậy làm thế nào để biết phương trình có nghiệm?

Giải phương trình bậc hai

Bước 1. Tính phân biệt

Bước đầu tiên để giải phương trình bậc hai là tính hiệu. Sử dụng công thức đơn giản

$$D = b^2 – 4ac$$

chúng ta có thể giải quyết vấn đề phân biệt và nhận được một số giá trị. Tiếp theo, nếu giá trị là

  • dương thì phương trình có hai nghiệm
  • bằng 0 thì phương trình có một nghiệm lặp lại
  • âm thì phương trình vô nghiệm

Bước 2. Giải quyết các giá trị x

Để giải quyết cho mỗi giá trị x, chúng tôi sử dụng công thức bậc hai sau

$$x = \frac{-b \pm \sqrt{b^2 – 4ac}}{2a} = \frac{-b \pm \sqrt{D}}{2a}$$

có nghĩa là

$$x_1 = \frac{-b + \sqrt{D}}{2a}$$

$$x_2 = \frac{-b – \sqrt{D}}{2a}$$

và đây là tất cả các bước chúng ta cần thực hiện để tìm nghiệm cho phương trình bậc hai

Giải phương trình bậc hai [Ví dụ]

Ví dụ, hãy xem xét phương trình bậc hai sau

$$x^2 – 5x – 14 = 0$$

trong đó \[a = 1\], \[b = -5\] và \[c = -14\]

Bước đầu tiên, chúng tôi sẽ tính toán phân biệt đối xử

$$D = b^2 – 4ac = [-5]^2 – 4 \times 1 \times [-14] = 81$$

Vì \[D > 0\] nên phương trình này sẽ có hai nghiệm

Hãy tính \[x_1\] và \[x_2\]

$$x_1 = \frac{-b + \sqrt{D}}{2a} = \frac{-[-5] + \sqrt{81}}{2 \times 1} = 7$$

$$x_2 = \frac{-b + \sqrt{D}}{2a} = \frac{-[-5] – \sqrt{81}}{2 \times 1} = -2$$

Giải pháp cho phương trình này là. \[x_1 = 7\] và \[x_2 = -2\]

Giải phương trình bậc hai bằng Python

Ví dụ, hãy xem xét phương trình bậc hai sau

$$x_1 – 5x_2 – 14 = 0$$

trong đó \[a = 1\], \[b = -5\] và \[c = -14\]

Bước 1. Nhận đầu vào của người dùng cho các hệ số phương trình [a , b, c]

Đầu tiên, chúng ta cần lấy các hệ số này do người dùng nhập vào


a, b, c = eval[input["Please enter the a, b, c coefficients of your quadratic equation: "]]

Ở đây chúng ta sẽ cần chuyển ba giá trị được phân tách bằng dấu phẩy như. 1,-5,-14

Rõ ràng, nếu bạn chuyển bất kỳ thứ gì khác ngoài số thực [chuỗi hoặc boolean], nó sẽ không phá vỡ chức năng nhập liệu nhưng các tính toán tiếp theo sẽ không hoạt động. Để ngăn chặn điều này, bạn nên xem xét thêm một bộ kiểm tra để xác thực đầu vào của người dùng


check_input = True
while check_input:
    a, b, c = eval[input["Please enter the a, b, c coefficients of your quadratic equation: "]]
    try: 
        float[a], float[b], float[c]
        check_input = False
    except ValueError:
        print["Please make sure the coefficients are real numbers and try again"]
        check_input = True

Cho đến giờ chúng ta đã tạo các biến a, b và c trong Python

Bước 2. Tính phân biệt bằng Python

Tiếp theo chúng ta sẽ tính biệt thức. Chúng ta sẽ cần sử dụng thư viện toán học [dựng sẵn trong Python] để sử dụng hàm căn bậc hai


from math import sqrt

disc = b*b-4*a*c

Đối với các giá trị chúng tôi đã nhập ở trên, giá trị phân biệt phải là 81

Bước 3. Tìm nghiệm của phương trình bậc hai bằng Python

Và cuối cùng, chúng tôi giải quyết các gốc của phương trình. Nhớ lại ta cũng cần kiểm tra nếu biệt số nhỏ hơn 0 thì phương trình bậc hai vô nghiệm


if disc >=0:
    x1 = [-b+sqrt[disc]]/[2*a]
    x2 = [-b-sqrt[disc]]/[2*a]
    print["The roots of the equation are:", x1, x2]
else:
    print["The equation has no solutions"]

Ví dụ của chúng tôi, chúng tôi sẽ nhận được \[x_1 = 7\] và \[x_2 = -2\]

Vẽ hàm bậc hai bằng Python

Biểu diễn đồ thị của phương trình bậc hai là một parabol

Khi phương trình bậc hai được rút gọn để bằng 0, nghiệm của phương trình là các giao điểm của trục y

Hãy vẽ biểu đồ phương trình bậc hai từ phần trước bằng Python và xem nghiệm của phương trình nằm ở đâu

Chúng tôi bắt đầu bằng cách nhập các thư viện cần thiết


import matplotlib.pyplot as plt
import numpy as np

Tiếp theo, hãy xác định phạm vi trục \[x\] mà chúng tôi muốn xem xét. Đối với ví dụ này, hãy lấy phạm vi từ -10 đến 15


x = np.linspace[-10, 15]

Và chúng ta có thể có hàm \[y\] bằng cách sử dụng các tham số từ phần trước


y = x**2 - 5*x - 14

Trước tiên, chúng ta sẽ vẽ trục x và trục y dưới dạng các đường đứt nét cùng với các nhãn trục

________số 8

Và sau đó vẽ đồ thị parabola


plt.plot[x, y]
plt.show[]

Và bạn sẽ nhận được

Trên biểu đồ trên, bạn có thể thấy rằng các điểm [-2, 0] và [7, 0] là các giao điểm của trục x và cũng là nghiệm của phương trình bậc hai

Chương trình giải phương trình bậc hai bằng Python


a, b, c = eval[input["Please enter the a, b, c coefficients of your quadratic equation: "]]
0

Sự kết luận

Trong bài viết này, chúng tôi đã đề cập đến cách bạn có thể giải phương trình bậc hai bằng Python và thư viện toán học

Vui lòng để lại nhận xét bên dưới nếu bạn có bất kỳ câu hỏi nào hoặc có đề xuất cho một số chỉnh sửa và xem thêm các bài viết Tối ưu hóa của tôi

Chủ Đề