Calculateur de collision élastique
Un corps de 2 kg à 3 m/s qui heurte un corps de 1 kg au repos repart à 1 m/s, et le second file à 4 m/s. La quantité de mouvement reste à 6 kg·m/s et l'énergie cinétique à 9 J, contrôles à l'appui. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Masse du corps 1
- 2
- Masse du corps 2
- 1
- V1
- 3
- V2
- 0
- V1 après collision
- 1
- V2 après collision
- 4
Une collision élastique unidimensionnelle est un impact entre deux corps qui se déplacent le long d'une seule ligne et échangent de la quantité de mouvement sans perdre d'énergie cinétique en chaleur, déformation ou son. Dans le modèle classique vous connaissez chaque masse et chaque vitesse initiale, puis vous résolvez simultanément les deux vitesses finales à partir de la conservation de la quantité de mouvement linéaire et de la conservation de l'énergie cinétique. La solution sous forme fermée est standard dans tout cours d'introduction à la mécanique : le corps un repart avec un mélange pondéré des deux vitesses initiales, et le corps deux avec le mélange complémentaire. Des masses égales échangent simplement les vitesses ; une balle légère heurtant un mur lourd s'inverse presque ; un camion lourd heurtant un caillou immobile ralentit à peine tandis que le caillou s'envole. Ce calculateur implémente cette paire analytique de formules avec une arithmétique en virgule flottante déterministe, renvoie les vitesses finales plus des tableaux de contrôle de quantité de mouvement et d'énergie, et rejette une masse négative avec une erreur de validation claire.
Comment se résout une collision élastique unidimensionnelle
Commencez avec deux masses ponctuelles m1 et m2 qui n'interagissent que le long d'un axe choisi pendant un bref intervalle de contact. Soient v1 et v2 leurs vitesses juste avant le contact, signées de sorte que la direction positive soit la même pour les deux. L'isolement signifie que les impulsions externes le long de la ligne d'impact sont négligeables face à l'impulsion mutuelle, de sorte que la quantité de mouvement linéaire totale m1 v1 plus m2 v2 est la même avant et après.
L'élasticité parfaite signifie que l'énergie cinétique totale un demi m1 v1 au carré plus un demi m2 v2 au carré est aussi la même avant et après, ou de façon équivalente la vitesse relative inverse de signe en gardant la magnitude.
Résoudre ces deux équations scalaires pour les deux inconnues donne les formes fermées du manuel : la vitesse finale du corps un égale parenthèse m1 moins m2 ferme parenthèse sur parenthèse m1 plus m2 ferme parenthèse fois v1 plus deux m2 sur parenthèse m1 plus m2 ferme parenthèse fois v2 ; la vitesse finale du corps deux égale deux m1 sur parenthèse m1 plus m2 ferme parenthèse fois v1 plus parenthèse m2 moins m1 ferme parenthèse sur parenthèse m1 plus m2 ferme parenthèse fois v2.
Les cas particuliers sortent d'eux-mêmes : masses égales échangent les vitesses ; si m2 tend vers l'infini et v2 est zéro, le corps un s'inverse presque vers moins v1 ; si m1 est beaucoup plus grand que m2 et v2 est zéro, le corps un conserve presque v1 tandis que le corps deux repart près de deux v1. Une masse négative est rejetée car la masse classique est non négative ; les deux masses nulles sont rejetées car la forme fermée divise par la masse totale.
Ce que vous envoyez et ce que vous recevez en retour
Envoyez quatre nombres finis obligatoires sous les champs m1, m2, v1 et v2. Les masses sont typiquement en kilogrammes et les vitesses en mètres par seconde ; tout système d'unités cohérent fonctionne tant que les deux masses partagent une unité de masse et les deux vitesses une unité de rapidité. Lorsque les deux masses sont nulles la requête échoue car la formule diviserait par zéro.
Les contrôles classiques du manuel incluent deux kilogrammes heurtant un kilogramme à trois mètres par seconde avec le second corps au repos, des masses égales échangeant cinq et moins deux mètres par seconde, et une masse légère rebondissant sur un bloc lourd immobile. Gardez la convention de signes fixe tout au long d'un rapport de laboratoire pour que positif signifie toujours la même direction sur votre schéma.
Où les calculateurs de collision élastique apparaissent dans le travail réel
Les cours de physique du secondaire et de l'université introductive assignent des drills de collision élastique unidimensionnelle, des preuves d'échange de vitesses à masses égales et des limites de rebond sur mur avant les généralisations multidimensionnelles ou inélastiques ; un seul oracle de confiance accélère la notation et le montage de démos. Les moteurs de jeux et les simulations didactiques interactives ont souvent besoin d'un stub élastique en forme fermée pour des contacts style billard inviscides où un solveur de corps rigide complet est excessif.
Les laboratoires de robotique et de convoyeurs estiment les vitesses post-impact de deux chariots sur une piste à faible frottement à partir de vitesses pré-impact mesurées et de masses de chariots connues. Les équipes de sciences du sport convertissent des rapports de masse balle-raquette ou palet-crosse en vitesses de rebond attendues sous une idéalisation élastique comme première borne avant des coefficients de restitution mesurés.
Si vous avez plus tard besoin de collisions inélastiques avec coefficient de restitution, d'impacts obliques bidimensionnels, de collisions relativistes ou seulement du produit de quantité de mouvement linéaire sans modèle de collision, traitez-les comme des intentions de recherche et des pages d'atterrissage séparées plutôt que de surcharger cette page de calculateur de collision élastique unidimensionnelle.
Cas d’usage
Clés de réponse pour devoirs et labo
Générez vitesses finales, tableaux de quantité de mouvement et contrôles d'énergie cinétique pour des paires élastiques 1D du manuel afin que enseignants et auto-correcteurs partagent une seule vérité de référence.
Stubs de physique pour simulation et jeux
Insérez des résultats élastiques en forme fermée dans des démos de billard, chariots ou enseignement sans intégrer un solveur de contact complet à chaque image.
Estimations d'impact sur rails et convoyeurs
Estimez les vitesses post-impact de chariots sur un rail à faible frottement à partir de vitesses pré-impact mesurées et de masses connues sous une idéalisation élastique.
Questions fréquentes
Quelles formules utilise ce calculateur de collision élastique ?
Résultats unidimensionnels parfaitement élastiques en forme fermée issus de la conservation de la quantité de mouvement et de l'énergie cinétique : v1f = ((m1−m2)/(m1+m2))·v1 + (2·m2/(m1+m2))·v2 et v2f = (2·m1/(m1+m2))·v1 + ((m2−m1)/(m1+m2))·v2.
Que se passe-t-il si une masse est négative ?
La masse classique ne peut pas être négative ; le message d'erreur nomme le champ (m1 ou m2) pour que vous puissiez corriger l'entrée.
Des masses égales échangent-elles les vitesses ?
Oui. Lorsque m1 égale m2, les formules se réduisent à v1f = v2 et v2f = v1, le résultat classique d'échange de vitesses pour une collision élastique frontale de masses égales.
L'énergie cinétique reste-t-elle la même ?
Oui pour un modèle parfaitement élastique. La réponse inclut les énergies cinétiques initiale et finale avec un indicateur de conservation pour vérifier la conservation en virgule flottante à chaque appel.
Combien cela coûte-t-il ?
L'outil navigateur est gratuit et s'exécute en local.
Outils associés
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/mech/elastic-collision \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"m1":2,"m2":1,"v1":3,"v2":0}'const res = await fetch("https://api.kit.forhosting.com/mech/elastic-collision", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"m1": 2,
"m2": 1,
"v1": 3,
"v2": 0
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/mech/elastic-collision",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"m1": 2,
"m2": 1,
"v1": 3,
"v2": 0
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/mech/elastic-collision", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"m1":2,"m2":1,"v1":3,"v2":0}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"m1":2,"m2":1,"v1":3,"v2":0}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/mech/elastic-collision", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"m1": 2,
"m2": 1,
"v1": 3,
"v2": 0
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "mech.elastic_collision",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
Comment se résout une collision élastique unidimensionnelle
Tout le pipeline est une arithmétique en virgule flottante déterministe sans graines aléatoires, sans horodatages d'horloge, sans appels réseau et sans dérive de modèle, de sorte que des entrées identiques produisent toujours un JSON identique. Des nombres non finis comme NaN et Infinity échouent avec invalid_input pour que les clients corrigent les unités plutôt que de deviner.
Ce que vous envoyez et ce que vous recevez en retour
Champs manquants, chaînes non numériques, NaN et Infinity échouent avec invalid_input et ne sont pas facturés. m1 négatif ou m2 négatif échoue avec un message indiquant que la masse ne peut pas être négative pour une collision élastique classique. En cas de succès la réponse renvoie les entrées nettoyées, v1_final et v2_final comme réponses principales, un bloc momentum avec moments partiels et totaux initiaux et finaux plus un indicateur de conservation, un bloc kinetic_energy de même structure pour les énergies, un bloc relative_velocity qui vérifie que le taux d'approche égale le taux de séparation avec un retournement de signe, method fixé à elastic_1d_closed_form, une chaîne de formule imprimable et un indice d'unités. Le prix des appels API réussis est la base publiée de $0.002 par élément ; les échecs de validation ne consomment pas le solde prépayé.
Où les calculateurs de collision élastique apparaissent dans le travail réel
Comme cette capacité est un moteur de parse pur, le prix API est la base publiée de $0.002 par élément réussi et une validation échouée ne consomme pas le solde.