¡Esta bien! Aquí te muestro un ejemplo de un programa en Python que simula un sistema planetario de n cuerpos y muestra las trayectorias de los cuerpos usando la biblioteca matplotlib.

``` python
import numpy as np
import matplotlib.pyplot as plt

# Pedimos el número de cuerpos al usuario
n = int(input("Ingrese el número de cuerpos: "))

# Creamos arrays para las masas, posiciones y velocidades iniciales
m = np.zeros(n)
pos = np.zeros((n, 2))
vel = np.zeros((n, 2))

# Pedimos al usuario la información para cada cuerpo
for i in range(n):
    m[i] = float(input("Ingrese la masa del cuerpo {}: ".format(i+1)))
    pos[i] = np.array([float(input("Ingrese la posición inicial en x del cuerpo {}: ".format(i+1))),
                       float(input("Ingrese la posición inicial en y del cuerpo {}: ".format(i+1)))])

    vel[i] = np.array([float(input("Ingrese la velocidad inicial en x del cuerpo {}: ".format(i+1))),
                       float(input("Ingrese la velocidad inicial en y del cuerpo {}: ".format(i+1)))])

# Definimos una función que calcula la aceleración en cada cuerpo
def get_acceleration(masses, positions):
    G = 6.67408e-11
    n = len(masses)
    accels = np.zeros((n, 2))
    for i in range(n):
        for j in range(n):
            if i != j:
                r = positions[j] - positions[i]
                accels[i] += G * masses[j] / np.linalg.norm(r)**3 * r
    return accels

# Simulamos el movimiento de los cuerpos durante 10000 pasos de un segundo
dt = 1
posiciones = np.zeros((n, 2, 10000))
posiciones[:, :, 0] = pos

for i in range(1, 10000):
    aceleracion = get_acceleration(m, posiciones[:, :, i-1])
    vel += aceleracion * dt
    pos += vel * dt
    posiciones[:, :, i] = pos

# Mostramos las trayectorias de los cuerpos en diferentes colores usando matplotlib
colors = ['b', 'g', 'r', 'c', 'm', 'y', 'k']

for i in range(n):
    plt.plot(posiciones[i, 0, :], posiciones[i, 1, :], colors[i % len(colors)])

plt.xlabel("Posición en x")
plt.ylabel("Posición en y")
plt.title("Trayectorias de los cuerpos")
plt.show()

```

En este programa, primero pedimos al usuario el número de cuerpos, así como su masa, velocidad y posición inicial. Luego, utilizamos una función para calcular la aceleración de cada cuerpo, y simulamos el movimiento de los cuerpos durante 10000 pasos de un segundo. Finalmente, mostramos las trayectorias de los cuerpos en diferentes colores utilizando matplotlib.Ten en cuenta que este es solo un ejemplo básico de una simulación de sistema planetario. Para hacer una simulación más precisa y realista, se requerirían cálculos adicionales y ajustes en el programa.
ใช้ได้! ที่นี่ ฉันจะแสดงตัวอย่างโปรแกรม Python ที่จำลองระบบดาวเคราะห์ n-body และแสดงวิถีโคจรของวัตถุโดยใช้ไลบรารี matplotlib ``` python import numpy as np import matplotlib.pyplot as plt # เราขอให้ผู้ใช้ระบุจำนวนเนื้อหา n = int(input("Enter the number of bodies: ")) # เราสร้างอาร์เรย์สำหรับมวลเริ่มต้น, ตำแหน่ง และความเร็ว m = np.zeros(n) pos = np.zeros((n, 2)) vel = np.zeros((n, 2)) # เราขอข้อมูลสำหรับแต่ละเนื้อหาจากผู้ใช้สำหรับ i อยู่ในช่วง ( n): m[ i] = float(input("ป้อนมวลของร่างกาย {}: ".format(i+1))) pos[i] = np.array([float(input("ป้อนค่าเริ่มต้น ตำแหน่ง x ของร่างกาย { }: ".format(i+1))), float(input("ป้อนตำแหน่งเริ่มต้นใน y ของร่างกาย {}: ".format(i+1)))]) vel[ i] = np.array( [float(input("ป้อนความเร็วเริ่มต้นในหน่วย x ของร่างกาย {}: ".format(i+1))), float(input("ป้อนความเร็วเริ่มต้นใน y ของร่างกาย {}: ".format(i+ 1)))]) # เรากำหนดฟังก์ชันที่คำนวณความเร่งของแต่ละร่างกาย def get_acceleration(มวล, ตำแหน่ง): G = 6.67408e-11 n = len(มวล) accels = np ศูนย์ ((n, 2)) สำหรับฉันอยู่ในช่วง (n): สำหรับ j อยู่ในช่วง (n): ถ้า i != j: r = ตำแหน่ง[j] - ตำแหน่ง[i] การเร่งความเร็ว[i] += G * มวล [j] / np.linalg.norm (r)**3 * r return accels # เราจำลองการเคลื่อนไหวของวัตถุระหว่าง 10,000 ก้าวของวินาที dt = 1 ตำแหน่ง = np.zeros((n, 2, 10,000)) ตำแหน่ง [:, :, 0] = ตำแหน่ง i อยู่ในช่วง (1, 10,000): การเร่งความเร็ว = get_acceleration(m, ตำแหน่ง [:, :, i-1]) vel += ความเร่ง * dt pos += vel * ตำแหน่ง dt[ :, :, i] = pos # เราแสดงวิถีการเคลื่อนที่ของวัตถุในสีที่ต่างกันโดยใช้สี matplotlib = ['b', 'g', 'r', 'c', 'm', 'y', 'k '] สำหรับฉันอยู่ในช่วง (n): plt.plot(ตำแหน่ง[i, 0, :], ตำแหน่ง[i, 1, :], สี[i % len(สี)]) plt.xlabel("ตำแหน่งใน x ") plt.ylabel("Position in y ") plt.title("Body trajectories") plt.show() ``` ในโปรแกรมนี้ ก่อนอื่นเราจะถามผู้ใช้เกี่ยวกับจำนวนวัตถุ รวมถึงมวลของมัน ความเร็วและตำแหน่งเริ่มต้น จากนั้น เราใช้ฟังก์ชันเพื่อคำนวณความเร่งของร่างกายแต่ละส่วน และจำลองการเคลื่อนไหวของร่างกาย 10,000 ก้าวในหนึ่งวินาที สุดท้ายนี้ เราจะแสดงวิถีการเคลื่อนที่ของวัตถุด้วยสีต่างๆ โดยใช้ matplotlib โปรดทราบว่านี่เป็นเพียงตัวอย่างพื้นฐานของการจำลองระบบดาวเคราะห์ เพื่อให้การจำลองมีความแม่นยำและสมจริงยิ่งขึ้น จำเป็นต้องมีการคำนวณและการปรับเปลี่ยนโปรแกรมเพิ่มเติม
spam fails_task lang_mismatch pii not_appropriate hate_speech sexual_content quality toxicity humor helpfulness creativity violence