Mytour blog
27/12/202360

Không Thể Ngừng Chơi Với Những Quả Cầu Trọng Lực năm 2024

Có lẽ bạn có thể đoán rằng tôi luôn có một dự án nào đó đang chờ đợi. Tuần này, tôi đang làm việc trên một vấn đề vật lý liên quan đến một bộ phim siêu anh hùng, và tôi bắt đầu làm việc với các đối tượng tương tác với trọng lực trong Python. Điều đó không phải là đúng như tôi muốn, nhưng kết quả là tôi đã tạo ra một loạt những quả cầu trọng lực. Và tôi không thể ngừng chơi với chúng.

Nếu bạn không biết quả cầu trọng lực là gì, đừng lo lắng! Bởi vì tôi hoàn toàn tạo ra chúng. Rất nhiều lúc, chúng ta sử dụng vật lý để mô tả chuyển động trong thế giới thực. Tôi có thể phân tích một video viral để xem liệu nó có giả mạo không, hoặc mô tả chuyển động đằng sau đồ chơi yêu thích của bạn, hoặc dự đoán liệu một con mèo có sống sót sau khi rơi từ tòa nhà cao không. Nhưng đôi khi, cách tốt nhất để hiểu về các đặc tính vật lý là mô phỏng một cái gì đó hoàn toàn nằm ngoài phạm vi của cuộc sống thực tế—như những quả cầu trọng lực.

Hai Quả Cầu Trọng Lực

Hãy bắt đầu với trường hợp đơn giản nhất của quả cầu trọng lực để bạn có thể thực sự cảm nhận được điều gì đang xảy ra. Giả sử tôi có hai quả cầu nằm ở đâu đó trong không gian. Chỉ có hai quả cầu này và không có gì khác—không có hành tinh, không có ngôi sao, không có cửa hàng Starbucks gần đó. Trong trường hợp này, tương tác duy nhất giữa hai quả cầu đó sẽ là trọng lực. Điều gì sẽ xảy ra với hai quả cầu này? Vì có một lực trọng lực đang kéo chúng lại với nhau, chúng sẽ cùng tăng tốc (đó là những gì lực làm). Nhưng khi chúng di chuyển gần nhau hơn, lực trọng lực tăng lên thêm. Tổng cộng, đó là một vấn đề chuyển động thú vị.

Lực trọng lực này sẽ phụ thuộc vào tích của khối lượng và khoảng cách giữa hai quả cầu. Có lẽ hình ảnh này sẽ giúp.

Hai quả cầu này ở đâu đó so với một gốc tọa độ nào đó (điều này không quan trọng). Quan trọng là vectơ từ A đến B được đặt tên đơn giản là r trong sơ đồ trên. Vectơ này có thể được tìm thấy từ công thức sau:

Với vectơ r này, tôi có thể tìm lực trọng lực trên quả cầu B như sau:

Tôi nên chú ý đến một số điều với biểu thức này. Đây là lực trọng lực trên B do A gây ra. Cũng có một lực từ B lên A, nó sẽ có cùng độ lớn nhưng ngược hướng. G là hằng số trọng lực toàn cầu. r với "mũ" được gọi là r-hat (bất ngờ) và đó là một vector đơn vị. Vector đơn vị này không làm thay đổi độ lớn của lực, nhưng nếu không có nó, bạn chỉ có một lực vô hướng và điều đó sẽ không hữu ích lắm.

Chúng ta làm gì với lực nhỉ? Lực trọng lực đối với vật thể B có thể được sử dụng để tìm sự thay đổi về động lượng của B sau một khoảng thời gian nào đó trong đó động lượng là tích của khối lượng và vận tốc. Điều này đến trực tiếp từ nguyên tắc động lượng.

Đúng, p là động lượng. Trước khi bạn hỏi, tôi không biết tại sao chúng ta luôn sử dụng "p" cho động lượng. Tôi đoán đó là vì "m" đã được sử dụng để dùng cho khối lượng rồi. OK, còn một phương trình nữa. Nếu tôi biết động lượng của vật thể, sau đó tôi có thể sử dụng định nghĩa của động lượng và vận tốc trung bình để tìm vị trí mới của vật thể này sau một khoảng thời gian ngắn.

Vector r đại diện cho vị trí vì "p" đã được sử dụng. Đó chỉ là một trò đùa: Thực sự, chúng ta sử dụng "r" cho vị trí vì nó đến từ "r" trong tọa độ cầu. Nhưng điều này dẫn đến một điều tốt. Nó hoạt động như sau: tính lực, cập nhật động lượng và sau đó cập nhật vị trí trong một khoảng thời gian ngắn nào đó. Làm điều này cũng đối với khối lượng khác. Vì vị trí thay đổi, lực thay đổi nên bạn cần phải làm lại từ đầu. Và lại. Và lại. Tiếp tục làm điều này cho đến khi bạn muốn dừng lại—và bùng nổ. Đó là ý tưởng toàn bộ đằng sau một tính toán số.

Chúng ta hãy thử nó. Đây là một tính toán số cho hai khối lượng trong không gian. Hãy nhấn vào "play" để chạy và bạn có thể xem mã bằng cách nhấn vào biểu tượng "bút".

Tôi đã cố gắng để thêm một số ý kiến (ý kiến là những dòng có ký hiệu # ở phía trước) vào mã để bạn có thể tìm hiểu hơi hơi về điều gì đang xảy ra nếu bạn muốn chơi với nó. Ở lần đầu tiên, nó có thể không có vẻ như có bất kỳ điều gì đang xảy ra vì quả cầu bắt đầu di chuyển rất chậm. Chỉ cần chờ đợi và bạn sẽ thấy điều gì đó.

Những quả cầu sẽ xảy ra gì? Họ thực sự bắt đầu di chuyển về phía nhau và tăng tốc trong quá trình đó. Tuy nhiên, chúng không phải là những quả cầu thực sự nên không có gì ngăn chúng không đi qua lẫn nhau—và vì vậy chúng làm. Sau đó, lực trọng lực làm chúng chậm lại cho đến khi chúng bắt đầu di chuyển về phía nhau lại. Nếu bạn để nó, chúng sẽ chỉ dao động qua lại mãi mãi.

Ngoài ra, tôi lừa dối. Những quả cầu này có khối lượng là 1 kilogram, nhưng tôi đã thay đổi hằng số trọng lực toàn cầu thành một số lớn hơn nhiều so với phiên bản thực tế. Trong thực tế, những quả cầu này sẽ mất mãi mãi để lại gần nhau vì trọng lực thực sự rất yếu.

Cuối cùng, một điều khác. Nếu bạn nhìn vào mã, bạn sẽ thấy rằng khi các quả cầu chồng lấp, tôi đặt lực trọng lực thành vector zero. Có một lý do cho điều này—đó không chỉ là vì tôi điên. Nếu trung tâm của các quả cầu càng gần nhau, thì độ lớn của vector r sẽ rất nhỏ. Một r nhỏ có nghĩa là một lực trọng lực khổng lồ. Lực trọng lực khổng lồ này trong một khoảng thời gian rất ngắn có thể làm xảy ra những điều kỳ lạ. Lực chồng lấp của không cho phép những điều kỳ lạ.

Nhiều Quả Cầu Trọng Lực Hơn

Được rồi, nhưng tôi nghĩ chúng ta có thể đồng ý rằng hai quả cầu tương tác trọng lực có vẻ nhàm chán. Còn với 10 quả cầu trọng lực? Làm thế nào để bạn làm cho 10 quả cầu tương tác? Nó thực sự chỉ là thêm vào cái đã hoạt động cho chỉ hai quả cầu. Với 10 quả cầu, tôi có thể lấy một quả cầu một lần. Tôi cần tìm khoảng cách đến tất cả các quả cầu khác và lực trọng lực từ tất cả các quả cầu khác. Sau đó, tôi có thể cập nhật động lượng và vị trí cho quả cầu đó. Ó, tôi vẫn cần làm điều tương tự cho chín quả cầu khác. Vâng, đó là một công việc khá nhiều—nhưng đó là lý do tại sao tôi đang để máy tính làm nó thay vì tôi.

Dưới đây là một hoạt ảnh về cái mà nó trông như. Nếu bạn muốn chơi với mã (và bạn nên), nó ngay đây.

Thật là tuyệt vời, đúng không? Lưu ý rằng tôi đã đặt màu ngẫu nhiên cho các quả cầu—chỉ vì vui thôi. Ngoài ra, những thứ này sẽ tiếp tục di chuyển mãi mãi (hoặc cho đến khi chương trình dừng lại). Nhưng tiếp theo là gì? Có thêm 100 quả cầu! Không chờ, 200 quả cầu! Đây là mã chính xác giống như trước, chỉ có thêm nhiều quả cầu trọng lực hơn. Thực ra, điều này đang chạy với tốc độ 5 lần để nó di chuyển nhanh hơn.

Tôi không biết về bạn, nhưng tôi đang bắt đầu cảm thấy hứng thú. Bạn thật sự cần kiểm tra mã và chạy nó một cách tự nhiên (bạn không thể làm hỏng bất cứ điều gì—tôi hứa). Xem có bao nhiêu quả cầu trọng lực bạn có thể chạy trước khi máy tính của bạn nổ tung (không, nó thực sự không nổ tung). Tất nhiên, khi bạn tăng N (số quả cầu trọng lực), bạn tăng đáng kể số lượng tính toán. Không chỉ có nhiều quả cầu để cập nhật với động lượng, mà mỗi quả cầu còn có nhiều quả cầu khác tạo ra lực trên nó. Tôi có thể có đến 1,000 quả cầu, nhưng nó không chạy nhanh lắm.

Thêm Một Lực Cản

Hãy thay đổi nó một lần nữa. Tôi không muốn những quả cầu này dao động vào ra mãi mãi. Tôi muốn chúng ngồi xuống thành một cục lớn. Tôi có thể làm điều đó bằng cách thêm một lực cản. Lực cản này có hai thuộc tính chính. Đầu tiên, nó phải ở hướng ngược với động lượng (hoặc vận tốc) của mỗi quả cầu để làm cho quả cầu chậm lại. Thứ hai, lực cản nên tỉ lệ với độ lớn của động lượng để một quả cầu đứng yên không có lực cản và một quả cầu chạy nhanh có lực cản cực kỳ cao.

Thực sự, tôi đã có một lực cản trong mãi mãi—nhưng hệ số lực cản đã được đặt là không nên không làm gì cả. Nếu tôi đặt hệ số thành một giá trị tùy ý (tôi chọn 0.2), đây là kết quả (cho 100 quả cầu trọng lực). Chú ý: Tôi tăng tốc độ phát lại lên một lần 10—chỉ vì vậy.

Nếu bạn phóng to vào hình dạng cuối cùng, nó sẽ nhìn như thế này:

Các quả cầu trọng lực cá nhân vẫn di chuyển một chút. Tôi nghĩ tôi biết điều gì đang xảy ra. Hầu hết các quả cầu nằm trong bán kính của các quả cầu khác (chúng chồng lên nhau) nên hầu hết chúng không có lực trọng lực. Đối với những quả cầu có lực trọng lực, chúng bị kéo lại vào cụm quả cầu.

Phân Phối Ngẫu Nhiên Khác

Sau khi chơi với những quả cầu trọng lực một thời gian (tôi hy vọng có ai đó đang theo dõi bao nhiêu lần tôi viết "quả cầu trọng lực"), tôi thấy một điều lạ. Với một số lượng lớn quả cầu, tôi luôn có một hình dạng như thế này.

Hy vọng bạn có thể thấy được "x". Tại sao lại có một "x"? Thực sự, bạn có thể quay vòng phân phối các quả cầu này và vẫn có một "x" trong ba chiều. Tôi nghĩ tôi biết nguyên nhân của "x". Tôi tạo ra 1,000 quả cầu trọng lực bằng cách chọn ba số ngẫu nhiên cho mỗi vị trí của quả cầu. Tọa độ x, y, z của mỗi số ngẫu nhiên nằm giữa -1 và 1 nên vị trí có thể của quả cầu sẽ là một khối 2x2x2. Tất nhiên, trung bình trọng tâm của một phân phối sẽ nằm ở giữa khối này và các khối lượng đều bị hút về điểm đó. Nhưng phân phối không cầu tròn của các quả cầu phải là nguyên nhân của đặc điểm "x" này.

Tôi có thể kiểm tra điều này nếu tôi tạo ra một phân phối cầu của các quả cầu trọng lực. Thay vì tạo ra tọa độ x, y, z ngẫu nhiên, tôi sẽ sử dụng tọa độ cầu và tạo ra ba biến sau đây: r (0 đến 1), θ (0 đến π), φ(0 đến 2π). Điều này nên tạo ra một phân phối cầu và không nên có mẫu hình "x" kết quả. Dưới đây là kết quả.

Trông tốt. Oh, vì nó có 1,000 quả cầu trọng lực, tôi phát lại nó với tốc độ 30x. Nếu bạn muốn mã, đây là nó (nó khá giống với những thứ khác).

Bài tập về nhà

Gần đây tôi không giao bài tập về nhà, nhưng có nhiều câu hỏi bạn có thể trả lời cho tình huống này.

  • Trong mô hình quả cầu trọng lực của tôi, không có lực nào khi hai quả cầu chồng lấn nhau. Làm thế nào bạn có thể làm cho tương tác này trở nên giống như va chạm cầu cứng mà không có chồng lấn?
  • Trong trường hợp có 100 quả cầu trọng lực mà không có lực cản, năng lượng có được bảo toàn không? Còn động lượng? Gợi ý: Vẽ đồ thị.
  • Bạn có nhận được kết quả khác biệt đáng kể nếu khối lượng của quả cầu không đều? Đặt cho các quả cầu một khối lượng ngẫu nhiên trong một khoảng nào đó (bạn chọn khoảng).
  • Tôi không biết điều này có hoạt động không, nhưng điều gì sẽ xảy ra nếu một bó quả cầu trọng lực lớn (chẳng hạn 500) có một sự quay nhẹ từ đầu. Khi mọi thứ nén lại thành một quả cầu chặt, quả cầu đó có quay nhanh không? Nên có. Oh, đừng quên về lực cản. Nếu lực cản của bạn quá cao, bạn sẽ mất moment góc.
  • Mục tiêu nếu bạn chỉ đơn giản là đưa tất cả các quả cầu trọng lực một động lượng nhỏ ngẫu nhiên để bắt đầu. Điều gì sẽ xảy ra sau đó?
  • Giả sử có hai quả cầu trọng lực có khối lượng lớn ở mép phân phối quả cầu (hai đầu đối diện). Liệu hai quả cầu này có tạo ra hai cục khối khác nhau không? Điều đó sẽ thú vị.
  • Bạn có thử nghiệm với hệ số lực cản chưa? Bạn nên thử nghiệm.
Trần Minh Hoạt

0 Thích

Đánh giá : 4.3 /423