Oszillator mit abklingender Rückstellkraft

Angenommen ein System, das durch die Bewegungsgleichung beschrieben wird:

X ¨ = k X exp ( T 2 2 σ 2 ) .

(Zum Beispiel eine Feder mit abnehmender Steifigkeit.)

Ich möchte den entsprechenden Antrag erhalten X ( T ) Ich bin mir jedoch nicht sicher, wie ich dieses Problem lösen soll. Ich habe den WKB-Ansatz für die erste Bestellung ausprobiert, was mir Folgendes gibt:

X ( T ) = [ X 0 cos ( π k σ erf ( T / 2 σ ) ) + v 0 k Sünde ( π k σ erf ( T / 2 σ ) ) ] exp ( T 2 8 σ 2 )

Dies scheint falsch zu sein, da für T Die Rückstellkraft geht gegen Null und daher würde ich eine Linearität erwarten T -Abhängigkeit in dieser Grenze.

Gibt es andere Techniken, die geeignet sind und verwendet werden können, um diese Bewegungsgleichung zu lösen?

Bearbeiten

Da die Frage auf Eis gelegt wurde, werde ich meine Absichten im Folgenden klarstellen. Sie beinhalten eine implizite und eine explizite Frage:

  • (implizit) - Warum liefert der WKB-Ansatz für diesen Fall ein falsches Ergebnis? Das Einbeziehen höherer Ordnungen scheint nicht zu helfen, da die erste Ordnung bereits eine exponentielle Abhängigkeit enthält. Gibt es Kriterien für die explizite Zeitabhängigkeit, die erfüllt sein müssen, um WKB zu einem geeigneten Ansatz zu machen?
  • (explizit) - Wenn WKB nicht funktioniert, welcher andere Ansatz kann verwendet werden, um diese Art von Differentialgleichung zu lösen? Hier habe ich ein Beispiel für eine bestimmte explizite Zeitabhängigkeit gegeben, aber ich interessiere mich auch für allgemeine Lösungen für beliebige explizite Zeitabhängigkeiten, wenn möglich.

Hinweis Dies ist keine Hausaufgabe, sondern reine private Neugier.

Antworten (3)

Ich sehe nichts Falsches an Ihrer Lösung, und tatsächlich bestätigt ein schnelles Matlab-Programm dies (ich habe ode45 mit verwendet k = 1 , σ = 1 , X 0 = 1 Und v 0 = 0 ). Ihr Problem ist, dass Sie zu viel von Ihrer Annäherung erwarten. Es ist in Ordnung, aber nur auf kurzen Zeitskalen.

Geben Sie hier die Bildbeschreibung ein

Danke für deine Antwort. Generell möchte ich eine Lösung für erhalten T 0 . Warum würden Sie argumentieren, dass die WKB nur für kleine gilt T ? Auch in dem Diagramm, das Sie zeigen, scheint der ode45 noch stärker zuzunehmen als der WKB, dh eine noch stärkere Abhängigkeit als exponentiell (während er für linear sein sollte T ). Für mich ist nicht klar, wie dieses Diagramm die Korrektheit der ode45-Ergebnisse unterstützt und auch nicht zeigt, dass WKB nur auf kleinen Zeitskalen gültig ist (übrigens Text lautet X 0 = 1 jedoch Handlung zeigt X 0 = 1 ). Können Sie dazu bitte nähere Angaben machen? Danke schön.

Es ist möglich, dieses Problem einfach durch Verwendung von Potenzreihen zu lösen. Um die Notation zu vereinfachen, sagen wir k T = k e T 2 2 σ 2 . Nehmen Sie dann an, dass die Lösung geschrieben werden kann als:

X ( T ) = N = 0 C N T N

Dann setzt man dies in die gegebene Differentialgleichung ein:

R . H . S . :     X ¨ ( T ) = N = 2 ( N ) ( N 1 ) C N T N l . H . S . :     k T X ( T ) = N = 0 k T C N T N = N = 2 k T C N 2 T N 2
Wenn beide gleich sind, erhalten Sie die rekursive Beziehung:
C N = k T C N 2 ( N ) ( N 1 )

Sie erhalten also wie erwartet zwei freie Konstanten, C 0 Und C 1 , und Sie können die Reihe in gerade und ungerade Terme teilen. Dadurch erhalten Sie:

C 2 = k T ( 2 ) ( 1 ) C 0 ,     C 4 = ( k T ) ( 4 ) ( 3 ) ( k T ) ( 2 ) ( 1 ) C 0 , . . . C 2 N = C 0 ( k T ) N ( 2 N ) !
C 3 = ( k T ) ( 3 ) ( 2 ) C 1 ,     C 5 = ( k T ) ( 5 ) ( 4 ) ( k T ) ( 3 ) ( 2 ) C 1 , . . . C 2 N + 1 = C 1 ( k T ) N ( 2 N + 1 ) !

Wenn Sie sowohl gerade als auch ungerade Reihen anordnen, erhalten Sie:

X ( T ) = C 0 N = 0 ( 1 ) N [ k T 1 / 2 T ] 2 N ( 2 N ) ! + C 1 k T 1 / 2 N = 0 ( 1 ) N [ k T 1 / 2 T ] 2 N + 1 ( 2 N + 1 ) !

Die Reihen sind die bekannten Sinus- und Cosinus-Potenzreihenentwicklungen, aber jetzt mit einem anderen Parameter, daher ist das Ergebnis:

X ( T ) = C 0 C Ö S ( k e T 2 4 σ 2 T ) + C 1 k e T 2 4 σ 2 S ich N ( k e T 2 4 σ 2 T )

Dies ist eine exakte Lösung, keine Annäherung erforderlich, und in diesem Fall, wenn Sie die Grenze nehmen T entsprechend sollten Sie eine lineare Zeitabhängigkeit erhalten.

Danke für deine Antwort. Einige Dinge bleiben jedoch unklar. Zunächst nehmen Sie an, dass sich die Lösung als Potenzreihe in schreiben lässt T mit Koeffizienten C N . Ausdrücken der Zeitabhängigkeit als T N impliziert C N = konst (insbesondere bei der Anwendung der Ableitung) aber später leiten Sie ab C N ( k T ) N was nicht konstant ist, sondern davon abhängt T . Das widerspricht der anfänglichen Annahme. Auch von deiner endgültigen Darstellung X ( T ) folgt dem C 0 = X 0 , C 1 = v 0 und für v 0 = 0 die lineare Zeitabhängigkeit für T verschwindet, was keinen Sinn macht.

Eine Möglichkeit, das Problem anzugehen, besteht darin, eine Reihe von Lösungen zu konstruieren, von denen jede für einen Bereich gültig ist, für den der zeitabhängige Teil des Ausdrucks als konstant angesehen werden kann.

Das heißt, wir konstruieren Lösungen X N ( T ) die am gültig sind [ T N , T N + 1 ] für exp ( T N 2 / 2 σ 2 ) konst . Die Lösungen sind von der Form

X N ( T ) = A N cos ( ω N T ) + B N Sünde ( ω N T ) X ˙ N ( T ) = A N ω N Sünde ( ω N T ) + B N ω N cos ( ω N T ) mit ω N = k exp ( T N 2 / 2 σ 2 )

Um die Lösungen an den Grenzen zu verbinden T N Wir verwenden Kontinuität von X ( T ) , X ˙ ( T ) :

X N ( T N ) = ! X N 1 ( T N ) Und X ˙ N ( T N ) = ! X ˙ N 1 ( T N )

Daraus folgt eine Wiederholungsbeziehung für die Koeffizienten A N , B N für N 1 :

( cos ( ω N T N ) Sünde ( ω N T N ) ω N Sünde ( ω N T N ) ω N cos ( ω N T N ) ) ( A N B N ) = ( A N 1 cos ( ω N 1 T N ) + B N 1 Sünde ( ω N 1 T N ) A N 1 ω N 1 Sünde ( ω N 1 T N ) + B N 1 ω N 1 cos ( ω N 1 T N ) )

Dieses Gleichungssystem hat eine Determinante ω N 0 und hat daher eine eindeutige Lösung. Für N = 0 wir haben A 0 = X 0 Und B 0 = v 0 / ω 0 .

Nun müssen noch die Werte für ausgewählt werden T N (mit T 0 = 0 Fest). Da Voraussetzung war die Zeitabhängigkeit Q ( T ) exp ( T 2 / 2 σ 2 ) um auf den entsprechenden Intervallen annähernd konstant zu sein, können wir über die Ableitung eine Schätzung vornehmen Q ˙ ( T ) :

| Q ˙ ( T N ) ( T N + 1 T N ) Q ( T N ) | ϵ

mit gewählter Grenze ϵ . Daraus erhalten wir:

T N + 1 = | Q ( T N ) Q ˙ ( T N ) | ϵ + T N

Dies funktioniert jedoch nur für Q ˙ ( T ) 0 . Falls dies nicht erfüllt ist, können wir stattdessen einfach einen konstanten Aktualisierungswert wählen

T N + 1 = T N + δ

für einen kleinen Wert δ ; Zum Beispiel:

δ = | Q ( T max ) Q ˙ ( T max ) | ϵ

Wo T max = A R G M A X | Q ˙ ( T ) | .

Beispiel

Verwenden X 0 = 1 mm , v 0 = 0 , k = 1 S 2 , σ = 2 π S und ein konstantes Update-Schema mit δ = 0,001 σ wir erhalten:

Beispiel Trajektorie

Code:

import matplotlib.pyplot as plt
from numpy import cos, sin, sqrt, exp, pi
import numpy as np


def xns(x0, v0, k, s, delta=0.001):
    a = x0
    w = sqrt(k)
    b = v0 / w

    def func(t):
        return a*cos(w*t) + b*sin(w*t)

    t = delta * s

    yield t, func

    while True:
        v = w
        w = sqrt(k) * exp(-t**2 / (2 * s**2))
        a, b = np.linalg.solve([
            [cos(w*t), sin(w*t)],
            [-w*sin(w*t), w*cos(w*t)]],

            [a*cos(v*t) + b*sin(v*t),
            -a*v*sin(v*t) + b*v*cos(v*t)]
        )
        t += delta*s
        yield t, func


x0, v0, k, s = 0.001, 0, 1, 2*pi
ts = np.linspace(0, 7*pi*sqrt(k), 1000)
xns = xns(x0, v0, k, s)

xs = []
tn, xn = next(xns)
for t in ts:
    while t >= tn:
        tn, xn = next(xns)
    xs.append(xn(t))
xs = np.asarray(xs)

plt.figure()
plt.title(r'$\rm x_0 = {:.2f}\,[mm],\;'
      r'     v_0 = {:.2f}\,[mm\,s^{{-1}}],\;'
      r'     k   = {:.2f}\,[s^{{-2}}],\;'
      r'\sigma   = {:.2f}\,[s]$'
          .format(x0*1e3, v0*1e3, k, s))
plt.xlabel('t [s]')
plt.ylabel('x [mm]')
plt.plot(ts, xs * 1e3, '-', lw=3)
plt.grid(lw=1.5)
plt.twinx()
plt.ylabel(r'$\rm\sqrt{k}\cdot\exp\left(-t^2/2\sigma^2\right)$', color='#ff7f0e')
plt.tick_params('y', colors='#ff7f0e')
plt.plot(ts, sqrt(k) * exp(-ts**2 / (2 * s**2)), '--', color='#ff7f0e', lw=2)
plt.savefig('example.png', bbox_inches='tight', pad_zeros=0)
plt.show()