Hôm nay mình giới thiệu đến các bạn bài 4 trong seri lập trình python , đó là lập trình python . Các bạn có thể xem toàn bộ seri tại đây . 

Bài toán giải phương trình bậc 2 với python

  1. Phương trình bậc 2 là gì ?  

Trong đại số sơ cấpphương trình bậc hai là phương trình có dạng: {\displaystyle ax^{2}+bx+c=0}

Với x là ẩn số chưa biết và abc là các số đã biết sao cho a khác 0. Các số ab, và c là những hệ số của phương trình và có thể phân biệt bằng cách gọi tương ứng hệ số bậc haihệ số bậc một, và hằng số hay hệ số tự do.[1]

Vì phương trình bậc hai chỉ có một ẩn nên nó được gọi là phương trình “đơn biến“. Phương trình bậc hai chỉ chứa lũy thừa của x là các số tự nhiên, bởi vậy chúng là một dạng phương trình đa thức, cụ thể là phương trình đa thức bậc hai do bậc cao nhất là hai.

Các cách giải phương trình bậc hai phổ biến là nhân tử hóa (phân tích thành nhân tử), phương pháp phần bù bình phương, sử dụng công thức nghiệm, hoặc đồ thị. Giải pháp cho các vấn đề tương tự phương trình bậc hai đã được con người biết đến từ năm 2000 trước Công Nguyên . Theo wiki

 

2. Cách giải phương trình bậc 2 :

Việc còn lại là biến cách giải này thành code python thôi nào . Nghe đơn giản đấy , Mình bắt đầu nào !

3. Code thôi nào !

Đầu tiên bạn vào visual code , chọn file => open folder =>chọn folder bất kỳ=>ctrl + n =>ctrl +s => tenfile.py(p2.py) .

bước tạo file xong rồi ! Mình code thôi

+ Đầu tiên bạn khai báo mình đang viết cái gì đã !

print("đây là phần mềm giải phương trình bậc 2 ")

+ Yêu cầu người dùng nhập hệ số a,b,c của phương trình

print("phương trình bậc  2 có dạng L: aX^2 + bx +c = 0\n")
print("mời bạn nhập \n")
a = input("a = ")
b = input("b = ")
c = input("c = ")

+Kiểm tra a = 0 ? Nếu a = 0 thì yêu cầu người dùng nhập lại!

a = input("bạn đã nhập sai , nhập lại ! .a = ")

+ Khai báo dental = b*b-4*a*c

dental = b*b - 4*a*c

Các bạn bấm Ctrl + Shift +` và gõ vào : python p2.py =>ra lỗi bên dưới

    dental = b*b - 4*a*c
TypeError: can't multiply sequence by non-int of type 'str'

=> Lỗi rồi :V => Mình nhập như thế nó sẽ hiểu là mình nhập ký tự nên báo lỗi không tính được dental

+ Cách giải quyết :

a = float(input("a = "))
b = float(input("b = "))
c = float(input("c = "))
if(a==0):
    a = float(input("bạn đã nhập sai , nhập lại ! .a = "))

+ Xem lại code từ đầu đã ok chưa bằng cách in ra màn hình dental (gõ lại trên tearnimal: python p2.py)

print("đây là phần mềm giải phương trình bậc 2\n")
print("phương trình bậc  2 có dạng L: aX^2 + bx +c = 0\n")
print("mời bạn nhập \n")
a = float(input("a = "))
b = float(input("b = "))
c = float(input("c = "))
if(a==0):
    a = float(input("bạn đã nhập sai , nhập lại ! .a = "))
dental = b*b - 4*a*c
print(dental)

cách bạn nhập nhập 1 ,1,1 => dental = -3

+Xét 3 điều kiên >,< ,= 0 của deltal và suy ra nghiệm là xong

 if(dental < 0 ):
    print("phương trình vô nghiệm\n")
elif(dental > 0):
    x1 = (-b + math.sqrt(dental))/(2*a)
    x2 = (-b - math.sqrt(dental))/(2*a)
    print("phuong trinh co 2 nghiem x1 ="+ str(x1) + " và "+" x2 = " +str(x2))
else:
    x = -b/(2*a)
    print("phuong trinh co 2 nghiem x1 = x2 = " + str(x))

+Chú ý trong python để sử dụng được hàm căn bậc 2 bạn cần import thư viên math và để in xen kẽ số với chuỗi bạn cần đưa số về dạng chuỗi bằng hàm str(biến).

#ví dụ
import math
x1 = (-b + math.sqrt(dental))/(2*a)
x2 = (-b - math.sqrt(dental))/(2*a)
 print("phuong trinh co 2 nghiem x1 ="+ str(x1) + " và "+" x2 = " +str(x2))

+ FULL CODE CHO BÀI NÀY !

import math
print("đây là phần mềm giải phương trình bậc 2\n")
print("phương trình bậc  2 có dạng L: aX^2 + bx +c = 0\n")
print("mời bạn nhập \n")
a = float(input("a = "))
b = float(input("b = "))
c = float(input("c = "))
if(a==0):
    a = float(input("bạn đã nhập sai , nhập lại ! .a = "))
dental = b*b - 4*a*c
if(dental < 0 ):
    print("phương trình vô nghiệm\n")
elif(dental > 0):
    x1 = (-b + math.sqrt(dental))/(2*a)
    x2 = (-b - math.sqrt(dental))/(2*a)
    print("phuong trinh co 2 nghiem x1 ="+ str(x1) + " và "+" x2 = " +str(x2))
else:
    x = -b/(2*a)
    print("phuong trinh co 2 nghiem x1 = x2 = " + str(x))

Vậy đã xong ! Chạy và test thôi nào

Một ví dụ về if else khá đơn giản phải không nào (if với else như là nếu với thì của tiếng việt thôi mà :v)

TỔNG KẾT

Qua bài này hy vọng các bạn nhìn ra được if else rất dễ sử dụng , bài sau mình xin giới thiệu các vòng lặp khác như for,while …thông qua các bài toán thực tế hay nhé ! Hy vọng các bạn theo dõi .