Giải hệ phương trình bằng Python

Hướng dẫn chi tiết:

Phương trình bậc 1 [bậc nhất] là phương trình có dạng: ax + b = 0

Sau đây là một giải thuật cho phương trình bậc nhất:

+ Nhập vào các hệ số a và b

+ Nếu a==0:

- Nếu b==0 => Vô số nghiệm [hay vô định]

- Nếu b!=0 => Vô nghiệm

+ Nếu a!=0:

Phương trình có nghiệm là x = -b/a

Còn dưới đây là lưu đồ cho thuật toán:

Sau đây là đoạn code demo:

# Bài toán: Hãy viết chương trình giải phương

# trình bậc nhất 1 ẩn: ax + b = 0

# Lập trình:

a = float[input[

"Nhập hệ số a: "

]] b = float[input[

"Nhập hệ số b: "

]]

if

a ==

0

:

if

b ==

0

: print[

"Vô số nghiệm"

]

else

: print[

"Vô nghiệm"

]

else

: print[

"Phương trình có nghiệm x ="

,

-b / a]

Tham khảo:

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.

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.

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:

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.

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

Cùng chuyên mục:

85 / 100

Hôm nay Lập trình không khó sẽ hướng dẫn các bạn cách giải hệ phương trình bậc nhất 2 ẩn bằng code C/C++. Nhưng trước khi giải bài toán này chúng ta cũng tìm hiểu hệ phương trình bậc nhất 2 ẩn là gì ?

Định nghĩa phương trình bậc nhất 2 ẩn

Ở các lớp dưới chúng ta đã những phương pháp giải hệ phương trình trên như: Phương pháp thế, phương pháp đặt ẩn phụ…

Nhưng liệu trong C++ ta có dùng lại những phương pháp này được không ? Câu trả lời là có nhưng với mỗi phương pháp thì nó những ưu nhược điểm riêng. Ví dụ ta rút x ở hệ phương trên x = [ c1 -b1y ] / a1 

Nhưng nếu a1 bằng 0 thì sao ? Không lẻ bạn ngồi viết từng dòng if else để rút thế, nếu bạn làm như cũng được thôi nhưng chương trình của bạn sẽ phức tạp hơn rất nhiều. Vậy nên mình sẽ giới thiệu đến các bạn một phương pháp giải mới.

Giải hệ phương trình bậc nhất bằng phương pháp Cramer

Phương pháp Cramer

Các bạn có thể xem thêm phương pháp Cramer tại đây.

Từ đây ta chỉ cần tính các định thức D, Dx, Dy là xong rồi phải không nào.

  • Nếu định thức D = 0 thì phương trình hoặc vô nghiệm hoặc vô số nghiệm. Nếu Dx = Dy = 0 thì phương trình có vô số nghiệm. Ngược lại thì phương trình trên vô nghiệm.
  • Nếu định thức D ≠ 0 thì hệ phương trình trên luôn có nghiệm duy nhất với x = Dx/D và y = Dy/D.

Nào ta cùng bắt tay vào viết chương trình thôi !

Chương trình giải hệ phương trình bậc nhất 2 ẩn

Dưới đây là chương trình tham khảo cách giải hệ phương trình bậc nhất 2 ẩn, mình khuyên các bạn nên viết trước khi xem source.

Code C:

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

#include

int main[]{

    int a1, b1, c1, a2, b2, c2;

    float D, Dx, Dy, x, y;

    printf["a1*x + b1*y = c1\n"];

    printf["a2*x + b2*y = cc\n"];

    printf["\nNhap a1: "]; scanf["%d", &a1];

    printf["\nNhap b1: "]; scanf["%d", &b1];

    printf["\nNhap c1: "]; scanf["%d", &c1];

    printf["\nNhap a2: "]; scanf["%d", &a2];

    printf["\nNhap b2: "]; scanf["%d", &b2];

    printf["\nNhap c2: "]; scanf["%d", &c2];

    D = a1 * b2 - a2 * b1;

    Dx = c1 * b2 - c2 * b1;

    Dy = a1 * c2 - a2 * c1;

    if [D == 0] {

        if [Dx + Dy == 0]

            printf["He phuong trinh co vo so nghiem"];

        else

            printf["He phuong trinh vo nghiem"];

    }

    else {

        x = Dx / D;

        y = Dy / D;

        printf["He phuong trinh co nghiem [x, y] = [%d, %d]", x, y];

    }

    return 0;

}

Code C++:

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

#include

using namespace std;

int main[]{

    int a1, b1, c1, a2, b2, c2;

    float D, Dx, Dy, x, y;

    cout

Chủ Đề