Đơn vị 2 / 11

Phương pháp tính toán và số học với Python

Lợi nhuận:

  • Khả năng dựa vào kết quả đầu ra xác định, không phải phỏng đoán bằng lời nói, bằng cách nhờ AI dịch phép tính vật lý sang mã NumPy/SciPy và tự chạy mã đó
  • Khả năng xác minh độ tin cậy của mã số bằng cách kiểm tra nó với một tình huống đơn giản mà câu trả lời đã biết và kiểm tra sự hội tụ của nó.
  • Khả năng cung cấp vật lý đơn vị và mức độ của kết quả bằng cách phản ánh các đơn vị biến đổi vào mã

Nhiều vấn đề trong vật lý không thể giải bằng tay: tích phân không có nghiệm giải tích, nghiệm của một hệ phương trình không thể tìm được ở dạng đóng, hoặc một phép tính phải lặp lại hàng nghìn lần. Đây là lúc các phương pháp số phát huy tác dụng: thay vì một công thức chính xác, máy tính tính toán từng bước với độ chính xác gần đúng nhưng được kiểm soát. Trong phần này, bạn sẽ tìm hiểu cách sử dụng trí tuệ nhân tạo (AI) làm đối tác mã cho các phép tính vật lý tính toán, cách xác minh mã mà nó tạo ra và những bẫy bạn nên tránh rơi vào. Các công cụ tiêu chuẩn của nhà vật lý ở đây sẽ là ngôn ngữ Python và NumPy (thư viện dành cho mảng số và toán học nhanh) cũng như SciPy (thư viện dành cho tính toán khoa học; bao gồm tích hợp, tìm kiếm triệt để, tối ưu hóa).

Tại sao AI + Python, tại sao không bằng tay?

Việc thực hiện các phép tính số bằng tay vừa chậm vừa dễ mắc lỗi. AI có thể dịch cấu trúc vật lý của bạn thành mã Python đang chạy trong vài giây. Nhưng nguyên tắc vàng ở đây là: AI viết mã, bạn chạy mã và xác minh kết quả bằng vật lý. AI nói “mã này cho cái kia” là một dự đoán; Trên thực tế việc chạy mã và thấy kết quả đầu ra là một thực tế mang tính quyết định. Một LLM có thể "tính toán" đầu ra của mã mà anh ta viết trong đầu và nói sai số; trong khi đó khi chạy cùng một mã, nó cho kết quả chính xác. Vì vậy, đừng bao giờ tin tưởng vào kết quả bằng số mà AI đưa ra bằng lời nói - hãy chạy mã.

Nhiệm vụ tính toán cơ bản và vai trò của AI

Nhiệm vụ

Phương pháp/công cụ

xác minh vật lý

tích phân xác định

scipy.integrate.quad

Trạng thái giới hạn, phân tích thứ nguyên

nghiệm của phương trình

scipy.optimize.brentq

Đặt gốc vào đúng vị trí và kiểm tra xem nó có bằng không không.

Hệ phương trình tuyến tính

numpy.linalg.solve

Đưa giải pháp trở lại hệ thống

Đạo hàm (số)

Sự khác biệt trung tâm hoặc numpy.gradient

So sánh với đạo hàm phân tích

Tính toán vectơ số lượng lớn

Mảng NumPy

Kiểm soát đơn vị và cấp bậc

AI rất giỏi trong việc đề xuất công cụ nào phù hợp và đưa ra cú pháp (quy tắc viết mã) chính xác. Nhưng bạn quyết định phương pháp nào có ý nghĩa vật lý và độ chính xác của kết quả.

Từng bước: tính toán bằng số có thể kiểm chứng

1. Làm rõ vấn đề và đơn vị. Ví dụ: "Tính tích phân e^(−x²) từ 0 đến vô cùng; kết quả phải là √π/2 ≈ 0,8862." Viết lại kết quả mong đợi (nếu có) giúp việc xác minh dễ dàng hơn.

2. Yêu cầu AI cung cấp mã nhưng bạn chạy kết quả đầu ra. Sao chép khối mã và chạy nó trong môi trường của riêng bạn (Jupyter, Colab, Python nguyên gốc).

3. Kiểm tra với một tình huống đã biết. Hãy thử mã với một tình huống đơn giản mà bạn đã biết câu trả lời. Ví dụ: kiểm tra mã tích phân bằng một ví dụ mà bạn biết bằng tay, chẳng hạn như ∫₀¹ x dx = 0,5. Nếu mã đưa ra điều này chính xác, sự tự tin của bạn sẽ tăng lên.

4. Kiểm tra sự hội tụ. Trong các phương pháp số, khi bạn tăng số bước, kết quả sẽ đạt đến một giá trị không đổi. Nếu nó không đến gần thì phương pháp đó không phù hợp.

5. Kiểm tra đơn vị và cấp bậc. Luôn cung cấp kết quả bằng số kèm theo đơn vị vật lý và thứ tự.

Mẹo: Khi yêu cầu mã từ AI, hãy nói "cũng bao gồm dòng kiểm tra so sánh kết quả với giá trị phân tích đã biết". Do đó, mã vừa thực hiện tính toán vừa tự kiểm tra trong một tình huống đã biết. Điều này làm cho lỗi có thể nhìn thấy ngay lập tức.

ba trường hợp nhỏ

Trường hợp 1 - Kết luận miệng sai. Một sinh viên đã nhờ AI viết một mã tích phân và AI cho biết "mã này cho kết quả là 1,77". Sinh viên chạy mã: kết quả thực tế là 0,886. AI đã mắc sai lầm khi dự đoán đầu ra của mã; Mã đã đúng. Bài học: hãy tin vào mật mã, đừng tin vào lời nói đoán mò.

Trường hợp 2 - Sự mất ổn định về mặt số học. Một nhà nghiên cứu đã tìm kiếm nghiệm của một phương trình bằng mã tìm nghiệm mà AI đã viết. Đoạn mã trả về một nghiệm nhưng khi người nghiên cứu đưa nghiệm trở lại phương trình thì kết quả không phải là 0 mà là một số rất lớn. Vấn đề là phạm vi bắt đầu không chứa gốc; AI giả định phạm vi thích hợp. Nhà nghiên cứu đã sửa lại khoảng bằng thông tin vật lý và tìm ra gốc chính xác.

Trường hợp 3 - Đã đạt được xác nhận. Một kỹ sư muốn có một mã tính toán số lượng độ lệch của dầm khi chịu tải. Mã đã hoạt động nhưng kết quả cho thấy độ lệch hàng mét - điều không thể xảy ra đối với dầm thép. Kỹ sư đã kiểm tra các đơn vị: AI đã giả vờ có mô đun đàn hồi ở Pa thay vì GPa, thiếu hệ số 10⁹. Với việc hiệu chỉnh đơn vị, kết quả giảm xuống từng milimet và hợp lý.

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

1) Tính toán số với dòng xác nhận:

Viết mã Python (NumPy/SciPy) để thực hiện phép tính vật lý sau: [vấn đề]. Khai báo tất cả các biến theo đơn vị SI và chỉ định đơn vị bằng một dòng chú thích. Thêm một dòng kiểm tra (xác nhận hoặc in) ở cuối mã để so sánh kết quả với giá trị phân tích/đơn giản đã biết. Tôi sẽ chạy mã; bạn không đoán được kết quả đầu ra, chỉ cần viết mã và thứ hạng mong đợi.

2) Tư vấn lựa chọn phương pháp:

Tôi muốn giải quyết vấn đề sau bằng số: [vấn đề]. Hàm SciPy/NumPy nào phù hợp và TẠI SAO? Đề xuất 2 phương pháp thay thế, ghi lại ưu/nhược điểm của từng phương pháp về độ chính xác và ổn định. Nêu rõ cái nào nên được ưu tiên trong tình huống vật lý nào.

3) Kiểm tra sự hội tụ:

Viết mã Python cho thấy kết quả hội tụ như thế nào bằng cách tăng số bước của phép tính số sau (ví dụ: N=10, 100, 1000). In kết quả dưới dạng bảng. Nếu không có sự hội tụ, hãy giải thích lý do vật lý/số học cho điều này bằng một câu. Mã: [tại đây]

4) Điều khiển đơn vị:

Trong đoạn mã bên dưới, hãy nhận xét đơn vị SI của từng biến và kiểm tra xem đơn vị của kết quả cuối cùng có nhất quán với đơn vị dự kiến hay không (ví dụ: mét, joule). Nếu có sự không nhất quán, hãy cho biết nó nằm ở dòng nào. Mã: [tại đây]

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

Yếu: "Nói kết quả của tích phân này: ∫₀^∞ x²·e^(−x) dx"
Kết quả: AI đọc ra một con số trong đầu (có thể đúng, có thể sai); không có gì có thể thực thi được, không có gì có thể kiểm chứng được.
Mạnh: "Viết mã Python tính tích phân ∫₀^∞ x²·e^(−x) dx với scipy.integrate.quad. Thêm một dòng xác nhận so sánh kết quả với giá trị phân tích của tích phân này, 2! = 2. Tôi sẽ chạy mã."
Kết quả: Mã có thể thực thi, xác thực tích hợp (so sánh với giá trị phân tích) và kết quả đáng tin cậy.

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

  • Dựa vào kết quả bằng lời nói của AI. LLM có thể dự đoán sai đầu ra của mã trong đầu. Luôn chạy mã.
  • Không thử nghiệm với tình huống đã biết. Mã không kiểm tra bằng một ví dụ đơn giản mà bạn biết câu trả lời có thể chứa lỗi ẩn.
  • Không kiểm tra sự hội tụ. Việc chỉ đếm một bước sẽ che khuất liệu kết quả có đáng tin cậy về mặt số học hay không.
  • Không phản ánh các đơn vị trong mã. Không bình luận đơn vị của các biến sẽ gây ra 10ⁿ lỗi im lặng.
  • Bỏ qua phiên bản/giả định của thư viện. Đôi khi AI có thể tạo ra tên hàm không tồn tại hoặc cú pháp lỗi thời; Nó đáng chú ý khi bạn chạy nó.
Thận trọng: Trước khi đưa kết quả bằng số vào ấn phẩm, bài tập hoặc thiết kế, hãy kiểm tra mã với một trường hợp độc lập đã biết và cung cấp kết quả theo đơn vị/đơn hàng. Ngay cả mã đang hoạt động cũng có thể tính toán vật lý sai; Chỉ vì mã hoạt động không có nghĩa là vật lý đúng.

Tóm lại

AI là đối tác đắc lực trong việc dịch các phép tính vật lý sang mã Python; Nhưng những con số ông đưa ra bằng lời chỉ là ước tính chứ không phải sự thật. Quy trình làm việc an toàn rất rõ ràng: xác định vấn đề với các đơn vị của nó, yêu cầu AI viết mã nhưng bạn chạy đầu ra, kiểm tra mã với một tình huống đã biết, kiểm tra độ hội tụ và đơn vị. Điều quyết định là mã được thực thi; Nó không phải là LLM. Trong bài tiếp theo, chúng ta sẽ chuyển nền tảng số này sang mô phỏng các hệ thống vật lý thay đổi theo thời gian.

Nhiệm vụ ứng dụng

Chọn một phép tính vật lý mà bạn biết cách giải tích (ví dụ: tốc độ của một vật rơi tự do trong một khoảng thời gian hoặc tích phân xác định đơn giản). Yêu cầu AI viết mã Python với mẫu 1; tự chạy mã. So sánh kết quả với giá trị phân tích mà bạn biết. Sau đó quan sát cách kết quả hoạt động bằng cách thay đổi số bước hoặc tham số. Lưu ý trong 5-6 câu: đầu ra của mã có khớp với dự đoán bằng lời nói không, có vấn đề về đơn vị/đơn hàng không?

danh sách kiểm tra

  • [ ] Tôi đã làm rõ vấn đề và đơn vị của các biến.
  • [ ] Tôi đã tự mình chạy mã do AI viết, tôi không tin vào kết quả bằng lời nói.
  • [ ] Tôi đã kiểm tra mã với một tình huống đơn giản mà tôi biết câu trả lời.
  • [ ] Tôi đã kiểm tra độ hội tụ hoặc độ nhạy tham số.
  • [ ] Tôi đã cung cấp đơn vị và thứ tự của kết quả.
  • [ ] Tôi đã xác minh rằng các chức năng thư viện tôi đang sử dụng là có thật và cập nhật.