MATLAB Integration meistern: Von Stammfunktionen zu Riemann-Summen
Integration befasst sich mit zwei grundsätzlich unterschiedlichen Arten von Problemen.
Bei der ersten Art ist die Ableitung einer Funktion gegeben und wir wollen die Funktion finden. Daher kehren wir den Differentiationsprozess im Wesentlichen um. Dieser umgekehrte Prozess wird als Antidifferenzierung, Bestimmung der Stammfunktion oder Bestimmung eines unbestimmten Integrals bezeichnet.
Bei der zweiten Art von Problemen geht es darum, eine sehr große Anzahl sehr kleiner Größen zu addieren und dann einen Limes zu bilden, wenn die Größe der Größen gegen null geht, während die Anzahl der Terme gegen unendlich strebt. Dieser Prozess führt zur Definition des bestimmten Integrals.
Bestimmte Integrale werden verwendet, um Flächen, Volumina, Schwerpunkte, Trägheitsmomente, verrichtete Arbeit einer Kraft und in zahlreichen anderen Anwendungen zu berechnen.
Unbestimmtes Integral mit MATLAB finden
Nach Definition ist, wenn die Ableitung einer Funktion f(x) f'(x) ist, dann sagen wir, dass ein unbestimmtes Integral von f'(x) nach x f(x) ist. Zum Beispiel ist, da die Ableitung (nach x) von x2 gleich 2x ist, ein unbestimmtes Integral von 2x gleich x2.
In Symbolen:
f'(x2) = 2x, daher
∫ 2x dx = x2.
Das unbestimmte Integral ist nicht eindeutig, da die Ableitung von x2 + c für jeden Wert einer Konstanten c ebenfalls 2x ist.
Dies wird in Symbolen wie folgt ausgedrückt:
∫ 2x dx = x2 + c.
Dabei wird c als willkürliche Konstante bezeichnet.
MATLAB bietet den Befehl int zur Berechnung des Integrals eines Ausdrucks. Um einen Ausdruck für das unbestimmte Integral einer Funktion abzuleiten, schreiben wir:
int(f);
Beispiel aus unserem vorherigen Beispiel:
syms x int(2*x)
MATLAB führt die obige Anweisung aus und gibt folgendes Ergebnis zurück:
ans = x^2
Beispiel 1
In diesem Beispiel berechnen wir das Integral einiger häufig verwendeter Ausdrücke. Erstellen Sie eine Skriptdatei und geben Sie folgenden Code ein:
syms x n int(sym(x^n)) f = 'sin(n*t)' int(sym(f)) syms a t int(a*cos(pi*t)) int(a^x)
Beim Ausführen der Datei wird folgendes Ergebnis angezeigt:
ans = piecewise([n == -1, log(x)], [n ~= -1, x^(n + 1)/(n + 1)]) f = sin(n*t) ans = -cos(n*t)/n ans = (a*sin(pi*t))/pi ans = a^x/log(a)
Beispiel 2
Erstellen Sie eine Skriptdatei und geben Sie folgenden Code ein:
syms x n int(cos(x)) int(exp(x)) int(log(x)) int(x^-1) int(x^5*cos(5*x)) pretty(int(x^5*cos(5*x))) int(x^-5) int(sec(x)^2) pretty(int(1 - 10*x + 9 * x^2)) int((3 + 5*x -6*x^2 - 7*x^3)/2*x^2) pretty(int((3 + 5*x -6*x^2 - 7*x^3)/2*x^2))
Beachten Sie, dass die Funktion pretty einen Ausdruck in einem besser lesbaren Format zurückgibt.
Beim Ausführen der Datei wird folgendes Ergebnis angezeigt:
ans = sin(x) ans = exp(x) ans = x*(log(x) - 1) ans = log(x) ans = (24*cos(5*x))/3125 + (24*x*sin(5*x))/625 - (12*x^2*cos(5*x))/125 + (x^4*cos(5*x))/5 - (4*x^3*sin(5*x))/25 + (x^5*sin(5*x))/5 2 4 24 cos(5 x) 24 x sin(5 x) 12 x cos(5 x) x cos(5 x) ----------- + ------------- - -------------- + ------------ 3125 625 125 5 3 5 4 x sin(5 x) x sin(5 x) ------------- + ----------- 25 5 ans = -1/(4*x^4) ans = tan(x) 2 x (3 x - 5 x + 1) ans = - (7*x^6)/12 - (3*x^5)/5 + (5*x^4)/8 + x^3/2 6 5 4 3 7 x 3 x 5 x x - ---- - ---- + ---- + -- 12 5 8 2
Bestimmtes Integral mit MATLAB finden
Nach Definition ist das bestimmte Integral im Wesentlichen der Limes einer Summe. Wir verwenden bestimmte Integrale, um Flächen zu finden, wie die Fläche zwischen einer Kurve und der x-Achse und die Fläche zwischen zwei Kurven. Bestimmte Integrale können auch in anderen Situationen verwendet werden, wo die gesuchte Größe als Limes einer Summe ausgedrückt werden kann.
Die Funktion int kann für die bestimmte Integration verwendet werden, indem die Grenzen übergeben werden, über die Sie das Integral berechnen möchten.
Um zu berechnen
schreiben wir:
int(x, a, b)
Beispiel: Um den Wert von
zu berechnen, schreiben wir:
int(x, 4, 9)
MATLAB führt die obige Anweisung aus und gibt folgendes Ergebnis zurück:
ans = 65/2
Folgendes ist das Octave-Äquivalent der obigen Berechnung:
pkg load symbolic symbols x = sym("x"); f = x; c = [1, 0]; integral = polyint(c); a = polyval(integral, 9) - polyval(integral, 4); display('Area: '), disp(double(a));
Octave führt den Code aus und gibt folgendes Ergebnis zurück:
Area: 32.500
Eine alternative Lösung kann mit der quad()-Funktion von Octave wie folgt gegeben werden:
pkg load symbolic symbols f = inline("x"); [a, ierror, nfneval] = quad(f, 4, 9); display('Area: '), disp(double(a));
Octave führt den Code aus und gibt folgendes Ergebnis zurück:
Area: 32.500
Beispiel 1
Berechnen wir die Fläche, die zwischen der x-Achse, der Kurve y = x3−2x+5 und den Ordinaten x = 1 und x = 2 eingeschlossen ist.
Die gesuchte Fläche wird gegeben durch:
Erstellen Sie eine Skriptdatei und geben Sie folgenden Code ein:
f = x^3 - 2*x +5; a = int(f, 1, 2) display('Area: '), disp(double(a));
Beim Ausführen der Datei wird folgendes Ergebnis angezeigt:
a = 23/4 Area: 5.7500
Folgendes ist das Octave-Äquivalent der obigen Berechnung:
pkg load symbolic symbols x = sym("x"); f = x^3 - 2*x +5; c = [1, 0, -2, 5]; integral = polyint(c); a = polyval(integral, 2) - polyval(integral, 1); display('Area: '), disp(double(a));
Octave führt den Code aus und gibt folgendes Ergebnis zurück:
Area: 5.7500
Eine alternative Lösung kann mit der quad()-Funktion von Octave wie folgt gegeben werden:
pkg load symbolic symbols x = sym("x"); f = inline("x^3 - 2*x +5"); [a, ierror, nfneval] = quad(f, 1, 2); display('Area: '), disp(double(a));
Octave führt den Code aus und gibt folgendes Ergebnis zurück:
Area: 5.7500
Beispiel 2
Finden Sie die Fläche unter der Kurve: f(x) = x2 cos(x) für −4 ≤ x ≤ 9.
Erstellen Sie eine Skriptdatei und schreiben Sie folgenden Code:
f = x^2*cos(x); ezplot(f, [-4,9]) a = int(f, -4, 9) disp('Area: '), disp(double(a));
Beim Ausführen der Datei plottet MATLAB den Graphen:
Die Ausgabe ist unten angegeben:
a = 8*cos(4) + 18*cos(9) + 14*sin(4) + 79*sin(9) Area: 0.3326
Folgendes ist das Octave-Äquivalent der obigen Berechnung:
pkg load symbolic symbols x = sym("x"); f = inline("x^2*cos(x)"); ezplot(f, [-4,9]) print -deps graph.eps [a, ierror, nfneval] = quad(f, -4, 9); display('Area: '), disp(double(a));
MATLAB
- MATLAB: Umfassender Überblick über die führende numerische Computing-Umgebung
- MATLAB Grundlagen: Wesentliche Syntax & Befehle meistern
- Variablen in MATLAB verstehen: Grundlagen & Beispiele
- Wichtige MATLAB-Befehle für effizientes Computing
- MATLAB Datentypen: Umfassender Leitfaden
- MATLAB Operatoren meistern: Arithmetik, Logik, Bitweise Operationen
- MATLAB Vektoren meistern: Zeilen- und Spaltenvektoren Grundlagen
- MATLAB Matrizen Grundlagen: Erstellen, Referenzieren, Manipulieren
- MATLAB: Mehrdimensionale und spezielle Arrays meistern
- MATLAB-Colon-Notation meistern: Vektoren erstellen & effizient iterieren