MATLAB - Integracja
Integracja dotyczy dwóch zasadniczo różnych typów problemów.
W pierwszym typie dana jest pochodna funkcji i chcemy znaleźć funkcję. Dlatego w zasadzie odwracamy proces różnicowania. Ten odwrotny proces jest znany jako anty-różnicowanie lub znajdowanie funkcji pierwotnej lub znajdowanieindefinite integral.
Drugi rodzaj problemów polega na dodaniu bardzo dużej liczby bardzo małych wielkości, a następnie przyjęciu granicy, gdy wielkość wielkości zbliża się do zera, podczas gdy liczba składników dąży do nieskończoności. Ten proces prowadzi do zdefiniowania plikudefinite integral.
Całki oznaczone są używane do wyznaczania pola powierzchni, objętości, środka ciężkości, momentu bezwładności, pracy wykonanej przez siłę oraz w wielu innych zastosowaniach.
Znajdowanie całki nieokreślonej za pomocą MATLAB
Z definicji, jeśli pochodną funkcji f (x) jest f '(x), to mówimy, że całka nieoznaczona f' (x) względem x jest f (x). Na przykład, ponieważ pochodna (względem x) x 2 wynosi 2x, możemy powiedzieć, że całka nieoznaczona z 2x wynosi x 2 .
W symbolach -
f'(x2) = 2x, w związku z tym,
∫ 2xdx = x2.
Całka nieoznaczona nie jest unikatowa, ponieważ pochodna x 2 + c dla dowolnej wartości stałej c będzie również 2x.
Jest to wyrażone za pomocą symboli jako -
∫ 2xdx = x2 + c.
Gdzie c nazywa się „dowolną stałą”.
MATLAB zapewnia intpolecenie do obliczania całki wyrażenia. Aby wyprowadzić wyrażenie na całkę nieoznaczoną funkcji, piszemy -
int(f);
Na przykład z naszego poprzedniego przykładu -
syms x
int(2*x)
MATLAB wykonuje powyższą instrukcję i zwraca następujący wynik -
ans =
x^2
Przykład 1
W tym przykładzie znajdźmy całkę z niektórych powszechnie używanych wyrażeń. Utwórz plik skryptu i wpisz w nim następujący kod -
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)
Po uruchomieniu pliku wyświetla następujący wynik -
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)
Przykład 2
Utwórz plik skryptu i wpisz w nim następujący kod -
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))
Zwróć uwagę, że pretty funkcja zwraca wyrażenie w bardziej czytelnym formacie.
Po uruchomieniu pliku wyświetla następujący wynik -
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
Znajdowanie całki oznaczonej za pomocą MATLAB
Z definicji całka oznaczona jest w zasadzie granicą sumy. Używamy całek oznaczonych, aby znaleźć obszary, takie jak pole między krzywą a osią x oraz pole między dwiema krzywymi. Całki oznaczone można również stosować w innych sytuacjach, w których wymaganą ilość można wyrazić jako granicę sumy.
Plik int Funkcja może być używana do całkowania określonego przez przekazanie granic, powyżej których chcesz obliczyć całkę.
Liczyć
piszemy,
int(x, a, b)
Na przykład, aby obliczyć wartość
int(x, 4, 9)
MATLAB wykonuje powyższą instrukcję i zwraca następujący wynik -
ans =
65/2
Poniżej znajduje się odpowiednik oktawowy powyższego obliczenia -
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 wykonuje kod i zwraca następujący wynik -
Area:
32.500
Alternatywne rozwiązanie można podać za pomocą funkcji quad () udostępnianej przez Octave w następujący sposób -
pkg load symbolic
symbols
f = inline("x");
[a, ierror, nfneval] = quad(f, 4, 9);
display('Area: '), disp(double(a));
Octave wykonuje kod i zwraca następujący wynik -
Area:
32.500
Przykład 1
Obliczmy obszar zawarty między osią x, krzywą y = x 3 −2x + 5 oraz rzędnymi x = 1 i x = 2.
Wymagany obszar określa -
Utwórz plik skryptu i wpisz następujący kod -
f = x^3 - 2*x +5;
a = int(f, 1, 2)
display('Area: '), disp(double(a));
Po uruchomieniu pliku wyświetla następujący wynik -
a =
23/4
Area:
5.7500
Poniżej znajduje się odpowiednik oktawowy powyższego obliczenia -
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 wykonuje kod i zwraca następujący wynik -
Area:
5.7500
Alternatywne rozwiązanie można podać za pomocą funkcji quad () udostępnianej przez Octave w następujący sposób -
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 wykonuje kod i zwraca następujący wynik -
Area:
5.7500
Przykład 2
Znajdź pole pod krzywą: f (x) = x 2 cos (x) dla −4 ≤ x ≤ 9.
Utwórz plik skryptu i napisz następujący kod -
f = x^2*cos(x);
ezplot(f, [-4,9])
a = int(f, -4, 9)
disp('Area: '), disp(double(a));
Po uruchomieniu pliku MATLAB wykreśla wykres -
Dane wyjściowe podano poniżej -
a =
8*cos(4) + 18*cos(9) + 14*sin(4) + 79*sin(9)
Area:
0.3326
Poniżej znajduje się odpowiednik oktawowy powyższego obliczenia -
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));