Đơn vị 4 / 11

Tính toán tượng trưng: Điều khiển trí tuệ nhân tạo bằng SymPy

Lợi nhuận:

  • Khả năng nhận biết các khả năng cốt lõi của SymPy (đơn giản hóa, phân tích nhân tử, giải phương trình, đạo hàm, tích phân, giới hạn) và sử dụng nó để xác thực đầu ra AI
  • Khả năng thu được kết quả xác định và chính xác bằng cách in mã SymPy sang trí tuệ nhân tạo và tự chạy mã; Hiểu rằng việc trí tuệ nhân tạo dự đoán đầu ra mã không phải là xác minh
  • Khi kết quả trí tuệ nhân tạo không khớp với đầu ra của SymPy, khả năng sử dụng SymPy làm cơ sở để xác định lỗi và thêm thủ công các chi tiết nhỏ như tên miền.

Công cụ thiết thực và mạnh mẽ nhất của mô-đun này nằm trong bài học này: tính toán biểu tượng và thư viện Python SymPy. Phép tính ký hiệu đang thực hiện phép toán chính xác không phải bằng số mà bằng các ký hiệu (các biến như x, y, v.v.): lấy tích phân với công thức chính xác của nó, giải phương trình bằng các chữ cái, đơn giản hóa một biểu thức. SymPy là một thư viện Python mã nguồn mở, miễn phí và xác định thực hiện điều này - nghĩa là nó luôn đưa ra cùng một kết quả chính xác cho cùng một dữ liệu đầu vào. Điều này khiến nó trở nên lý tưởng để xác thực đầu ra AI: AI mang lại tốc độ và hiểu biết sâu sắc, SymPy mang lại độ chính xác.

Ý tưởng trung tâm của đơn vị này là: yêu cầu AI thực hiện phép toán nhưng nhờ SymPy xác thực kết quả. Tuyệt vời hơn nữa: Hãy để AI viết mã SymPy, bạn chạy mã và nhận được kết quả cuối cùng. Vậy là bạn đã loại bỏ được nguy cơ ảo giác của AI với tính quyết định của SymPy.

Thêm một định nghĩa nữa: CAS (Computer Algebra System) là tên gọi chung cho phần mềm thực hiện các phép toán ký hiệu; SymPy là một CAS. Các ví dụ thương mại là Mathematica và Maple, nhưng SymPy miễn phí và có thể truy cập được vì nó chạy bằng Python.

Khả năng cốt lõi của SymPy

SymPy thực hiện chính xác những điều sau:

  • Đơn giản hóa: đơn giản hóa (biểu thức) rút gọn biểu thức về dạng đơn giản nhất.
  • Bao thanh toán/mở rộng: hệ số() và mở rộng().
  • Giải phương trình: giải(phương trình, x) cho nghiệm chính xác của phương trình.
  • Đạo hàm: diff(expr, x).
  • Tích phân: tích phân(expr, x) (không xác định) hoặc tích hợp(expr, (x, a, b)) (xác định).
  • Giới hạn: giới hạn(biểu thức, x, dấu chấm).
  • Series là viết tắt của: series(biểu thức, x, 0, n).
  • Các phép toán ma trận, hệ phương trình, phương trình vi phân và hơn thế nữa.

Từng bước: Quy trình xác thực AI + SymPy

1. Nhờ AI giải quyết vấn đề. Nhận giải pháp từng bước và kết quả cuối cùng.

2. Yêu cầu AI viết mã SymPy cho vấn đề tương tự. Nói "Viết mã xác minh kết quả này bằng SymPy."

3. Tự chạy mã. Đừng để AI “dự đoán” đầu ra của đoạn mã – đó sẽ là ảo giác. Chạy mã trong môi trường Python thực.

4. So sánh hai kết quả. Nếu kết quả được AI và đầu ra của SymPy tìm thấy theo cách thủ công giống nhau thì độ tin cậy sẽ tăng lên; nếu khác thì lỗi ở AI (trust SymPy).

5. Nếu có sự khác biệt, hãy tìm lỗi. Nói với AI, "SymPy đã đưa ra cái này, kết quả của bạn khác; hãy tìm ra lỗi của bạn."

Chú ý: Nếu bạn lấy mã từ AI và hỏi "mã này tạo ra cái gì?" Yêu cầu AI "KHÔNG phải là xác minh - vì AI cũng có thể tạo mã đầu ra. Đảm bảo chạy mã trong môi trường Python thực (cài đặt cục bộ, Jupyter hoặc trình chạy Python trực tuyến). Sức mạnh của SymPy được bộc lộ khi nó được chạy.

Giải pháp thủ công AI, v.v. SymPy — so sánh

tính năng

Giải pháp thủ công AI

SymPy

tốc độ

rất nhanh

nhanh

độ chính xác

Không có gì đảm bảo (ảo giác)

Có tính quyết định, chắc chắn

Giải thích các bước

tốt

Yếu (định hướng kết quả)

Trực giác/chiến lược

tốt

không có

Đủ điều kiện để xác minh

không

Sự kết hợp tốt nhất: AI cho giải thích và chiến lược, SymPy cho độ chính xác.

ba trường hợp nhỏ

Trường hợp 1 - Sự không khớp tích phân. Một học sinh hỏi AI ∫ x/(x2+1) dx. YZ đã cho (1/2)·ln(x²+1) + C. Học sinh chạy tích phân(x/(x**2+1), x); SymPy trả về nhật ký (x**2 + 1)/2. Họ giống nhau - hoàn toàn tin tưởng. Sau đó, việc điều khiển đạo hàm cũng được thực hiện với diff; Nó quay trở lại x/(x²+1). Xác nhận ba lần, 3 phút.

Trường hợp 2 - Lỗi đơn giản hóa. Một giáo viên đã nhờ AI đơn giản hóa biểu thức (x2−1)/(x−1); YZ nói x+1 (đúng nhưng bỏ điều kiện x≠1). SymPy simple((x**2-1)/(x-1)) cũng cho x+1, nhưng giáo viên đã thêm ràng buộc miền theo cách thủ công (không xác định tại x=1). Bài học: Ngay cả SymPy đôi khi cũng không nhấn mạnh đến độ phức tạp của miền; con người thêm bối cảnh toán học.

Trường hợp 3 - Hệ phương trình. Một kỹ sư đã nhờ AI giải hệ phương trình tuyến tính với 3 ẩn số và mắc lỗi ở một biến. SymPy với giải([phương trình], [x, y, z]) đã đưa ra giải pháp chính xác; Giá trị z của AI sai. Kỹ sư lấy kết quả SymPy và nhờ AI tìm ra lỗi: lỗi dấu hiệu. Nó đã được giải quyết trong 4 phút.

Bốn mẫu có thể sao chép

1) Yêu cầu mã xác minh SymPy từ YZ:

Bạn đã giải quyết được vấn đề sau: [vấn đề], kết quả của bạn là [kết quả]. Bây giờ hãy viết mã thực thi SymPy để XÁC MINH kết quả này. Hãy để mã xác định các ký hiệu, tính toán kết quả và in nó. Đừng đoán đầu ra của mã; Tôi sẽ chạy nó.

2) Giải pháp từ đầu với SymPy:

Viết mã Python giải quyết vấn đề sau với SymPy: [problem]. Thêm các mục nhập, định nghĩa ký hiệu và bản in cần thiết. Viết những gì mã tạo ra; Chỉ cần đưa tôi mã và tôi sẽ chạy nó. Thêm một nhận xét ngắn vào mỗi dòng mã.

3) Sửa lỗi AI với đầu ra SymPy:

Bạn đã nói [kết quả], nhưng SymPy đã đưa ra điều này: [đầu ra SymPy]. Hai cái này khác nhau. Vì SymPy mang tính quyết định nên hãy chấp nhận nó là chính xác. Tìm hiểu xem bạn đã mắc sai lầm ở bước nào trong giải pháp của mình và chỉ ra nó.

4) Mã kiểm tra chéo đạo hàm/tích phân:

Bạn đã lấy tích phân sau: ∫ [f(x)] dx = [F(x)]. Để xác minh điều này, hãy viết mã trong SymPy lấy DẪN ĐẠO của F(x) và kiểm tra xem nó có bằng f(x) hay không (với logic đơn giản hóa(diff(F)-f) == 0). Chỉ cần đưa mã.

Dấu nhắc yếu / Dấu nhắc mạnh

Yếu: "∫ sin²(x) dx là gì? Đồng thời kiểm tra với SymPy và ghi kết quả ra."
Kết quả: AI phù hợp với cả câu trả lời và "đầu ra SymPy"; Cả hai đều có vẻ nhất quán, nhưng cả hai đều chưa được xác nhận. Sự tự tin giả tạo.
Mạnh: "Viết mã SymPy thực thi cho ∫ sin²(x) dx (nhập, ký hiệu, tích hợp, in). Bạn không viết kết quả — Tôi sẽ chạy nó và xem. Ngoài ra, hãy thêm một dòng kiểm tra để phân biệt kết quả và trả về sin²(x)."
Kết quả: Bạn chạy mã và xem kết quả đầu ra chính xác của SymPy; xác minh trở thành hiện thực.

Những lỗi thường gặp

  • Có AI dự đoán đầu ra mã. Đây không phải là xác nhận; AI cũng có thể phù hợp với đầu ra. Bạn chạy mã.
  • Chấp nhận kết quả SymPy mà không đọc nó. Định dạng đầu ra của SymPy đôi khi không bình thường (ví dụ: log = logarit tự nhiên); Biết cách diễn giải.
  • Quên tên miền . Việc đơn giản hóa SymPy không phải lúc nào cũng nhấn mạnh các ràng buộc như x≠1; con người thêm bối cảnh.
  • Định nghĩa biểu tượng không chính xác. Nếu x = ký hiệu ('x') bị quên, mã sẽ không hoạt động; các giả định (tích cực, thực tế) ảnh hưởng đến kết quả (ký hiệu('x', Positive=True)).
  • Thiếu nhập khẩu. Một lỗi phổ biến là quên nhập từ Symy import * hoặc các chức năng cần thiết.
Mẹo: Để kiểm tra tính đúng đắn của đẳng thức trong SymPy, biểu thức simple(left_side - right_side) == 0 rất hữu ích: hai biểu thức giống hệt nhau nếu hiệu đơn giản hóa về 0. Đây là cách rõ ràng nhất để xác minh danh tính hoặc cách đơn giản hóa do AI tạo ra.

Giả định của SymPy: cùng một biểu thức, kết quả khác nhau

Một tính năng tinh tế nhưng quan trọng của SymPy là hệ thống giả định của nó. Khi xác định một ký hiệu, bạn có thể đặt cho nó các thuộc tính: ký hiệu ('x', dương=True) biểu thị rằng x là dương, real=True biểu thị rằng nó là thực. Những giả định này có thể thay đổi kết quả. Ví dụ: biểu thức √(x²) vẫn là sqrt(x**2) nếu không có giả định nào về x (vì SymPy tính đến việc x có thể âm và biết nó phải là |x|); Nhưng nếu x được định nghĩa là dương thì kết quả trực tiếp là x. Đây không phải là lỗi mà là sự chính xác về mặt toán học: √(x²) = |x|, không phải x = x.

AI thường bỏ qua hoặc giả định không chính xác các giả định này khi tạo mã SymPy. Kết quả là mã mà AI tạo ra có thể không thực hiện được sự đơn giản hóa mà bạn “mong đợi” - và điều này thực sự có nghĩa là SymPy hoạt động chính xác hơn. Vì vậy, khi một phép đơn giản hóa có vẻ “không hiệu quả”, trước tiên hãy xem xét các điều kiện toán học thực tế của bài toán (x có dương không? nó có thật không? nó có khác 0 không?) và thêm các giả định đó vào mã. Việc đưa ra các giả định đúng không chỉ đảm bảo rằng SymPy trả về kết quả chính xác mà còn buộc bạn phải suy nghĩ về phạm vi của vấn đề—là một phần của độ chính xác về mặt toán học.

Thận trọng: Việc SymPy không "đơn giản hóa" một biểu thức thường không phải là một thiếu sót mà là vấn đề nghiêm ngặt về mặt toán học: vì không đưa ra các giả định cần thiết (tính tích cực, tính thực tế) nên SymPy giữ kết quả tổng quát nhất, an toàn nhất. Nếu bạn không thấy sự đơn giản hóa như mong đợi, trước tiên hãy xem lại các giả định về ký hiệu.

Tóm lại

SymPy là một công cụ xác định lý tưởng để xác thực kết quả toán học của AI. Quy trình làm việc mạnh mẽ nhất: chiến lược và mô tả cho AI, độ chính xác cho SymPy. Yêu cầu AI cung cấp mã SymPy, nhưng hãy nhớ tự chạy đầu ra — làm cho AI đoán mã đầu ra không được xác thực. Nếu kết quả không trùng khớp, hãy tin tưởng vào SymPy và để AI tìm ra lỗi. Kiểm tra chéo danh tính với simple(difference) == 0 và tích phân với diff.

Nhiệm vụ ứng dụng

Chọn tích phân, nghiệm phương trình và rút gọn biểu thức (ba bài toán riêng biệt). Đối với mỗi cách, hãy để AI viết giải pháp theo cách thủ công, sau đó là mã SymPy. Chạy mã trong môi trường Python thực (cài đặt cục bộ hoặc chạy trực tuyến). So sánh kết quả đầu ra của SymPy với kết quả thủ công của AI. Cố gắng tìm ra ít nhất một điểm khác biệt; Nếu tìm thấy hãy nhờ AI tìm ra lỗi của nó. Lưu ý quá trình.

danh sách kiểm tra

  • [ ] Tôi đã nhận được cả giải pháp AI và mã SymPy cho từng vấn đề.
  • [ ] Tôi đã chạy mã SymPy trong môi trường Python thực.
  • [ ] Tôi đã so sánh kết quả thủ công của YZ với kết quả đầu ra của SymPy.
  • [ ] Tôi đã kiểm tra chéo nghịch đảo đạo hàm/tích phân bằng SymPy.
  • [ ] Tôi đã thêm miền và các giả định (tích cực/thực) theo cách thủ công.
  • [ ] Trong cuộc tranh chấp, tôi đã dựa vào SymPy và nhờ AI tìm ra lỗi của nó.