Nächste: Einführung in QUADPACK, Vorige: Einführung in die Integration, Nach oben: Integration [Inhalt][Index]
Führt eine Substitution der Integrationsvariablen, die als f(x,y)=0 angegeben wird, für die Variable x in allen Integralen durch, die in expr enthalten sind. Die neue Variable ist y.
(%i1) assume(a > 0)$
(%i2) 'integrate (%e**sqrt(a*y), y, 0, 4); 4 / [ sqrt(a) sqrt(y) (%o2) I %e dy ] / 0
(%i3) changevar (%, y-z^2/a, z, y); 0 / [ abs(z) 2 I z %e dz ] / - 2 sqrt(a) (%o3) - ---------------------------- a
Ein Ausdruck mit einem Integral in einer Substantivform 'integrate
wie
im obigen Beispiel kann mit der Funktion ev
und dem Auswertungsschalter
nouns
ausgewertet werden. Das Beispiel von oben kann zum Beispiel mit
ev(%o3, nouns)
ausgewertet werden.
Mit changevar
können auch die Indizes einer Summe oder eines Produktes
substituiert werden. Dabei muss beachtet werden, dass nur lineare
Verschiebungen, wie zum Beispiel i = j + ...
, eine korrekte Substitution
für Summen und Produkte sind.
(%i4) sum (a[i]*x^(i-2), i, 0, inf); inf ==== \ i - 2 (%o4) > a x / i ==== i = 0
(%i5) changevar (%, i-2-n, n, i); inf ==== \ n (%o5) > a x / n + 2 ==== n = - 2
Eine Routine, um ein bestimmtes doppeltes Integral mit der Simpsonschen Regel numerisch zu berechnen.
b s(x) / / [ [ I I f(x, y) dy dx ] ] / / a r(x)
Die Funktion f muss eine Funktion von zwei Variablen sein. r und
s müssen Funktionen einer Variablen sein. a und b sind
Gleitkommazahlen. Die Optionsvariablen dblint_x
und dblint_y
kontrollieren die Anzahl der Unterteilungen des Integrationsintervalls für
den Simpsonschen Algorithmus. Der Standardwert ist jeweils 10.
Das Kommando demo(dblint)
zeigt ein Beispiel.
Die numerischen Funktionen des Pakets QUADPACK
sind gegenüber
dblint
zu bevorzugen.
Sucht das bestimmte Integral eines Ausdrucks expr für die
Integrationsvariable x in den Grenzen a und b. Diese Funktion
wird ausgeführt, wenn ein bestimmtes Integral mit der Funktion
integrate
gesucht wird.
defint
gibt einen symbolischen Ausdruck als Ergebnis zurück. Ist das
Integral divergent, generiert Maxima eine Fehlermeldung. Kann defint
keine Lösung finden, wird eine Substantivform zurückgegeben.
Standardwert: true
Hat erfflag
den Wert false
, wird von der Funktion risch
die Fehlerfunktion erf
nicht in die Lösung eingeführt.
Berechnet die Inverse Laplace-Transformation des Ausdrucks expr für die
Variable s und den Parameter t. expr muss eine rationale
Funktion sein, in deren Nenner nur lineare und quadratische Faktoren auftreten.
Mit den Funktionen laplace
und ilt
sowie den Funktionen
solve
oder linsolve
können lineare Differentialgleichungen oder
Systeme von linearen Differentialgleichungen gelöst werden.
(%i1) 'integrate (sinh(a*x)*f(t-x), x, 0, t) + b*f(t) = t**2; t / [ 2 (%o1) I f(t - x) sinh(a x) dx + b f(t) = t ] / 0
(%i2) laplace (%, t, s); a laplace(f(t), t, s) 2 (%o2) b laplace(f(t), t, s) + --------------------- = -- 2 2 3 s - a s
(%i3) linsolve ([%], ['laplace(f(t), t, s)]); 2 2 2 s - 2 a (%o3) [laplace(f(t), t, s) = --------------------] 5 2 3 b s + (a - a b) s
(%i4) ilt (rhs (first (%)), s, t); Is a b (a b - 1) positive, negative, or zero? pos; sqrt(a b (a b - 1)) t 2 cosh(---------------------) 2 b a t (%o4) - ----------------------------- + ------- 3 2 2 a b - 1 a b - 2 a b + a 2 + ------------------ 3 2 2 a b - 2 a b + a
Standardwert: true
Hat intanalysis
den Wert true
, sucht Maxima nach Polen in einem
Integranden. Existieren solche, wird der Cauchysche Hauptwert des Integrals
bestimmt. Hat intanalysis
den Wert false
, wird die Integration
unter der Annahme ausgeführt, dass das Integral keine Pole im
Integrationsbereich hat.
Siehe auch ldefint
.
Beispiele:
Maxima kann das folgende Integral lösen, wenn intanalysis
den Wert
false
hat.
(%i1) integrate(1/(sqrt(x)+1),x,0,1);
1 / [ 1 (%o1) I ----------- dx ] sqrt(x) + 1 / 0
(%i2) integrate(1/(sqrt(x)+1),x,0,1),intanalysis:false; (%o2) 2 - 2 log(2) (%i3) integrate(cos(a)/sqrt((tan(a))^2 +1),a,-%pi/2,%pi/2); The number 1 isn't in the domain of atanh -- an error. To debug this try: debugmode(true); (%i4) intanalysis:false$ (%i5) integrate(cos(a)/sqrt((tan(a))^2+1),a,-%pi/2,%pi/2); %pi (%o5) --- 2
Sucht die symbolische Lösung des Integrals für den Ausdruck expr und
der Integrationsvariablen x. integrate(expr, x)
löst
das unbestimmte Integral.
integrate(expr, x, a, b)
sucht die Lösung des
bestimmten Integrals in den Integrationsgrenzen a und b. Die
Integrationsgrenzen dürfen die Integrationsvariable x nicht enthalten.
Für die Integrationsgrenzen muss nicht gelten a < b. Sind die
Integrationsgrenzen gleich, dann ist das Ergebnis der Integration Null.
Für die numerische Lösung von Integralen siehe die Funktion
quad_qag
und verwandte Funktionen. Residuen eines Integranden können
mit der Funktion residue
berechnet werden. Einen alternativen
Algorithmus für das Lösen von Integralen, die im Integranden eine unbekannte
Funktion und deren Ableitung enthalten, bieten die Funktionen antid
und
antidiff
.
Findet integrate
keine Lösung wird eine Substantivform oder ein
Ausdruck mit einer oder mehreren Substantivformen zurückgegeben.
Soll das Integral nicht sofort berechnet werden, kann die Substantivform des
Integrals angegeben werden, zum Beispiel 'integrate(expr, x)
.
Die Berechnung des Integrals ist dann mit Funktion ev
und dem
Auswertungsschalter nouns
möglich.
Die Abhängigkeit der Funktionen im Integranden von Variablen muss explizit zum
Beispiel mit f(x)
angegeben werden. integrate
beachtet keine
Abhängigkeit die mit der Funktion depends
definiert werden.
Benötigt integrate
Informationen zu einem Parameter, die nicht aus dem
aktuellen Kontext abgeleitet werden können, wird der Nutzer nach den fehlenden
Informationen gefragt.
integrate
ist standardmäßig nicht als linear deklariert. Siehe
declare
und linear
.
Nur in einigen speziellen Fällen wendet integrate
die Methode der
partiellen Integration an.
Beispiele:
Elementare unbestimmte und bestimme Integrale.
(%i1) integrate (sin(x)^3, x); 3 cos (x) (%o1) ------- - cos(x) 3
(%i2) integrate (x/ sqrt (b^2 - x^2), x); 2 2 (%o2) - sqrt(b - x )
(%i3) integrate (cos(x)^2 * exp(x), x, 0, %pi); %pi 3 %e 3 (%o3) ------- - - 5 5
(%i4) integrate (x^2 * exp(-x^2), x, minf, inf); sqrt(%pi) (%o4) --------- 2
Gebrauch von assume
und interaktive Fragen.
(%i1) assume (a > 1)$
(%i2) integrate (x**a/(x+1)**(5/2), x, 0, inf); 2 a + 2 Is ------- an integer? 5 no; Is 2 a - 3 positive, negative, or zero? neg; 3 (%o2) beta(a + 1, - - a) 2
Substitution der Integrationsvariablen. In diesem Beispiel werden zwei
verschiedene Substitutionen vorgenommen. Zuerst wird eine Ableitung der
Funktion mit der Funktion gradef
definiert. Die andere nutzt die
Ableitung diff(r(x))
einer unbekannten Funktion r(x)
.
(%i3) gradef (q(x), sin(x^2)); (%o3) q(x)
(%i4) diff (log (q (r (x))), x); d 2 (-- (r(x))) sin(r (x)) dx (%o4) ---------------------- q(r(x))
(%i5) integrate (%, x); (%o5) log(q(r(x)))
Die Lösung enthält eine Substantivform für das Integral einer rationalen
Funktion. Siehe auch integrate_use_rootsof
für Informationen zu
Integralen von rationalen Funktionen.
(%i1) expand ((x-4) * (x^3+2*x+1)); 4 3 2 (%o1) x - 4 x + 2 x - 7 x - 4
(%i2) integrate (1/%, x); / 2 [ x + 4 x + 18 I ------------- dx ] 3 log(x - 4) / x + 2 x + 1 (%o2) ---------- - ------------------ 73 73
Definition einer Funktion als ein Integral. Die rechte Seite einer
Funktionsdefinition wird nicht ausgewertet. Daher enthält die
Funktionsdefinition das Integral in einer Substantivform. Der
Quote-Quote-Operator
''
erzwingt die Auswertung der
Substantivform.
(%i1) f_1(a) := integrate (x^3, x, 1, a); 3 (%o1) f_1(a) := integrate(x , x, 1, a)
(%i2) ev(f_1 (7), nouns); (%o2) 600
(%i3) /* Note parentheses around integrate(...) here */ f_2(a) := ''(integrate (x^3, x, 1, a)); 4 a 1 (%o3) f_2(a) := -- - - 4 4
(%i4) f_2(7); (%o4) 600
Standardwert: %c
Wird eine symbolische Integrationskonstante für die Lösung eines Integrals
benötigt, erzeugt Maxima diese durch Verkettung des Symbols
integration_constant
mit einer laufenden Nummer, die der Wert der
Optionsvariablen integration_constant_counter
ist.
Der Optionsvariablen integration_constant
kann ein beliebiges Symbol
zugewiesen werden.
Beispiele:
(%i1) integrate (x^2 = 1, x); 3 x (%o1) -- = x + %c1 3
(%i2) integration_constant : 'k; (%o2) k
(%i3) integrate (x^2 = 1, x); 3 x (%o3) -- = x + k2 3
Standardwert: 0
Wird eine symbolische Integrationskonstante für die Lösung eines Integrals
benötigt, erzeugt Maxima diese durch Verkettung des Symbols
integration_constant
mit einer laufenden Nummer, die der Wert der
Optionsvariablen integration_constant_counter
ist.
Der Wert der Systemvariablen integration_constant_counter
wird vor der
Erzeugung der Integrationskonstanten erhöht.
Beispiele:
(%i1) integrate (x^2 = 1, x); 3 x (%o1) -- = x + %c1 3
(%i2) integrate (x^2 = 1, x); 3 x (%o2) -- = x + %c2 3
(%i3) reset (integration_constant_counter); (%o3) [integration_constant_counter]
(%i4) integrate (x^2 = 1, x); 3 x (%o4) -- = x + %c1 3
Standardwert: false
Hat integrate_use_rootsof
den Wert true
und der Nenner einer
rationalen Funktion kann nicht faktorisiert werden, dann gibt
integrate
ein Integral zurück, das eine Summe über die unbekannten
Wurzeln des Nenners enthält.
Hat zum Beispiel integrate_use_rootsof
den Wert false
, gibt
integrate
im Folgenden ein Lösung zurück, die eine Substantivform
enthält.
(%i1) integrate_use_rootsof: false$
(%i2) integrate (1/(1+x+x^5), x); / 2 [ x - 4 x + 5 I ------------ dx 2 x + 1 ] 3 2 2 5 atan(-------) / x - x + 1 log(x + x + 1) sqrt(3) (%o2) ----------------- - --------------- + --------------- 7 14 7 sqrt(3)
Mit dem Wert true
für die Optionsvariable integrate_use_rootsof
wird das ungelöste Integral als eine Summe über die Wurzeln des Nenners der
rationalen Funktion zurückgegeben.
(%i3) integrate_use_rootsof: true$
(%i4) integrate (1/(1+x+x^5), x); ==== 2 \ (%r4 - 4 %r4 + 5) log(x - %r4) > ------------------------------- / 2 ==== 3 %r4 - 2 %r4 3 2 %r4 in rootsof(x - x + 1) (%o4) ---------------------------------------------------------- 7 2 x + 1 2 5 atan(-------) log(x + x + 1) sqrt(3) - --------------- + --------------- 14 7 sqrt(3)
Alternativ kann der Nutzer die Wurzeln des Nenners separat berechnen und den
Integranden mit Hilfe der Wurzeln ausdrücken. Zum Beispiel als
1/((x - a)*(x - b)*(x - c))
oder 1/((x^2-(a+b)*x + a*b)*(x - c))
für ein kubisches Polynom mit drei Nullstellen im Nenner. Auf diese Weise
kann Maxima in einigen Fällen eine Lösung für ein Integral finden.
Sucht die Laplace-Transformation des Ausdrucks expr für die Integrationsvariable x und den Parameter s.
laplace
findet die Laplace-Transformation für Ausdrücke, die die
Funktionen delta
, exp
, log
, sin
,
cos
, sinh
, cosh
und erf
sowie Ausdrücke
mit derivative
, integrate
, sum
und ilt
enthalten.
Kann laplace
die Laplace-Transformation nicht finden, wird die Funktion
specint
aufgerufen. specint
kann die Laplace-Transformation für
eine Vielzahl von speziellen Funktionen im Integranden berechnen. Findet auch
specint
keine Lösung ist das Ergebnis eine Substantivform.
laplace
erkennt die Faltung von Funktionen der Form
integrate (f(x) * g(t - x), x, 0, t)
. Andere Faltungen werden nicht
erkannt.
Funktionale Abhängigkeiten von Variablen müssen explizit angegeben werden.
laplace
erkennt keine Abhängigkeiten, die mit der Funktion
depends
definiert wurden. Eine Funktion die von den Variablen x
abhängt, muss als f(x)
im Ausdruck expr auftreten.
Siehe auch ilt
für die Inverse Laplace-Transformation.
Beispiele:
(%i1) laplace (exp (2*t + a) * sin(t) * t, t, s); a %e (2 s - 4) (%o1) --------------- 2 2 (s - 4 s + 5) (%i2) laplace ('diff (f (x), x), x, s); (%o2) s laplace(f(x), x, s) - f(0) (%i3) diff (diff (delta (t), t), t); 2 d (%o3) --- (delta(t)) 2 dt (%i4) laplace (%, t, s); ! d ! 2 (%o4) - -- (delta(t))! + s - delta(0) s dt ! !t = 0 (%i5) assume(a>0)$ (%i6) laplace(gamma_incomplete(a,t),t,s),gamma_expand:true; - a - 1 gamma(a) gamma(a) s (%o6) -------- - ----------------- s 1 a (- + 1) s (%i7) factor(laplace(gamma_incomplete(1/2,t),t,s));
s + 1 sqrt(%pi) (sqrt(s) sqrt(-----) - 1) s (%o7) ----------------------------------- 3/2 s + 1 s sqrt(-----) s
(%i8) assume(exp(%pi*s)>1)$ (%i9) laplace(sum((-1)^n*unit_step(t-n*%pi)*sin(t),n,0,inf),t,s) ,simpsum;
%i %i ------------------------ - ------------------------ - %pi s - %pi s (s + %i) (1 - %e ) (s - %i) (1 - %e ) (%o9) --------------------------------------------------- 2
(%i9) factor(%); %pi s %e (%o9) ------------------------------- %pi s (s - %i) (s + %i) (%e - 1)
Sucht die Lösung des bestimmten Integrals für den Integranden expr.
ldefint
bestimmt die Stammfunktion und sucht die Grenzwerte mit der
Funktion limit
an den Integrationsgrenzen a und b. Kann ein
Grenzwert nicht ermittelt werden, enthält das Ergebnis die Substantivform
des Grenzwertes.
ldefint
wird nicht von der Funktion integrate
aufgerufen. Daher
kann ldefint
ein von integrate
verschiedenes Ergebnis haben.
ldefint
verwendet immer denselben Algorithmus, um eine Lösung zu
finden. Dagegen wendet integrate
verschiedene Algorithmen an, um nach
einer Lösung zu suchen.
Berechnet das Residuum für den Ausdruck expr, wenn die Variable z gegen den Wert z_0 geht.
Beispiele:
(%i1) residue (s/(s**2+a**2), s, a*%i); 1 (%o1) - 2
(%i2) residue (sin(a*x)/x**4, x, 0); 3 a (%o2) - -- 6
Nutzt den transzendenten Risch-Algorithmus für die Integration des
Ausdruck expr und der Integrationsvariable x. Der algebraische
Risch-Algorithmus ist nicht implementiert. Der transzendente Risch-Algorithmus
behandelt Integranden mit Exponential- und Logarithmusfunktionen. Der
Risch-Algorithmus wird von integrate
aufgerufen, wenn integrate
keine Stammfunktion finden kann.
Hat erfflag
den Wert false
, werden von der Funktion risch
keine Fehlerfunktionen erf
in die Lösung eingeführt.
Beispiele:
(%i1) risch (x^2*erf(x), x); 2 3 2 - x %pi x erf(x) + (sqrt(%pi) x + sqrt(%pi)) %e (%o1) ------------------------------------------------- 3 %pi
(%i2) diff(%, x), ratsimp; 2 (%o2) x erf(x)
Entspricht der Funktion ldefint
mit dem Wert true
für die
Optionsvariable tlimswitch
.
Nächste: Einführung in QUADPACK, Vorige: Einführung in die Integration, Nach oben: Integration [Inhalt][Index]