Wir arbeiten mit dem Prinzip vom Minimum der Potentiellen Energie - also dem Potential der Gewichtskraft der Kettenglieder. Besonders charmant - im Vergleich zu Ansätzen mit dem Kräfte-Gleichgewicht ist hier das "Wegfallen" der Schnittkräfte - die brauchen wir hier nicht explizit angeben.
/*******************************************************/
/* MAXIMA script */
/* version: wxMaxima 18.10.1 */
/* author: Andreas Baumgart */
/* last updated: 2019-01-31 */
/* ref: form of hanging chain */
/* description: finds the form of a hanging chain */
/* employing Lagrange Multiplyers */
/*https://de.wikipedia.org/wiki/Lagrange-Multiplikator */
/*******************************************************/
Declarations
Jeder Verbindungspunkt eines Kettengliedes hat zwei Koordinaten Uj, Vj.
Die Arbeitsfunktion der Gewichtskraft ist
.
Im Gleichgewicht hat diese Arbeitsfunktion ein Minimum, allerdings müssen dabei für die starren Kettenglieder die Bedingungen
erfüllt sein!
/* declare variational variables - see 6.3 Identifiers */
declare("Λ", alphabetic);
declare("λ", alphabetic);
declare("γ", alphabetic);
declare("ℓ", alphabetic);
/* declarations */
params: [γ = m*g*ℓ];
/* number of chain elements */
N : 4;
Equilibrium Conditions
Die Lagrange-Funktion für die Kette lautet also
mit den Lagrangeschen Multiplikatoren λi.
Hier ist N =4, die Randbedingungen für die Verschiebungen lauten also
und wir wählen hier
.
Mit der Abkürzung
und
ist dann
.
Die Gleichgewichtsbedingungen unter Nebenbedingungen lauten dann
Und die sind nichtlinear! Dafür brauchen wir eine Lösungsroutine - wir verwenden das Newton–Verfahren.
Wir finden:
.
✔Lösungen nichtlinearer Gleichungen:
... sind eine Wissenschaft für sich. Selbst für scheinbar triviale Probleme wie dieses laufen wir für N>4 schon in große numerische Probleme hinein. Der Trick ist häufig, als Startpunkt der Iteration Werte vorzugeben, die einigermaßen in der Nähe der erwarteten Lösung liegen. Sonst verabschiedet sich der Newton-Algorithmus oft mit einem "convergance error".
Oder wir finden Lösungen, die zwar Gleichgewichtsbedingungen sind aber offensichtlich instabil sind.
/* solve nonlinear equations */
/* make shure, the Jabian ist not zero for the choice of "start" */
/* iteration starts with ..... */
start : makelist(1+i/length(Q),i,1,length(Q))$
load ("mnewton")$
/* iteration controls */
newtonmaxiter: 300;
newtonepsilon: 0.0001;
/* solve */
sol: mnewton(equ,Q,start)[1];
Post-Processing
Hier erhalten wir jedoch eine Lösung - und so sieht sie aus;
Cookies helfen uns bei der Bereitstellung von numpedia. Durch die Nutzung von numpedia erklärst du dich damit einverstanden, dass wir Cookies speichern.