Wolfram Language

Calcul numérique et symbolique

Résolvez le problème de tautochrone

Le problème de tautochrone requiert qu'on trouve la courbe vers le bas pour la corde placée n'importe où tombera au fond dans le même laps de temps. Exprimez le temps global de chute en termes de la longueur d'arc de la courbe y et la vitesse v équation on obtient l'équation intégrale de Abel . Définir la fonction inconnue h par la relation et en utilisant la conservation de l'équation de l'énergie donne l'équation explicite suivante.

In[1]:=
Click for copyable input
abeleqn = T == 1/Sqrt[2 g] \!\( \*SubsuperscriptBox[\(\[Integral]\), \(0\), \(y\)]\( \*FractionBox[\(h[z]\), SqrtBox[\(y - z\)]] \[DifferentialD]z\)\);

Utilisez DSolveValue pour résoudre l'équation d'intégrale.

In[2]:=
Click for copyable input
dsdy = DSolveValue[abeleqn, h[y], y]
Out[2]=

En utilisant la relation , résolvez pour .

In[3]:=
Click for copyable input
dxdy = Sqrt[dsdy^2 - 1]
Out[3]=

A partir de la courbe de l'origine et à l'intégration des rendements x en fonction de et. Notez que les hypothèses Assurez-vous que l'intégrande est réelle évaluée.

In[4]:=
Click for copyable input
x[y_] = Integrate[dxdy, {y, 0, y}, Assumptions -> (2 g (T^2) )/(\[Pi]^2 y) > 1 && y > 0]
Out[4]=

L'utilisation d'un temps de descente de deux secondes et Substituer la valeur de l'accélération gravitationnelle, tracé la courbe maximale pour la tautochrone. (La branche vient de la solution pour la dérivée de .)

In[5]:=
Click for copyable input
Show[ParametricPlot[{{x[y], y}, {-x[y], y}} /. {g -> 9.8, T -> 2}, {y, 0, (2 (9.8) 2^2)/\[Pi]^2}], ImageSize -> Medium]
Out[5]=

Changer les variables donne une paramétrisation simple et non singulière de la courbe avec .

In[6]:=
Click for copyable input
c[\[Theta]_] = ( g T^2)/\[Pi]^2 {Sin[\[Theta]] + \[Theta], 1 - Cos[\[Theta]]} ;

Combiner la conservation de l'équation d'énergie et la règle de la chaîne produit l'équation différentielle suivante pour comme fonction de , qui peut être résolue numériquement.

In[7]:=
Click for copyable input
\[Theta]' == \[PlusMinus]FullSimplify[ Sqrt[ 2 g (Last[c[\[Theta]Max]] - Last[c[\[Theta]]])] /Sqrt[ c'[\[Theta]].c'[\[Theta]]] , g > 0 && T > 0]
Out[7]=

Visualisez le mouvement au long de la tautochrone.

Jouer l'animation
Arrêter l'annimation

Exemples connexes

de en es ja ko pt-br ru zh