4.7 Aplikace určitého integrálu v programu Maple
V celé kapitole předpokládáme načtení balíku plots, aniž bychom na začátku každého příkladu toto načtení uváděli. Tento balík voláme následujícím příkazem:
> restart:
> with(plots):
V případě, že budeme potřebovat jiné balíky, jejich načtení zmíníme.
4.7.1 Obsah obrazce
Je-li funkce na intervalu nezáporná a integrovatelná, pak obsah rovinného obrazce, který je podgrafem funkce , je dán vzorcem
> S := Int(f(x),x = a .. b);
Jsou-li a funkce integrovatelné na intervalu a splňující nerovnost pro , pak je zkoumaný rovinný obrazec množinovým rozdílem podgrafu funkce a podgrafu funkce a pro jeho obsah platí
> S:=Int(g(x), x=a..b) - Int(f(x), x=a..b) = Int((g(x) - f(x)),x=a..b);
Příklad:
Vypočtěte plošný obsah obrazce ohraničeného grafem funkce a osou .
Řešení:
Funkci definujeme:
> f:=x->x*sqrt(x+4);
Zjistíme, kde graf funkce protne osu a nakreslíme graf funkce::
> solve(f(x)=0);
> plot(f,-4..0,scaling=constrained,filled=true, color=navy,font=[TIMES,ROMAN,10]);
V příkazu plot jsme použili volby scaling=constrained, filled=true, color=navy. První volba nám zajistí stejná měřítka na osách, druhá volba vyplní dále zvolenou barvou omezenou plochu.
Graf protne osu v bodech a , bude tedy dolní mez a horní mez. Jelikož máme graf pod osou , budeme obsah počítat podle vzorce (12):
> P:=-Int(f(x),x=-4..0);
Výpočet integrálu provedeme substituční metodou (viz. podkapitola 4.6):
> with(student):
> changevar(x+4=t,P,t);
Integrál vyhodnotíme:
> P=value(%);
Stáhnout .mws soubor
Příklad:
Vypočtěte obsah obrazce omezeného křivkou a osou .
Řešení:
Funkci definujeme, zjistíme průsečíky s osou a vykreslíme graf:
> f:=x->x^3+2*x^2-3*x;
> solve(f(x)=0);
> plot(f,-3..1,-2..7,filled=true,color=navy,font=[TIMES,ROMAN,10]);
Funkce je na intervalu nezáporná a na intervalu záporná, plochu tohoto obrazce vypočítáme proto takto:
> P:=Int(f(x),x=-3..0)+abs(Int(f(x),x=0..1));
> value(P);
Stáhnout .mws soubor
Příklad:
Vypočtěte obsah kruhu o poloměru .
Řešení:
Rovnice kružnice je . Kruh lze nakreslit například použitím příkazu implicitplot. Nebo definujeme funkci a vykreslíme graf této funkce, samozřejmě pro pevně danou hodnotu poloměru , zvolme například .
> f:=x->sqrt(r^2-x^2);
> r:=2:
> plot(f(x),x=-2..2,scaling=constrained,filled=true,color=navy, font=[TIMES,ROMAN,10]);
Nyní zrušíme hodnotu, kterou jsme přiřadili poloměru, sdělíme Maplu předpoklad, že , a spočteme obsah kruhu jako dvojnásobek obsahu vyšrafované části.
> r:='r':assume(r>0);
> P:=2*Int(f(x),x=-r..r);
> value(P);
Obsah kruhu lze spočítat také pomocí substituce takto:
> with(student):
> changevar(x=r*cos(t),Int(f(x),x=-r..r),t);
> value(%);
> P=2*%;
Stáhnout .mws soubor
Poznámka. V následujících příkladech načítáme balíky plots a plottools. Navíc budeme používat textový soubor srafovani.txt, který obsahuje proceduru shadein, pomocí níž lze vybarvit obrazec mezi grafy funkcí a . Tento soubor je ke stažení na stránkách http://is.muni.cz/el/1431/jaro2006/M2511/Osnova_HTML2.htm. Vstupními parametry procedury shadein jsou funkce a , interval pro proměnnou a volba barvy šrafování. Na začátku každého z následujících příkladů jsou nezbytné tyto příkazy:
> restart:
> with(plots):with(plottools):
> read("srafovani.txt"):
Příklad:
Vypočtěte obsah obrazce omezeného grafy funkcí , a přímkou .
Řešení:
Funkce definujeme a nakreslíme jejich grafy společně se zadanou přímkou:
> f:=x->exp(x);
> g:=x->exp(-x);
> g1:=plot({f(x),g(x)},x=-3..3,y=0..5,color=[red,blue], scaling=constrained, font=[TIMES,ROMAN,10]):
> g2:=implicitplot(x-1=0,x=0..2,y=0..5,color=green, font=[TIMES,ROMAN,10]):
> display({g1,g2}, font=[TIMES,ROMAN,10]);
Z grafu se zdá, že se křivky protínají na ose , tuto hypotézu ověříme výpočtem:
> solve(f(x)=g(x));
Nyní vyšrafujeme obrazec, jehož obsah máme spočítat a nakonec obsah vypočteme:
> v:=plot({f(x), g(x)}, x=-1..1,color=[red,green], scaling=constrained, font=[TIMES,ROMAN,10]):
> pic:=shadein(f,g,[0,1], navy):
> display({v,pic}, font=[TIMES,ROMAN,10]);
> P:=Int(f(x)-g(x), x=0..1);
> P=int(f(x)-g(x), x=0..1);
Stáhnout .mws soubor
Příklad:
Vypočtěte obsah obrazce omezeného křivkami .
Řešení:
Podíváme se, jak křivky vypadají:
> implicitplot({(y-1)^2=2*x+1,x-y=0},x=-2..6,y=-2..6,scaling=constrained, numpoints=1000,font=[TIMES,ROMAN,10]);
Zjistíme průsečíky:
> solve({(y-1)^2=2*x+1, x-y=0});
Vzhledem k tomu, že výpočet obsahu obrazce podle proměnné by byl zbytečně složitý, zaměníme proměnné a a vykreslíme graf znovu:
> implicitplot({(x-1)^2=2*y+1,x-y=0},x=-2..6,y=-1..6,scaling=constrained, numpoints=1000,font=[TIMES,ROMAN,10]);
Znovu definujeme funkce, tentokrát v proměnné a vyšrafujeme obrazec, jehož obsah máme spočítat:
> f:=y->(y^2-2*y)/2;
> g:=y->y;
> v:=plot({f,g},0..6,y=-1..5,scaling=constrained,numpoints=500, font=[TIMES,ROMAN,10]):
> pic:=shadein(f,g,[0,4],navy):
> display({v,pic},font=[TIMES,ROMAN,10]);
Obsah spočteme podle proměnné :
> P:=Int(g(y)-f(y),y=0..4);
> P=int(g(y)-f(y),y=0..4);
Stáhnout .mws soubor
Příklad:
Vypočtěte obsah obrazce ohraničeného grafy funkcí a .
Řešení:
Funkce definujeme a nakreslíme jejich grafy do jednoho obrázku:
> f:=x->sqrt(2)*sin(x);
> g:=x->tan(x);
> plot({f(x),g(x)},x=-Pi/3..Pi/3,y=-1.5..1.5, color=[green,blue],scaling=constrained,font=[TIMES,ROMAN,10]);
Zjistíme průsečíky grafů funkcí:
> solve(f(x)=g(x));
Průsečíky jsou 3, vyšrafujeme obrazec, jehož obsah máme spočítat:
> v:=plot({f(x), g(x)}, x=-1..1,color=[red,green], scaling=constrained,font=[TIMES,ROMAN,10]):
> pic:=shadein(f,g,[-Pi/4,Pi/4], navy):
> display({v,pic}, font=[TIMES,ROMAN,10]);
Zřejmě je obrazec souměrný podle počátku, stačí tedy, když vypočteme obsah obrazce na intervalu a vynásobíme 2:
> P:=2*Int(f(x)-g(x), x=0..Pi/4);
> P=value(%);
Stáhnout .mws soubor
Poznámka. Je-li graf funkce určen parametrickými rovnicemi , kde funkce je spojitá a nezáporná na intervalu a funkce má na intervalu nenulovou derivaci , která je integrovatelná na intervalu , platí pro obsah obrazce ohraničeného grafem funkce vzorec
> S:=abs(Int(y(t)*(Diff(x(t), t)), t=alpha..beta));
Příklad:
Určete obsah obrazce ohraničeného křivkou a osou .
Řešení:
Nejprve se podíváme na graf křivky pro pevnou hodnotu :
> a:=1:
> plot([a*(t^2+1), a*(t^3-3*t),t=0..sqrt(3)],scaling=constrained, filled=true,color=navy,font=[TIMES,ROMAN,10]);
Zrušíme zadanou hodnotu čísla a zároveň pro zadáme předpoklad:
> a:='a':assume(a>0):
Spočteme obsah podle známého vzorce (26):
> S:=abs(Int(a*(t^3-3*t)*(Diff(a*(t^2+1), t)), t=0..sqrt(3)));
> S=abs(Int(a*(t^3-3*t)*(diff(a*(t^2+1), t)), t=0..sqrt(3)));
> S=value(rhs(%));
Stáhnout .mws soubor
Poznámka. Jestliže je obrazec ohraničen obloukem křivky, která je zadána rovnicí v polárních souřadnicích , platí pro obsah vzorec
> S:=1/2*(Int(rho(theta)^2,theta=alpha..beta));
Příklad:
Vypočtěte obsah obrazce ohraničeného křivkou a osou .
Řešení:
Uděláme si představu o křivce pro hodnotu :
> a:=1:
> plots[polarplot](a*phi,phi=0..2*Pi,numpoints=1500, scaling=constrained,font=[TIMES,ROMAN,10]);
Zrušíme zadanou hodnotu čísla a spočteme obsah:
> a:='a':assume(a>0):
> S:=1/2*(Int((a*phi)^2,phi=0..2*pi));
> S=value(S);
Stáhnout .mws soubor
4.7.2 Délka křivky
Pro délku grafu funkce , která je definována na intervalu , platí vztah
> l:=Int(sqrt(1+(Diff(f(x),x))^2),x=a..b);
Příklad:
Vypočtěte délku oblouku křivky na intervalu .
Řešení:
Nejprve funkci definujeme a nakreslíme její graf:
> k:=x->ln(sin(x));
> plot(k(x),x=Pi/3..2*Pi/3, font=[TIMES,ROMAN,10]);
Spočítáme délku na zadaném intervalu podle vzorce (27):
> l:=Int(sqrt(1+(Diff(k(x),x))^2),x=Pi/3..2*Pi/3);
> l=Int(sqrt(1+(diff(k(x),x))^2),x=Pi/3..2*Pi/3);
> l=simplify(value(rhs(%)));
Stáhnout .mws soubor
Příklad:
Vypočtěte délku části křivky, jež je dána rovnicí , pod osou .
Řešení:
Kružnici nakreslíme:
> implicitplot(x^2+(y-1)^2=4,x=-2..2,y=-2..4,scaling=constrained, font=[TIMES,ROMAN,10], numpoints=1500);
Rovnice dolní půlkružnice je tvaru:
> k:=x->1-sqrt(4-x^2);
Zjistíme průsečíky kružnice s osou , ty nám vymezí integrační meze:
> solve(k(x)=0);
A vypočteme délku oblouku podle vzorce (27):
> assume(x,real):
> l:=Int(sqrt(1+(Diff(k(x),x))^2),x=-sqrt(3)..sqrt(3));
> l=Int(sqrt(1+(diff(k(x),x))^2),x=-sqrt(3)..sqrt(3));
> l=simplify(value(l));
Stáhnout .mws soubor
Příklad:
Určete délku křivky dané jako graf funkce na intervalu .
Řešení:
Funkci definujeme a nakreslíme její graf:
> k:=x-> sqrt(x^3);
> plot(k(x),x=-1..5,y=0..8,scaling=constrained,font=[TIMES,ROMAN,10]);
Určíme derivaci:
> diff(k(x),x);
Spočítáme délku dosazením do vzorce (27):
> l:=Int(sqrt(1+(Diff(k(x),x))^2),x=0..4);
> l=Int(sqrt(1+(diff(k(x),x))^2),x=0..4);
> l=int(sqrt(1+(diff(k(x),x))^2),x=0..4);
> simplify(rhs(%));
Stáhnout .mws soubor
Poznámka. V případě, že máme křivku zadánu parametrickými rovnicemi pro , spočteme její délku podle vzorce:
> l:=Int(sqrt((Diff(x(t),t)^2)+(Diff(y(t), t))^2), t=alpha..beta);
Příklad:
Vypočtěte délku křivky, jež je dána parametrickými rovnicemi , je-li .
Řešení:
Nejprve si křivku nakreslíme, samozřejmě pro pevně danou hodnotu , zvolíme například . Po vykreslení tuto zadanou hodnotu zrušíme a zadáme předpoklad, že :
> a:=1:
> plot([a*(t-sin(t)), a*(1-cos(t)), t=0..2*Pi],scaling=constrained, font=[TIMES,ROMAN,10]);
> a:='a':
> assume(a>0);
Vypočteme délku cykloidy dosazením do vzorce (28):
> l:=Int(sqrt((Diff(a*(t-sin(t)),t)^2)+(Diff(a*(1-cos(t)), t))^2), t=0..2*Pi);
> l=value(l);
Stáhnout .mws soubor
Příklad:
Vypočtěte délku závitnice, jež je zadána parametrickými rovnicemi pro .
Řešení:
Křivku nakreslíme pro :
> a:=1:
> plot([a*(cos(t)+t*sin(t)), a*(sin(t)-t*cos(t)),t=0..2*Pi], scaling=constrained,numpoints=500,font=[TIMES,ROMAN,10]);
Zrušíme přiřazenou hodnotu čísla , zadáme předpoklad pro a spočteme délku podle vzorce (28):
> a:='a':
> assume(a>0):
> l:=Int(sqrt((Diff(a*(cos(t)+t*sin(t)),t)^2)+( Diff(a*(sin(t)-t*cos(t)), t))^2), t=0..2*Pi);
> value(l);
Stáhnout .mws soubor
Příklad:
Určete délku prostorové křivky .
Řešení:
Nakreslíme křivku:
> spacecurve( [ t-sin(t),1-cos(t),4*sin(t/2) ], t = 0..2*Pi , numpoints= 400, axes=normal ,color=blue, font=[TIMES,ROMAN,10]);
Vypočteme délku:
> l:=Int(sqrt((Diff(t-sin(t),t)^2)+(Diff(1-cos(t),t))^2+ (Diff(4*sin(t/2), t)^2)), t=0..Pi);
> value(%);
Stáhnout .mws soubor
Poznámka. Jestliže je křivka zadána rovnicí v polárních souřadnicích, pro výpočet její délky platí vzorec:
> l:=Int(sqrt((rho(theta))^2+(Diff(rho(theta),theta))^2), theta=alpha..beta);
Příklad:
Vypočtěte délku křivky, jež je zadána rovnicí v polárních souřadnicích , na intervalu .
Řešení:
Křivku vykreslíme pro :
> plots[polarplot]((sin(theta/3))^3,theta=0..3*Pi,numpoints=500, scaling=constrained,font=[TIMES,ROMAN,10]);
Nyní zadáme předpoklad pro a vypočteme délku podle vzorce (29):
> assume(a>0);
> l:=Int(sqrt((a*(sin(theta/3))^3)^2+(diff(a*(sin(theta/3))^3,theta))^2), theta=0..3*Pi);
> l=value(l);
Stáhnout .mws soubor
Příklad:
Vypočtěte délku Archimedovy spirály, jež je zadána rovnicí v polárních souřadnicích , na intervalu .
Řešení:
Křivku nakreslíme pro , zadáme předpoklad, že a spočítáme délku na zadaném intervalu podle vzorce (29):
> plots[polarplot](theta, theta=0..2*Pi,scaling=constrained, font=[TIMES,ROMAN,10]);
> assume(a>0);
> l:=Int(sqrt(a^2*theta^2+( Diff(a*theta,theta))^2),theta=0..2*Pi);
> value(l);
Stáhnout .mws soubor
4.7.3 Objem rotačního tělesa
Pro objem tělesa vzniklého rotací grafu funkce pro kolem osy platí vztah
> V:=Pi*Int((f(x))^2, x=a..b);
Poznámka. Ve všech příkladech počítaných v dalším textu předpokládáme načtení balíku plots a také načítáme soubor rotuj.txt. Ten obsahuje proceduru rotxplot, resp. rotyplot, pomocí níž lze vykreslit v Maplu těleso vzniklé rotací grafu zadané funkce kolem osy , resp. kolem osy . Tento soubor najdeme na téže internetové stránce jako soubor "srafovani.txt", tedy http://is.muni.cz/el/1431/jaro2006/M2511/Osnova_HTML2.htm. Parametrem této procedury je funkce , jejíž graf má rotovat, interval pro proměnnou a rovnice osy rotace. I tato procedura může mít nepovinné parametry. Všechny příkazy předpokládané u následujících příkladů jsou tyto:
> restart:
> with(plots):with(plottools):
> read("rotuj.txt"):
Příklad:
Vypočtěte objem tělesa vzniklého rotací grafu funkce kolem osy na intervalu .
Řešení:
Nejprve definujeme funkci, která má rotovat, poté vykreslíme těleso, které rotací vznikne. Nakonec spočteme jeho objem podle vzorce (30):
> f:=x->sin(x);
> rotxplot(f(x),x=0..Pi,y=0,scaling=constrained,font=[TIMES,ROMAN,10]);
> V:=Pi*Int((f(x))^2, x=0..Pi);
> value(V);
Stáhnout .mws soubor
Příklad:
Vypočtěte objem tělesa vzniklého rotací grafu funkce na intervalu kolem osy .
Řešení:
Funkci definujeme a vykreslíme její graf:
> f:=x->4/x;
> plot(f,1..4,font=[TIMES,ROMAN,10],numpoints=400);
Vykreslíme vzniklé těleso:
> rotxplot(f(x), x=1..4, y=0, scaling=constrained,font=[TIMES,ROMAN,10]);
Spočítáme jeho objem:
> V:=Pi*Int((f(x))^2, x=1..4);
> V=value(V);
Stáhnout .mws soubor
Příklad:
Vypočtěte objem rotačního tělesa, jež vznikne rotací obrazce ohraničeného křivkami kolem osy .
Řešení:
Obě funkce definujeme a zjistíme body, ve kterých se protínají jejich grafy:
> f:=x->1-x^2;
> g:=x->x^2;
> solve(f(x)=g(x));
> evalf(-sqrt(2)/2);
> plot({f(x), g(x)}, x=-1..1, scaling=constrained, font=[TIMES,ROMAN,10],numpoints=400);
Vypočteme objem vzniklého tělesa podle vzorce (30):
> V:=Pi*Int((f(x))^2-(g(x))^2,x=-sqrt(2)/2..sqrt(2)/2);
> V:=Pi*int((f(x))^2-(g(x))^2,x=-sqrt(2)/2..sqrt(2)/2);
Stáhnout .mws soubor
Příklad:
Vypočtěte objem tělesa vzniklého rotací obrazce ohraničeného křivkami kolem osy a objem tělesa vzniklého rotací téhož obrazce kolem osy .
Řešení:
Obě funkce definujeme:
> f:=x->2*x-x^2;
> g:=x->0;
Zjistíme průsečíky:
> solve(f(x)=0);
Nakreslíme graf funkce :
> plot(f(x),x=-1..3,y=0..2,numpoints=1000,scaling=constrained, font=[TIMES,ROMAN,10]);
Vykreslíme vzniklá tělesa:
> rotxplot(f(x), x=0..2, y=0, scaling=constrained, font=[TIMES,ROMAN,10]);
> rotyplot(f(x), x=0..2, x=0, scaling=constrained, font=[TIMES,ROMAN,10]);
Objem tělesa vzniklého rotací daného obrazce kolem osy spočteme podle vzorce (30).
> V:=Pi*Int(f(x)^2,x=0..2);
> V=value(V);
Objem tělesa vzniklého rotací daného obrazce kolem osy lze spočítat více způsoby. Nejjednodušší výpočet je podle vzorce převzatého z knihy Sbírka úloh a cvičení z matematické analýzy, Boris Pavlovič Děmidovič, ze strany 199: objem tělesa vytvořeného rotací rovinné plochy , kde je jednoznačná spojitá funkce, kolem osy , je roven
Využijme tedy tento vzorec k výpočtu objemu zadaného tělesa.
> V2:=2*Pi*Int(x*f(x),x=0..2);
> V2=value(V2);
Stáhnout .mws soubor
4.7.4 Povrch pláště rotačního tělesa
Je-li funkce spojitá na intervalu a má na tomto intervalu spojitou derivaci, lze povrch pláště rotačního tělesa, které vznikne rotací křivky, jež je grafem funkce , kolem osy , vypočítat takto:
> P:=2*pi*Int(f(x)*sqrt(1+(Diff(f(x),x))^2) ,x=a..b);
Příklad:
Vypočtěte povrch tělesa vytvořeného otáčením oblouku křivky vyťatého přímkou okolo osy .
Řešení:
Funkci definujeme a nakreslíme do jednoho grafu společně se zadanou přímkou:
> f:=x->sqrt(4+x);
> implicitplot({y^2=4+x,x-2=0},x=-5..3,y=-4..4, scaling=constrained,numpoints=1500,font=[TIMES,ROMAN,10]);
Podíváme se, jak vypadá vzniklé těleso. Potřebujeme proto načíst soubor "rotuj.txt":
> rotxplot(f(x),x=-4..2,y=0,scaling=constrained,font=[TIMES,ROMAN,10]);
Spočítáme povrch podle uvedeného vzorce (31):
> P:=2*pi*Int(f(x)*sqrt(1+(Diff(f(x),x))^2) ,x=-4..2);
> P=2*pi*Int(f(x)*sqrt(1+(diff(f(x),x))^2) ,x=-4..2);
> P=value(rhs(%));
Stáhnout .mws soubor


Následující kapitola