1 @c -----------------------------------------------------------------------------
2 @c File : MathFunctions.de.texi
3 @c License : GNU General Public License (GPL)
6 @c Translation : Dr. Dieter Kaiser
8 @c Revision : 01.11.2011
10 @c This file is part of Maxima -- GPL CAS based on DOE-MACSYMA
11 @c -----------------------------------------------------------------------------
14 * Funktionen f@"ur Zahlen::
15 * Funktionen f@"ur komplexe Zahlen::
16 * Funktionen der Kombinatorik::
17 * Wurzel- Exponential- und Logarithmusfunktion::
19 * Hyperbelfunktionen::
23 @c -----------------------------------------------------------------------------
24 @node Funktionen f@"ur Zahlen, Funktionen f@"ur komplexe Zahlen, Mathematische Funktionen, Mathematische Funktionen
25 @section Funktionen f@"ur Zahlen
26 @c -----------------------------------------------------------------------------
28 @c --- 20.02.2011 DK -----------------------------------------------------------
30 @deffn {Funktion} abs (@var{z})
32 Die Funktion @code{abs} ist die Betragsfunktion und f@"ur das numerische und
33 symbolische Rechnen geeignet. Ist das Argument @var{z} eine reelle oder
34 komplexe Zahl wird der Betrag berechnet. Wenn m@"oglich werden allgemeine
35 Ausdr@"ucke mit der Betragsfunktion vereinfacht. Maxima kann Ausdr@"ucke mit
36 der Betragsfunktion integrieren und ableiten sowie Grenzwerte von Ausdr@"ucken
37 mit der Betragsfunktion ermitteln. Das Paket @mref{abs_integrate} erweitert
38 Maximas M@"oglichkeiten, Integrale mit der Betragsfunktion zu l@"osen.
40 Die Betragsfunktion wird automatisch auf die Elemente von Listen und Matrizen
41 sowie auf die beiden Seiten von Gleichungen angewendet. Siehe
42 @mrefdot{distribute_over}
44 Siehe die Funktion @mrefcomma{cabs} um den Betrag eines komplexen Ausdrucks
45 oder einer Funktion zu berechnen.
49 Berechnung des Betrages f@"ur reelle und komplexen Zahlen sowie numerische
50 Konstanten und unendliche Gr@"o@ss{}en. Das erste Beispiel zeigt, wie die
51 Betragsfunktion von Maxima auf die Elemente einer Liste angewendet wird.
54 (%i1) abs([-4, 0, 1, 1+%i]);
55 (%o1) [4, 0, 1, sqrt(2)]
57 (%i2) abs((1+%i)*(1-%i));
62 (%i4) abs([inf, infinity, minf]);
66 Vereinfachung von Ausdr@"ucken mit der Betragsfunktion.
78 (%i8) abs(conjugate(x));
82 Ableitung und Integrale mit der Betragsfunktion. Wird das Paket
83 @nref{abs_integrate} geladen, k@"onnen weitere Integrale mit der Betragsfunktion
84 gel@"ost werden. Das letzte Beispiel zeigt die Laplacetransformation der
85 Betragsfunktion. Siehe @mrefdot{laplace}
88 (%i9) diff(x*abs(x),x),expand;
91 (%i10) integrate(abs(x),x);
96 (%i11) integrate(x*abs(x),x);
103 (%i12) load("abs_integrate")$
104 (%i13) integrate(x*abs(x),x);
107 (%o13) --------- - ------------
110 (%i14) integrate(abs(x),x,-2,%pi);
116 (%i15) laplace(abs(x),x,s);
124 @c --- 20.02.2011 DK -----------------------------------------------------------
126 @deffn {Funktion} ceiling (@var{x})
128 Die Funktion @code{ceiling} ist f@"ur das numerische und symbolische Rechnen
131 Ist das Argument @var{x} eine reelle Zahl, gibt @code{ceiling} die kleinste
132 ganze Zahl zur@"uck, die gr@"o@ss{}er oder gleich @var{x} ist.
134 Die Funktion @code{ceiling} gibt auch dann einen numerischen Wert zur@"uck, wenn
135 das Argument ein konstanter Ausdruck ist, wie zum Beispiel @code{1+%e}, der zu
136 einer reellen Zahl ausgewertet werden kann. In diesem Fall wird der konstante
137 Ausdruck in eine gro@ss{}e Gleitkommazahl umgewandelt, auf die die Funktion
138 @code{ceiling} angewendet wird. Aufgrund von Rundungsfehlern bei der Umwandlung
139 in Gleitkommazahlen kann es zu Fehlern bei der Berechnung von @code{ceiling}
140 kommen. Um diese zu minimieren, wird die Anzahl der Stellen
141 @mref{fpprec} f@"ur die Berechnung von @code{ceiling} um drei Stellen erh@"oht.
143 Ist das Argument @var{expr} der Funktion ein komplexer Ausdruck, wird eine
144 Substantivform zur@"uckgegeben.
146 Wenn m@"oglich werden Ausdr@"ucke mit der Funktion @code{ceiling} von Maxima
147 vereinfacht. Maxima kennt insbesondere Vereinfachungen f@"ur den Fall, dass
148 das Argument der Funktion @code{ceiling} ein Ausdruck mit den Funktionen
149 @mref{floor} oder @mref{round} ist. Weiterhin werden f@"ur die Vereinfachung
150 die Aussagen und Fakten der aktiven Kontexte herangezogen. Siehe
151 @ref{Funktionen und Variablen f@"ur Fakten}.
153 @code{ceiling} wird automatisch auf die Elemente von Listen und Matrizen
154 sowie auf die beiden Seiten von Gleichungen angewendet. Siehe
155 @mrefdot{distribute_over}
157 Siehe auch die Funktionen @mref{floor} und @mrefdot{round}
162 (%i1) ceiling(ceiling(x));
164 (%i2) ceiling(floor(x));
166 (%i3) declare (n, integer)$
167 (%i4) ceiling([n, abs(n), max (n, 6)]);
168 (%o4) [n, abs(n), max(6, n)]
169 (%i5) assume (x > 0, x < 1)$
174 Sind die Werte einer Funktion eine Teilmenge der ganzen Zahlen, kann diese als
175 @mref{integervalued} deklariert werden. Die Funktionen @code{ceiling} und
176 @mref{floor} k@"onnen diese Information nutzen, um Ausdr@"ucke zu vereinfachen.
179 (%i1) declare (f, integervalued)$
182 (%i3) ceiling (f(x) - 1);
186 Maxima kennt das Integral der Funktion @code{ceiling}.
189 (%i1) integrate(ceiling(x),x);
190 (- ceiling(x) + 2 x + 1) ceiling(x)
191 (%o1) -----------------------------------
196 @c --- 19.10.2010 DK -----------------------------------------------------------
198 @deffn {Funktion} entier (@var{x})
200 @code{entier} ist eine andere Bezeichnung f@"ur die Funktion @code{floor}.
201 Siehe @mrefdot{floor}
204 @c --- 20.02.2011 DK -----------------------------------------------------------
206 @deffn {Funktion} floor (@var{x})
208 Die Funktion @code{floor} ist f@"ur das numerische und symbolische Rechnen
211 Ist das Argument @var{x} eine reelle Zahl, gibt @code{floor} die gr@"o@ss{}te
212 ganze Zahl zur@"uck, die kleiner oder gleich @var{x} ist.
214 Die Funktion @code{floor} gibt auch dann einen numerischen Wert zur@"uck, wenn
215 das Argument ein konstanter Ausdruck ist, wie zum Beispiel @code{1+%e}, der zu
216 einer reellen Zahl ausgewertet werden kann. In diesem Fall wird der konstante
217 Ausdruck in eine gro@ss{}e Gleitkommazahl umgewandelt, auf die die Funktion
218 @code{floor} angewendet wird. Aufgrund von Rundungsfehlern bei der Umwandlung
219 in Gleitkommazahlen kann es zu Fehlern bei der Berechnung von @code{floor}
220 kommen. Um diese zu minimieren, wird die Anzahl der Stellen
221 @mref{fpprec} f@"ur die Berechnung von @code{floor} um drei Stellen erh@"oht.
223 Ist das Argument @var{x} der Funktion ein komplexer Ausdruck, wird eine
224 Substantivform zur@"uckgegeben.
226 Wenn m@"oglich werden Ausdr@"ucke mit der Funktion @code{floor} von Maxima
227 vereinfacht. Maxima kennt insbesondere Vereinfachungen f@"ur den Fall, dass
228 das Argument der Funktion @code{floor} ein Ausdruck mit den Funktionen
229 @mref{ceiling} oder @mref{round} ist. Weiterhin werden f@"ur die Vereinfachung
230 die Aussagen und Fakten der aktiven Kontexte herangezogen. Siehe
231 @ref{Funktionen und Variablen f@"ur Fakten}.
233 @code{floor} wird automatisch auf die Elemente von Listen und Matrizen
234 sowie auf die beiden Seiten von Gleichungen angewendet. Siehe
235 @mrefdot{distribute_over}
237 Siehe auch die Funktionen @mref{ceiling} und @mrefdot{round}
242 (%i1) floor(ceiling(x));
244 (%i2) floor(floor(x));
246 (%i3) declare(n, integer);
248 (%i4) floor([n, abs(n), min (n, 6)]);
249 (%o4) [n, abs(n), min(6, n)]
250 (%i5) assume(x>0, x<1)$
255 Sind die Werte einer Funktion eine Teilmenge der ganzen Zahlen, kann diese als
256 @mref{integervalued} deklariert werden. Die Funktionen @mref{ceiling} und
257 @code{floor} k@"onnen diese Information nutzen, um Ausdr@"ucke zu vereinfachen.
260 (%i1) declare (f, integervalued)$
263 (%i3) ceiling(f(x) - 1);
267 Maxima kennt das Integral der Funktion @code{floor}.
270 (%i6) integrate(floor(x),x);
271 (- floor(x) + 2 x - 1) floor(x)
272 (%o6) -------------------------------
277 @c --- 19.10.2010 DK -----------------------------------------------------------
279 @deffn {Funktion} fix (@var{x})
281 @code{fix} ist eine andere Bezeichnung f@"ur die Funktion @code{floor}. Siehe
285 @c --- 22.02.2011 DK -----------------------------------------------------------
287 @deffn {Funktion} lmax (@var{L})
289 Ist das Argument @var{L} eine Liste oder Menge, wird die Funktion @mref{max} auf
290 die Elemente der Liste oder Menge angewendet und das Ergebnis zur@"uckgegeben.
291 Ist @var{L} keine Liste oder Menge, signalisiert Maxima einen Fehler.
297 (%i1) L:[1+%e, %pi, 3];
298 (%o1) [%e + 1, %pi, 3]
304 @c --- 22.02.2011 DK -----------------------------------------------------------
306 @deffn {Funktion} lmin (@var{L})
308 Ist das Argument @var{L} eine Liste oder Menge, wird die Funktion @mref{min} auf
309 die Elemente der Liste oder Menge angewendet und das Ergebnis zur@"uckgegeben.
310 Ist @var{L} keine Liste oder Menge, signalisiert Maxima einen Fehler.
315 (%i1) L:[1+%e, %pi, 3];
316 (%o1) [%e + 1, %pi, 3]
322 @c --- 22.02.2011 DK -----------------------------------------------------------
324 @deffn {Funktion} max (@var{x_1}, @dots{}, @var{x_n})
326 Sind alle Argumente @var{x_1}, @dots{}, @var{x_n} Zahlen oder konstante
327 Ausdr@"ucke wie zum Beispiel @code{1+%e} oder @code{sin(1)}, dann wird der
328 gr@"o@ss{}te Zahlenwert zur@"uckgegeben. Sind symbolische Variablen oder
329 allgemeine Ausdr@"ucke unter den Argumenten, gibt Maxima einen vereinfachten
330 Ausdruck zur@"uck. Die unendliche Gr@"o@ss{}en @mref{inf} und @mref{minf}@w{}
331 k@"onnen als Argument auftreten.
333 Die Vereinfachung der Funktion @code{max} kann kontrolliert werden, in dem mit
334 der Funktion @mref{put} dem Symbol @code{trylevel} zu der Eigenschaft
335 @code{maxmin} ein Wert zwischen 1 bis 3 gegeben wird. Folgende Werte k@"onnen
336 mit der Funktion @code{put} gesetzt werden:
339 @item put(trylevel, 1, maxmin)
340 @code{trylevel} hat den Wert 1. Das ist der Standardwert. Maxima f@"uhrt
341 keine besonderen Vereinfachungen aus.
342 @item put(trylevel, 2, maxmin)
343 Maxima wendet die Vereinfachung @code{max(e,-e) --> |e|} an.
344 @item put(trylevel, 3, maxima)
345 Maxima wendet die Vereinfachung @code{max(e,-e) --> |e|} an und versucht
346 Ausdr@"ucke zu eliminieren, die zwischen zwei anderen Argumenten liegen. So
347 wird zum Beispiel @code{max(x, 2*x, 3*x)} zu @code{max(x, 3*x)} vereinfacht.
350 Mit dem Kommando @code{get(trylevel, maxmin)} wird der aktuelle Wert f@"ur
351 das Symbol @code{trylevel} angezeigt. Siehe die Funktion @mrefdot{get}
353 @code{max} ber@"ucksichtigt bei der Vereinfachung von Ausdr@"ucken die
354 Aussagen und Fakten der aktiven Kontexte. Siehe das Kapitel
355 @ref{Funktionen und Variablen f@"ur Fakten}.
360 (%i1) max(1.6, 3/2, 1);
362 (%i2) max(1.5b0,1.5,3/2);
368 (%i3) max(%e,%pi,1,2,3);
370 (%i4) max(1+%e,%pi,1,2,3);
381 @c --- 22.02.2011 DK -----------------------------------------------------------
383 @deffn {Funktion} min (@var{x_1}, @dots{}, @var{x_n})
385 Sind alle Argumente @var{x_1}, @dots{}, @var{x_n} Zahlen oder konstante
386 Ausdr@"ucke wie zum Beispiel @code{1+%e} oder @code{sin(1)}, dann wird der
387 kleinste Zahlenwert zur@"uckgegeben. Sind symbolische Variablen oder
388 allgemeine Ausdr@"ucke unter den Argumenten, gibt Maxima einen vereinfachten
389 Ausdruck zur@"uck. Die unendliche Gr@"o@ss{}en @mref{inf} und @mref{minf}@w{}
390 k@"onnen als Argument auftreten.
392 Die Vereinfachung der Funktion @code{min} kann kontrolliert werden, in dem mit
393 der Funktion @mref{put} dem Symbol @code{trylevel} zu der Eigenschaft
394 @code{maxmin} ein Wert zwischen 1 bis 3 gegeben wird. Folgende Werte k@"onnen
395 mit der Funktion @code{put} gesetzt werden:
398 @item put(trylevel, 1, maxmin)
399 @code{trylevel} hat den Wert 1. Das ist der Standardwert. Maxima f@"uhrt
400 keine besonderen Vereinfachungen aus.
401 @item put(trylevel, 2, maxmin)
402 Maxima wendet die Vereinfachung @code{min(e,-e) --> |e|} an.
403 @item put(trylevel, 3, maxima)
404 Maxima wendet die Vereinfachung @code{min(e,-e) --> |e|} an und versucht
405 Ausdr@"ucke zu eliminieren, die zwischen zwei anderen Argumenten liegen. So
406 wird zum Beispiel @code{min(x, 2*x, 3*x)} zu @code{min(x, 3*x)} vereinfacht.
409 Mit dem Kommando @code{get(trylevel, maxmin)} wird der aktuelle Wert f@"ur
410 das Symbol @code{trylevel} angezeigt. Siehe die Funktion @mrefdot{get}
412 @code{min} ber@"ucksichtigt bei der Vereinfachung von Ausdr@"ucken die
413 Aussagen und Fakten der aktiven Kontexte. Siehe das Kapitel
414 @nrefdot{Funktionen und Variablen f@"ur Fakten}
419 (%i1) min(1.6, 3/2, 1);
421 (%i2) min(1.5b0,1.5,3/2);
427 (%i4) min(1+%e,%pi,3);
438 @c --- 20.02.2011 DK -----------------------------------------------------------
440 @deffn {Funktion} round (@var{x})
442 Die Funktion @code{round} ist f@"ur das numerische und symbolische Rechnen
445 Ist das Argument @var{x} eine reelle Zahl, gibt @code{round} die am
446 n@"achsten liegende ganze Zahl zur@"uck. Vielfache von 1/2 werden auf die
447 n@"achste gerade ganze Zahl gerundet.
449 Die Funktion @code{round} gibt auch dann einen numerischen Wert zur@"uck, wenn
450 das Argument ein konstanter Ausdruck ist, wie zum Beispiel @code{1+%e}, der zu
451 einer reellen Zahl ausgewertet werden kann. In diesem Fall wird der konstante
452 Ausdruck in eine gro@ss{}e Gleitkommazahl umgewandelt, auf die die Funktion
453 @code{round} angewendet wird. Aufgrund von Rundungsfehlern bei der Umwandlung
454 in Gleitkommazahlen kann es zu Fehlern bei der Berechnung von @code{round}
455 kommen. Um diese zu minimieren, wird die Anzahl der Stellen
456 @mref{fpprec} f@"ur die Berechnung von @code{round} um drei Stellen erh@"oht.
458 Ist das Argument @var{x} der Funktion ein komplexer Ausdruck, wird eine
459 Substantivform zur@"uckgegeben.
461 Wenn m@"oglich werden Ausdr@"ucke mit der Funktion @code{round} von Maxima
462 vereinfacht. Maxima kennt insbesondere Vereinfachungen f@"ur den Fall, dass
463 das Argument der Funktion @code{round} ein Ausdruck mit den Funktionen
464 @mref{ceiling} oder @mref{floor} ist. Weiterhin werden f@"ur die Vereinfachung
465 die Aussagen und Fakten der aktiven Kontexte herangezogen. Siehe
466 @ref{Funktionen und Variablen f@"ur Fakten}.
468 @code{round} wird automatisch auf die Elemente von Listen und Matrizen
469 sowie auf die beiden Seiten von Gleichungen angewendet. Siehe
470 @mrefdot{distribute_over}
472 Siehe auch die Funktionen @mref{ceiling} und @mrefdot{floor}
477 (%i1) round(floor(x));
479 (%i2) round(round(x));
481 (%i3) declare(n, integer);
483 (%i4) round([n, abs(n), min(n,6)]);
484 (%o4) [n, abs(n), min(6, n)]
487 Sind die Werte einer Funktion eine Teilmenge der ganzen Zahlen, kann diese als
488 @mref{integervalued} deklariert werden. Die Funktion @code{round} kann diese
489 Information nutzen, um Ausdr@"ucke zu vereinfachen.
492 (%i1) declare(f, integervalued);
496 (%i3) round(f(x) - 1);
501 @c --- 22.02.2011 DK -----------------------------------------------------------
503 @deffn {Funktion} signum (@var{z})
505 Die Signumfunktion @code{signum} ist f@"ur das numerische und symbolische
506 Rechnen geeignet. Ist das Argument @var{z} eine Zahl, ist das Ergebnis 0, 1
507 oder -1, wenn die Zahl Null, positiv oder negativ ist. Das Argument kann auch
508 ein konstanter Ausdruck wie @code{%pi} oder @code{1+%e} sein. Ist das Argument
509 @var{z} eine komplexe Zahl, vereinfacht die der Ausdruck @code{signum(z)} zu
512 Ist das Argument @var{z} keine Zahl oder kein konstanter Ausdruck, versucht
513 Maxima den Ausdruck zu vereinfachen. Maxima kann die Funktion @code{signum}
514 differenzieren. Wird das Paket @nref{abs_integrate} geladen, kann Maxima
515 Integrale mit der Funktion @code{signum} l@"osen.
517 @code{signum} wird automatisch auf die Elemente von Listen und Matrizen
518 sowie auf die beiden Seiten von Gleichungen angewendet. Siehe
519 @mrefdot{distribute_over}
523 Ergebnisse f@"ur verschiedene Zahlen und konstante Ausdr@"ucke. Die Beispiele
524 zeigen, dass das Ergebnis der Signumfunktion den Typ der Zahl erh@"alt. Die
525 unendlichen Gr@"o@ss{}en @mref{minf} und @mref{inf} k@"onnen als Argument
529 (%i1) signum([-1.5, 0, 0.0, 1.5, 1.5b0, %e, sin(1), cos(4)]);
530 (%o1) [- 1.0, 0, 0.0, 1.0, 1.0b0, 1, 1, - 1]
533 (%o2) ------- + -------
535 (%i3) signum([minf,inf]);
539 Vereinfachungen der Signumfunktion.
543 (%o3) signum(x) signum(y)
548 Wird das Paket @nref{abs_integrate} geladen, kann Maxima Integrale mit der
549 Signumfunktion l@"osen. Ausdr@"ucke mit der Signumfunktion k@"onnen
550 differenziert werden.
553 (%i5) load("abs_integrate")$
555 (%i6) integrate(signum(x),x);
558 (%i7) integrate(sin(x)*signum(x),x);
559 (%o7) (1 - cos(x)) signum(x)
562 (%o7) signum(x) sin(x)
566 @c -----------------------------------------------------------------------------
567 @node Funktionen f@"ur komplexe Zahlen, Funktionen der Kombinatorik, Funktionen f@"ur Zahlen, Mathematische Funktionen
568 @section Funktionen f@"ur komplexe Zahlen
569 @c -----------------------------------------------------------------------------
571 @c --- 20.02.2011 DK -----------------------------------------------------------
573 @deffn {Funktion} cabs (@var{expr})
575 Berechnet den Betrag eines komplexen Ausdrucks @var{expr}. Im Unterschied
576 zu der Funktion @mrefcomma{abs} zerlegt die Funktion @code{cabs} einen komplexen
577 Ausdruck immer in einen Realteil und Imagin@"arteil, um den komplexen Betrag zu
578 berechnen. Sind @var{x} und @var{y} zwei reelle Variablen oder Ausdr@"ucke,
579 berechnet die Funktion @code{cabs} den Betrag des komplexen Ausdrucks
586 Die Funktion @code{cabs} nutzt Symmetrieeigenschaften und implementierte
587 Eigenschaften komplexer Funktionen, um den Betrag eines Ausdrucks zu berechnen.
588 Sind solche Eigenschaften f@"ur eine Funktion vorhanden, k@"onnen diese mit der
589 Funktion @mref{properties} angezeigt werden. Eigenschaften, die das Ergebnis
590 der Funktion @code{cabs} bestimmen, sind: @code{mirror symmetry},
591 @code{conjugate function} und @code{complex characteristic}.
593 @code{cabs} ist eine Verbfunktion, die nicht f@"ur das symbolische Rechnen
594 geeignet ist. F@"ur das symbolische Rechnen wie der Integration oder der
595 Ableitung von Ausdr@"ucken mit der Betragsfunktion muss die Funktion @code{abs}
598 Das Ergebnis der Funktion @code{cabs} kann die Betragsfunktion @mref{abs} und
599 den Arkustangens @mref{atan2} enthalten.
601 @code{cabs} wird automatisch auf die Elemente von Listen und Matrizen sowie auf
602 die beiden Seiten von Gleichungen angewendet.
604 Siehe auch die Funktionen @mrefcomma{rectform} @mrefcomma{realpart}@w{}
605 @mrefcomma{imagpart} @mrefcomma{carg} @mrefcomma{conjugate} und
606 @mref{polarform} f@"ur das Rechnen mit komplexen Zahlen.
610 Zwei Beispiele mit der Wurzelfunktion @mref{sqrt} und der Sinusfunktion
614 (%i1) cabs(sqrt(1+%i*x));
617 (%i2) cabs(sin(x+%i*y));
619 (%o2) sqrt(cos (x) sinh (y) + sin (x) cosh (y))
622 Die Funktion @mref{erf} hat Spiegelsymmetrie, die hier f@"ur die Berechnung des
623 komplexen Betrages angewendet wird.
626 (%i3) cabs(erf(x+%i*y));
629 (erf(%i y + x) - erf(%i y - x))
630 (%o3) sqrt(--------------------------------
633 (erf(%i y + x) + erf(%i y - x))
634 - --------------------------------)
639 Maxima kennt komplexe Eigenschaften der Besselfunktionen, um den komplexen
640 Betrag zu vereinfachen. Dies ist ein Beispiel f@"ur die Besselfunktion
644 (%i4) cabs(bessel_j(1,%i));
645 (%o4) abs(bessel_j(1, %i))
649 @c --- 20.02.2011 DK -----------------------------------------------------------
651 @deffn {Funktion} carg (@var{expr})
653 Gibt das komplexe Argument des Ausdrucks @var{expr} zur@"uck. Das komplexe
654 Argument ist ein Winkel @code{theta} im Intervall @code{(-%pi, %pi)} derart,
655 dass @var{expr} = @code{r exp (theta %i)} gilt, wobei @code{r} den Betrag des
656 komplexen Ausdrucks @var{expr} bezeichnet. Das ist die Polarform des Ausdrucks,
657 wie sie auch von der Funktion @mref{polarform} zur@"uckgegeben wird. Der Betrag
658 des komplexen Ausdrucks kann mit der Funktion @mref{cabs} berechnet werden.
660 Das Ergebnis der Funktion @code{carg} kann die Funktion @mref{atan2} enthalten.
662 @code{carg} wird automatisch auf die Elemente von Listen und Matrizen sowie auf
663 die beiden Seiten von Gleichungen angewendet. Siehe @mrefdot{distribute_over}
665 Die Funktion @code{carg} ist eine Verbfunktion, mit der nicht symbolisch
666 gerechnet werden kann.
668 Siehe auch die Funktionen @mrefcomma{rectform} @mref{realpart} und
669 @mref{imagpart} sowie die Funktionen @mref{cabs} und @mrefdot{conjugate}
682 (%i3) carg (exp (%i));
685 (%i4) carg (exp (3/2 * %pi * %i));
689 (%i5) carg(exp(x+%i*y));
690 (%o5) atan2(sin(y), cos(y))
692 (%i6) carg(sqrt(x+%i*y));
696 (%i7) carg(sqrt(1+%i*y));
703 @c --- 20.02.2011 DK -----------------------------------------------------------
705 @deffn {Funktion} conjugate (@var{expr})
707 Gibt den konjugiert komplexen Wert des Ausdrucks @var{expr} zur@"uck. Sind
708 @var{x} und @var{y} reelle Variablen oder Ausdr@"ucke, dann hat der Ausdruck
709 @code{x + %i*y} das Ergebnis @code{x - %i*y}. Die Funktion @code{conjugate} ist
710 f@"ur numerische und symbolische Rechnungen geeignet.
712 Maxima kennt Regeln, um den konjugierten Wert f@"ur Summen, Produkte und
713 Quotienten von komplexen Ausdr@"ucken zu vereinfachen. Weiterhin kennt Maxima
714 Symmetrieeigenschaften und komplexe Eigenschaften von Funktionen, um den
715 konjugierten Wert mit diesen Funktionen zu vereinfachen. Sind solche
716 Eigenschaften f@"ur eine Funktion vorhanden, k@"onnen diese mit der
717 Funktion @mref{properties} angezeigt werden. Eigenschaften, die das Ergebnis
718 der Funktion @code{conjugate} bestimmen, sind: @code{mirror symmetry},
719 @code{conjugate function} und @code{complex characteristic}.
721 @code{conjugate} wird automatisch auf die Elemente von Listen und Matrizen sowie
722 auf die beiden Seiten von Gleichungen angewendet. Siehe
723 @mrefdot{distribute_over}
725 F@"ur das Rechnen mit komplexen Ausdr@"ucken siehe auch die Funktionen
726 @mref{cabs} und @mref{carg} sowie @mref{rectform} und @mrefdot{polarform}
730 Beispiele mit reellen, imagin@"aren und komplexen Variablen.
733 (%i1) declare ([x, y], real, [z1, z2], complex, j, imaginary);
735 (%i2) conjugate(x + %i*y);
737 (%i3) conjugate(z1*z2);
738 (%o3) conjugate(z1) conjugate(z2)
739 (%i4) conjugate(j/z2);
741 (%o4) - -------------
745 Im Folgenden nutzt Maxima Symmetrieeigenschaften, um den konjugiert komplexen
746 Wert der Funktionen @mref{gamma} und @mref{sin} zu berechnen. Die
747 Logarithmusfunktion @mref{log} hat Spiegelsymmetrie, wenn das Argument einen
748 positiven Realteil hat.
751 (%i5) conjugate(gamma(x+%i*y));
752 (%o5) gamma(x - %i y)
753 (%i6) conjugate(sin(x+%i*y));
754 (%o6) - sin(%i y - x)
755 (%i7) conjugate(log(x+%i*y));
756 (%o7) conjugate(log(%i y + x))
757 (%i8) conjugate(log(1+%i*y));
762 @c --- 20.02.2011 DK -----------------------------------------------------------
764 @deffn {Funktion} imagpart (@var{expr})
766 Gibt den Imagin@"arteil des Ausrucks @var{expr} zur@"uck. Intern berechnet
767 Maxima den Imagin@"arteil mit der Funktion @mrefcomma{rectform} die einen
768 Ausdruck in den Realteil und in den Imagin@"arteil zerlegt. Daher treffen die
769 Ausf@"uhrungen zu @code{rectform} auch auf die Funktion @code{imagpart} zu.
771 Wie die Funktion @code{rectform} ist auch die Funktion @code{imagpart} eine
772 Verbfunktion, mit der nicht symbolisch gerechnet werden kann.
774 @code{imagpart} wird automatisch auf die Elemente von Listen und Matrizen sowie
775 auf die beiden Seiten von Gleichungen angewendet. Siehe
776 @mrefdot{distribute_over}
778 Mit der Funktion @mref{realpart} wird der Realteil eines Ausdrucks berechnet.
780 Siehe auch die Funktionen @mrefcomma{cabs} @mref{carg} und
781 @mref{conjugate} f@"ur das Rechnen mit komplexen Zahlen. Mit der Funktion
782 @mref{polarform} kann ein komplexer Ausdruck in die Polarform gebracht werden.
786 F@"ur weitere Erl@"auterungen dieser Beispiele siehe auch die Funktion
790 (%i1) imagpart((2-%i)/(1-%i));
794 (%i2) imagpart(sin(x+%i*y));
796 (%i3) imagpart(gamma(x+%i*y));
797 %i (gamma(x - %i y) - gamma(%i y + x))
798 (%o3) --------------------------------------
800 (%i4) imagpart(bessel_j(1,%i));
801 (%o4) bessel_j(1, %i)
805 @c --- 20.02.2011 DK -----------------------------------------------------------
807 @deffn {Funktion} polarform (@var{expr})
809 Gibt den Ausdruck @var{expr} in der Polarform @code{r %e^(%i theta)} zur@"uck.
810 @code{r} ist der Betrag des komplexen Ausdrucks, wie er auch mit der Funktion
811 @mref{cabs} berechnet werden kann. @code{theta} ist das Argument des komplexen
812 Ausdrucks, das mit der Funktion @mref{carg} berechnet werden kann.
814 Maxima kennt komplexe Eigenschaften von Funktionen, die bei der Berechnung der
815 Polarform angewendet werden. Siehe die Funktion @mref{cabs} f@"ur weitere
818 Wenn mit komplexen Ausdr@"ucken in der Polarform gerechnet werden soll, ist es
819 hilfreich die Optionsvariable @mref{%emode} auf den Wert @code{false} zu setzen.
820 Damit wird verhindert, dass Maxima komplexe Ausdr@"ucke mit der
821 Exponentialfunktion @mref{exp} automatisch in die Standardform vereinfacht.
823 @code{polarform} wird automatisch auf die Elemente von Listen und Matrizen sowie
824 auf die beiden Seiten von Gleichungen angewendet. Siehe
825 @mrefdot{distribute_over}
827 Die Funktion @code{polarform} ist eine Verbfunktion, mit der nicht symbolisch
828 gerechnet werden kann.
830 Siehe auch die Funktionen @mrefcomma{cabs} @mref{carg} und
831 @mref{conjugate} f@"ur das Rechnen mit komplexen Zahlen. Mit der Funktion
832 @mref{rectform} kann ein komplexer Ausdruck in die Standardform gebracht werden.
836 Die allgemeine Polarform eines komplexen Ausdrucks. Die Variablen @var{x} und
837 @var{y} werden von Maxima als reell angenommen.
840 (%i1) polarform(x+%i*y);
843 (%o1) sqrt(y + x ) %e
847 Die Polarform einer komplexen Zahl und eines Ausdrucks mit einer reellen
851 (%i2) polarform(4/5+3*%i/5);
854 (%i3) polarform(sqrt(1+%i*x));
861 Wenn in der Polarform gerechnet werden soll, ist es hilfreich die
862 Optionsvariable @mref{%emode} auf den Wert @code{false} zu setzen. Damit wird
863 verhindert, dass Maxima komplexe Ausdr@"ucke mit der Exponentialfunktion
864 @mref{exp} automatisch in eine Standardform vereinfacht.
867 (%i4) z:polarform(1+%i);
874 (%o5) 2 (------- - -------)
886 @c --- 20.02.2011 DK -----------------------------------------------------------
888 @deffn {Funktion} realpart (@var{expr})
890 Gibt den Realteil des Ausdrucks @var{expr} zur@"uck. Intern berechnet Maxima
891 den Realteil mit der Funktion @mrefcomma{rectform} die einen Ausdruck in den
892 Realteil und in den Imagin@"arteil zerlegt. Daher treffen die Ausf@"uhrungen
893 zu @code{rectform} auch auf die Funktion @code{realpart} zu.
895 Wie die Funktion @code{rectform} ist auch die Funktion @code{realpart} eine
896 Verbfunktion, mit der nicht symbolisch gerechnet werden kann.
898 @code{realpart} wird automatisch auf die Elemente von Listen und Matrizen sowie
899 auf die beiden Seiten von Gleichungen angewendet. Siehe
900 @mrefdot{distribute_over}
902 Mit der Funktion @mref{imagpart} wird der Imagin@"arteil eines Ausdrucks
905 Siehe auch die Funktionen @mrefcomma{cabs} @mref{carg} und
906 @mref{conjugate} f@"ur das Rechnen mit komplexen Zahlen. Mit der Funktion
907 @mref{polarform} kann ein komplexer Ausdruck in die Polarform gebracht werden.
911 F@"ur weitere Erl@"auterungen dieser Beispiele siehe auch die Funktion
915 (%i1) realpart((2-%i)/(1-%i));
919 (%i2) realpart(sin(x+%i*y));
921 (%i3) realpart(gamma(x+%i*y));
922 gamma(%i y + x) + gamma(x - %i y)
923 (%o3) ---------------------------------
925 (%i4) realpart(bessel_j(1,%i));
930 @c --- 20.02.2011 DK -----------------------------------------------------------
932 @deffn {Funktion} rectform (@var{expr})
934 Zerlegt den Ausdruck @var{expr} in den Realteil @code{a} und den Imagin@"arteil
935 @code{b} und gibt den komplexen Ausdruck in der Standardform @code{a + b %i}
938 Die Funktion @code{rectform} nutzt Symmetrieeigenschaften und implementierte
939 Eigenschaften komplexer Funktionen, um den Realteil und Imagin@"arteil eines
940 komplexen Ausdrucks zu berechnen. Sind solche Eigenschaften f@"ur eine Funktion
941 vorhanden, k@"onnen diese mit der Funktion @mref{properties} angezeigt werden.
942 Eigenschaften, die das Ergebnis der Funktion @code{rectform} bestimmen, sind:
943 @code{mirror symmetry}, @code{conjugate function} und
944 @code{complex characteristic}.
946 @code{rectform} ist eine Verbfunktion, die nicht f@"ur das symbolische Rechnen
949 @code{rectform} wird automatisch auf die Elemente von Listen und Matrizen sowie
950 auf die beiden Seiten von Gleichungen angewendet. Siehe
951 @mrefdot{distribute_over}
953 Die Funktionen @mref{realpart} und @mref{imagpart} geben jeweils allein den
954 Realteil und den Imagin@"arteil eines Ausdrucks zur@"uck. Um einen Ausdruck in
955 die Polarform zu bringen, kann die Funktion @mref{polarform} verwendet werden.
957 Siehe auch die Funktionen @mrefcomma{cabs} @mref{carg} und
958 @mref{conjugate} f@"ur das Rechnen mit komplexen Zahlen.
962 Zerlegung eines komplexen Ausdrucks und der Sinusfunktion @mref{sin} in den
963 Realteil und Imagin@"arteil. Maxima kennt komplexe Eigenschaften der
964 trigonometrischen Funktionen, um den Realteil und den Imagin@"arteil zu
968 (%i1) rectform((2-%i)/(1-%i));
974 (%i2) rectform(sin(x+%i*y));
975 (%o2) %i cos(x) sinh(y) + sin(x) cosh(y)
978 Bei der Zerlegung in einen Realteil und einen Imagin@"arteil nutzt Maxima die
979 Spiegelsymmetrie der Gammfunktion @mrefdot{gamma} Die Eigenschaft der
980 Spiegelsymmetrie wird mit der Funktion @mref{properties} angezeigt, der Eintrag
981 lautet @code{mirror symmetry}.
984 (%i3) properties(gamma);
985 (%o3) [mirror symmetry, noun, rule, gradef, transfun]
987 (%i4) rectform(gamma(x+%i*y));
988 gamma(%i y + x) + gamma(x - %i y)
989 (%o4) ---------------------------------
991 gamma(x - %i y) - gamma(%i y + x)
992 - ---------------------------------
996 Maxima kennt komplexe Eigenschaften der Besselfunktionen. Die Besselfunktion
997 @mref{bessel_j} ist f@"ur eine ganzzahlige Ordnung und einem imagin@"aren
998 Argument rein imagin@"ar.
1001 (%i5) rectform(bessel_j(1,%i));
1002 (%o5) %i bessel_j(1, %i)
1006 @c -----------------------------------------------------------------------------
1007 @node Funktionen der Kombinatorik, Wurzel- Exponential- und Logarithmusfunktion, Funktionen f@"ur komplexe Zahlen, Mathematische Funktionen
1008 @section Funktionen der Kombinatorik
1009 @c -----------------------------------------------------------------------------
1011 @c --- 25.02.2011 DK -----------------------------------------------------------
1013 @deffn {Operator} !!
1015 @fnindex Doppelte Fakult@"at
1018 Ist der Operator der doppelten Fakult@"at.
1020 F@"ur eine positive ganze Zahl @code{n}, wird @code{n!!} zu dem Produkt
1021 @code{n (n-2) (n-4) (n-6) ... (n - 2 (k-1))} vereinfacht, wobei @code{k} gleich
1022 @code{floor(n/2)} ist und @mref{floor} die gr@"o@ss{}te ganze Zahl als Ergebnis
1023 hat, die kleiner oder gleich @code{n/2} ist.
1025 F@"ur ein Argument @code{n}, das keine ganze positive Zahl ist, gibt @code{n!!}
1026 die Substantivform @code{genfact(n, n/2,2)} zur@"uck. Siehe die Funktion
1029 Die Verallgemeinerung der doppelten Fakult@"at f@"ur reelle und komplexe Zahlen
1030 ist als die Funktion @mref{double_factorial} implementiert.
1035 (%i1) [0!!, 1!!, 2!!, 3!!, 4!!, 5!!, 6!!, 7!!, 8!!];
1036 (%o1) [1, 1, 2, 3, 8, 15, 48, 105, 384]
1038 (%o2) genfact(1.5, 0, 2)
1041 (%o3) genfact(x, -, 2)
1046 @c --- 26.02.2011 DK -----------------------------------------------------------
1048 @deffn {Funktion} binomial (@var{x}, @var{y})
1050 Ist der Binominialkoeffizient, der definiert ist als
1054 binomial(x, y) = -----------
1059 $${{x}\choose{y}}={{x!}\over{\left(x-y\right)!\,y!}}$$
1062 Die Funktion @code{binomial} ist f@"ur das numerische und symbolische Rechnen
1065 Sind die Argumente @var{x} oder @var{y} ganze Zahlen, wird der
1066 Binominialkoeffizient zu einer ganzen Zahl vereinfacht. Sind die Argumente
1067 @var{x} und @var{y} reelle oder komplexe Gleitkommazahlen, wird der
1068 Binominialkoeffizient mit der entsprechenden verallgemeinerten Fakult@"at
1069 berechnet. Siehe auch @mref{factorial} und @mrefdot{gamma}
1071 Ist das Argument @var{y} oder die Differenz @var{x-y} eine ganz Zahl, wird
1072 der Binominialkoeffizient zu einem Polynom vereinfacht.
1074 Mit den Funktionen @mref{makefact} oder @mref{makegamma} werden
1075 Binominialkoeffizienten in einem Ausdruck durch @"aquivalente Ausdr@"ucke mit
1076 der Fakult@"at oder der Gammafunktion ersetzt.
1078 Maxima kennt die Ableitung des Binominialkoeffizienten nach den Argumenten
1079 @var{x} und @var{y}.
1084 (%i1) binomial(11, 7);
1086 (%i2) binomial(%i, 1.5);
1087 (%o2) .3693753994635863 %i - .7573400496142132
1088 (%i3) binomial(x, 3);
1090 (%o3) -----------------
1092 (%i4) binomial(x+3, 3);
1093 (x + 1) (x + 2) (x + 3)
1094 (%o4) -----------------------
1096 (%i5) makefact(binomial(x,y));
1101 (%i6) diff(binomial(x,y), y);
1102 (%o6) - binomial(x, y) (psi (y + 1) - psi (- y + x + 1))
1107 @c --- 25.02.2011 DK -----------------------------------------------------------
1108 @anchor{double_factorial}
1109 @deffn {Funktion} double_factorial (z)
1111 Ist die doppelte Fakult@"at, die allgemein definiert ist als
1114 2 1/4 (1 - cos(z %pi)) z/2 z
1115 (---) 2 gamma(- + 1)
1120 $$\left({{2}\over{\pi}}\right)^{{{1}\over{4}}\,\left(1-\cos \left(z\,
1121 \pi\right)\right)}\,2^{{{z}\over{2}}}\,\Gamma\left({{z}\over{2}}+1
1125 Die Funktion @code{double_factorial} ist f@"ur das numerische und symbolische
1126 Rechnen geeignet. Ist das Argument @var{z} eine ganze Zahl, eine
1127 Gleitkommazahl, eine gro@ss{}e Gleitkommazahl oder eine komplexe Gleitkommazahl,
1128 dann wird ein numerisches Ergebnis berechnet. F@"ur eine positive ganze Zahl
1129 ist das Ergebnis gleich dem Ergebnis des Operators der doppelten Fakult@"at
1130 @mref{!!}. F@"ur rationale Zahlen ist das Ergebnis eine Substantivform.
1132 F@"ur negative gerade ganze Zahlen ist die Funktion @code{double_factorial}
1135 Hat die Optionsvariable @mref{factorial_expand} den Wert @code{true},
1136 vereinfacht Maxima @code{double_factorial} f@"ur das Argument @code{n-1} und
1137 f@"ur Argumente @code{n+2*k}, wobei @code{k} eine ganze Zahl ist.
1139 Maxima kennt die Ableitung der Funktion @code{double_factorial}.
1141 @code{double_factorial} wird automatisch auf die Elemente von Listen und
1142 Matrizen sowie auf die beiden Seiten von Gleichungen angewendet. Siehe
1143 @mrefdot{distribute_over}
1147 Numerische Ergebnisse f@"ur ganze Zahlen, Gleitkommazahlen und komplexen
1151 (%i1) double_factorial([-3, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
1152 (%o1) [- 1, 1, 1, 1, 2, 3, 8, 15, 48, 105, 384, 945, 3840]
1154 (%i2) double_factorial([1.5, 1.5b0, 0.5+%i, 0.5b0+%i]);
1155 (%o2) [1.380662681753386, 1.380662681753387b0,
1156 .4186422526242637 - .7218816624466643 %i,
1157 4.186422526242633b-1 - 7.218816624466641b-1 %i]
1160 Vereinfachungen, wenn die Optionsvariable @mref{factorial_expand} den Wert
1164 (%i3) factorial_expand:true;
1166 (%i4) double_factorial(n-1);
1168 (%o4) -------------------
1170 (%i5) double_factorial(n+4);
1171 (%o5) (n + 2) (n + 4) double_factorial(n)
1172 (%i6) double_factorial(n-4);
1175 (%o6) -------------------
1180 Die Ableitung der Funktion @code{double_factorial}.
1183 (%i7) diff(double_factorial(x), x);
1185 %pi log(---) sin(%pi x)
1187 (%o7) (double_factorial(x) (----------------------- + psi (- + 1)
1193 @c --- 26.02.2011 DK -----------------------------------------------------------
1195 @deffn {Funktion} factcomb (@var{expr})
1197 Fasst Faktoren mit Fakult@"aten im Ausdruck @var{expr} zusammen. Zum Beispiel
1198 wird @code{(n+1)*n!} zu @code{(n+1)!} zusammengefasst.
1200 Hat die Optionsvariable @mref{sumsplitfact} den Wert @code{false}, wird nach
1201 der Vereinfachung mit @code{factcomb} die Funktion @mref{minfactorial} auf den
1202 Ausdruck @var{expr} angewendet.
1207 (%i1) expr: ((n+1)*n!)/(n+2)!;
1211 (%i2) factcomb(expr);
1217 (%i3) factcomb(expr), sumsplitfact:false;
1224 @c --- 26.02.2011 DK -----------------------------------------------------------
1227 @deffn {Funktion} factorial (@var{z})
1228 @deffnx {Operator} !
1233 Die Funktion @code{factorial} ist f@"ur das numerische und symbolische Rechnen
1234 der Fakult@"at geeignet. Der Operator der Fakult@"at @code{!}, ist identisch
1235 mit der Funktion @code{factorial}.
1237 F@"ur eine ganze Zahl @code{n}, vereinfacht @code{n!} zum Produkt der ganzen
1238 Zahlen von 1 bis einschlie@ss{}lich @code{n}. @code{0!} vereinfacht zu 1.
1239 F@"ur reelle und komplexe Gleitkommazahlen wird @code{z!} mit der
1240 Verallgemeinerung @code{gamma(z+1)} berechnet. Siehe die Funktion
1241 @mrefdot{gamma} F@"ur eine halbzahlige rationale Zahl @code{n/2}, vereinfacht
1242 @code{(n/2)!} zu einem rationalen Faktor multipliziert mit @code{sqrt(%pi)}.
1244 Die Optionsvariable @mref{factlim} enth@"alt die gr@"o@ss{}te Zahl, f@"ur die
1245 die Fakult@"at einer ganzen Zahl numerisch berechnet wird. Ist das Argument
1246 der Fakult@"at eine rationale Zahl, wird von Maxima die Funktion
1247 @mref{gamma} f@"ur die numerische Berechnung aufgerufen. In diesem Fall ist
1248 @code{gammalim - 1} der gr@"o@ss{}te Nenner, f@"ur den die Fakult@"at vereinfacht
1249 wird. Siehe @mrefdot{gammalim}
1251 Hat die Optionsvariable @mref{factorial_expand} den Wert @code{true}, wird die
1252 Fakult@"at von Argumenten der Form @code{(n+k)!} oder @code{(n-k)!} vereinfacht,
1253 wobei @code{k} eine ganze Zahl ist.
1255 Mit den Funktionen @mref{minfactorial} und @mref{factcomb} k@"onnen Fakult@"aten
1256 in Ausdr@"ucken vereinfacht werden.
1258 Die Funktion @mref{makegamma} ersetzt Fakult@"aten in einem Ausdruck durch die
1259 Gammafunktion @mrefdot{gamma} Umgekehrt ersetzt die Funktion
1260 @mref{makefact} Binomialkoeffizienten und die Gammafunktion in einem Ausdruck
1263 Maxima kennt die Ableitung der Fakult@"at und die Grenzwerte der Fakult@"at
1264 f@"ur spezielle Werte wie negative ganze Zahlen.
1266 Siehe auch die Gammfunktion @mref{gamma} und den Binomialkoeffizienten
1271 Die Fakult@"at einer ganzen Zahl wird zu einer exakten Zahl vereinfacht, wenn
1272 das Argument nicht gr@"o@ss{}er als @code{factlim} ist. Die Fakult@"at f@"ur
1273 reelle und komplexe Zahlen wird als Gleitkommazahl berechnet.
1278 (%i2) [0!, (7/2)!, 8!, 20!];
1280 (%o2) [1, -------------, 40320, 20!]
1282 (%i3) [4.77!, (1.0+%i)!];
1283 (%o3) [81.44668037931197, .3430658398165451 %i
1284 + .6529654964201663]
1285 (%i4) [2.86b0!, (1.0b0+%i)!];
1286 (%o4) [5.046635586910012b0, 3.430658398165454b-1 %i
1287 + 6.529654964201667b-1]
1290 Die Fakult@"at von numerischen Konstanten oder eines konstanten Ausdrucks wird
1291 numerisch berechnet, wenn die Konstante oder der Ausdruck zu einer Zahl
1292 ausgewertet werden kann.
1295 (%i1) [(%i + 1)!, %pi!, %e!, (cos(1) + sin(1))!];
1296 (%o1) [(%i + 1)!, %pi!, %e!, (sin(1) + cos(1))!]
1297 (%i2) ev (%, numer, %enumer);
1298 (%o2) [.3430658398165451 %i + .6529654964201663,
1299 7.188082728976031, 4.260820476357003, 1.227580202486819]
1302 Fakult@"aten werden vereinfacht und nicht ausgewertet. Daher wird die
1303 Fakult@"at auch dann berechnet, wenn die Auswertung mit dem
1304 @nxref{', Quote-Operator} @code{'} unterdr@"uckt ist.
1307 (%i1) '([0!, (7/2)!, 4.77!, 8!, 20!]);
1309 (%o1) [1, -------------, 81.44668037931197, 40320, 20!]
1313 Maxima kennt die Ableitung der Fakult@"at.
1317 (%o1) x! psi (x + 1)
1321 Die Optionsvariable @code{factorial_expand} kontrolliert die Expansion und
1322 Vereinfachung von Ausdr@"ucken, die die Fakult@"at enthalten.
1325 (%i1) (n+1)!/n!,factorial_expand:true;
1330 @c --- 26.02.2011 DK -----------------------------------------------------------
1332 @defvr {Optionsvariable} factlim
1333 Standardwert: 100000
1335 Die Optionsvariable @code{factlim} spezifiziert die gr@"o@ss{}te ganze Zahl,
1336 f@"ur die die Fakult@"at einer ganzen Zahl numerisch berechnet wird. Hat
1337 @code{factlim} den Wert -1, wird die Fakult@"at f@"ur jede ganze Zahl
1338 berechnet. Siehe die Funktion @mrefdot{factorial}
1341 @c --- 26.02.2011 DK -----------------------------------------------------------
1342 @anchor{factorial_expand}
1343 @defvr {Optionsvariable} factorial_expand
1344 Standardwert: @code{false}
1346 Die Optionsvariable @code{factorial_expand} kontrolliert die Vereinfachung von
1347 Aus@-dr@"u@-cken wie @code{(n+k)!} oder @code{(n-k)!}, wobei @code{k} eine
1348 ganze Zahl ist. Siehe @mref{factorial} f@"ur ein Beispiel.
1350 Siehe auch die Funktionen @mref{minfactorial} und @mref{factcomb} f@"ur die
1351 Vereinfachung von Ausdr@"ucken mit der Fakult@"at.
1354 @c --- 26.02.2011 DK -----------------------------------------------------------
1356 @deffn {Funktion} genfact (@var{x}, @var{y}, @var{z})
1358 Gibt die verallgemeinerte Fakult@"at zur@"uck, die als @code{x (x-z) (x - 2 z)
1359 ... (x - (y - 1) z)} definiert ist. Ist @var{x} eine ganze Zahl, dann
1360 entspricht @code{genfact(x, x, 1)} der Fakult@"at @code{x!} und
1361 @code{genfact(x, x/2, 2)} der doppelten Fakult@"at @code{x!!}. Siehe auch die
1362 Funktionen @mref{factorial} und @mref{double_factorial} sowie die Operatoren
1363 @mref{!} und @mrefdot{!!}
1366 @c --- 26.02.2011 DK -----------------------------------------------------------
1367 @anchor{minfactorial}
1368 @deffn {Funktion} minfactorial (@var{expr})
1370 Die Funktion @code{minfactorial} vereinfacht Fakult@"aten @mref{factorial} in
1371 dem Ausdruck @var{epxr}, die sich um eine ganze Zahl voneinander unterscheiden.
1372 Siehe auch die Funktion @mrefcomma{factcomb} um Fakult@"aten zusammenzufassen,
1373 sowie die Optionsvariable @mrefdot{factorial_expand}
1380 (%i2) minfactorial (%);
1382 (%o2) ---------------
1387 @c --- 26.02.2011 DK -----------------------------------------------------------
1388 @anchor{sumsplitfact}
1389 @defvr {Optionsvariable} sumsplitfact
1390 Standardwert: @code{true}
1392 Hat die Optionsvariable @code{sumsplitfact} den Wert @code{false}, wird von
1393 der Funktion @code{factcomb} nach der Zusammenfassung von Fakult@"aten die
1394 Funktion @mref{minfactorial} angewendet. Siehe die Funktion
1395 @mref{factcomb} f@"ur ein Beispiel.
1398 @c -----------------------------------------------------------------------------
1399 @node Wurzel- Exponential- und Logarithmusfunktion, Winkelfunktionen, Funktionen der Kombinatorik, Mathematische Funktionen
1400 @section Wurzel-, Exponential- und Logarithmusfunktion
1401 @c -----------------------------------------------------------------------------
1403 @c --- 27.02.2011 DK -----------------------------------------------------------
1404 @anchor{%e_to_numlog}
1405 @defvr {Optionsvariable} %e_to_numlog
1406 Standardwert: @code{false}
1408 Hat die Optionsvariable @code{%e_to_numlog} den Wert @code{true}, wird ein
1409 Ausdruck mit der Exponentialfunktion @mref{exp} der Form @code{%e^(r*log(x))}
1410 zu @code{x^r} vereinfacht, wenn @code{r} eine rationale Zahl ist. Ist @code{r}
1411 eine ganze Zahl, wird die Vereinfachung von der Optionsvariablen
1412 @mref{logsimp} kontrolliert.
1417 (%i1) exp(1/2*log(x));
1422 (%i2) exp(1/2*log(x)), %e_to_numlog:true;
1427 @c --- 27.02.2011 DK -----------------------------------------------------------
1429 @defvr {Optionsvariable} %emode
1430 Standardwert: @code{true}
1432 Die Optionsvariable @code{%emode} kontrolliert die Vereinfachung von
1433 Ausdr@"ucken mit der Exponentialfunktion @mref{exp} der Form
1434 @code{%e^(%pi %i x)}.
1436 Ist das Argument @var{x} eine ganze Zahl oder eine rationale Zahl, die ein
1437 Vielfaches von 1/2, 1/3, 1/4 oder 1/6 ist, dann wird der Ausdruck
1438 @code{%e^(%pi %i x)} zu einer reellen oder komplexen Zahl vereinfacht. F@"ur
1439 Gleitkommazahlen wird diese Vereinfachung dann ausgef@"uhrt, wenn diese eine
1440 ganze Zahl oder halbzahlige rationale Zahl repr@"asentieren.
1442 Eine Summe im Exponenten wie zum Beispiel @code{%e^(%pi *%i (x+n))}, wobei
1443 @var{n} eine der oben genannten Zahlen und @var{x} ein allgemeiner Ausdruck ist,
1444 wird vereinfacht, indem der Faktor @code{%^(%pi %i n)} entsprechend vereinfacht
1447 Hat @code{%emode} den Wert @code{false}, werden keine speziellen Vereinfachungen
1448 f@"ur den Ausdruck @code{%e^(%pi %i x)} vorgenommen.
1453 (%i1) exp([2*%pi*%i, 1/2*%pi*%i, 0.5*%pi*%i, 0.5b0*%pi*%i]);
1454 (%o1) [1, %i, 1.0 %i, 1.0b0 %i]
1456 (%i2) exp([1/3*%pi*%i, 1/4*%pi*%i, 1/6*%pi*%i]);
1457 sqrt(3) %i 1 %i 1 %i sqrt(3)
1458 (%o2) [---------- + -, ------- + -------, -- + -------]
1459 2 2 sqrt(2) sqrt(2) 2 2
1461 (%i3) exp((1/3+x)*%pi*%i);
1462 sqrt(3) %i 1 %i %pi x
1463 (%o3) (---------- + -) %e
1468 @c --- 27.02.2011 DK -----------------------------------------------------------
1470 @defvr {Optionsvariable} %enumer
1471 Standardwert: @code{false}
1473 Hat @code{%enumer} den Wert @code{true}, wird die Konstante @code{%e} immer dann
1474 durch ihren nummerischen Wert ersetzt, wenn die Optionsvariable @mref{numer} den
1475 Wert @code{true} hat.
1477 Hat @code{%enumer} den Wert @code{false}, wird die Konstante @code{%e} nur dann
1478 durch ihren nummerischen Wert ersetzt, wenn der Exponent von @code{%e^x} zu
1479 einer Gleitkommazahl ausgewertet wird.
1481 Siehe auch @mref{ev} und @mrefdot{numer}
1493 (%o3) 2.718281828459045
1497 @c --- 27.02.2011 DK -----------------------------------------------------------
1499 @deffn {Funktion} exp (@var{z})
1501 Ist die Exponentialfunktion. Die Exponentialfunktion @code{exp} wird von Maxima
1502 sofort zu @code{%e^@var{z}} vereinfacht und tritt in vereinfachten
1503 Ausdr@"ucken nicht auf. Maxima vereinfacht die Exponentialfunktion daher wie
1504 die allgemeine Exponentiation @mrefdot{^} Dar@"uberhinaus kennt Maxima
1505 spezielle Regeln f@"ur die Vereinfachung der Exponentialfunktion.
1507 Ist das Argument @var{z} der Exponentialfunktion eine ganze oder rationale
1508 Zahl wird ein vereinfachter Ausdruck zur@"uckgegeben. Ist das Argument
1509 @var{z} eine reelle oder komplexe Gleitkommazahl wird ein numerisches
1512 Folgende Optionsvariablen kontrollieren die Vereinfachung der
1513 Exponentialfunktion:
1517 Hat die Optionsvariable @mref{%enumer} den Wert @code{true}, vereinfacht Maxima
1518 die Eulersche Zahl @mref{%e} immer dann zu ihrem numerischen Wert, wenn die
1519 Optionsvariable @mref{numer} auch den Wert @code{true} hat.
1522 Hat die Optionsvariable @mref{%emode} den Wert @code{true}, wendet Maxima
1523 Regeln an, um Ausdr@"ucke der Form @code{%e^(x*%i*%pi)} zu vereinfachen.
1524 Der Standardwert von @code{%emode} ist @code{true}. Wenn mit komplexen Zahlen
1525 in der Polarform gerechnet wird, kann es hilfreich sein, die Optionsvariable
1526 @code{%emode} auf den Wert @code{false} zu setzen.
1529 Hat die Optionsvariable @mref{%e_to_numlog} den Wert @code{true}, vereinfacht
1530 Maxima einen Ausdruck @code{%e^(r*log(x)} zu @code{x^r}, wobei @var{r}
1531 eine rationale Zahl ist. Ist @var{r} eine ganze Zahl wird diese Vereinfachung
1532 von der Optionsvariablen @mref{logsimp} kontrolliert. F@"ur reelle oder
1533 komplexe Gleitkommazahlen wird diese Vereinfachung nicht ausgef@"uhrt.
1536 Die Optionsvariable @mref{radexpand} kontrolliert die Vereinfachung von
1537 Ausdr@"ucken der Form @code{(%e^a)^b}. Ist @var{a} ein reelles Argument
1538 vereinfacht Maxima immer zu einem Ausdruck @code{%e^(a*b)}. Ist @var{a} ein
1539 komplexes Argument, wird die Vereinfachung @code{%e^(a*b)} dann ausgef@"uhrt,
1540 wenn die Optionsvariable @code{radexpand} den Wert @code{all} hat.
1543 Die Optionsvariable @mref{logsimp} kontrolliert die Vereinfachung der
1544 Exponentialfunktion f@"ur den Fall, dass im Argument @var{expr} die
1545 Logarithmusfunktion @mref{log} auftritt. Hat die @code{logsimp} den Wert
1546 @code{true}, wird ein Ausdruck @code{%e^(n*log(x)} zu @code{x^n} vereinfacht,
1547 wenn @var{n} eine ganze Zahl ist. Mit der Optionsvariablen
1548 @mref{%e_to_numlog} wird diese Vereinfachung f@"ur eine rationale Zahl @var{n}
1552 Ist eine Optionsvariable und eine Funktion, die auch als Auswertungsschalter
1553 @mref{evflag} definiert ist. Hat die Optionsvariable @mref{demoivre} den Wert
1554 @code{true}, wird ein Ausdruck @code{%e^(x + %i y)} zu
1555 @code{%e^x (cos(y) + %i sin(y))} vereinfacht. Siehe auch die Optionsvariable
1556 @mrefdot{exponentialize}
1559 Maxima kennt viele spezielle unbestimmte und bestimmte Integrale mit der
1560 Exponentialfunktion.
1563 @c --- 01.11.2011 DK -----------------------------------------------------------
1565 @deffn {Funktion} log (@var{z})
1567 Ist der nat@"urliche Logarithmus zur Basis @math{e}. Die Logarithmusfunktion
1568 ist f@"ur das numerische und symbolische Rechnen geeignet.
1570 Maxima hat keine vordefinierte Logarithmusfunktion zur Basis 10 oder anderen
1571 Basen. Eine einfache Definition ist zum Beispiel
1572 @code{log10(x) := log(x)/log(10)}. Mit dem Kommando @code{load("log10")} kann ein
1573 Paket geladen werden, dass eine dekadische Logarithmusfunktion @code{log10}
1576 Ist das Argument @var{z} der Logarithmusfunktion eine ganze oder rationale
1577 Zahl wird ein vereinfachter Ausdruck zur@"uckgegeben. Ist das Argument
1578 @var{z} eine reelle oder komplexe Gleitkommazahl wird ein numerisches
1581 Die folgenden Optionsvariablen kontrollieren die Vereinfachung und Auswertung
1582 der Logarithmusfunktion:
1586 Hat die Optionsvariable @code{logexpand} den Wert @code{true}, dann wird
1587 @code{log(a^b)} zu @code{b*log(a)} vereinfacht. Hat @code{logexpand} den
1588 Wert @code{all}, wird zus@"atzlich @code{log(a*b)} zu @code{log(a)+log(b)}
1589 vereinfacht. Mit den Wert @code{super} vereinfacht Maxima weiterhin
1590 @code{log(a/b)} zu @code{log(a)-log(b)}, wobei @code{a/b} eine rationale Zahl
1591 ist. @code{log(1/b} wird f@"ur eine ganze Zahl @code{b} immer vereinfacht.
1592 Hat die Optionsvariable @code{logexpand} den Wert @code{false} werden alle
1593 obigen Vereinfachungen ausgeschaltet.
1596 Hat die Optionsvariable @code{logsimp} den Wert @code{false}, werden
1597 Exponentialfunktionen @mrefcomma{exp} die Logarithmusfunktionen im Exponenten
1598 enthalten, nicht vereinfacht.
1601 Hat die Optionsvariable @code{lognegint} den Wert @code{true}, wird
1602 @code{log(-n)} zu @code{log(n)+%i*%pi} f@"ur positive @code{n} vereinfacht.
1605 Hat die Optionsvariable @code{%e_to_numlog} den Wert @code{true}, wird ein
1606 Ausdruck @code{%e^(r*log(x))} zu @code{x^r} vereinfacht. Dabei sind @code{r}
1607 eine rationale Zahl und @code{x} ein beliebiger Ausdruck. Die Funktion
1608 @code{radcan} f@"uhrt diese Vereinfachung ebenfalls aus.
1611 Die Logarithmusfunktion wird automatisch auf die Elemente von Listen und
1612 Matrizen sowie auf die beiden Seiten von Gleichungen angewendet. Siehe
1613 @mrefdot{distribute_over}
1617 Verschiedene Beispiele mit der Logarithmusfunktion.
1623 (%o2) 4.605170185988092
1625 (%o3) .3805063771123649 %i + .9905007344332917
1626 (%i4) taylor(log(1+x),x,0,5);
1629 (%o4)/T/ x - -- + -- - -- + -- + . . .
1631 (%i5) rectform(log(x+%i*y));
1634 (%o5) ------------ + %i atan2(y, x)
1636 (%i6) limit(log(x),x,0,plus);
1638 (%i7) integrate(log(z)^n,z);
1641 (%o7) - gamma_incomplete(n + 1, - log(z)) (- log(z))
1645 (%i8) laplace(log(t),t,s);
1648 (%o8) -----------------
1653 (%i10) ode2(diff(y,x)+log(y)+1,y,x);
1655 (%o10) %e expintegral_e(1, - log(y) - 1) = x + %c
1659 @c --- 12.03.2011 DK -----------------------------------------------------------
1661 @defvr {Optionsvariable} logabs
1662 Standardwert: @code{false}
1664 Treten bei der unbestimmten Integration Logarithmusfunktionen im Ergebnis auf,
1665 so wird der Betrag der Argumente der Logarithmusfunktionen gebildet, wenn die
1666 Optionsvariable @code{logabs} den Wert @code{true} hat.
1673 (%i2) integrate(1/x,x);
1675 (%i3) integrate(1/(1+x^3),x);
1678 log(!x - x + 1!) log(abs(x + 1)) sqrt(3)
1679 (%o3) - ----------------- + --------------- + -------------
1684 @c --- 20.10.2010 DK -----------------------------------------------------------
1686 @deffn {Funktion} logarc (@var{expr})
1687 @deffnx {Optionsvariable} logarc
1689 Hat die Optionsvariable @code{logarc} den Wert @code{true}, werden inverse
1690 Winkel- und Hyperbelfunktionen durch Logarithmusfunktionen ersetzt. Der
1691 Standardwert von @code{logarc} ist @code{false}.
1693 Die Funktion @code{logarc(@var{expr})} f@"uhrt diese Ersetzung aus, ohne dass
1694 die Optionsvariable @code{logarc} gesetzt wird.
1699 (%i1) logarc(asin(x));
1701 (%o1) - %i log(sqrt(1 - x ) + %i x)
1706 (%o3) - %i log(sqrt(1 - x ) + %i x)
1710 @c --- 12.03.2011 DK -----------------------------------------------------------
1712 @anchor{logconcoeffp}
1713 @defvr {Optionsvariable} logconcoeffp
1714 Standardwert: @code{false}
1716 Der Optionsvariablen @code{logconcoeffp} kann eine Aussagefunktion mit einem
1717 Argument zugewiesen werden, die kontrolliert, welche Koeffizienten von
1718 der Funktion @mref{logcontract} zusammengezogen werden. Sollen zum Beispiel
1719 Wurzeln generiert werden, kann folgende Aussagefunktion definiert werden:
1722 logconcoeffp:'logconfun$
1723 logconfun(m) := featurep(m,integer) or ratnump(m)$
1726 Das Kommando @code{logcontract(1/2*log(x))} liefert nun das Ergebnis
1727 @code{log(sqrt(x))}.
1730 @c --- 20.03.2011 DK -----------------------------------------------------------
1731 @anchor{logcontract}
1732 @deffn {Funktion} logcontract (@var{expr})
1734 Der Ausdruck @var{expr} wird rekursiv nach Ausdr@"ucken der Form
1735 @code{a1*log(b1) + a2*log(b2) + c} durchsucht. Diese werden zu
1736 @code{log(ratsimp(b1^a1 * b2^a2)) + c} transformiert.
1739 (%i1) 2*(a*log(x) + 2*a*log(y))$
1740 (%i2) logcontract(%);
1745 Wird die Variable @var{n} mit dem Kommando @code{declare(n, integer)} als eine
1746 ganze Zahl deklariert, dann wird @code{logcontract(2*a*n*log(x))} zu
1747 @code{a*log(x^(2*n))} vereinfacht. Die Koeffizienten, die zusammengezogen
1748 werden, sind in diesem Fall die Zahl 2 und die Variable @var{n}, welche
1749 die folgende Aussage erf@"ullen @code{featurep(coeff, integer)}.
1750 Der Nutzer kann kontrollieren, welche Koeffizienten zusammengezogen werden.
1751 Dazu wird der Optionsvariablen @mref{logconcoeffp} eine Aussagefunktion mit
1752 einem Argument zugewiesen. Sollen zum Beispiel Wurzeln generiert werden, kann
1753 folgende Definition verwendet: @code{logconcoeffp: 'logconfun$ logconfun(m) :=
1754 featurep(m,integer) or ratnump(m)$}. Dann hat das Kommando
1755 @code{logcontract(1/2*log(x))} das Ergebnis @code{log(sqrt(x))}.
1758 @c --- 01.11.2011 DK -----------------------------------------------------------
1760 @defvr {Optionsvariable} logexpand
1761 Standardwert: @code{true}
1763 Die Optionsvariable @code{logexpand} kontrolliert die Vereinfachung der
1764 Logarithmusfunktion @mrefdot{log}
1766 Hat @code{logexpand} den Wert @code{true}, wird @code{log(a^b)} zu
1767 @code{b*log(a)} vereinfacht. Hat @code{logexpand} den Wert @code{all}, wird
1768 zus@"atzlich @code{log(a*b)} zu @code{log(a)+log(b)} vereinfacht. Mit dem Wert
1769 @code{super} vereinfacht Maxima weiterhin @code{log(a/b)} zu
1770 @code{log(a)-log(b)}, wobei @code{a/b} eine rationale Zahl ist. @code{log(1/b}
1771 wird f@"ur eine ganze Zahl @code{b} immer vereinfacht. Hat die Optionsvariable
1772 @code{logexpand} den Wert @code{false} werden alle obigen Vereinfachungen
1776 @c --- 12.03.2011 DK -----------------------------------------------------------
1778 @defvr {Optionsvariable} lognegint
1779 Standardwert: @code{false}
1781 Hat die Optionsvariable @code{lognegint} den Wert @code{true}, wird
1782 @code{log(-n)} zu @code{log(n)+%i*%pi} f@"ur positive @code{n} vereinfacht.
1785 @c --- 12.03.2011 DK -----------------------------------------------------------
1788 @defvr {Optionsvariable} logsimp
1789 Standardwert: @code{true}
1791 Hat die Optionsvariable @code{logsimp} den Wert @code{false}, werden
1792 Exponentialfunktionen @mrefcomma{exp} die Logarithmusfunktionen im Exponenten
1793 enthalten, nicht vereinfacht.
1796 @c --- 12.03.2011 DK -----------------------------------------------------------
1798 @deffn {Funktion} plog (@var{x})
1800 Gibt den Hauptwert des komplexen nat@"urlichen Logarithmus im Intervall
1801 @code{-%pi} < @code{carg(@var{x})} <= @code{+%pi} zur@"uck.
1804 @c --- 12.03.2011 DK -----------------------------------------------------------
1805 @anchor{rootsconmode}
1806 @defvr {Optionsvariable} rootsconmode
1807 Standardwert: @code{true}
1809 @code{rootsconmode} kontrolliert das Verhalten der Funktion
1810 @code{rootscontract}. Siehe die Funktion @mref{rootscontract} f@"ur Details.
1813 @c --- 12.03.2011 DK -----------------------------------------------------------
1814 @anchor{rootscontract}
1815 @deffn {Funktion} rootscontract (@var{expr})
1817 Konvertiert Produkte von Wurzeln in Wurzeln von Produkten. Zum Beispiel hat
1818 @code{rootscontract(sqrt(x)*y^(3/2))} das Ergebnis @code{sqrt(x*y^3)}.
1820 Hat die Optionsvariable @mref{radexpand} den Wert @code{true} und die
1821 Optionsvariable @mref{domain} den Wert @code{real}, das sind die Standardwerte,
1822 wird @code{abs(x)} zu @code{sqrt(x^2)} vereinfacht. Zum Beispiel hat
1823 @code{rootscontract(abs(x) * sqrt(y))} das Ergebnis @code{sqrt(x^2*y)}.
1825 Die Optionsvariable @mref{rootsconmode} kontrolliert das Ergebnis
1829 Problem Wert Ergebnis
1830 rootsconmode rootscontract
1832 x^(1/2)*y^(3/2) false sqrt(x*y^3)
1833 x^(1/2)*y^(1/4) false sqrt(x)*y^(1/4)
1834 x^(1/2)*y^(1/4) true sqrt(x*sqrt(y))
1835 x^(1/2)*y^(1/3) true sqrt(x)*y^(1/3)
1836 x^(1/2)*y^(1/4) all (x^2*y)^(1/4)
1837 x^(1/2)*y^(1/3) all (x^3*y^2)^(1/6)
1840 Hat @code{rootsconmode} den Wert @code{false}, kontrahiert @code{rootscontract}
1841 nur Faktoren mit rationalen Exponenten, die den gleichen Nenner haben. Hat
1842 @code{rootsconmode} den Wert @code{all}, wird das kleinste gemeinsame Vielfache
1843 des Nenners der Faktoren verwendet, um die Faktoren zusammenzufassen.
1845 @"Ahnlich wie bei der Funktion @mref{logcontract} werden von
1846 @code{rootscontract} die Argumente unter der Wurzel mit der Funktion
1847 @mref{ratsimp} vereinfacht.
1852 (%i1) rootsconmode: false$
1853 (%i2) rootscontract (x^(1/2)*y^(3/2));
1856 (%i3) rootscontract (x^(1/2)*y^(1/4));
1859 (%i4) rootsconmode: true$
1860 (%i5) rootscontract (x^(1/2)*y^(1/4));
1861 (%o5) sqrt(x sqrt(y))
1863 (%i6) rootscontract (x^(1/2)*y^(1/3));
1867 (%i7) rootsconmode: all$
1868 (%i8) rootscontract (x^(1/2)*y^(1/4));
1871 (%i9) rootscontract (x^(1/2)*y^(1/3));
1874 (%i10) rootsconmode: false$
1875 (%i11) rootscontract (sqrt(sqrt(x) + sqrt(1 + x))
1876 *sqrt(sqrt(1 + x) - sqrt(x)));
1878 (%i12) rootsconmode: true$
1879 (%i13) rootscontract (sqrt(5+sqrt(5)) - 5^(1/4)*sqrt(1+sqrt(5)));
1884 @c --- 12.03.2011 DK -----------------------------------------------------------
1886 @deffn {Funktion} sqrt (@var{z})
1888 Ist die Wurzelfunktion. Die Wurzelfunktion wird von Maxima sofort zu
1889 @code{@var{x}^(1/2)} vereinfacht und tritt in Ausdr@"ucken nicht auf.
1891 Die Wurzelfunktion ist f@"ur das numerische und symbolische Rechnen geeignet.
1892 Ist das Argument @var{z} der Wurzelfunktion eine Gleitkommazahl, wird ein
1893 numerisches Ergebnis zur@"uckgegeben. F@"ur ganze und rationale Zahlen wird
1894 die Wurzelfunktion vereinfacht. Die numerische Berechnung kann mit den
1895 Optionsvariablen und Auswertungsschaltern @mref{numer} und
1896 @mref{float} kontrolliert werden.
1898 Hat die Optionsvariable @mref{radexpand} den Wert @code{true}, werden die
1899 n-ten Wurzeln von Faktoren unter einer Wurzel aus der Wurzel herausgezogen.
1900 So wird zum Beispiel @code{sqrt(16*x^2)} nur dann zu @code{4*x} vereinfacht,
1901 wenn @code{radexpand} den Wert @code{true} hat.
1903 Siehe auch die Funktionen @mref{rootscontract} und @mref{sqrtdenest} f@"ur die
1904 Vereinfachung von Ausdr@"ucken, die die Wurzelfunktion enthalten.
1908 Verschiedene Beispiele mit der Wurzelfunktion.
1916 (%o3) 1.414213562373095
1917 (%i4) taylor(sqrt(1+x),x,0,5);
1920 (%o4)/T/ 1 + - - -- + -- - ---- + ---- + . . .
1922 (%i5) rectform(sqrt(x+%i*y));
1924 (%o5) %i (y + x ) sin(-----------)
1927 + (y + x ) cos(-----------)
1929 (%i6) integrate(sqrt(t)*(t+1)^-2,t,0,1);
1936 @c -----------------------------------------------------------------------------
1937 @node Winkelfunktionen, Hyperbelfunktionen, Wurzel- Exponential- und Logarithmusfunktion, Mathematische Funktionen
1938 @section Winkelfunktionen
1939 @c -----------------------------------------------------------------------------
1942 * Einf@"uhrung in Winkelfunktionen::
1943 * Funktionen und Variablen f@"ur Winkelfunktionen::
1946 @c -----------------------------------------------------------------------------
1947 @node Einf@"uhrung in Winkelfunktionen, Funktionen und Variablen f@"ur Winkelfunktionen, Winkelfunktionen, Winkelfunktionen
1948 @subsection Einf@"uhrung in Winkelfunktionen
1949 @c -----------------------------------------------------------------------------
1951 Maxima kennt viele Winkel- und Hyperbelfunktionen. Nicht alle Identit@"aten
1952 f@"ur Winkel- und Hyperbelfunktionen sind programmiert, aber es ist m@"oglich
1953 weitere Identit@"aten mit der F@"ahigkeit der Erkennung von Mustern
1956 Maxima kennt die folgenden Winkel- und Hyperbelfunktionen sowie deren Inverse:
1969 @c -----------------------------------------------------------------------------
1970 @node Funktionen und Variablen f@"ur Winkelfunktionen, , Einf@"uhrung in Winkelfunktionen, Winkelfunktionen
1971 @subsection Funktionen und Variablen f@"ur Winkelfunktionen
1972 @c -----------------------------------------------------------------------------
1974 @c --- 12.03.2011 DK -----------------------------------------------------------
1981 @deffn {Funktion} asin (@var{z})
1982 @deffnx {Funktion} acos (@var{z})
1983 @deffnx {Funktion} atan (@var{z})
1984 @deffnx {Funktion} acot (@var{z})
1985 @deffnx {Funktion} acsc (@var{z})
1986 @deffnx {Funktion} asec (@var{z})
1988 Die inversen Winkelfunktionen: Arkussinus, Arkuskosinus, Arkustangens,
1989 Arkuskotangens, Arkuskosekans und Arkussekans.
1991 Die inversen Winkelfunktionen sind f@"ur das numerische und symbolische Rechnen
1992 geeignet. Die inversen Winkelfunktionen k@"onnen f@"ur reelle und komplexe
1993 Gleitkommazahlen in doppelter und in beliebiger Genauigkeit berechnet werden.
1994 Ist das Argument eine ganze oder rationale Zahl, werden die inversen
1995 Winkelfunktionen nicht numerisch berechnet, sondern vereinfacht. Die numerische
1996 Berechnung kann mit den Optionsvariablen und Auswertungsschaltern
1997 @mref{numer} und @mref{float} erzwungen werden.
1999 Die inversen Winkelfunktionen sind bis auf die Funktionen @code{acos} und
2000 @code{asec} als ungerade definiert. Die Funktionen @code{acos} und @code{asec}
2001 vereinfachen f@"ur ein negatives Argument @code{-x} zu @code{%pi-acos(x)} und
2002 @code{%pi-asec(x)}. F@"ur die inversen Winkelfunktion @code{asin}, @code{acos}
2003 und @code{atan} ist die Spiegelsymmetrie f@"ur den Fall implementiert, dass das
2004 komplexe Argument @code{x+%i*y} einen Realteil @code{abs(x)<1} hat.
2006 Ist das Argument @var{z} eine Matrix, eine Liste oder eine Gleichung werden die
2007 inversen Winkelfunktionen auf die Elemente der Matrix, der Liste oder auf die
2008 beiden Seiten der Gleichung angewendet. Dieses Verhalten wird von der
2009 Optionsvariablen @mref{distribute_over} kontrolliert.
2011 Inverse Winkelfunktionen k@"onnen f@"ur das symbolische Rechnen verwendet
2012 werden. Maxima kann Ausdr@"ucke mit inversen Winkelfunktionen differenzieren
2013 und integrieren, Grenzwerte bestimmen sowie Gleichungen mit inversen
2014 Winkelfunktionen l@"osen.
2016 Das Argument der inversen Winkelfunktionen kann eine Taylorreihe sein. In
2017 diesem Fall wird die Taylorreihenentwicklung f@"ur die inverse Winkelfunktion
2018 vollst@"andig ausgef@"uhrt.
2020 Die folgenden Optionsvariablen kontrollieren die Vereinfachung der
2021 inversen Winkelfunktionen:
2024 @item distribute_over
2025 Hat die Optionsvariable @mref{distribute_over} den Wert @code{true} und ist das
2026 Argument der inversen Winkelfunktion eine Matrix, Liste oder Gleichung wird die
2027 Funktion auf die Elemente oder beiden Seiten der Gleichung angewendet. Der
2028 Standardwert ist @code{true}.
2031 Hat die Optionsvariable @mref{%piargs} den Wert @code{true}, werden die
2032 inversen Winkelfunktionen f@"ur spezielle Werte als Argument vereinfacht.
2033 Der Standardwert ist @code{true}.
2036 Hat die Optionsvariable @mref{%iargs} den Wert @code{true} und ist das Argument
2037 der inversen Winkelfunktion ein Vielfaches der imagin@"aren Einheit @code{%i}
2038 werden die inversen Winkelfunktionen zu inversen Hyperbelfunktionen vereinfacht.
2039 Der Standardwert ist @code{true}.
2042 Hat die Optionsvariable @mref{triginverses} den Wert @code{all} und ist das
2043 Argument die entsprechende Winkelfunktion vereinfachen die inversen
2044 Winkelfunktionen, zum Beispiel vereinfacht @code{asin(sin(x))} zu @code{x}.
2045 Der Standardwert ist @code{true} und die Vereinfachung wird nicht vorgenommen.
2048 Hat die Optionsvariable @mref{logarc} den Wert @code{true}, werden inverse
2049 Winkelfunktionen durch Logarithmusfunktionen ersetzt. Der Standardwert von
2050 @code{logarc} ist @code{false}.
2054 @c --- 01.06.2011 DK -----------------------------------------------------------
2056 @deffn {Funktion} atan2 (@var{y}, @var{x})
2058 Ist der Arkustangens mit zwei Argumenten, der in Maxima wie folgt definiert ist:
2062 atan(y/x) + %pi x<0 und y>=0
2063 atan(y/x) - %pi x<0 und y<0
2065 - %pi / 2 x=0 und y<0
2066 nicht definiert x=0 und y=0
2069 Mit der obigen Definition ist der Wertebereich des Arkustangens
2070 @code{-%pi < atan2(y,x) <= %pi}. Alternativ kann der Arkustangens mit zwei
2071 Argumenten definiert werden als
2075 atan2(y, x) = - %i log(-------------)
2080 Der Arkustangens ist f@"ur das symbolische und numerische Rechnen geeignet.
2081 F@"ur reelle Argumente @var{x} und @var{y} deren Vorzeichen bestimmt werden
2082 kann, vereinfacht Maxima den Arkustangens wie oben in der Definition angegeben.
2083 Sind beide Argumente Gleitkommazahlen wird ein numerisches Ergebnis berechnet.
2084 Die numerische Berechnung f@"ur komplexe Gleitkommazahlen ist nicht
2085 implementiert. Weiterhin kennt Maxima die speziellen Werte, wenn eines der
2086 Argumente @var{x} oder @var{y} unendlich ist. @code{atan2(x, x)} und
2087 @code{atan2(x, -x)} werden von Maxima vereinfacht, wenn Maxima das Vorzeichen
2088 von @var{x} ermitteln kann.
2090 Die Vereinfachung des Arkustangens wird weiterhin von den folgenden
2091 Optionsvariablen kontrolliert:
2094 @item distribute_over
2095 Hat die Optionsvariable @mref{distribute_over} den Wert @code{true} und ist das
2096 Argument des Arkustangens eine Matrix, Liste oder Gleichung wird die Funktion
2097 auf die Elemente oder beiden Seiten der Gleichung angewendet. Der Standardwert
2101 Hat die Optionsvariable @mref{trigsign} den Wert @code{true}, vereinfacht
2102 Maxima @code{atan2(-y, x)} zu @code{- atan2(y, x)}. Der Standardwert ist
2106 Hat die Optionsvariable @mref{logarc} den Wert @code{true}, wird der
2107 Arkustangens durch einen Ausdruck mit der Logarithmusfunktionen ersetzt.
2108 Der Standardwert von @code{logarc} ist @code{false}.
2111 Maxima kann Ausdr@"ucke mit dem Arkustangens ableiten und integrieren sowie die
2112 Grenzwerte von Ausdr@"ucken mit dem Arkustangens ermitteln.
2117 (%i1) atan2([-1, 1],[-1, 0, 1]);
2118 3 %pi %pi %pi 3 %pi %pi %pi
2119 (%o1) [[- -----, - ---, - ---], [-----, ---, ---]]
2121 (%i2) atan2(1,[-0.5, 0.5]);
2122 (%o2) [2.034443935795703, 1.10714871779409]
2125 (%i4) atan2(2*a, -2*a);
2129 (%i5) diff(atan2(y,x), x);
2136 (%i6) integrate(atan2(y,x), x);
2139 (%o6) -------------- + x atan(-)
2144 @c --- 12.03.2011 DK -----------------------------------------------------------
2151 @deffn {Funktion} sin (@var{z})
2152 @deffnx {Funktion} cos (@var{z})
2153 @deffnx {Funktion} tan (@var{z})
2154 @deffnx {Funktion} cot (@var{z})
2155 @deffnx {Funktion} csc (@var{z})
2156 @deffnx {Funktion} sec (@var{z})
2158 Die Winkelfunktionen: Sinus, Kosinus, Tangens, Kotangens, Kosekans und Sekans.
2160 Die Winkelfunktionen sind f@"ur das numerische und symbolische Rechnen geeignet.
2161 Die Winkelfunktionen k@"onnen f@"ur reelle und komplexe Gleitkommazahlen in
2162 doppelter und in beliebiger Genauigkeit berechnet werden. Ist das Argument
2163 eine ganze oder rationale Zahl, werden die Winkelfunktionen nicht numerisch
2164 berechnet, sondern vereinfacht. Die numerische Berechnung kann mit den
2165 Optionsvariablen und Auswertungsschaltern @mref{numer} und @mref{float}@w{}
2168 Die Winkelfunktionen sind gerade oder ungerade und haben Spiegelsymmetrie.
2169 Maxima wendet diese Symmetrieeigenschaften automatisch bei der Vereinfachung
2170 von Ausdr@"ucken mit Winkelfunktionen an.
2172 Ist das Argument @var{z} eine Matrix, eine Liste oder eine Gleichung werden die
2173 Winkelfunktionen auf die Elemente der Matrix, der Liste oder auf die beiden
2174 Seiten der Gleichung angewendet. Dieses Verhalten wird von der Optionsvariablen
2175 @mref{distribute_over} kontrolliert.
2177 Winkelfunktionen k@"onnen f@"ur das symbolische Rechnen verwendet werden.
2178 Maxima kann Ausdr@"ucke mit Winkelfunktionen differenzieren und integrieren,
2179 Grenzwerte bestimmen sowie Gleichungen und Differentialgleichungen mit
2180 Winkelfunktionen l@"osen.
2182 Das Argument der Winkelfunktionen kann eine Taylorreihe sein. In diesem Fall
2183 wird die Taylorreihenentwicklung f@"ur die Winkelfunktion vollst@"andig
2186 Die folgenden Optionsvariablen kontrollieren die Vereinfachung der
2190 @item distribute_over
2191 Hat die Optionsvariable @mref{distribute_over} den Wert @code{true} und ist das
2192 Argument der Winkelfunktion eine Matrix, Liste oder Gleichung wird die Funktion
2193 auf die Elemente oder beiden Seiten der Gleichung angewendet. Der Standardwert
2197 Hat die Optionsvariable @mref{%piargs} den Wert @code{true}, werden die
2198 Winkelfunktionen f@"ur ganzzahlige und halbzahlige Vielfache der Konstanten
2199 @code{%pi} zu speziellen Werten vereinfacht. Der Standardwert ist @code{true}.
2202 Hat die Optionsvariable @mref{%iargs} den Wert @code{true} und ist das Argument
2203 der Winkelfunktion ein Vielfaches der imagin@"aren Einheit @code{%i} werden die
2204 Winkelfunktionen zu Hyperbelfunktionen vereinfacht. Der Standardwert ist
2208 Hat die Optionsvariable @mref{trigsign} den Wert @code{true}, werden die gerade
2209 oder ungerade Symmetrie der Winkelfunktionen bei der Vereinfachung angewendet.
2210 Der Standardwert ist @code{true}.
2213 Hat die Optionsvariable @mref{triginverses} den Wert @code{true} und ist das
2214 Argument eine inverse Winkelfunktion vereinfachen die Winkelfunktionen zu einem
2215 einfachen algebraischen Ausdruck, zum Beispiel vereinfacht @code{sin(acos(x))}
2216 zu @code{sqrt(1-x^2)}. Der Standardwert ist @code{true}.
2219 Hat die Optionsvariable @mref{trigexpand} den Wert @code{true}, dann werden die
2220 Winkelfunktionen f@"ur ein Argument expandiert, das eine Summe oder ein Produkt
2221 mit einer ganzen Zahl ist. Der Standardwert ist @code{false}.
2223 @item exponentialize
2224 Hat die Optionsvariable @mref{exponentialize} den Wert @code{true}, dann werden
2225 die Winkelfunktionen in eine Exponentialform transformiert. Der Standardwert
2229 Hat die Optionsvariable @mref{halfangles} den Wert @code{true}, dann werden die
2230 Winkelfunktionen f@"ur halbzahlige Argumente zu einem @"aquivalenten Ausdruck
2231 transformiert. Der Standardwert ist @code{false}.
2236 Im Folgenden werden Beispiele f@"ur die Sinusfunktion gezeigt. Numerische
2237 Berechnungen f@"ur Gleitkommazahlen:
2243 (%o2) .6349639147847361 %i + 1.298457581415977
2244 (%i3) sin(1.0b0+%i);
2245 (%o3) 6.349639147847361b-1 %i + 1.298457581415977b0
2246 (%i4) sin(1.0b0),fpprec:45;
2247 (%o4) 8.41470984807896506652502321630298999622563061b-1
2250 Einige Vereinfachungen der Sinusfunktionen:
2253 (%i5) sin(%i*(x+y));
2254 (%o5) %i sinh(y + x)
2259 (%i2) sin(x+y),trigexpand:true;
2260 (%o2) cos(x) sin(y) + sin(x) cos(y)
2261 (%i3) sin(2*x+y),trigexpand:true;
2263 (%o3) (cos (x) - sin (x)) sin(y) + 2 cos(x) sin(x) cos(y)
2266 Grenzwerte, Ableitungen und Integrale mit der Sinusfunktion:
2269 (%i4) limit(sin(x)/x,x,0);
2271 (%i5) diff(sin(sqrt(x))/x,x);
2272 cos(sqrt(x)) sin(sqrt(x))
2273 (%o5) ------------ - ------------
2276 (%i6) integrate(sin(x^3),x);
2280 gamma_incomplete(-, %i x ) + gamma_incomplete(-, - %i x )
2282 - ---------------------------------------------------------
2287 Reihenentwicklung der Sinusfunktion:
2290 (%i7) taylor(sin(x),x,0,3);
2294 (%o7)/T/ x - -- + . . .
2300 @c --- 27.11.2010 DK -----------------------------------------------------------
2302 @defvr {Optionsvariable} %piargs
2303 Standardwert: @code{true}
2305 Hat @code{%piargs} den Wert @code{true}, werden Winkel- und Hyperbelfunktionen
2306 sowie deren Inverse zu algebraischen Konstanten vereinfacht, wenn das Argument
2307 ein ganzzahliges Vielfaches der folgenden Konstanten ist:
2309 @math{\pi}, @math{\pi/2}, @math{\pi/3}, @math{\pi/4} oder @math{\pi/6}.
2312 @code{%pi}, @code{%pi/2}, @code{%pi/3}, @code{%pi/4} oder @code{%pi/6}.
2315 Maxima kennt weiterhin einige Identit@"aten, wenn die Konstante
2322 mit einer Variablen multipliziert wird, die als ganzzahlig deklariert wurde.
2327 (%i1) %piargs : false$
2329 (%i2) [sin (%pi), sin (%pi/2), sin (%pi/3)];
2331 (%o2) [sin(%pi), sin(---), sin(---)]
2335 (%i3) [sin (%pi/4), sin (%pi/5), sin (%pi/6)];
2337 (%o3) [sin(---), sin(---), sin(---)]
2340 (%i4) %piargs : true$
2342 (%i5) [sin (%pi), sin (%pi/2), sin (%pi/3)];
2344 (%o5) [0, 1, -------]
2348 (%i6) [sin (%pi/4), sin (%pi/5), sin (%pi/6)];
2350 (%o6) [-------, sin(---), -]
2354 (%i7) [cos (%pi/3), cos (10*%pi/3), tan (10*%pi/3),
2355 cos (sqrt(2)*%pi/3)];
2357 (%o7) [-, - -, sqrt(3), cos(-----------)]
2362 Weitere Identit@"aten werden angewendet, wenn
2364 @math{\pi} und @math{\pi/2}
2367 @code{%pi} und @code{%pi/2}
2369 mit einer ganzzahligen Variable multipliziert werden.
2372 (%i1) declare (n, integer, m, even)$
2374 (%i2) [sin (%pi * n), cos (%pi * m), sin (%pi/2 * m),
2377 (%o2) [0, 1, 0, (- 1) ]
2382 @c --- 27.11.2010 DK -----------------------------------------------------------
2384 @defvr {Optionsvariable} %iargs
2385 Standardwert: @code{true}
2387 Hat @code{%iargs} den Wert @code{true}, werden Winkelfunktionen zu
2388 Hyperbelfunktionen vereinfacht, wenn das Argument ein Vielfaches der
2389 imagin@"aren Einheit
2398 Die Vereinfachung zu Hyperbelfunktionen wird auch dann ausgef@"uhrt, wenn das
2399 Argument offensichtlich reell ist.
2404 (%i1) %iargs : false$
2406 (%i2) [sin (%i * x), cos (%i * x), tan (%i * x)];
2407 (%o2) [sin(%i x), cos(%i x), tan(%i x)]
2409 (%i3) %iargs : true$
2411 (%i4) [sin (%i * x), cos (%i * x), tan (%i * x)];
2412 (%o4) [%i sinh(x), cosh(x), %i tanh(x)]
2416 Auch wenn das Argument offensichtlich reell ist, wird zu einer Hyperbelfunktion
2420 (%i1) declare (x, imaginary)$
2422 (%i2) [featurep (x, imaginary), featurep (x, real)];
2432 @c --- 27.11.2010 DK -----------------------------------------------------------
2434 @defvr {Optionsvariable} halfangles
2435 Standardwert: @code{false}
2437 Hat @code{halfangles} den Wert @code{true}, werden Winkel- und
2438 Hyperbelfunktionen mit halbzahligen Argumenten @code{@var{expr}/2} vereinfacht.
2440 F@"ur ein reelles Argument @var{x} im Intervall @code{0 < x < 2*%pi} vereinfacht
2441 der Sinus f@"ur ein halbzahliges Argument zu einer einfachen Formel:
2449 Ein komplizierter Faktor wird gebraucht, damit die Formel korrekt ist f@"ur ein
2450 komplexes Argument @var{z}:
2457 (- 1) (1 - unit_step(- imagpart(z))
2459 realpart(z) realpart(z)
2460 floor(-----------) - ceiling(-----------)
2465 Maxima kennt diesen Faktor und @"ahnliche Faktoren f@"ur die Sinus, Kosinus,
2466 Sinus Hyperbolicus und Kosinus Hyperbolicus Funktionen. F@"ur spezielle
2467 Argumente @math{z} dieser Funktionen vereinfachen diese Funktionen entsprechend.
2472 (%i1) halfangles:false;
2478 (%i3) halfangles:true;
2484 sqrt(1 - cos(x)) (- 1)
2485 (%o4) ----------------------------------
2487 (%i5) assume(x>0, x<2*%pi)$
2490 (%o6) ----------------
2495 @c --- 27.11.2010 DK -----------------------------------------------------------
2497 @defvr {Paket} ntrig
2499 Das Paket @code{ntrig} enth@"alt Regeln, um Winkelfunktionen zu vereinfachen,
2500 die Argumente der Form @code{@var{f}(@var{n} %pi/10)} haben. @var{f} ist eine
2501 der Funktionen @code{sin}, @code{cos}, @code{tan}, @code{csc}, @code{sec} oder
2504 Das Kommando @code{load("ntrig")} l@"adt das Paket. Die Vereinfachungen werden
2505 dann von Maxima automatisch ausgef@"uhrt.
2508 @c --- 27.11.2010 DK -----------------------------------------------------------
2510 @deffn {Funktion} trigexpand (@var{expr})
2512 Die Funktion @code{trigexpand} expandiert Winkel- und Hyperbelfunktionen im
2513 Ausdruck @var{expr}, die Summen und Vielfache von Winkeln als Argument haben.
2514 Die besten Ergebnisse werden erzielt, wenn der Ausdruck @var{expr} zun@"achst
2517 Folgende Schalter kontrollieren @code{trigexpand}:
2521 Wenn @code{true}, werden Sinus- und Kosinusfunktionen expandiert.
2524 Wenn @code{true}, werden Vereinfachungen f@"ur halbzahlige Argumente angewendet.
2526 @item trigexpandplus
2527 Wenn @code{true}, werden Winkelfunktionen, die eine Summe als Argument haben,
2528 wie zum Beispiel @code{sin(x+y)}, vereinfacht.
2530 @item trigexpandtimes
2531 Wenn @code{true}, werden Winkelfunktionen, die ein Produkt als Argument haben,
2532 wie zum Beispiel @code{sin(2 x)}, vereinfacht.
2539 (%i1) x+sin(3*x)/sin(x),trigexpand=true,expand;
2541 (%o1) - sin (x) + 3 cos (x) + x
2544 (%i2) trigexpand(sin(10*x+y));
2545 (%o2) cos(10 x) sin(y) + sin(10 x) cos(y)
2550 @c --- 27.11.2010 DK -----------------------------------------------------------
2551 @anchor{trigexpandplus}
2552 @defvr {Optionsvariable} trigexpandplus
2553 Standardwert: @code{true}
2555 @code{trigexpandplus} kontrolliert die Vereinfachung von Winkelfunktionen mit
2556 der Funktion @mref{trigexpand} f@"ur den Fall, dass Winkelfunktionen mit Summen
2557 als Argumente auftreten. Hat @code{trigexpandplus} den Wert @code{true},
2558 werden zum Beispiel Winkelfunktionen wie @code{sin(x+y)} vereinfacht.
2561 @c --- 27.11.2010 DK -----------------------------------------------------------
2562 @anchor{trigexpandtimes}
2563 @defvr {Optionsvariable} trigexpandtimes
2564 Standardwert: @code{true}
2566 @code{trigexpandtimes} kontrolliert die Vereinfachung von Winkelfunktionen mit
2567 der Funktion @mref{trigexpand} f@"ur den Fall, dass Winkelfunktionen mit
2568 Produkten als Argumente auftreten. Hat @code{trigexpandtimes} den Wert
2569 @code{true}, werden zum Beispiel Winkelfunktionen wie @code{sin(2 x)}
2573 @c --- 27.11.2010 DK -----------------------------------------------------------
2574 @anchor{triginverses}
2575 @defvr {Optionsvariable} triginverses
2576 Standardwert: @code{true}
2578 Kontrolliert die Vereinfachung, wenn das Argument einer Winkelfunktion oder
2579 Hyperbelfunktion eine der inversen Funktion ist.
2581 Hat @code{triginverses} den Wert @code{all}, vereinfachen beide Ausdr@"ucke
2582 @code{atan(tan(@var{x}))} und @code{tan(atan(@var{x}))} zum Wert @var{x}.
2584 Hat @code{triginverses} den Wert @code{all}, wird
2585 @code{@var{arcfun}(@var{fun}(@var{x}))} nicht vereinfacht.
2587 Hat @code{triginverses} den Wert @code{false}, werden
2588 @code{@var{arcfun}(@var{fun}(@var{x}))} und
2589 @code{@var{fun}(@var{arcfun}(@var{x}))} nicht vereinfacht.
2592 @c --- 27.11.2010 DK -----------------------------------------------------------
2594 @deffn {Funktion} trigreduce (@var{expr}, @var{x})
2595 @deffnx {Funktion} trigreduce (@var{expr})
2597 Produkte und Potenzen von Winkelfunktionen und den Hyperbelfunktionen mit dem
2598 Argument @var{x} werden zu Funktionen vereinfacht, die Vielfache von @var{x}
2599 enthalten. @code{trigreduce} versucht auch, Sinus- und Kosinusfunktionen in
2600 einem Nenner zu eliminieren. Wird keine Variable @var{x} angegeben, werden alle
2601 Variablen im Ausdruck @code{expr} betrachtet.
2603 Siehe auch @mrefdot{poissimp}
2607 (%i1) trigreduce(-sin(x)^2+3*cos(x)^2+x);
2608 cos(2 x) cos(2 x) 1 1
2609 (%o1) -------- + 3 (-------- + -) + x - -
2615 @c --- 27.11.2010 DK -----------------------------------------------------------
2617 @defvr {Optionsvariable} trigsign
2618 Standardwert: @code{true}
2620 Hat @code{trigsign} den Wert @code{true}, werden Winkelfunktionen mit einem
2621 negativem Argument vereinfacht. Zum Beispiel vereinfacht in diesem Fall
2622 @code{sin(-x)} zu @code{-sin(x)}.
2625 @c --- 27.11.2010 DK -----------------------------------------------------------
2627 @deffn {Funktion} trigsimp (@var{expr})
2629 Wendet die Identit@"aten
2632 $\sin\left(x\right)^2 + \cos\left(x\right)^2 = 1$
2636 @code{sin(x)^2 + cos(x)^2 = 1}
2641 $\cosh\left(x\right)^2 - \sinh\left(x\right)^2 = 1$
2645 @code{cosh(x)^2 - sinh(x)^2 = 1}
2647 an, um Ausdr@"ucke, die Funktionen wie @code{tan}, @code{sec}, usw. enthalten,
2648 zu Ausdr@"ucken mit den Funktionen @code{sin}, @code{cos}, @code{sinh},
2649 @code{cosh} zu vereinfachen.
2651 Die Anwendung von Funktionen wie @mrefcomma{trigreduce} @mref{ratsimp} und
2652 @mref{radcan} kann den Ausdruck weiter vereinfachen.
2654 Das Kommando @code{demo(trgsmp)} zeigt einige Beispiele.
2657 @c -----------------------------------------------------------------------------
2659 @deffn {Funktion} trigrat (@var{expr})
2661 Gives a canonical simplifyed quasilinear form of a trigonometrical expression;
2662 @var{expr} is a rational fraction of several @code{sin}, @code{cos} or
2663 @code{tan}, the arguments of them are linear forms in some variables (or
2664 kernels) and @code{%pi/@var{n}} (@var{n} integer) with integer coefficients.
2665 The result is a simplified fraction with numerator and denominator linear in
2666 @code{sin} and @code{cos}. Thus @code{trigrat} linearize always when it is
2671 (%i1) trigrat(sin(3*a)/sin(a+%pi/3));
2672 (%o1) sqrt(3) sin(2 a) + cos(2 a) - 1
2676 The following example is taken from
2677 Davenport, Siret, and Tournier, @i{Calcul Formel}, Masson (or in English,
2678 Addison-Wesley), section 1.5.5, Morley theorem.
2681 (%i1) c : %pi/3 - a - b$
2682 (%i2) bc : sin(a)*sin(3*c)/sin(a+b);
2685 sin(a) sin(3 (- b - a + ---))
2687 (%o2) -----------------------------
2690 (%i3) ba : bc, c=a, a=c;
2693 sin(3 a) sin(b + a - ---)
2695 (%o3) -------------------------
2700 (%i4) ac2 : ba^2 + bc^2 - 2*bc*ba*cos(b);
2703 sin (3 a) sin (b + a - ---)
2705 (%o4) ---------------------------
2710 - (2 sin(a) sin(3 a) sin(3 (- b - a + ---)) cos(b)
2713 sin(b + a - ---))/(sin(a - ---) sin(b + a))
2716 sin (a) sin (3 (- b - a + ---))
2718 + -------------------------------
2722 (%i5) trigrat (ac2);
2724 (%o5) - (sqrt(3) sin(4 b + 4 a) - cos(4 b + 4 a)
2725 - 2 sqrt(3) sin(4 b + 2 a) + 2 cos(4 b + 2 a)
2726 - 2 sqrt(3) sin(2 b + 4 a) + 2 cos(2 b + 4 a)
2727 + 4 sqrt(3) sin(2 b + 2 a) - 8 cos(2 b + 2 a) - 4 cos(2 b - 2 a)
2728 + sqrt(3) sin(4 b) - cos(4 b) - 2 sqrt(3) sin(2 b) + 10 cos(2 b)
2729 + sqrt(3) sin(4 a) - cos(4 a) - 2 sqrt(3) sin(2 a) + 10 cos(2 a)
2735 @c -----------------------------------------------------------------------------
2737 @node Hyperbelfunktionen, Zufallszahlen, Winkelfunktionen, Mathematische Funktionen
2738 @section Hyperbelfunktionen
2739 @c -----------------------------------------------------------------------------
2742 * Einf@"uhrung in Hyperbelfunktionen::
2743 * Funktionen und Variablen f@"ur Hyperbelfunktionen::
2746 @c -----------------------------------------------------------------------------
2747 @node Einf@"uhrung in Hyperbelfunktionen, Funktionen und Variablen f@"ur Hyperbelfunktionen, Hyperbelfunktionen, Hyperbelfunktionen
2748 @subsection Einf@"uhrung in Hyperbelfunktionen
2749 @c -----------------------------------------------------------------------------
2751 @c -----------------------------------------------------------------------------
2752 @node Funktionen und Variablen f@"ur Hyperbelfunktionen, , Einf@"uhrung in Hyperbelfunktionen, Hyperbelfunktionen
2753 @subsection Funktionen und Variablen f@"ur Hyperbelfunktionen
2755 @c --- 20.10.2010 DK -----------------------------------------------------------
2762 @deffn {Funktion} asinh (@var{x})
2763 @deffnx {Funktion} acosh (@var{x})
2764 @deffnx {Funktion} atanh (@var{x})
2765 @deffnx {Funktion} acoth (@var{x})
2766 @deffnx {Funktion} acsch (@var{x})
2767 @deffnx {Funktion} asech (@var{x})
2769 Die inversen Hyperbelfunktionen: Areasinus Hyperbolicus, Areakosinus
2770 Hyperbolicus, Areatangens Hyperbolicus, Areakotangens Hyperbolicus, Areakosekans
2771 Hyperbolicus, Areasekans Hyperbolicus.
2774 @c --- 20.10.2010 DK -----------------------------------------------------------
2781 @deffn {Funktion} sinh (@var{x})
2782 @deffnx {Funktion} cosh (@var{x})
2783 @deffnx {Funktion} tanh (@var{x})
2784 @deffnx {Funktion} coth (@var{x})
2785 @deffnx {Funktion} csch (@var{x})
2786 @deffnx {Funktion} sech (@var{x})
2788 Die Hyperbelfunktionen: Sinus Hyperbolicus, Kosinus Hyperbolicus, Tangens
2789 Hyperbolicus, Kotangens Hyperbolicus, Kosekans Hyperbolicus, Sekans
2793 @c -----------------------------------------------------------------------------
2794 @node Zufallszahlen, , Hyperbelfunktionen, Mathematische Funktionen
2795 @section Zufallszahlen
2796 @c -----------------------------------------------------------------------------
2798 @c -----------------------------------------------------------------------------
2799 @anchor{make_random_state}
2800 @deffn {Funktion} make_random_state (@var{n})
2801 @deffnx {Funktion} make_random_state (@var{s})
2802 @deffnx {Funktion} make_random_state (true)
2803 @deffnx {Funktion} make_random_state (false)
2805 Ein Zufallszustand repr@"asentiert den Zustand des Zufallszahlengenerators. Der
2806 Zustand enth@"alt 627 32-Bit Worte.
2808 @code{make_random_state(@var{n})} gibt einen neuen Zufallszustand zur@"uck, der
2809 aus einer ganzen Zahl @var{n} modulo 2^32 erzeugt wird. @var{n} kann eine
2812 @code{make_random_state(@var{s})} gibt eine Kopie des Zufallszutandes @var{s}
2815 @code{make_random_state(true)} gibt einen neuen Zufallszustand zur@"uck, der aus
2816 der aktuellen Systemzeit des Computers erzeugt wird.
2818 @code{make_random_state(false)} gibt eine Kopie des aktuellen Zustands des
2819 Zufallszahlengenerators zur@"uck.
2822 @c -----------------------------------------------------------------------------
2823 @anchor{set_random_state}
2824 @deffn {Funktion} set_random_state (@var{s})
2826 Kopiert @var{s} in den Zufallszustand des Zufallszahlengenerators.
2828 @code{set_random_state} gibt immer @code{done} zur@"uck.
2831 @c -----------------------------------------------------------------------------
2833 @deffn {Funktion} random (@var{x})
2835 Erzeugt eine Pseudo-Zufallszahl. Ist @var{x} eine ganze Zahl, gibt
2836 @code{random(@var{x})} eine ganze Zahl im Intervall 0 bis einschlie@ss{}lich
2837 @code{@var{x}-1} zur@"uck. Ist @var{x} eine Gleitkommazahl, gibt
2838 @code{random(@var{x})} eine positive Gleitkommazahl zur@"uck, die kleiner als
2839 @var{x} ist. @code{random} gibt eine Fehlermeldung, wenn @var{x} weder eine
2840 ganze Zahl noch eine Gleitkommazahl ist oder wenn @var{x} eine negative Zahl
2843 Die Funktionen @code{make_random_state} und @code{set_random_state} verwalten
2844 den Zustand des Zufallszahlengenerators.
2846 Der Maxima-Zufallszahlengenerator ist eine Implementation des Mersenne twister
2852 (%i1) s1: make_random_state (654321)$
2853 (%i2) set_random_state (s1);
2855 (%i3) random (1000);
2857 (%i4) random (9573684);
2859 (%i5) random (2^75);
2860 (%o5) 11804491615036831636390
2861 (%i6) s2: make_random_state (false)$
2863 (%o7) .2310127244107132
2864 (%i8) random (10.0);
2865 (%o8) 4.394553645870825
2866 (%i9) random (100.0);
2867 (%o9) 32.28666704056853
2868 (%i10) set_random_state (s2);
2870 (%i11) random (1.0);
2871 (%o11) .2310127244107132
2872 (%i12) random (10.0);
2873 (%o12) 4.394553645870825
2874 (%i13) random (100.0);
2875 (%o13) 32.28666704056853
2879 @c --- End of file MathFunctions.de.texi ---------------------------------------