Frank Buss
2021-04-30 10:08:07 UTC
Ich bin dabei, die Parameter für eine Kettenlinie auszurechnen. Ich bin
zu diesen Formeln gekommen:
h1 = a*cosh((0 - x0) / a) + d - a
h2 = a*cosh((w - x0) / a) + d - a
Die Unbekannten sind x0 und a, alle anderen Variablen sind bekannt.
Beispiel:
w = 10
h1 = 2.3769571985548783
h2 = 4.100221828554815
d = 2
Ergebnis:
a = 12
x0 = 3
Ich vermute mal, a und x0 kann man nicht symbolisch lösen? Bei
WolframAlpha zumindest kommt nur ein Timeout. Numerisch wäre aber auch
in Ordnung. Wie kann ich das machen?
Habe mal geschaut, geht wahrscheinlich mit dem Gauss-Newton Verfahren,
aber ich kenne nur Schulmathematik, keine Ahnung was eine Jacobi-Matrix
ist. Geht es einfacher?
Eine Beschreibung des Algorithmus wäre schön. Ich will das im Endeffekt
in C programmieren, wobei ich in Python teste, da ich mit matplotplib
recht schnell Tests zeichnen kann.
zu diesen Formeln gekommen:
h1 = a*cosh((0 - x0) / a) + d - a
h2 = a*cosh((w - x0) / a) + d - a
Die Unbekannten sind x0 und a, alle anderen Variablen sind bekannt.
Beispiel:
w = 10
h1 = 2.3769571985548783
h2 = 4.100221828554815
d = 2
Ergebnis:
a = 12
x0 = 3
Ich vermute mal, a und x0 kann man nicht symbolisch lösen? Bei
WolframAlpha zumindest kommt nur ein Timeout. Numerisch wäre aber auch
in Ordnung. Wie kann ich das machen?
Habe mal geschaut, geht wahrscheinlich mit dem Gauss-Newton Verfahren,
aber ich kenne nur Schulmathematik, keine Ahnung was eine Jacobi-Matrix
ist. Geht es einfacher?
Eine Beschreibung des Algorithmus wäre schön. Ich will das im Endeffekt
in C programmieren, wobei ich in Python teste, da ich mit matplotplib
recht schnell Tests zeichnen kann.
--
Frank Buss, http://www.frank-buss.de
electronics and more: http://www.youtube.com/user/frankbuss
Frank Buss, http://www.frank-buss.de
electronics and more: http://www.youtube.com/user/frankbuss