Hướng dẫn is python good for physicists? - Python có tốt cho các nhà vật lý không?

Tôi là một sinh viên năm nhất sinh viên trong năm đầu tiên của tôi về vật lý và khóa học lập trình duy nhất mà chúng tôi bắt buộc phải tham gia là Java, với một khóa học khác về Java được khuyến nghị. Ở mọi nơi khác tôi thấy các nhà vật lý thảo luận về lập trình, họ đang sử dụng Python hoặc Matlab, hoặc một ngôn ngữ khác. Ai đó có thể giải thích cho tôi lý do tại sao điều này là? Java chỉ là một ngôn ngữ thực sự dễ dàng để hiểu những điều cơ bản của các ngôn ngữ hướng đối tượng hoặc một cái gì đó?

TL; DR: Tôi đang học Java, nhưng tôi cảm thấy mình nên học Python, có vấn đề gì không?

Chỉnh sửa: Cảm ơn rất nhiều vì tất cả các câu trả lời hữu ích, đây là lý do tại sao tôi yêu phụ này, những người tuyệt vời :)

Hướng dẫn is python good for physicists? - Python có tốt cho các nhà vật lý không?



Hướng dẫn is python good for physicists? - Python có tốt cho các nhà vật lý không?
Sách: Vật lý tính toán Các vật liệu trên trang này được lấy từ cuốn sách Vật lý tính toán của M. Newman, giới thiệu về lĩnh vực vật lý tính toán bằng ngôn ngữ lập trình Python. Nếu bạn quan tâm, bạn có thể tìm thấy thông tin về cuốn sách ở đây. Cuốn sách có sẵn từ các nhà sách thông thường hoặc trực tuyến ở đây.

The materials on this page are taken from the book Computational Physics by M. Newman, an introduction to the field of computational physics using the Python programming language. If you're interested you can find information about the book here. The book itself is available from the usual booksellers or online here.

Ngôn ngữ lập trình Python là một lựa chọn tuyệt vời cho việc học, giảng dạy hoặc thực hiện vật lý tính toán. Nó là một ngôn ngữ lập trình hiện đại, được thiết kế tốt, đồng thời dễ học và rất mạnh mẽ. Nó bao gồm một loạt các tính năng phù hợp với điện toán khoa học, bao gồm các tính năng để xử lý các vectơ, đảo ngược và đường chéo, thực hiện các biến đổi Fourier, tạo đồ thị và tạo đồ họa 3D.

Trang này chứa một lựa chọn các tài nguyên mà tôi đã phát triển cho giáo viên và học sinh quan tâm đến vật lý tính toán và trăn.

Chương để tải xuống

Dưới đây là một số chương sách hoàn chỉnh về Vật lý tính toán Python. Bạn có thể tải xuống các chương này, in chúng ra, sử dụng chúng trong lớp hoặc chỉ tự đọc chúng. Nhận xét hoặc câu hỏi được hoan nghênh.

  • Chương 2: Lập trình Python cho các nhà vật lý - Chương này giới thiệu về ngôn ngữ Python ở cấp độ phù hợp cho độc giả không có kinh nghiệm lập trình trước đó. Nó giới thiệu các yếu tố cơ bản của lập trình với các biến và mảng, bài tập, số học và các hàm, đầu vào, đầu ra, điều kiện và vòng lặp, tất cả đều bằng ngôn ngữ Python. Các ý tưởng được minh họa bằng các ví dụ được rút ra từ các nhánh vật lý khác nhau, bao gồm cơ học cổ điển, thuyết tương đối đặc biệt và vật lý lượng tử. – This chapter gives an introduction to the Python language at a level suitable for readers with no previous programming experience. It introduces the basic elements of programming with variables and arrays, assignments, arithmetic and functions, inputs, outputs, conditionals, and loops, all in the Python language. The ideas are illustrated with examples drawn from various branches of physics, including classical mechanics, special relativity, and quantum physics.
  • Chương 3: Đồ họa và trực quan hóa - Chương này giới thiệu về một số tính năng của Python để tạo ra đồ họa khoa học, bao gồm đồ thị, sơ đồ mật độ và trực quan hóa 3D của các hệ thống vật lý. – This chapter gives an introduction to some of Python's features for making scientific graphics, including graphs, density plots, and 3D visualizations of physical systems.
  • Chương 4: Độ chính xác và tốc độ - rất quan trọng đối với lập trình khoa học tốt là sự hiểu biết về những hạn chế của máy tính. Máy tính không nhanh vô hạn cũng không chính xác vô hạn. Chương này giải thích cách chúng tôi ước tính độ chính xác của các tính toán của chúng tôi và thời gian chúng sẽ mất bao lâu và một số cạm bẫy có thể gặp phải nếu chúng tôi không quan tâm đến những điều như vậy. – Very important for good scientific programming is an understanding of the limitations of the computer. Computers are neither infinitely fast nor infinitely accurate. This chapter explains how we estimate the accuracy of our calculations and how long they will take, and some of the pitfalls that can be encountered if we don't take care with such things.
  • Chương 5: Tích hợp và phái sinh - Đã thành thạo các nguyên tắc cơ bản của lập trình Python, chúng tôi chuyển sang kinh doanh chính của vật lý tính toán. Chương này giới thiệu các phương pháp để thực hiện các tích phân và dẫn xuất trên máy tính, bao gồm các kỹ thuật cơ bản như quy tắc hình thang và quy tắc của Simpson, và các kỹ thuật tiên tiến hơn như Phương pháp thích ứng, Tích hợp Romberg và Quad Gaussian. Các ứng dụng ví dụ bao gồm công suất nhiệt của chất rắn, bức xạ nhiệt, tính toán tĩnh điện và xử lý hình ảnh. – Having mastered the fundamentals of Python programming, we move on to the main business of computational physics. This chapter introduces methods for performing integrals and derivatives on the computer, including basic techniques like the trapezoidal rule and Simpson's rule, and more advanced techniques like adaptive methods, Romberg integration, and Gaussian quadrature. Example applications include the heat capacity of solids, thermal radiation, electrostatics calculations, and image processing.

Các chương tiếp theo bao gồm một loạt các chủ đề tiếp theo trong vật lý tính toán, bao gồm giải pháp của các hệ phương trình tuyến tính và phi tuyến, giải pháp của các phương trình vi phân thông thường và một phần, biến đổi Fourier, các quá trình ngẫu nhiên và phương pháp Monte Carlo. Đối với một bảng nội dung đầy đủ, xem ở đây.

Phụ lục

Dưới đây là ba phụ lục hữu ích đi cùng với các chương trên:

  • Phụ lục A: Cài đặt Python - Cách cài đặt Python trên máy tính của bạn, cộng với một số gói bổ sung mà bạn sẽ cần để thực hiện các ví dụ và bài tập trong các chương trên – How to install Python on your computer, plus some additional packages that you'll need to do the examples and exercises in the chapters above
  • Phụ lục B: Sự khác biệt giữa các phiên bản Python - Tóm tắt về sự khác biệt giữa phiên bản 2 và 3 của Python – A summary of the differences between versions 2 and 3 of Python
  • Phụ lục C: Quadratury Gaussian - Một dẫn xuất của các điểm tích hợp cho Quad Gaussian, dựa trên toán học của đa thức Legendre. Cũng chứa một cuộc thảo luận về đa thức Stieltjes và việc sử dụng chúng trong Quad Gauss-Kronrod. – A derivation of the integration points for Gaussian quadrature, based on the mathematics of Legendre polynomials. Also contains a discussion of the Stieltjes polynomials and their use in Gauss-Kronrod quadrature.

Chương trình ví dụ

Các tệp sau đây chứa các bản sao của các chương trình ví dụ từ các chương trên. Tất cả các chương trình đều thuộc phiên bản Python 3, nhưng chúng cũng sẽ hoạt động tốt trong phiên bản 2 (về mặt kỹ thuật phiên bản 2.6 trở lên) nếu bạn thêm dòng này vào đầu chương trình:

from __future__ import print_function,division
Tên tệp bên dưới tương ứng với các tên được in trong lề của các trang chương bên cạnh mỗi chương trình.

Chương 2:

  • evenodd.py - Kiểm tra hai số nguyên để đảm bảo một số đều và cái còn lại
  • fibonacci.py - In các số Fibonacci lên tới 1000
  • polar.py - Chuyển đổi từ tọa độ cực sang tọa độ Cartesian
  • rydberg.py - In ra các bước sóng của các đường hydro

Chương 3:

  • circular.py - Tạo biểu đồ mật độ từ dữ liệu trong một tệp
  • hrdiagram.py - Tính và hiển thị sơ đồ Hertzsprung, Russell cho một danh mục các ngôi sao gần đó
  • lattice.py - Tạo hình ảnh 3D của một mạng hình khối đơn giản
  • revolve.py - Tạo một hình ảnh động của một quả cầu đang di chuyển
  • ripples.py - Tính và hiển thị mẫu nhiễu được tạo bởi hai bộ sóng tròn

Chương 4:

  • evenodd.py0 - Tính năng lượng bên trong của bộ tạo dao động điều hòa đơn giản lượng tử ở nhiệt độ t

Chương 5:

  • evenodd.py1 - Đánh giá tích phân bằng cách sử dụng phương trình Gaussian
  • evenodd.py2 - Đánh giá tích phân trên một miền vô hạn
  • evenodd.py3 - Đánh giá một tích phân bằng cách sử dụng quy tắc hình thang

Bộ dữ liệu

Dưới đây là một số bộ dữ liệu đi kèm với các ví dụ và bài tập trong các chương trên:

  • evenodd.py4 - độ cao so với mực nước biển, hoặc độ sâu bên dưới nó, các điểm trên bề mặt trái đất, được đo trên lưới
  • evenodd.py5 - Tệp dữ liệu cho các sơ đồ mật độ trong Hình 2.3
  • evenodd.py6 - Danh mục nhiệt độ và cường độ cho 7860 ngôi sao gần đó
  • evenodd.py7 - Các phép đo STM của bề mặt (111) của silicon
  • evenodd.py8 - Dữ liệu về các vết đen từ năm 1749
  • evenodd.py9 - Vận tốc của một hạt chuyển động như là một hàm của thời gian

Mã hữu ích linh tinh

Dưới đây là một vài đoạn mã Python khác hữu ích cho một số bài tập.

  • fibonacci.py0 - Giải một hệ phương trình tuyến tính của các phương trình tuyến tính bằng cách sử dụng loại bỏ Gaussian
  • fibonacci.py1 - Định nghĩa của một số colormaps hữu ích cho các lô mật độ
  • fibonacci.py2 - Thực hiện biến đổi cosin và sin nhanh về phía trước và nghịch đảo
  • fibonacci.py3 - Tính toán vị trí và trọng số của các điểm tích hợp cho phương trình Gaussian

Sửa đổi lần cuối: Ngày 15 tháng 7 năm 2013

Đặc biệt cảm ơn Gus Evrard, Brad Orr, Len Sander và Bruce Sherwood cho thông tin và bình luận của Python.

Nguồn cho bộ dữ liệu:

  • Dữ liệu độ cao: Bộ dữ liệu cứu trợ toàn cầu 2 phút NOAA. Để biết chi tiết, xem C. Amante và B. W. EAKIN, ETOPO1 1 Mô hình cứu trợ toàn cầu ở phút: Quy trình, nguồn dữ liệu và phân tích. Bản ghi nhớ kỹ thuật NOAA Nesdis NGDC-24, tháng 3 năm 2009.
  • STARS: Cơ sở dữ liệu Hyg, một tổng hợp dữ liệu từ Hipparcos và các danh mục Yale Bright Star và Gliese, được biên soạn bởi David Nash.
  • Số Sunspot: Trung tâm dữ liệu địa vật lý quốc gia NOAA, dựa trên một bộ dữ liệu được duy trì và công bố bởi Đài quan sát Hoàng gia của Trung tâm phân tích dữ liệu của Bỉ.

Đánh dấu Newman

Ngôn ngữ lập trình nào là tốt nhất cho các nhà vật lý?

FORTRAN. Fortran (từ "Công thức dịch") xuất hiện lần đầu tiên trong việc sử dụng nghiên cứu với sự sẵn có của máy tính máy tính lớn IBM trong các trường đại học và trung tâm nghiên cứu trong những năm 1960. ....
C. ... .
Java. ....
JavaScript. ....
IDL và GDL. ....
Matlab, Mathicala, Sage, và bây giờ là Sympy. ....
Iraf. ....
Python..

Mã hóa có hữu ích trong vật lý không?

Lập trình là một kỹ năng cốt lõi cho bất kỳ nhà vật lý. Ở cấp độ cơ bản nhất, chúng tôi có thể sử dụng nó để phân tích các thí nghiệm của chúng tôi. Thông thường, chúng tôi cần nó để tương tác với thiết bị của chúng tôi. Ở cấp độ lý thuyết, nó có thể thực hiện các tính toán rộng rãi mà chúng ta không thể bắt đầu làm bằng tay.. At the most basic level we can use it to analyse our experiments. Often, we need it to interact with our equipment. On a theoretical level, it can perform extensive calculations we could not begin to do by hand.

Có một mô -đun vật lý trong Python?

Pymunk là một thư viện vật lý 2D Pythonic dễ sử dụng có thể được sử dụng bất cứ khi nào bạn cần vật lý cơ thể cứng 2D từ Python. Hoàn hảo khi bạn cần vật lý 2D trong trò chơi, bản demo hoặc mô phỏng của bạn! Nó được xây dựng trên đỉnh của thư viện vật lý 2D rất có khả năng Chipmunk. that can be used whenever you need 2d rigid body physics from Python. Perfect when you need 2d physics in your game, demo or simulation! It is built on top of the very capable 2d physics library Chipmunk.

Những nhà vật lý phần mềm nào sử dụng?

Tùy thuộc vào nghề nghiệp: Matlab, Maple, Mathicala (/Wolfram Alpha) và R. EDIT: Theo thứ tự, đó là kỹ thuật, toán học, vật lý và thống kê.