Gelöste Aufgaben/LM01: Unterschied zwischen den Versionen

Aus numpedia
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
Zeile 17: Zeile 17:


== Lösung mit Maxima ==
== Lösung mit Maxima ==
Lorem Ipsum ....
==tmp==


Die Aufgabe ist ein einfaches Beispiel für Lösungsansätze mit "[[:Kategorie:Lagrange-Multiplikator|Lagrange-Multiplikatoren]]".
Die Aufgabe ist ein einfaches Beispiel für Lösungsansätze mit "[[:Kategorie:Lagrange-Multiplikator|Lagrange-Multiplikatoren]]".


Wir arbeiten mit dem [[Werkzeuge/Gleichgewichtsbedingungen/Arbeitsprinzipe der Analytischen Mechanik/Prinzip vom Minimum der Potentiellen Energie|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.<!-------------------------------------------------------------------------------->
<!-------------------------------------------------------------------------------->
 
{{MyCodeBlock|title=Header
{{MyCodeBlock|title=Header
|text=Text
|text=
Wir arbeiten mit dem [[Werkzeuge/Gleichgewichtsbedingungen/Arbeitsprinzipe der Analytischen Mechanik/Prinzip vom Minimum der Potentiellen Energie|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.
|code=
|code=
<syntaxhighlight lang="lisp" line start=1>
<syntaxhighlight lang="lisp" line start=1>
1+1
/*******************************************************/
/* 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 */
/*******************************************************/
</syntaxhighlight>
</syntaxhighlight>
}}
}}


==tmp==
<!-------------------------------------------------------------------------------->
{{MyCodeBlock|title=Declarations
|text=
[[Datei:LM01-02.png|mini|Koordinaten|alternativtext=|200x200px]]Jeder Verbindungspunkt eines Kettengliedes hat zwei Koordinaten ''U<sub>j</sub>, V<sub>j</sub>''.
[[Datei:LM01-02.png|mini|Koordinaten|alternativtext=|200x200px]]Jeder Verbindungspunkt eines Kettengliedes hat zwei Koordinaten ''U<sub>j</sub>, V<sub>j</sub>''.


Zeile 40: Zeile 48:
::<math>\displaystyle A = \sum_{n=0}^N m\,g\, \frac{U_{i-1}-U_i}{2}</math>.
::<math>\displaystyle A = \sum_{n=0}^N m\,g\, \frac{U_{i-1}-U_i}{2}</math>.


Im Gleichgewicht  hat diese Arbeitsfunktion ein Minimum, allerdings müssen dabei für die starren Kettenglieder die Bedingungen<blockquote><blockquote>
Im Gleichgewicht  hat diese Arbeitsfunktion ein Minimum, allerdings müssen dabei für die starren Kettenglieder die Bedingungen
<math>\left(U_{i} - U_{i-1}\right)^2 + \left(V_{i} - V_{i-1}\right)^2 = \ell^2</math>


erfüllt sein!</blockquote></blockquote><!-------------------------------------------------------------------------------->
::<math>\left(U_{i} - U_{i-1}\right)^2 + \left(V_{i} - V_{i-1}\right)^2 = \ell^2</math>
{{MyCodeBlock|title=Declarations
 
|text=Text
erfüllt sein!
|code=
|code=
<syntaxhighlight lang="lisp" line start=1>
<syntaxhighlight lang="lisp" line start=1>
1+1
/* 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;
</syntaxhighlight>
</syntaxhighlight>
}}
}}


==tmp==
<!-------------------------------------------------------------------------------->
{{MyCodeBlock|title=Equilibrium Conditions
|text=Die Lagrange-Funktion für die Kette lautet also


Die Lagrange-Funktion für die Kette lautet also
::<math>\begin{array}{lll}\Lambda = &&\displaystyle \sum_{n=0}^N m\,g\, \frac{U_{i-1}-U_i}{2}\\& +&\displaystyle \sum_{n=0}^N \lambda_i\cdot \left(\left(U_{i} - U_{i-1}\right)^2 + \left(V_{i} - V_{i-1}\right)^2 - \ell^2 \right)\end{array}</math>
 
<math>\begin{array}{lll}\Lambda = &&\displaystyle \sum_{n=0}^N m\,g\, \frac{U_{i-1}-U_i}{2}\\& +&\displaystyle \sum_{n=0}^N \lambda_i\cdot \left(\left(U_{i} - U_{i-1}\right)^2 + \left(V_{i} - V_{i-1}\right)^2 - \ell^2 \right)\end{array}</math>


mit den Lagrangeschen Multiplikatoren λ<sub>i</sub>.
mit den Lagrangeschen Multiplikatoren λ<sub>i</sub>.
Zeile 62: Zeile 79:
Hier ist ''N'' =4, die Randbedingungen für die Verschiebungen lauten also
Hier ist ''N'' =4, die Randbedingungen für die Verschiebungen lauten also


<math>U_0 = 0, U_4 = 0, V_0=0 \text{ und } V_N = L</math>
::<math>U_0 = 0, U_4 = 0, V_0=0 \text{ und } V_N = L</math>


und wir wählen hier
und wir wählen hier


<math>L = 3\,\ell</math>.
::<math>L = 3\,\ell</math>.


Mit der Abkürzung
Mit der Abkürzung


<math>\gamma = m\, g\, \ell</math> und <math>U_i = \ell \; \tilde{U}_i, \;\;V_i = \ell \; \tilde{V}_i, </math>
::<math>\gamma = m\, g\, \ell</math> und <math>U_i = \ell \; \tilde{U}_i, \;\;V_i = \ell \; \tilde{V}_i, </math>


ist dann
ist dann


<math>\begin{array}{lll} \Lambda =&&\displaystyle \frac{\left( {\tilde{U}_3}+{\tilde{U}_2}\right)  \gamma }{2}+\frac{{\tilde{U}_3} \gamma }{2}+\frac{\left( {\tilde{U}_2}+{\tilde{U}_1}\right)  \gamma }{2}+\frac{{\tilde{U}_1} \gamma }{2}\\&+&\left( {{\left( 3-{\tilde{V}_3}\right) }^{2}}+{{\tilde{U}}_{3}^{2}}-1\right) \, {{\lambda }_4}\\&+&\left( {{\left( {\tilde{V}_3}-{\tilde{V}_2}\right) }^{2}}+{{\left( {\tilde{U}_3}-{\tilde{U}_2}\right) }^{2}}-1\right) \, {{\lambda }_3}\\&+&\left( {{\left( {\tilde{V}_2}-{\tilde{V}_1}\right) }^{2}}+{{\left( {\tilde{U}_2}-{\tilde{U}_1}\right) }^{2}}-1\right) \, {{\lambda }_2}\\&+&\left( {{\tilde{V}}_{1}^{2}}+{{\tilde{U}}_{1}^{2}}-1\right) \, {{\lambda }_1} \end{array}</math>.
::<math>\begin{array}{lll} \Lambda =&&\displaystyle \frac{\left( {\tilde{U}_3}+{\tilde{U}_2}\right)  \gamma }{2}+\frac{{\tilde{U}_3} \gamma }{2}+\frac{\left( {\tilde{U}_2}+{\tilde{U}_1}\right)  \gamma }{2}+\frac{{\tilde{U}_1} \gamma }{2}\\&+&\left( {{\left( 3-{\tilde{V}_3}\right) }^{2}}+{{\tilde{U}}_{3}^{2}}-1\right) \, {{\lambda }_4}\\&+&\left( {{\left( {\tilde{V}_3}-{\tilde{V}_2}\right) }^{2}}+{{\left( {\tilde{U}_3}-{\tilde{U}_2}\right) }^{2}}-1\right) \, {{\lambda }_3}\\&+&\left( {{\left( {\tilde{V}_2}-{\tilde{V}_1}\right) }^{2}}+{{\left( {\tilde{U}_2}-{\tilde{U}_1}\right) }^{2}}-1\right) \, {{\lambda }_2}\\&+&\left( {{\tilde{V}}_{1}^{2}}+{{\tilde{U}}_{1}^{2}}-1\right) \, {{\lambda }_1} \end{array}</math>.


Die Gleichgewichtsbedingungen unter Nebenbedingungen lauten dann
Die Gleichgewichtsbedingungen unter Nebenbedingungen lauten dann


<math>\begin{array}{ll}\displaystyle \frac{\partial \Lambda}{\partial U_i}&=0\\\displaystyle \frac{\partial \Lambda}{\partial V_i}&=0\\\displaystyle \frac{\partial \Lambda}{\partial \lambda_i}&=0\end{array}</math>.<!-------------------------------------------------------------------------------->
::<math>\begin{array}{ll}\displaystyle \frac{\partial \Lambda}{\partial U_i}&=0\\\displaystyle \frac{\partial \Lambda}{\partial V_i}&=0\\\displaystyle \frac{\partial \Lambda}{\partial \lambda_i}&=0\end{array}</math>.
|code=
<syntaxhighlight lang="lisp" line start=1>
/* equilibrium condition */
LagrangeFkt : Λ = sum(γ*(U[n-1]+U[n])/2,n,1,N)
                +sum(λ[n]*((U[n]-U[n-1])^2+(V[n]-V[n-1])^2 - 1^2),n,1,N);


/* boundary conditions */
BCs : [U[0]=0, V[0]=0, U[N]=0, V[N]=N-1]$
/* unknowns (nodal coordiantes and Lagrange-multiplyers )*/
Q : flatten(append(makelist([U[n],V[n],λ[n]],n,1,N-1),[λ[N]]))$


LagrangeFkt : expand(subst(BCs,LagrangeFkt))$


{{MyCodeBlock|title=Equilibrium Conditions
equ : makelist(diff(subst(LagrangeFkt,Λ),Q[i]),i,1,3*(N+1)-4-1)$
|text=Text
equ : subst([γ = 1],equ);
|code=
<syntaxhighlight lang="lisp" line start=1>
1+1
</syntaxhighlight>
</syntaxhighlight>
}}
}}


==tmp==
<!-------------------------------------------------------------------------------->
 
{{MyCodeBlock|title=Solving
|text=
Die Gleichungen, die wir nun lösen müssen sind:
Die Gleichungen, die wir nun lösen müssen sind:


<math>\begin{array}{ll} 0=&-2 {\tilde{U}_2}\, {{\lambda }_2}+2 {\tilde{U}_1}\, {{\lambda }_2}+2 {\tilde{U}_1}\, {{\lambda }_1}+1\\ 0=&-2 {\tilde{V}_2}\, {{\lambda }_2}+2 {\tilde{V}_1}\, {{\lambda }_2}+2 {\tilde{V}_1}\, {{\lambda }_1}\\ 0=&{{\tilde{V}}_{1}^{2}}+{{\tilde{U}}_{1}^{2}}-1\\ 0=&-2 {\tilde{U}_3}\, {{\lambda }_3}+2 {\tilde{U}_2}\, {{\lambda }_3}+2 {\tilde{U}_2}\, {{\lambda }_2}-2 {\tilde{U}_1}\, {{\lambda }_2}+1\\ 0=&-2 {\tilde{V}_3}\, {{\lambda }_3}+2 {\tilde{V}_2}\, {{\lambda }_3}+2 {\tilde{V}_2}\, {{\lambda }_2}-2 {\tilde{V}_1}\, {{\lambda }_2}\\ 0=&{{\tilde{V}}_{2}^{2}}-2 {\tilde{V}_1}\, {\tilde{V}_2}+{{\tilde{U}}_{2}^{2}}-2 {\tilde{U}_1}\, {\tilde{U}_2}+{{\tilde{V}}_{1}^{2}}+{{\tilde{U}}_{1}^{2}}-1\\ 0=&2 {\tilde{U}_3}\, {{\lambda }_4}+2 {\tilde{U}_3}\, {{\lambda }_3}-2 {\tilde{U}_2}\, {{\lambda }_3}+1\\ 0=&2 {\tilde{V}_3}\, {{\lambda }_4}-6 {{\lambda }_4}+2 {\tilde{V}_3}\, {{\lambda }_3}-2 {\tilde{V}_2}\, {{\lambda }_3}\\ 0=&{{\tilde{V}}_{3}^{2}}-2 {\tilde{V}_2}\, {\tilde{V}_3}+{{\tilde{U}}_{3}^{2}}-2 {\tilde{U}_2}\, {\tilde{U}_3}+{{\tilde{V}}_{2}^{2}}+{{\tilde{U}}_{2}^{2}}-1\\ 0=&{{\tilde{V}}_{3}^{2}}-6 {\tilde{V}_3}+{{\tilde{U}}_{3}^{2}}+8\end{array}</math>.
::<math>\begin{array}{ll} 0=&-2 {\tilde{U}_2}\, {{\lambda }_2}+2 {\tilde{U}_1}\, {{\lambda }_2}+2 {\tilde{U}_1}\, {{\lambda }_1}+1\\ 0=&-2 {\tilde{V}_2}\, {{\lambda }_2}+2 {\tilde{V}_1}\, {{\lambda }_2}+2 {\tilde{V}_1}\, {{\lambda }_1}\\ 0=&{{\tilde{V}}_{1}^{2}}+{{\tilde{U}}_{1}^{2}}-1\\ 0=&-2 {\tilde{U}_3}\, {{\lambda }_3}+2 {\tilde{U}_2}\, {{\lambda }_3}+2 {\tilde{U}_2}\, {{\lambda }_2}-2 {\tilde{U}_1}\, {{\lambda }_2}+1\\ 0=&-2 {\tilde{V}_3}\, {{\lambda }_3}+2 {\tilde{V}_2}\, {{\lambda }_3}+2 {\tilde{V}_2}\, {{\lambda }_2}-2 {\tilde{V}_1}\, {{\lambda }_2}\\ 0=&{{\tilde{V}}_{2}^{2}}-2 {\tilde{V}_1}\, {\tilde{V}_2}+{{\tilde{U}}_{2}^{2}}-2 {\tilde{U}_1}\, {\tilde{U}_2}+{{\tilde{V}}_{1}^{2}}+{{\tilde{U}}_{1}^{2}}-1\\ 0=&2 {\tilde{U}_3}\, {{\lambda }_4}+2 {\tilde{U}_3}\, {{\lambda }_3}-2 {\tilde{U}_2}\, {{\lambda }_3}+1\\ 0=&2 {\tilde{V}_3}\, {{\lambda }_4}-6 {{\lambda }_4}+2 {\tilde{V}_3}\, {{\lambda }_3}-2 {\tilde{V}_2}\, {{\lambda }_3}\\ 0=&{{\tilde{V}}_{3}^{2}}-2 {\tilde{V}_2}\, {\tilde{V}_3}+{{\tilde{U}}_{3}^{2}}-2 {\tilde{U}_2}\, {\tilde{U}_3}+{{\tilde{V}}_{2}^{2}}+{{\tilde{U}}_{2}^{2}}-1\\ 0=&{{\tilde{V}}_{3}^{2}}-6 {\tilde{V}_3}+{{\tilde{U}}_{3}^{2}}+8\end{array}</math>.


Und die sind nichtlinear! Dafür brauchen wir eine Lösungsroutine - wir verwenden das Newton–Verfahren.
Und die sind nichtlinear! Dafür brauchen wir eine Lösungsroutine - wir verwenden das Newton–Verfahren.
Zeile 100: Zeile 125:
Wir finden:
Wir finden:


<math>\begin{array}{lll} {\tilde{U}_1}=&&0.807\\ {\tilde{V}_1}=&&0.59\\ {{\lambda }_1}=&-&0.929\\ {\tilde{U}_2}=&&1.22\\ {\tilde{V}_2}=&&1.5\\ {{\lambda }_2}=&-&0.603\\ {\tilde{U}_3}=&&0.807\\ {\tilde{V}_3}=&&2.41\\ {{\lambda }_3}=&-&0.603\\ {{\lambda }_4}=&-&0.929\end{array}</math>.
::<math>\begin{array}{lll} {\tilde{U}_1}=&&0.807\\ {\tilde{V}_1}=&&0.59\\ {{\lambda }_1}=&-&0.929\\ {\tilde{U}_2}=&&1.22\\ {\tilde{V}_2}=&&1.5\\ {{\lambda }_2}=&-&0.603\\ {\tilde{U}_3}=&&0.807\\ {\tilde{V}_3}=&&2.41\\ {{\lambda }_3}=&-&0.603\\ {{\lambda }_4}=&-&0.929\end{array}</math>.


{{MyTip|title=Lösungen nichtlinearer Gleichungen|text=... 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".
{{MyTip|title=Lösungen nichtlinearer Gleichungen|text=... 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.}}<!-------------------------------------------------------------------------------->
Oder wir finden Lösungen, die zwar Gleichgewichtsbedingungen sind aber offensichtlich instabil sind.}}
 
 
{{MyCodeBlock|title=Solving
|text=Text
|code=
|code=
<syntaxhighlight lang="lisp" line start=1>
<syntaxhighlight lang="lisp" line start=1>
1+1
/* 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];
</syntaxhighlight>
</syntaxhighlight>
}}
}}


==tmp==
<!-------------------------------------------------------------------------------->
[[Datei:LM01-11.png|mini|Lösungskonstellation]]Hier erhalten wir jedoch eine Lösung - und so sieht sie aus;<!-------------------------------------------------------------------------------->
 
 
{{MyCodeBlock|title=Post-Processing
{{MyCodeBlock|title=Post-Processing
 
|text=
|text=Text
[[Datei:LM01-11.png|mini|Lösungskonstellation]]Hier erhalten wir jedoch eine Lösung - und so sieht sie aus;
|code=
|code=
<syntaxhighlight lang="lisp" line start=1>
<syntaxhighlight lang="lisp" line start=1>
1+1
/* post-processing */
/* plot solutions */
preamble: "set yrange [] reverse";
 
plot2d (subst(sol,subst(BCs,[discrete, makelist(V[i],i,0,N),makelist(U[i],i,0,N)])),
  [gnuplot_preamble, preamble], same_xy,
  [style, [lines,3]],
  [xlabel, "y/ℓ →"],
  [ylabel, "x/ℓ ←"] )$
</syntaxhighlight>
</syntaxhighlight>
}}
}}
<table class="wikitable" style="background-color:white; float: left; margin-right:14px;
">
<tr><th></th><th></th></tr>
<tr><td></td><td></td></tr>
</table>


<hr />
<hr />

Aktuelle Version vom 1. April 2021, 07:26 Uhr


Aufgabenstellung

Wie Minimum-Prinzipe "funktionieren" und wie die Mathematik dazu aussieht, untersuchen wir hier an einem klassischen Beispiel.

Lageplan

Gesucht ist die Lage der Knoten von vier starren Kettengliedern (Länge ℓ, Masse m) im Erdschwerefeld.


Lösung mit Maxima

Die Aufgabe ist ein einfaches Beispiel für Lösungsansätze mit "Lagrange-Multiplikatoren".

Header

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

Koordinaten

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

.

/* equilibrium condition */
LagrangeFkt : Λ = sum(γ*(U[n-1]+U[n])/2,n,1,N)
                 +sum(λ[n]*((U[n]-U[n-1])^2+(V[n]-V[n-1])^2 - 1^2),n,1,N);

/* boundary conditions */
BCs : [U[0]=0, V[0]=0, U[N]=0, V[N]=N-1]$
/* unknowns (nodal coordiantes and Lagrange-multiplyers )*/
Q : flatten(append(makelist([U[n],V[n],λ[n]],n,1,N-1),[λ[N]]))$

LagrangeFkt : expand(subst(BCs,LagrangeFkt))$

equ : makelist(diff(subst(LagrangeFkt,Λ),Q[i]),i,1,3*(N+1)-4-1)$
equ : subst([γ = 1],equ);




Solving

Die Gleichungen, die wir nun lösen müssen sind:

.

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

Lösungskonstellation

Hier erhalten wir jedoch eine Lösung - und so sieht sie aus;


/* post-processing */
/* plot solutions */
preamble: "set yrange [] reverse";

plot2d (subst(sol,subst(BCs,[discrete, makelist(V[i],i,0,N),makelist(U[i],i,0,N)])),
  [gnuplot_preamble, preamble], same_xy,
  [style, [lines,3]],
  [xlabel, "y/ℓ →"],
  [ylabel, "x/ℓ ←"] )$





Links

  • ...

Literature

  • ...