Viết chương trình pascal giải phương trình ax2+bx+c=0 ( và chương trình ax + b = 0)

Chúng ta đã học nghiệm của phương trình bậc hai ax2 + bx + c = 0 từ khi còn nhỏ, và có một công thức tìm nghiệm trực tiếp. Nhưng người xưa đã phải mất một thời gian dài để tìm ra điều đó.

Ghi chép sớm nhất là trong văn học Babylon vào khoảng hai nghìn năm trước Công nguyên, phương trình bậc hai đơn giản nhất cũng có liên quan đến các tài liệu giấy cói của Ai Cập cổ đại. Hai nghìn năm trước cũng có một bài toán trong “Cửu chương số học” của Trung Quốc sử dụng phương trình bậc hai. Tuy nhiên, người xưa tỏ ra bảo thủ hơn trong quan điểm về lĩnh vực số, và họ không bao giờ thừa nhận các gốc âm.

Với công thức và hàm căn bậc hai, chương trình giải phương trình bậc hai không khó thực hiện:

Chương trình không khó, và một số từ ngữ được sử dụng trong đó để giải thích ngắn gọn như sau:

– sarray = s.split (“,”), câu lệnh này phân tách chuỗi được phân tách bởi “,” thành một mảng, chẳng hạn như đầu vào 1,2,3, nó sẽ được phân tách thành ba phần tử của mảng [1,2,3 ]. Sau đó tính số phân biệt, và cuối cùng đặt công thức để tìm căn.

– Khi phân biệt b * 2-4a * c <0, chúng tôi báo cáo không có lời giải, vì vậy chương trình này không nhận dạng số nhiều.

Chúng ta thấy rằng phương pháp trên là rất phổ biến, bởi vì chúng tôi đã luôn luôn ghi nhớ nó như thế này. Trên thực tế, công thức tìm kiếm gốc này rất khó tìm ra và có cảm giác như nó được ghép lại với nhau.

Chúng ta có một cách khác để lấy công thức tìm gốc một cách dễ hiểu hơn. Mô tả ngắn gọn như sau:

Đối với phương trình ax2 + bx + c = 0, giả sử rằng hai nghiệm nguyên của nó là R và S, phương trình có thể biến đổi thành: (x-R) (x-S) = 0, được khai triển thành

x2- (R + S) x + RS = 0, sau đó chuyển phương trình ban đầu thành: x2 + (b / a) x + c / a = 0, so sánh hai phương trình để được:

  1. R + S = -b / a
  2. R * S = c / a

Theo kết quả trên R + S = -b / a, có thể thấy rằng giá trị trung bình của R và S là -b / a, sau đó nó có thể được chuyển thành:

  1. R = -b / 2a + Z
  2. S = -b / 2a-Z

Ta thấy Z này tương đương với việc tìm hai gốc. Sử dụng R * S = c / a, biến đổi thành:

  1. (-b / 2a + Z) * (- b / 2a-Z) = c / a, nghĩa là
  2. b2 / 4a2-Z2 = c / a, nghĩa là
  3. Z2 = b2 / 4a2-c / a

Căn bậc hai Z = sqrt (b2 / 4a2-c / a) và công thức trước đó được sử dụng để lấy:

  1. R = -b / 2a + sqrt (b2 / 4a2-c / a) = (- b + sqrt (b2-4ac)) / 2a
  2. S = -b / 2a-sqrt (b2 / 4a2-c / a) = (- b-sqrt (b2-4ac)) / 2a

Các tuyến đường khác nhau dẫn đến cùng một mục tiêu. Nhưng ý tưởng giải quyết vấn đề này rõ ràng hơn nhiều.

Điều rất đáng ngạc nhiên là lý do rõ ràng này chỉ được phát hiện gần đây (2019.12, Luo Boshen), và không ai phát hiện ra nó trong hàng nghìn năm. Khi tôi nhìn thấy lý do này lần đầu tiên, tôi chỉ nghĩ: Tại sao tôi không tìm thấy một lý do đơn giản như vậy?