1 @c -----------------------------------------------------------------------------
2 @c File : mnewton.de.texi
3 @c License : GNU General Public License (GPL)
5 @c Original : mnewton.texi revision 31.05.2011
7 @c Revision : 16.09.2011
9 @c This file is part of Maxima -- GPL CAS based on DOE-MACSYMA
10 @c -----------------------------------------------------------------------------
13 * Einf@"uhrung in mnewton::
14 * Funktionen und Variablen f@"ur mnewton::
17 @c -----------------------------------------------------------------------------
18 @node Einf@"uhrung in mnewton, Funktionen und Variablen f@"ur mnewton, mnewton, mnewton
19 @section Einf@"uhrung in mnewton
20 @c -----------------------------------------------------------------------------
22 @c @code{mnewton} is an implementation of Newton's method for solving nonlinear
23 @c equations in one or more variables.
25 Das Paket mnewton implementiert das Newton-Verfahren mit der Funktion
26 @mref{mnewton} f@"ur das numerische L@"osen nichtlinear Gleichungen in einer
27 oder mehrerer Variablen. Die Funktion @mref{newton} ist eine weitere
28 Implementierung, die im Paket newton1 enthalten ist.
30 @c -----------------------------------------------------------------------------
31 @node Funktionen und Variablen f@"ur mnewton, , Einf@"uhrung in mnewton, mnewton
32 @section Funktionen und Variablen f@"ur mnewton
33 @c -----------------------------------------------------------------------------
35 @c --- 15.09.2011 DK -----------------------------------------------------------
36 @anchor{newtonepsilon}
37 @defvr {Optionsvariable} newtonepsilon
38 Standardwert: @code{1.0e-8}
40 @c Precision to determine when the @code{mnewton} function has converged
41 @c towards the solution. See also @code{mnewton}.
43 Genauigkeit mit der getestet wird, wie gut die Funktion @mref{mnewton} sich der
44 L@"osung angen@"ahert hat. Unterschreitet die @"Anderung der Approximation
45 den Wert @code{newtonepsilon}, bricht der Algorithmus ab und gibt das Ergebnis
49 @c --- 15.09.2011 DK -----------------------------------------------------------
50 @anchor{newtonmaxiter}
51 @defvr {Optionsvariable} newtonmaxiter
52 Standardwert: @code{50}
54 @c Maximum number of iterations to stop the @code{mnewton} function if it does
55 @c not converge or if it converges too slowly. See also @code{mnewton}.
57 Obere Grenze f@"ur die Anzahl an Iterationen, falls die Funktion
58 @mref{mnewton} nicht oder sehr langsam konvergiert.
61 @c --- 15.09.2011 DK -----------------------------------------------------------
62 @anchor{function_mnewton}
63 @deffn {Funktion} mnewton (@var{FuncList}, @var{VarList}, @var{GuessList})
65 @c Multiple nonlinear functions solution using the Newton method. @var{FuncList}
66 @c is the list of functions to solve, @var{VarList} is the list of variable
67 @c names, and @var{GuessList} is the list of initial approximations.
69 Implementation des Newton-Verfahrens f@"ur das numerische L@"osen von
70 Gleichungen in mehreren Variablen. Das Argument @var{FuncList} ist die Liste
71 der Gleichungen, f@"ur die eine numerische L@"osung gesucht wird. Das Argument
72 @var{VarList} ist eine Liste der Variablen und das Argument @var{GuessList}
73 ist eine Liste mit den Startwerten des Newton-Verfahrens.
75 @c The solution is returned in the same format that @code{solve()} returns.
76 @c If the solution isn't found, @code{[]} is returned.
78 Die L@"osungen werden als eine Liste zur@"uckgegeben. Kann keine L@"osung
79 gefunden werden, ist die R@"uckgabe eine leere Liste @code{[]}.
81 @c This function is controlled by global variables @code{newtonepsilon} and
82 @c @code{newtonmaxiter}.
84 @code{mnewton} wird von den Funktionen @mref{newtonepsilon} und
85 @mref{newtonmaxiter} kontrolliert.
87 @c To use this function write first @code{load("mnewton")}. See also
88 @c @code{newtonepsilon} and @code{newtonmaxiter}.
90 Die Funktion wird mit dem Kommando @code{load("mnewton")} geladen. Siehe die
91 Funktion @mref{newton} f@"ur eine alternative Implementierung des
97 (%i1) load("mnewton")$
99 (%i2) mnewton([x1+3*log(x1)-x2^2, 2*x1^2-x1*x2-5*x1+1],
101 (%o2) [[x1 = 3.756834008012769, x2 = 2.779849592817897]]
102 (%i3) mnewton([2*a^a-5],[a],[1]);
103 (%o3) [[a = 1.70927556786144]]
104 (%i4) mnewton([2*3^u-v/u-5, u+2^v-4], [u, v], [2, 2]);
105 (%o4) [[u = 1.066618389595407, v = 1.552564766841786]]
108 @c The variable @code{newtonepsilon} controls the precision of the
109 @c approximations. It also controls if computations are performed with
110 @c floats or bigfloats.
112 Die Optionsvariable @mref{newtonepsilon} kontrolliert die Genauigkeit der
113 Approximation. Weiterhin kontrolliert die Optionsvariable, ob die Berechnung
114 mit Gleitkommazahlen in doppelter oder gro@ss{}er Genauigkeit durchgef@"uhrt
118 (%i1) load("mnewton")$
120 (%i2) (fpprec : 25, newtonepsilon : bfloat(10^(-fpprec+5)))$
122 (%i3) mnewton([2*3^u-v/u-5, u+2^v-4], [u, v], [2, 2]);
123 (%o3) [[u = 1.066618389595406772591173b0,
124 v = 1.552564766841786450100418b0]]
128 @c --- 16.09.2011 DK -----------------------------------------------------------
130 @deffn {Funktion} newton (@var{expr}, @var{x}, @var{x_0}, @var{eps})
132 @c Returns an approximate solution of @code{@var{expr} = 0} by Newton's method,
133 @c considering @var{expr} to be a function of one variable, @var{x}.
134 @c The search begins with @code{@var{x} = @var{x_0}}
135 @c and proceeds until @code{abs(@var{expr}) < @var{eps}}
136 @c (with @var{expr} evaluated at the current value of @var{x}).
138 Die Funktion @code{newton} gibt eine N@"aherungsl@"osung der Gleichung
139 @code{@var{expr} = 0} zur@"uck, die mit dem Newton-Verfahren berechnet wird.
140 Der Ausdruck @var{expr} ist eine Funktion einer Variablen @var{x}. Der
141 Anfangswert ist @code{ @var{x} = @var{x_0}}. Der Algorithmus bricht ab, wenn
142 @code{abs(@var{expr}) < @var{eps}}, wobei der Ausdruck @var{expr} f@"ur den
143 aktuellen N@"aherungswert @var{x} ausgewertet wird.
145 @c @code{newton} allows undefined variables to appear in @var{expr},
146 @c so long as the termination test @code{abs(@var{expr}) < @var{eps}} evaluates
147 @c to @code{true} or @code{false}.
148 @c Thus it is not necessary that @var{expr} evaluate to a number.
150 @code{newton} erlaubt symbolische Variablen im Ausdruck @var{expr}, wenn der
151 Ausdruck @code{abs(@var{expr}) < @var{eps}} zu @code{true} oder @code{false}
152 ausgewertet werden kann. Daher ist es nicht notwendig, dass der Ausdruck
153 @var{expr} zu einer Zahl ausgewertet werden kann.
155 @c @code{load("newton1")} loads this function.
157 Das Kommando @code{load("newton1")} l@"adt die Funktion.
159 @c See also @code{realroots}, @code{allroots}, @code{find_root}, and
162 Siehe auch die Funktionen @mrefcomma{realroots} @mref{allroots} und
163 @mrefcomma{find_root} um numerische L@"osungen von Gleichungen zu finden.
164 Das Paket mnewton enth@"alt mit der Funktion @mref{mnewton} eine weitere
165 Implementation des Newton-Verfahrens.
167 Achtung: Auch mit @code{load("newton")} wird eine Funktion mit dem Namen
168 @code{newton} geladen, die sich jedoch in ihrer Syntax von der hier
169 beschriebenen Funktion unterscheidet und auch nicht dokumentiert ist.
174 (%i1) load ("newton1");
175 (%o1) /usr/share/maxima/5.10.0cvs/share/numeric/newton1.mac
176 (%i2) newton (cos (u), u, 1, 1/100);
177 (%o2) 1.570675277161251
178 (%i3) ev (cos (u), u = %);
179 (%o3) 1.2104963335033528E-4
180 (%i4) assume (a > 0);
182 (%i5) newton (x^2 - a^2, x, a/2, a^2/100);
183 (%o5) 1.00030487804878 a
184 (%i6) ev (x^2 - a^2, x = %);
186 (%o6) 6.098490481853958E-4 a
190 @c --- End of file mnewton.de.texi ---------------------------------------------