Code giải phương trình bậc 4 Python

Bài viết này sẽ hướng dẫn bạn cách giải phương trình bậc hai một ẩn

Code giải phương trình bậc 4 Python
bằng Python, đây là phương trình mà bạn đã được học ở lớp 9. Trước khi bắt tay vào viết chương trình trên Python, chúng ta phải biết cách giải phương trình bậc 2 đã nhé:

Cách giải phương trình bậc 2 một ẩn

Giải phương trình bậc 2 là đi tìm các giá trị của x sao cho khi thay x vào phương trình thì thỏa mãn .

Bước 1: Tính Δ=b2-4ac

Bước 2: So sánh Δ với 0

  • Δ < 0 => phương trình (1) vô nghiệm
  • Δ = 0 => phương trình (1) có nghiệm kép
    Code giải phương trình bậc 4 Python
  • Δ > 0 => phương trình (1) có 2 nghiệm phân biệt, ta dùng công thức nghiệm sau:

Code giải phương trình bậc 4 Python
Code giải phương trình bậc 4 Python

Giải phương trình bậc 2 một ẩn với Python

Bước 1: Cho phép người dùng nhập vào 3 số: a, b, c với điều kiện a và b ≠ 0

Bước 2: Tính Delta (Δ)

Bước 3: Tìm ra nghiệm của phương trình

Code Python giải phương trình bậc 2 một ẩn:

import math print("Giải phương trình bậc 2: ax2 + bx + c = 0 (a, b khác 0)") print("Bạn đang làm bài tập Python trên QuanTriMang") print("============") # Nhập số a, b và kiểm tra điều kiện khác 0 a = float(input("Mời bạn nhập hệ số a: ")) b = float(input("Mời bạn nhập hệ số b: ")) while True: if a == 0 and b == 0: print("Một trong hai hệ số a, b phải khác 0: ") a = float(input("Mời nhập lại số a: ")) b = float(input("Mời nhập lại số b: ")) else: break # Nhập số c c = float(input("Mời bạn nhập hệ số c: ")) # Tính Delta delta = b**2 - 4 * a * c # Tìm nghiệm của phương trình if delta < 0: print("Phương trình vô nghiệm") elif delta == 0: print("Phương trình có nghiệm kép x1 = x2 = ", -(b / (2 * a)) ) else: print("Phương trình có hai nghiệm phân biệt:") print("x1 = ", (-(b) + math.sqrt(delta))/(2*a) ) print("x1 = ", (-(b) - math.sqrt(delta))/(2*a) )

Bạn hãy thử chạy mã lệnh trên bằng công cụ Python Online của QuanTriMang và xem kết quả nhé! Một số ví dụ có thể thử:

  • Code giải phương trình bậc 4 Python
    (a=1, b=-3, c=2)
  • Code giải phương trình bậc 4 Python
    (a=1, b=1, c=-6)

Đề bài: Viết chương trình bằng ngôn ngữ lập trình Python giải phương trình bậc 2 (đủ): ax^2 + bx + c = 0 (a, b != 0)


Yêu cầu kiến thức:

  • Phân tích, thiết kế giải thuật cho bài toán giải phương trình bậc 2

Code tham khảo dưới đây được viết trên Python ver 3.8:

# Ho ten: Hoang Van Tuan # Website: timoday.edu.vn # Thu vien import math # Nhap du lieu a = float(input('Nhap he so a: ')) while a == 0: if a == 0: print('Hay nhap lai he so a!') a = float(input('Nhap he so a: ')) b = float(input('Nhap he so b: ')) while b == 0: if b == 0: print('Hay nhap lai he so b!') b = float(input('Nhap he so b: ')) c = float(input('Nhap he so c: ')) # Giai va bien luan delta = b * b - 4 * a * c if delta > 0: x1 = (-b + math.sqrt(delta)) / (2 * a) x2 = (-b - math.sqrt(delta)) / (2 * a) print('Phuong trinh co 2 nghiem phan biet la:') print('x1 = ', x1) print('x2 = ', x2) elif delta == 0: x = -b / (2 * a) print('Phuong trinh co nghiem kep la:') print('x1 = x2 = ', x) else: print('Phuong trinh vo nghiem')


Kết luận:

  • Bạn có thể tham khảo thêm khóa học lập trình C từ cơ bản đến nâng cao. Xem tại đây
  • Bạn có thể tham khảo thêm khóa học Thành thạo lập trình C#. Xem tại đây

Hãy viết chương trình giải phương trình bậc hai một ẩn ax^2 + bx + c = 0 bằng Python, đây là phương trình mà bạn đã được học ở bậc trung học cơ sở lớp 9.

Code giải phương trình bậc 4 Python

Bài giải

-------------------- ######## --------------------

Trước tiên bạn cần phải biết cách giải phương trình bậc hai, và cũng từ công thức toán học đó mà ta đưa ra được thuật toán giải phương trình này bằng ngôn ngữ Python.

Code giải phương trình bậc 4 Python

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Để giải phương trình bậc hai ax^2 + bx + c = 0 thì ta phải tính chỉ số Delta, dựa vào kết quả này mà ta xác định được nghiệm. Cụ thể như hình sau:

Code giải phương trình bậc 4 Python

Ok, bây giờ ta sẽ viết chương trình trong Python như sau:

Bài viết này được đăng tại [free tuts .net]

Bước 1: Nhập các số a, b và c. Kiểm tra điều kiện một trong hai số a và b phải khác 0.

Bước 2: Tính Delta

Bước 3: Dựa vào Delta để tìm ra nghiệm của phương trình (có 3 trường hợp như trong hình).

# HỌC PYTHON TẠI FREETUTS.NET # TÁC GIẢ: CƯỜNG NGUYỄN # Giải phương trình bậc hai 1 ẩn ax^2 + bx + c = 0 import math print("Chương trình đăng tại freetuts.net!") # Nhập số a và kiểm tra điều kiện khác 0 print("Nhập vào số a: ") a = int(input()) print("Nhập vào số b: ") b = int(input()) while True: if a == 0 and b == 0: print("Một trong hai số a và b phải khác 0: ") print("Nhập lại số a: ") a = int(input()) print("Nhập lại số b: ") b = int(input()) else: break # Nhập số c print("Nhập vào số c: ") c = int(input()) # Tính Delta delta = b**2 - 4 * a * c # Nghiệm if delta < 0: print("Phương trình vô nghiệm") elif delta == 0: print("Phương trình có nghiệm kép x1 = x2 = ", -(b / (2 * a)) ) else: print("Phương trình có hai nghiệm phân biệt:") print("x1 = ", (-(b) + math.sqrt(delta))/(2*a) ) print("x1 = ", (-(b) - math.sqrt(delta))/(2*a) )

Ví dụ mình giải phương trình x^2 - 5x + 4 = 0 thì có hai nghiệm: x1 = 4 và x2 = 1.

Code giải phương trình bậc 4 Python

Danh sách bài tập Python cơ bản

Cùng chuyên mục:

#include

#include

using namespace std;

int giaiPT(float a, float b, float c, float &x1, float &x2) {

    float delta = b * b - 4 * a*c;

    if (delta < 0) {

        x1 = x2 = 0.0;

        return 0;

    }

    else if (delta == 0) {

        x1 = x2 = -b / (2 * a);

        return 1;

    }

    else {

        delta = sqrt(delta);

        x1 = (-b + delta) / (2 * a);

        x2 = (-b - delta) / (2 * a);

        return 2;

    }

}

int main() {

    float X1, X2, a, b, c;

    do {

        cout<<"Nhap a (a!=0): ";

        cin >> a;

        cout<<"Nhap b: ";

        cin >> b;

        cout<<"Nhap c: ";

        cin >> c;

    } while (!a); //nếu a=0 thì nhập lại

    if (giaiPT(a, b, c, X1, X2) == 0) {

        cout<< "Phuong trinh vo nghiem";

    }

    else if( giaiPT(a, b, c, X1, X2) == 1 )    {

        if (X1 < 0)

            cout << "Phuong trinh vo nghiem";

        else if (X1 == 0)

            cout << "Phuong trinh co mot nghiem x: " << 0;

        else {

            cout<<"Phuong trinh co hai nghiem"<<endl;

            cout << "x1: " << sqrt(X1) << endl;

            cout << "x2: " << -sqrt(X1) << endl;

        }

    }

    else {

        if (X1 < 0) {

            if(X2 < 0)

                cout<< "Phuong trinh vo nghiem";

            else if(X2 == 0)

                cout << "Phuong trinh co mot nghiem x: " << 0;

            else {

                cout << "Phuong trinh co hai nghiem" << endl;

                cout << "x1: " << sqrt(X2) << endl;

                cout << "x2: " << -sqrt(X2) << endl;

            }

        }

        else if (X1 == 0) {

            if(X2 < 0)

                cout << "Phuong trinh co mot nghiem x: " << 0;

            else {

                cout << "Phuong trinh co ba nghiem" << endl;

                cout << "x1: " << sqrt(X2) << endl;

                cout << "x2: " << -sqrt(X2) << endl;

                cout << "x3: " << 0;

            }

            //X2 không thể bằng 0 nếu bằng 0 thì là nghiệm kép

        }

        else {

            if (X2 < 0) {

                cout << "Phuong trinh co hai nghiem" << endl;

                cout << "x1: " << sqrt(X1) << endl;

                cout << "x2: " << -sqrt(X1) << endl;

            }

            else if (X2 == 0) {

                cout << "Phuong trinh co ba nghiem" << endl;

                cout << "x1: " << sqrt(X1) << endl;

                cout << "x2: " << -sqrt(X1) << endl;

                cout << "x3: " << 0;

            }

            else {

                cout << "Phuong trinh co bon nghiem" << endl;

                cout << "x1: " << sqrt(X1) << endl;

                cout << "x2: " << -sqrt(X1) << endl;

                cout << "x3: " << sqrt(X2) << endl;

                cout << "x4: " << -sqrt(X2) << endl;

            }

        }

    }

    system("pause");

    return 0;

}