"Lise fiziğini unutmak için asla geç değildir" diyorlar ve burada olanın da bu olduğuna şüphe yok. Bu yazıyı aşağıdaki yorumlara göre revize ettim, utancımı en üst düzeye çıkarmak için onları orada tutmalıyız. ;-)
Altında bu cevabı şu anda belirten tartışma olduğu için
Uwe'nin cevabının söylediğinin aksine, her ikisinde de iki veya üç gövdeli bir sistem, her bir cismin ayrı ayrı korunan olağan enerjisi veya momentumudur. İki cisim probleminde bile, iki cisim arasında yerçekimi kuvveti yoluyla enerji ve momentum akışı. Bu yüzden Wikipedia alıntısının bu yorumuna katılmıyorum.
"İki vücut arasındaki momentum akışı" sorusunu sorguladım. ve bunun yerine python'a dönün.
İşte iki cisim yörünge hesaplayıcısı. $ m_1, m_2 = 0.2, 0.8 $ kullandım ve hızları kütle merkezi hareketini sıfır olacak şekilde dengeledim.
f
parametresi 1.0 olarak ayarlandığında bunlar dairesel yörüngelerdir ve her bir cismin açısal momentumu sabittir. Bunlar daire olduklarından, bu aynı zamanda lineer momentlerinin büyüklüğünün sabit olduğu anlamına gelir.
f
0,5'e ayarlandığında eliptik yörüngelerdedirler ve her bir ayrı cismin açısal momentumu yükselip alçalırken, toplamın $ m_1 \ mathbf {v_1} \ times \ mathbf {r_1} + m_2 \ mathbf {v_2} \ times \ mathbf {r_2} = 0 $ tutmalıdır.
İki cisim arasındaki momentum akışı veya enerji akışı konusunda hâlâ% 100 rahat olmasam da, doğrusal momentumun ters yönlerde hareket ettiği kesinlikle doğrudur. Momentumun korunumunu koruyun.
Benzer şekilde, her bir vücudun kinetik enerjisi ile paylaşılan potansiyel enerjisi arasında değişim var, ancak enerjinin bir vücuttan diğerine aktığını "görmüyorum .
numpy'i npimport matplotlib.pyplot olarak pltfrom scipy olarak içe aktar . ithal odeint'i ODEintdef türevi olarak entegre edin (X, t): x1, x2, v1, v2 = X.reshape ((4, -1)) a1 = - (x1-x2) * m2 * (((x1-x2) ** 2) .sum ()) ** - 1.5 a2 = - (x2-x1) * m1 * (((x2-x1) ** 2) .sum ()) ** - 1.5 dönüş np.hstack (( v1, v2, a1, a2)) m1, m2 = 0.2, 0.8f = 0.5X0 = np.array ([0.8, 0, -0.2, 0, 0, f * 0.8, 0, -f * 0.2]) kez = np.arange (0, 20, 0.01) yanıt, bilgi = ODEint (türev, X0, times, full_output = True) x1, x2, v1, v2 = answer.T.reshape (4, 2, -1) p1, p2 = m1 * v1, m2 * v2L1, L2 = m1 * np.cross (x1, v1, axisa = 0, axisb = 0), m2 * np.cross (x2, v2, axisa = 0, axisb = 0) KE1 , KE2 = 0.5 * m1 * (v1 ** 2) .sum (eksen = 0), 0.5 * m2 * (v2 ** 2) .sum (eksen = 0) PE = - m1 * m2 / np.sqrt (( (x2-x1) ** 2) .sum (eksen = 0)) Etot = KE1 + KE2 + PEif True: plt.figure () plt.subplot (5, 1, 1) plt.plot (x1 [0], x1 [1]) plt.plot (x2 [0], x2 [1]) plt.plot ([0], [0], '.k') plt.plot (x1 [0] [0], x1 [ 1] [0], 'tamam') plt.plot (x2 [0] [0], x2 [1] [0], 'tamam') xmin, xmax = plt.xlim () plt.xlim (xmin-0.05, xmax + 0.05) ymin, ymax = plt.ylim () plt.ylim (ymin-0.05, ymax + 0.05) plt.gca ( ) .set_aspect ('eşittir') plt.subplot (5, 1, 2) içindeki şey için (x1 [0], x1 [1], x2 [0], x2 [1]): plt.plot (zamanlar, şey ) plt.title ('x1, y1, x2, y2') plt.subplot (5, 1, 3) (p1 [0], p1 [1], p2 [0], p2 [1]) içindeki şey için: plt.plot (zamanlar, şey) plt.title ('px1, py1, px2, py2') plt.subplot (5, 1, 4) plt.plot (times, L1) plt.plot (times, L2) plt. ylim (0, 0.14) plt.title ('L1, L2') plt.subplot (5, 1, 5) plt.plot (times, KE1) plt.plot (times, KE2) plt.plot (times, PE) plt.plot (zamanlar, Etot) plt.title ('E1, E2, PE, Etot') plt.show ()