Ich stecke bei einem Problem fest, bei dem ich die halbe Periodenlänge einer Sinuswelle bei einer festen "Bogen" -Länge der Sinuswelle und einer variablen maximalen Amplitude lösen muss. Ich habe das Problem dargestellt:
Ist dieses Problem lösbar? Kann es auf eine einigermaßen kostengünstige rechnerische Weise angenähert werden? Es ist für ein Problem, bei dem ich es basierend auf den Amplitudenänderungen (z. B. von 0 auf 1) ständig neu berechnen muss.
Danke.
Im Allgemeinen ist die Länge einer Sinuskurve über eine halbe Periode ein vollständiges elliptisches Integral; siehe Was ist die Länge einer Sinuswelle aus Zu ? Sie können mit einer Amplitude und einer Periode arbeiten, um eine Bogenlänge zu erhalten, aber die Berechnung des Integrals zu "invertieren", um eine Periode für eine bestimmte Amplitude und Bogenlänge zu erhalten, wird schwierig und wahrscheinlich rechenintensiv sein.
Was ich stattdessen vorschlagen würde, ist, eine Tabelle zu erstellen, die die Perioden für eine feste Lichtbogenlänge und ausgewählte Amplituden angibt, und innerhalb dieser Tabelle zu interpolieren, um Ergebnisse für andere Amplituden zu erhalten.
Um Einträge in der Tabelle zu generieren, könnten Sie den Punkt fixieren – sagen wir, der Einfachheit halber - und finden Sie die Lichtbogenlänge für verschiedene Amplituden. Für die Kurve der Amplitude , die Bogenlänge ist
Jetzt können Sie die gesamte Figur in alle Richtungen um den Faktor skalieren um die Kurve zu erhalten
Um die Halbperiode für eine gegebene Bogenlänge zu erhalten und Amplitude den Wert nachschlagen Suchen Sie in der Spalte "Amplitude" Ihrer Tabelle die interpolierte Halbperiode mithilfe der Tabelle und multiplizieren Sie dann den interpolierten Wert mit
Das Generieren der Tabelle erfordert einige Arbeit im Voraus, aber Sie können diese Arbeit einmal erledigen und die Ergebnisse in einer Datendatei speichern, die beim Start Ihres Programms eingelesen und immer wieder verwendet werden kann. Je mehr Werte Sie im Voraus berechnen, desto genauer wird die Interpolation; Sie können anstelle der linearen Interpolation auch kubische Splines verwenden, um bei gleicher Anzahl von Zeilen in Ihrer Tabelle eine höhere Genauigkeit zu erzielen.
jorik
jorik
Mike
jorik