Gelöste Aufgaben/UEBJ: Unterschied zwischen den Versionen

Aus numpedia
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 11: Zeile 11:
Der Euler-Bernoulli-Balken ''AB'' wird durch seine Gewichtskraft belastet. Er ist in ''A'' fest eingespannt und hat eine konstante Breite b sowie eine zwischen A und B linear veränderliche Höhe ''h''.  
Der Euler-Bernoulli-Balken ''AB'' wird durch seine Gewichtskraft belastet. Er ist in ''A'' fest eingespannt und hat eine konstante Breite b sowie eine zwischen A und B linear veränderliche Höhe ''h''.  


Für diese Aufgabe gibt es in UEBI eine analytische Lösung - hier schauen wir uns an, wie sich die Qualität der Näherungslösungen mit der Steigerung der Anzahl der Trial-Functions ändert.   
Für diese Aufgabe gibt es in [[Gelöste Aufgaben/UEBI|UEBI]] eine analytische Lösung - hier schauen wir uns an, wie sich die Qualität der Näherungslösungen mit der Steigerung der Anzahl der Trial-Functions ändert.   


<onlyinclude>
<onlyinclude>
[[Datei:UEBF-01.png|250px|left|mini|Lageplan]]
[[Datei:UEBF-01.png|200x200px|left|mini|Lageplan|alternativtext=]]
Gesucht ist die Biegeline und Schnittkraftverläufe mit dem Ansatz von Ritz und mehreren Trial-Funktionen.
Gesucht ist die Biegeline und Schnittkraftverläufe mit dem Ansatz von Ritz und mehreren Trial-Funktionen.
</onlyinclude>
</onlyinclude>
Zeile 31: Zeile 31:
Um die Lösung dimensionslos zu machen, nutzen wir die [[Sources/Lexikon/Euler-Bernoulli-Balken/Standard-Lösungen#Kragbalken|analytische Lösung des einseitig fest eingespannten Balkens]]  mit konstanten ''I'' unter einer konstanten Streckenlast ''q<sub>0</sub>''. Hier ist die maximale Auslenkung  
Um die Lösung dimensionslos zu machen, nutzen wir die [[Sources/Lexikon/Euler-Bernoulli-Balken/Standard-Lösungen#Kragbalken|analytische Lösung des einseitig fest eingespannten Balkens]]  mit konstanten ''I'' unter einer konstanten Streckenlast ''q<sub>0</sub>''. Hier ist die maximale Auslenkung  


<math>\begin{array}{lcl}
::<math>\begin{array}{lcl}
\displaystyle \hat{w} := \frac{q_{ref}\, \ell^4}{8 EI_{ref}} &
\displaystyle \hat{w} := \frac{q_{ref}\, \ell^4}{8 EI_{ref}} &
\text{ mit }&  
\text{ mit }&  
Zeile 43: Zeile 43:
Damit können wir uns die Lösungen dieses Problems als Vielfaches der analytischen Lösung eines ähnlichen Problems denken.
Damit können wir uns die Lösungen dieses Problems als Vielfaches der analytischen Lösung eines ähnlichen Problems denken.


==tmp==
<!-------------------------------------------------------------------------------->
{{MyCodeBlock|title=Header
|text=
In diesem Problem werden wir Lösungen zu verschiedenen Ansatzfunktionen miteinander vergleichen.
 
Es geht also nicht nur um die Berechnung einer Lösung - sondern vieler.
Damit können wir uns die Lösungen dieses Problems als Vielfaches der analytischen Lösung eines ähnlichen Problems denken.
|code=
<syntaxhighlight lang="lisp" line start=1>
/*******************************************************/
/* MAXIMA script                                      */
/* version: wxMaxima 15.08.2                          */
/* author: Andreas Baumgart                            */
/* last updated: 2019-08-30                            */
/* ref: TMC                                            */
/* description: Rayley-Ritz-Solution for EBB          */
/*              with I(x)                              */
/*******************************************************/
</syntaxhighlight>
}}


<!-------------------------------------------------------------------------------->
<!-------------------------------------------------------------------------------->
{{MyCodeBlock|title=Title
{{MyCodeBlock|title=Declarations
|text=Text
|text=
Wir arbeiten mit den System-Parametern
 
::<math>\begin{array}{lcl}
  \xi  &=& \displaystyle \frac{x}{\ell},\\
q(\xi) &=& A(\xi)\,\rho\,g,\\
A(\xi) &=& b\,h(\xi),\\
I(\xi) &=& \displaystyle \frac{b\cdot h^3(\xi)}{12},\\
h(\xi) &=& h_0\cdot(1-\xi)+ h_1\cdot \xi \text{ und}\\
h_1 &=& \alpha \, h_0.
\end{array}</math>
 
Für die numerische Lösung verwenden wir - wie in [[Gelöste Aufgaben/UEBI|UEBI]] -
 
::<math>\alpha = \displaystyle \frac{1}{2}</math>.
|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);
 
/* system parameters                                        */
params: [q(xi) = A(xi)*rho*g,
        A(xi) = b*h(xi),
        I(xi) = b*h(xi)^3/12,
        h(xi) = H[0]*(1-xi)+ H[1]*xi];
params: append(params,
              solve((H[0]+H[1])/2*b*ℓ*rho=m, rho));
 
geometry : [alpha=1/2];
 
dimless: [x = xi*ℓ, H[0]=b, H[1]=alpha*b];
 
/* load analytic solutions as discrete tables from UEBI */
file_search_maxima: append(file_search_maxima, ["C:/Users/abs384/OneDrive/Confluence Sources/UEBJ/"]);
batch("analyticSolFromUEBI.data")$
 
/* make equations of motion dim'less with load case #1 from Gross e.a., same as UEBI */
reference : [W[ref] = q[ref]*ℓ^4/8/EI[ref], Phi[ref] = q[ref]*ℓ^3/6/EI[ref], M[ref] = m*g*ℓ/2, Q[ref] = m*g, q[ref] = m*g/ℓ, EI[ref]=E*b*((H[0]+H[1])/2)^3/12];
</syntaxhighlight>
</syntaxhighlight>
}}
}}


<table class="wikitable" style="background-color:white; float: left; margin-right:14px;
{{MyCodeBlock|title=Rayleigh-Ritz Approach
">
|text=
<tr><th></th><th></th></tr>
Gesucht ist hier ein Ansatz mit polynomialen Trial Functions. Wir probieren verschiedene Ansätze aus, die wir mit "''i''" kennzeichnen, also
<tr><td></td><td></td></tr>
 
</table>
::<math>w_i(\xi) = \hat{w} \cdot \displaystyle \sum_{j_{min}}^J W_{i,j} \cdot \phi_j(\xi)</math>
 
und den gesuchten Koeffizienten ''W<sub>ij</sub>''. Die ''ϕ<sub>j</sub>'' müssen dabei alle geometrischen Randbedingungen erfüllen, also:
 
::<math>\begin{array}{ll}w_i(0) &= 0,\\w_i'(0) &= 0.\end{array}</math>.
 
Die Funktionen müssen nicht die Randbedingungen für Schnittlasten in ''B'' erfüllen - schließlich suchen wir nach einer Näherungslösung!
 
Diese Funktionen ''ϕ<sub>j</sub>'' zu konstruieren ist einfach: wir brauchen lediglich eine doppelte Nullstelle in <math>\xi=0</math>. Das erreichen wir, indem wir nur Polynome ab einem Grad ≥ 2 (also ''j<sub>min</sub>''=2) zulassen:
 
::<math>\phi_j(\xi) = \xi^j \text{ mit } j \ge 2</math>.
 
Damit ist


::<math>w_i(\xi) = \hat{w} \cdot \displaystyle \sum_2^J W_{i,j} \cdot \xi^j</math>.
Die freien Koeffizienten ''W<sub>ij</sub>'' sind nun die anteiligen Auslenkungen in ''B''.
----Für die Gleichgewichtsbedingungen setzten wir die Formänderungsenergie '''''Π''''' (aus dem Abschnitt [[Sources/Lexikon/Euler-Bernoulli-Balken|Euler-Bernoulli-Balken]])
::<math>\displaystyle \Pi = \frac{1}{2} \int_0^\ell M(x)\,w''(x) dx</math>
und die Arbeitsfunktion der Gewichtskraft '''''A'''''
::<math>\displaystyle {\bf A} = \int_0^\ell q(x)\,w(x) dx </math>
in '''''U''''' ein und schreiben die skalare Gleichung allgemein in Matrizenform an. Dabei müssen wir
::<math>\displaystyle \frac{d\phi}{x} = \frac{d\phi}{\xi}\cdot\underbrace{\displaystyle\frac{d\xi}{x}}_{\displaystyle = \frac{1}{\ell}}</math>
berücksichtigen und erhalten
::<math>{\bf U} = \displaystyle \frac{1}{2} \cdot \displaystyle \underline{Q}^T \cdot \underline{\underline{A}}\cdot \underline{Q} - \underline{Q}^T\cdot \underline{b} </math>.
In der Spaltenmatrix
::<math>\underline{Q} = \left( \begin{array}{l}
W_{i,2}\\
\vdots\\
W_{i,I}
\end{array}\right)</math>
stehen nun zwischen einer und ''I-1'' Gewichtungsfaktoren ''W<sub>ij</sub> :'' die gesuchten Unbekannten.
Die Gleichgewichtsbedingungen
::<math>\displaystyle \frac{d{\bf U}}{dW_{ij}} \stackrel{!}{=} 0</math>,
liefern uns die benötigte Anzahl von Gleichungen, z.B. für ''i=3'':
::<math>\begin{array}{cl}
0=&{{W}_{3,3}}\cdot \left( 36+72\cdot \alpha+108\cdot {{\alpha}^{2}}+144\cdot {{\alpha}^{3}}\right) +{{W}_{3,2}}\cdot \left( 60+60\cdot \alpha+60\cdot {{\alpha}^{2}}+60\cdot {{\alpha}^{3}}\right) -30\cdot {{\alpha}^{3}}-70\cdot {{\alpha}^{2}}-50\cdot \alpha-10\\
0=&{{W}_{3,3}}\cdot \left( 36+108\cdot \alpha+216\cdot {{\alpha}^{2}}+360\cdot {{\alpha}^{3}}\right) +{{W}_{3,2}}\cdot \left( 36+72\cdot \alpha+108\cdot {{\alpha}^{2}}+144\cdot {{\alpha}^{3}}\right) -24\cdot {{\alpha}^{3}}-54\cdot {{\alpha}^{2}}-36\cdot \alpha-6
\end{array}</math>.
Hier - für ''i=3'' - ist
::<math>\begin{array}{ll}
{{W}_{3,2}}&=\displaystyle\frac{1+8\cdot \alpha+34\cdot {{\alpha}^{2}}+94\cdot {{\alpha}^{3}}+164\cdot {{\alpha}^{4}}+148\cdot {{\alpha}^{5}}+51\cdot {{\alpha}^{6}}}{6\cdot {{\alpha}^{6}}+24\cdot {{\alpha}^{5}}+60\cdot {{\alpha}^{4}}+120\cdot {{\alpha}^{3}}+60\cdot {{\alpha}^{2}}+24\cdot \alpha+6}\\
{{W}_{3,3}}&=\displaystyle-\frac{5\cdot {{\alpha}^{2}}+20\cdot {{\alpha}^{3}}+35\cdot {{\alpha}^{4}}+30\cdot {{\alpha}^{5}}+10\cdot {{\alpha}^{6}}}{3\cdot {{\alpha}^{6}}+12\cdot {{\alpha}^{5}}+30\cdot {{\alpha}^{4}}+60\cdot {{\alpha}^{3}}+30\cdot {{\alpha}^{2}}+12\cdot \alpha+3}
\end{array}</math>.
|code=
<syntaxhighlight lang="lisp" line start=1>
/************************************************************/
/* Rayleigh-Ritz                                            */
/* try different degrees of polyomials                      */
fcts: [];
sols: [];
polyMax : 4;
for poly:2 thru polyMax do (
  /* trial function */
  trial: w[poly](xi) = sum(W[ref]*W[poly,j]*xi^(j),j,2,poly),
  /* potential energies */
  /* define potential energy of system */
  PMPE : [U  = Pi - A,
          Pi = 1/2*ℓ*'integrate(E*I(xi)*'diff(w[i](xi),xi,2)^2/ℓ^4,xi,0,1),
          A  = ℓ*'integrate(q(xi)*w[i](xi),xi,0,1)],
  PMPE: subst(dimless,subst(params,subst(trial,subst([i=poly],PMPE)))),
  PMPE: subst(PMPE[3],subst(PMPE[2], PMPE[1])),
  PMPE : ev(PMPE,nouns),
  /* equilibreium condition */
  X : makelist(W[poly,j],j,2,poly),
  equilibrium : ratsimp(subst(dimless,subst(reference,
                    makelist(diff(subst(PMPE, U),W[poly,j]) = 0,j,2,poly)))),
  /* solve */
  sol: ratsimp(solve(equilibrium,X)),
  sols: append(sols, sol),
  /* post-processing */
  fcts: append(fcts, [ratsimp(subst(geometry,subst(sol,subst(trial,w[poly](xi)/W[ref]))))]),
  print("done: #",poly))$
</syntaxhighlight>
}}
<!-------------------------------------------------------------------------------->
{{MyCodeBlock|title=Post-Processing
|text=
Für die verschiedenen Ansätze (Polynimial-Grade der Trial-Functions) erhaltem wir Lösungen, die die analytische Lösung aus UEBI unterschiedlich gut approximieren. Hier wählen wir als Ansätze die Polynome bis zum Grad 2, 3 und 4.
[[Datei:UEBJ-21.png|mini|Parameterstudie: Biegelinie ''w(x)'']]Und so berechnen wir die normierten Absenkungen des Balkens für die verschiedenen Ansätze:
Für Moment- und Querkraftverläufe erhalten wir[[Datei:UEBJ-22.png|mini|Parameterstudie Biegemomentenverlauf ''M(x)''|alternativtext=|ohne]]
[[Datei:UEBJ-23.png|mini|Parameterstudie Querkraftverlauf ''Q(x)''|alternativtext=|ohne]]
|code=
<syntaxhighlight lang="lisp" line start=1>
/************************************************************/
/* post - processing                                        */
/* cross-sectional bending moment */
M : subst(geometry,ratsimp(subst(dimless,subst(reference,subst(params,-E*I(xi)*W[ref]*diff(fcts,xi,2)/ℓ^2/(m*g*ℓ/2))))))$
/* cross-sectional shear force */
Q : subst(geometry,ratsimp(subst(dimless,subst(reference,subst(params,-E*I(xi)*W[ref]*diff(fcts,xi,3)/ℓ^3/(m*g))))))$
fcts :append([[discrete, WA]], fcts)$
plot2d(fcts,[xi,0,1],
      [gnuplot_preamble, "set yrange [] reverse"],
      [legend, "analytic", "2nd Ord", "3rd Ord", "4th Ord", "5th Ord", "6th Ord"],
      [xlabel, "x/ℓ->"], [ylabel, "<-w/w_ref"],
      [style, [lines,2], [lines,1], [lines,1], [lines,1], [lines,1], [lines,1]]);
   
M :append([[discrete, MA]], M)$
plot2d(M,[xi,0,1],
      [legend, "analytic", "p02","p03","p04","p05","p06","p07","p08","p09","p10","p11","p12"],
      [xlabel, "x/ℓ->"], [ylabel, "M/(mg ℓ->"],
      [style, [lines,2], [lines,1], [lines,1], [lines,1], [lines,1], [lines,1]]);
Q :append([[discrete, QA]], Q)$
plot2d(Q,[xi,0,1],
      [legend, "analytic", "p02","p03","p04","p05","p06","p07","p08","p09","p10","p11","p12"],
      [xlabel, "x/ℓ->"], [ylabel, "Q/mg->"],
      [style, [lines,2], [lines,1], [lines,1], [lines,1], [lines,1], [lines,1]]);
</syntaxhighlight>
}}


<hr />
<hr />
'''Links'''
'''Links'''
*...
* [[Gelöste Aufgaben/UEBI|UEBI]]


'''Literature'''
'''Literature'''
*...
*...
[[Datei:UEBJ-21.png|mini|Parameterstudie: Biegelinie ''w(x)'']]
[[Datei:UEBJ-22.png|mini|Parameterstudie Biegemomentenverlauf ''M(x)'']]
[[Datei:UEBJ-23.png|mini|Parameterstudie Querkraftverlauf ''Q(x)'']]
h

Aktuelle Version vom 17. April 2021, 06:31 Uhr


Aufgabenstellung

Der Euler-Bernoulli-Balken AB wird durch seine Gewichtskraft belastet. Er ist in A fest eingespannt und hat eine konstante Breite b sowie eine zwischen A und B linear veränderliche Höhe h.

Für diese Aufgabe gibt es in UEBI eine analytische Lösung - hier schauen wir uns an, wie sich die Qualität der Näherungslösungen mit der Steigerung der Anzahl der Trial-Functions ändert.


Lageplan

Gesucht ist die Biegeline und Schnittkraftverläufe mit dem Ansatz von Ritz und mehreren Trial-Funktionen.

Gegeben sind für den Balken:

  • Länge , Breite b,
  • E-Modul E, Dichte ρ und
  • die Höhe h0=b und h1 jeweils in A und B; dazwischen ist die Höhe linear veränderlich.

Lösung mit Maxima

Beim Verfahren von Ritz arbeiten wir mit

Um die Lösung dimensionslos zu machen, nutzen wir die analytische Lösung des einseitig fest eingespannten Balkens  mit konstanten I unter einer konstanten Streckenlast q0. Hier ist die maximale Auslenkung

.

Damit können wir uns die Lösungen dieses Problems als Vielfaches der analytischen Lösung eines ähnlichen Problems denken.

Header

In diesem Problem werden wir Lösungen zu verschiedenen Ansatzfunktionen miteinander vergleichen.

Es geht also nicht nur um die Berechnung einer Lösung - sondern vieler. Damit können wir uns die Lösungen dieses Problems als Vielfaches der analytischen Lösung eines ähnlichen Problems denken.


/*******************************************************/
/* MAXIMA script                                       */
/* version: wxMaxima 15.08.2                           */
/* author: Andreas Baumgart                            */
/* last updated: 2019-08-30                            */
/* ref: TMC                                            */
/* description: Rayley-Ritz-Solution for EBB           */
/*              with I(x)                              */
/*******************************************************/




Declarations

Wir arbeiten mit den System-Parametern

Für die numerische Lösung verwenden wir - wie in UEBI -

.

/************************************************************/
/* declare variational variables - see 6.3 Identifiers      */
declare( "ℓ", alphabetic);

/* system parameters                                        */
params: [q(xi) = A(xi)*rho*g,
         A(xi) = b*h(xi),
         I(xi) = b*h(xi)^3/12,
         h(xi) = H[0]*(1-xi)+ H[1]*xi];
params: append(params,
               solve((H[0]+H[1])/2*b*ℓ*rho=m, rho));

geometry : [alpha=1/2];

dimless: [x = xi*ℓ, H[0]=b, H[1]=alpha*b];

/* load analytic solutions as discrete tables from UEBI */
file_search_maxima: append(file_search_maxima, ["C:/Users/abs384/OneDrive/Confluence Sources/UEBJ/"]);
batch("analyticSolFromUEBI.data")$

/* make equations of motion dim'less with load case #1 from Gross e.a., same as UEBI */
reference : [W[ref] = q[ref]*ℓ^4/8/EI[ref], Phi[ref] = q[ref]*ℓ^3/6/EI[ref], M[ref] = m*g*ℓ/2, Q[ref] = m*g, q[ref] = m*g/ℓ, EI[ref]=E*b*((H[0]+H[1])/2)^3/12];




Rayleigh-Ritz Approach

Gesucht ist hier ein Ansatz mit polynomialen Trial Functions. Wir probieren verschiedene Ansätze aus, die wir mit "i" kennzeichnen, also

und den gesuchten Koeffizienten Wij. Die ϕj müssen dabei alle geometrischen Randbedingungen erfüllen, also:

.

Die Funktionen müssen nicht die Randbedingungen für Schnittlasten in B erfüllen - schließlich suchen wir nach einer Näherungslösung!

Diese Funktionen ϕj zu konstruieren ist einfach: wir brauchen lediglich eine doppelte Nullstelle in . Das erreichen wir, indem wir nur Polynome ab einem Grad ≥ 2 (also jmin=2) zulassen:

.

Damit ist

.

Die freien Koeffizienten Wij sind nun die anteiligen Auslenkungen in B.


Für die Gleichgewichtsbedingungen setzten wir die Formänderungsenergie Π (aus dem Abschnitt Euler-Bernoulli-Balken)

und die Arbeitsfunktion der Gewichtskraft A

in U ein und schreiben die skalare Gleichung allgemein in Matrizenform an. Dabei müssen wir

berücksichtigen und erhalten

.

In der Spaltenmatrix

stehen nun zwischen einer und I-1 Gewichtungsfaktoren Wij : die gesuchten Unbekannten.

Die Gleichgewichtsbedingungen

,

liefern uns die benötigte Anzahl von Gleichungen, z.B. für i=3:

.

Hier - für i=3 - ist

.

/************************************************************/
/* Rayleigh-Ritz                                            */
/* try different degrees of polyomials                      */
fcts: [];
sols: [];
polyMax : 4;
for poly:2 thru polyMax do (
   /* trial function */
   trial: w[poly](xi) = sum(W[ref]*W[poly,j]*xi^(j),j,2,poly),
   /* potential energies */
   /* define potential energy of system */
   PMPE : [U  = Pi - A,
          Pi = 1/2*ℓ*'integrate(E*I(xi)*'diff(w[i](xi),xi,2)^2/ℓ^4,xi,0,1),
          A  = ℓ*'integrate(q(xi)*w[i](xi),xi,0,1)],
   PMPE: subst(dimless,subst(params,subst(trial,subst([i=poly],PMPE)))),
   PMPE: subst(PMPE[3],subst(PMPE[2], PMPE[1])),
   PMPE : ev(PMPE,nouns),
   /* equilibreium condition */
   X : makelist(W[poly,j],j,2,poly),
   equilibrium : ratsimp(subst(dimless,subst(reference,
                     makelist(diff(subst(PMPE, U),W[poly,j]) = 0,j,2,poly)))),
   /* solve */
   sol: ratsimp(solve(equilibrium,X)),
   sols: append(sols, sol),
   /* post-processing */
   fcts: append(fcts, [ratsimp(subst(geometry,subst(sol,subst(trial,w[poly](xi)/W[ref]))))]),
   print("done: #",poly))$




Post-Processing

Für die verschiedenen Ansätze (Polynimial-Grade der Trial-Functions) erhaltem wir Lösungen, die die analytische Lösung aus UEBI unterschiedlich gut approximieren. Hier wählen wir als Ansätze die Polynome bis zum Grad 2, 3 und 4.

Parameterstudie: Biegelinie w(x)

Und so berechnen wir die normierten Absenkungen des Balkens für die verschiedenen Ansätze: Für Moment- und Querkraftverläufe erhalten wir

Parameterstudie Biegemomentenverlauf M(x)
Parameterstudie Querkraftverlauf Q(x)

/************************************************************/
/* post - processing                                        */

/* cross-sectional bending moment */
M : subst(geometry,ratsimp(subst(dimless,subst(reference,subst(params,-E*I(xi)*W[ref]*diff(fcts,xi,2)/ℓ^2/(m*g*ℓ/2))))))$
/* cross-sectional shear force */
Q : subst(geometry,ratsimp(subst(dimless,subst(reference,subst(params,-E*I(xi)*W[ref]*diff(fcts,xi,3)/ℓ^3/(m*g))))))$

fcts :append([[discrete, WA]], fcts)$
plot2d(fcts,[xi,0,1],
       [gnuplot_preamble, "set yrange [] reverse"],
       [legend, "analytic", "2nd Ord", "3rd Ord", "4th Ord", "5th Ord", "6th Ord"],
       [xlabel, "x/ℓ->"], [ylabel, "<-w/w_ref"],
       [style, [lines,2], [lines,1], [lines,1], [lines,1], [lines,1], [lines,1]]);
     
M :append([[discrete, MA]], M)$
plot2d(M,[xi,0,1],
       [legend, "analytic", "p02","p03","p04","p05","p06","p07","p08","p09","p10","p11","p12"],
       [xlabel, "x/ℓ->"], [ylabel, "M/(mg ℓ->"],
       [style, [lines,2], [lines,1], [lines,1], [lines,1], [lines,1], [lines,1]]);

Q :append([[discrete, QA]], Q)$
plot2d(Q,[xi,0,1],
       [legend, "analytic", "p02","p03","p04","p05","p06","p07","p08","p09","p10","p11","p12"],
       [xlabel, "x/ℓ->"], [ylabel, "Q/mg->"],
       [style, [lines,2], [lines,1], [lines,1], [lines,1], [lines,1], [lines,1]]);





Links

Literature

  • ...