- Stahuj zápisky z přednášek a ostatní studijní materiály
- Zapisuj si jen kvalitní vyučující (obsáhlá databáze referencí)
- Nastav si své předměty a buď stále v obraze
- Zapoj se svojí aktivitou do soutěže o ceny
- Založ si svůj profil, aby tě tví spolužáci mohli najít
- Najdi své přátele podle místa kde bydlíš nebo školy kterou studuješ
- Diskutuj ve skupinách o tématech, které tě zajímají
Studijní materiály
Zjednodušená ukázka:
Stáhnout celý tento materiálar
plot ( f ( x ) , x = a..b, y = c..d) ;
eventuálně tvar
plot (výraz, x = a..b, y = c..d ) ;
Velký význam předchozích příkazů vysvětlíme na následujících příkladech.
[ > plot ( f ( x ), , x = 0..10, y = 4..8 ) ; ( Obr. 2. )
Obr. 2.
[ > plot( 1/ (x - 1), x = -5..6, y = -10..10) ; ( Obr. 3.)
Obr. 3.
Omezení hodnot závisle proměnné je zde nutné, protože uvažovaná funkce není v bodě x = 1 ohraničená.
Maple kreslí graf funkce y = f ( x ), x [ a, b ] vždy jako spojitou křivku. V bodech nespojitosti, v nichž neexistuje limita, doplňuje graf vertikálními úsečkami. Má však i prostředek pro potlačení vertikálních úseček. Je to konstrukce tvaru
discont = true
která se přidává v příkazu plot za informace o rozsahu proměnných x a y a oddělí se od nich čárkou. Použití ukážeme na následujících příkladech.
[ > g : = x -> piecewise( x < 1, -1, x < 2, 1, 3 ) ;
g : = x -> piecewise( x < 1, -1, x < 2, 1, 3 )
[ > plot(g ( x ), x = 0..3 ) ; ( Obr. 4. )
Obr. 4.
[ > plot(g ( x ), x = 0..3, discont = true ) ; ( Obr. 5.)
obr. 5.
Podobně si může laskavý čtenář ověřit provedení následujících příkazů.
[ > plot ( tan ( x ) , x = - Pi..Pi, y = - 4..4 ) ;
a podobně příkaz
[ > plot ( tan ( x ) , x = - Pi..Pi, y = - 4..4 , discont = true) ;
Maple kreslí graf funkce y = f ( x ), x [ a, b ] v kartézské soustavě Ox, Oy. Na osách volí obvykle různá měřítka, aby mohl nakreslit celý graf. Tím dochází ke zkreslení a vlastně i ke ztrátě často důležité informace o průběhu funkce. Maple má však prostředek k omezení tohoto zkreslení. Je to konstrukce tvaru
scaling = constrained
který se zapisuje do příkazu plot stejně jako předcházející konstrukce discont = true. Vysvětleme to na následujících příkladech.
[ > plot( exp(x), x = 0..3 ) ; ( Obr. 6 )
Obr. 6.
[ > plot( exp(x), x = 0..3 , scaling = constrained ) ; ( Obr. 7 )
Obr. 7.
Maple připouští, aby v jednom obrázku byly současně uvedeny grafy y1 = f1 ( x ), y2 = f2 ( x ), . . . , yn = fn ( x ), n funkcí jedné proměnné. Příkaz k nakreslení grafů je pak stejný jako v případě grafu jedné funkce y = f ( x ) s tím rozdílem, že se v příkazu plot uvede seznam [ f1 ( x ), f2 ( x ), . . . , fn ( x ) ] . Přitom, místo kteréhokoliv zápisu f i ( x ), lze použít přímo přímo výraz pro výpočet hodnoty funkce fi . Připomeňme si, že seznam je vždy uveden do hranatých závorek. Uvedeme příklady:
[ > plot ( [ x, 2*x + 1, 3*x - 2 ], x = -10..10, y = -10..10) ; ( Obr. 8 ).
Tento příkaz vykreslí tři grafy v různých barvách. Protože v textu máme k dispozici pouze černo-bíle znázornění, provedeme odlišení následujícím příkazem :
[ > plot ( [ x, 2*x + 1, 3*x - 2 ], x = -10..10, y = -10..10, linestyle= [ 1, 2, 3 ] ) ;
Nicméně, tento příkaz by vykresloval na obrazovce jednotlivé grafy v různých barvách, aniž bychom dali uvedený požadavek do příkazu plot, a v černobílém provedení bychom obdrželi různé intenzity jednotlivých grafů v obrázku. Abychom se tomu vyhnuli použijeme konstrukci, která umožňuje uživateli rozlišení grafů v obrázku barvami podle vlastní volby. Tato konstrukce má tvar
color = [ barva1, barva2, . . . , barva n]
My chceme předepsat jednotnou barvu, např. modrou, tj. blue. Tím bude mít náš konečný příkaz tvar
[ > plot ( [ x, 2*x + 1, 3*x - 2 ], x = -10..10, y = -10..10, color=[ blue,blue,blue], linestyle= [ 1, 2, 3 ] ) ; ( Obr. 8 ) .
Obr. 8.
Maple umožňuje obrázek opatřit nadpisem, který je vždy umístěn centrovaně nahoře. Konstrukce pro provedení nadpisu je následující :
title =`nadpis`
a zapisuje se v příkazu plot jako jiné konstrukce.
[ > plot ( [ sin ( x ), x - x^3/6 + x^5/120 ], x = -Pi..Pi , linestyle= [2, 3] , title = ` Grafy funkce sin ( x ) a jeho aproximace` ); ( Obr. 9 )
Obr. 9.
Pořadí jednotlivých konstrukcí může být v příkazu zcela libovolné. Čtenář si může ověřit, že také následující příkaz má za následek nakreslení obrázku 9. s příslušným nadpisem.
[ > plot ( [ sin ( x ), x - x^3/6 + x^5/120 ], x = -Pi..Pi, title=` Grafy funkce sin(x) a jeho aproximace`, linestyle=[2,3] );
Funkce zadané parametricky.
Velmi často se v technické praxi setkáváme s funkcemi zadanými parametricky. Ukážeme si nyní příkaz, který vykreslí graf funkce zadfané parametrickými rovnicemi
x = x ( t )
y = y ( t ) t [ a, b ] .
Příkaz je tvaru
plot ( [ x(t), y(t), t = a..b])
Protože nejdříve musíme definovat funkce x ( t ), y ( t ) pomocí přiřazovacího příkazu, celkový příkaz pro vykreslení dané parametrické funkce je pak následující :
[ > x : = t->t^3 + 1 :
[ > y : = t->4 - t^6 :
[ > plot( [ x(t), y(t), t=-1..2^(1/3)]) ; Obrázek neuvádíme.
Poněkud zajímavější je křivka zadaná následující soustavou příkazů :
[ > x : = t->t^2 :
[ > y : = t-> t*( t^2 - 3) / 3 :
[ > plot( [ x(t), y(t) , t= -2..2], scaling = constrained ) ; Obr.10.
Obr. 10
Příkazy s použitím knihovny plots.
Jak jsme už uvedli, Maple má speciální knihovnu plots, která obsahuje asi 20 různých příkazů. Knihovna se volá příkazem
with ( plots )
Po jeho provedení se na obrazovce objeví ( pokud tisk výsledku na obrazovku není potlačen dvojtečkou ) seznam všech těchto příkazů. My si uvedeme pouze některé z nich. První uvedení příkazu with ( plots ) znamená otevření knihovny a nemusíme jej před dalšími příkazy vyžadujícími knihovnu plots opakovat.
Příkaz implicitplot.
Graf všech funkcí implicitně definovaných rovnicí F ( x, y ) = 0 se vykreslí na základě příkazu tvaru
implicitplot(F(x, y) = 0, x = a..b, y = c..d )
přičemž část zápisu = 0 může být vynechána. V příkazu mohou být i další konstrukce jako např. scaling = constrained, title = ` nadpis` atd. Uvedeme si příklad:
[ > with(plots) :
[ > x : = 'x' : y : = 'y':
[ > implicitplot( x^2 + y^2 - 1, x = -1..1, y = - 1..1, scaling = constrained) ; ( Obr. 11 )
Bez použití konstrukce scaling = constrained bychom obdrželi jako graf elipsu, protože Maple provede "vyvážené" zobrazení tak, že volí měřítka vzhledem k rozměrům podkladové plochy.
Obr.11
Nerovnosti.
Množinu bodů v kartézské rovině danou nerovnostmi vykreslí Maple na základě příkazu tvaru
inequal ( {nerovnost1, nerovnost2, . . . , nerovnost n }, x = a..b, y = c..d )
V příkazu může být uvedena konstrukce tvaru
optionsexcluded = ( specifikace )
která umožňuje barevně nebo jinak odlišit množinu a její doplňky. Podrobnosti a další informace lze obdržet na základě příkazu
? inequal
[ > inequal({ x + y < 5, 0 < x, x inequal({ y - x < 0, y + x < 4, y > 0, x < 3 }, x = -1..4, y = -1..3, title = ` Popis
seříznutého trojúhelníka nerovnostmi `) ; Protože obrázky zabírají velmi mnoho místa nejsou v návodu uvedeny.
Logaritmická stupnice.
Graf y = f ( x ), x [ a, b ] funkce f může být v Maplu vykreslen tak, že ve vertikální ( logplot ) nebo horizontální ( semilogplot ) ose je použita logaritmická stupnice. Slouží k tomu příkaz tvaru
logplot ( f ( x ), x a .. b )
semilogplot ( f ( x ), x a .. b )
V obou případech místo f ( x ) může být přímo uveden výraz pro výpočet hodnoty f ( x ) funkce f. Uvedeme si příklady :
[ > logplot( 10^x, x = 0..10) ;
[ > semilogplot( 2^(sin(x)), x = 1..10) ;
Čtenář si může porovnat obrázky s obrázky kreslenými příkazem plot.
Funkce zadaná polárními souřadnicemi.
Funkce f může být zadána v polárních souřadnicích , r rovnicí
r = f.
Maple má příkaz pro kreslení grafu funkce zadané v polárních souřadnicích. Tento příkaz má tvar
polarplot ()
V příkazu mohou být uvedeny i další konstrukce ( scaling, title atd. )
[ > polarplot( 2*sin(theta), theta = 0..Pi, scaling = constrained) ;
[ > polarplot(sin(3*theta), theta = 0..2*Pi ) ;
Prvním příkazem se vykreslí kružnice se středem v bodě [0, 1] o poloměru r = 1, druhý graf je "trojlístek", který je součástí obrázku 12 na další straně.
Uvedli jsme si již způsob jak nakreslit do jednoho obrázku více grafů pomocí seznamu tak, že jsou jednotlivé funkce v seznamu zapsány. Maple má prostředek k vložení více obrázků do jednoho , jsou-li jednotlivé obrázky pojmenovány ( tj. přiřazeny identifikátorům na základě přiřazovacího příkazu. ). Je to příkaz display , který má tvar
display( [ jméno1, jméno2, . . . , jméno n ] )
kde jméno znamená identifikátor, kterým byl k-tý obrázek pojmenován. V příkazu display mohou být uvedeny i další konstrukce ( scaling, title atd. ). Nejdříve musíme x a y opět změnit na identifikátory.
[ > a : = polarplot( 2*cos(theta), theta = -Pi/2..Pi/2, scaling = constrained) :
[ > b : = polarplot(sin(3*theta), theta = 0..2*Pi ) :
[ > c : = implicitplot( (x^2)/9 + (y^2)/4 = 1, x = -3..3, y = -2..2) :
[ > display([ a, b, c ], scaling = constrained ) ;
Provedení předchozího příkazu je na Obr. 12.
Obr.12.
Poznámka.
Maple má prostředek pro animaci. Je jím příkaz tvaru
animate ( f ( x, t ) , x = a..b, t = c..d )
Na základě tohoto příkazu a vhodného postupu vyvolaného pomoci Menu jazyka Maple ( v části označené animate ) Maple automaticky vykreslí po odklepnutí příkazu play v příslušných souřadnicích v časovém sledu 16 stavů.
[ > animate( t*2*cos(x), x = -Pi / 2..Pi / 2, t = 1..6, frames =64, coords = polar, color = blue, scaling = constrained) ;
Po zadání tohoto příkazu Maple vykreslí kružnici o poloměru 1 se středem na ose x-ové, po otevření okna animate odklepneme play a kružnice se začne zvětšovat tak, že se střed posunuje po x-ové ose až do poloměru 6 a celá animace proběhne v 64 krocích. Mnohem zajímavější je animace následujícího souboru příkazů:
[ > animate( t*2*cos(t*x), x = -Pi / 2..Pi / 2, t = 1..5, frames =64, coords = polar, color = blue, scaling = constrained) ;
Zde po odklepnutí animace začne působit parametr t i u funkce cosinus a jako výsledek animace obdržíme "pětilístek".
Poznámka o trojrozměrné grafice.
Maple umožňuje vykreslit graf výrazu nebo funkce dvou proměnných, např. x a y, které se mění v rozsahu a až b a c až d. Příslušný příkaz je tvaru :
plot3d ( funkce, x = a..b, y = c..d )
Jako příklad si uvedeme obrázek paraboloidu.
[ > plot3d (x^2 + y^2, x = -1..1, y =-1..1, axes=boxed,scaling=constrained, style=patchcontour, shading=zhue );
Podrobnější informace o příkazu plot3d lze získat dotazem ? plot3d, případně ? plot3d [ options ].
Limita funkce.
Příkaz k výpočtu limity funkce f v bodě má tvar
limit ( f ( x ), x = )
Zkusme si vypočítat pomocí jazyka Maple následující limitu
[ > limit (, x = 0 ) ;
undefined
Takže Maple nevypočetl tuto jednoduchou limitu. Ale my již víme, že oboustranná limita této funkce v bodě x = 0 neexistuje, ale že existují jednostranné limity, k jejichž nalezení disponuje Maple následujícími příkazy.
limit ( f ( x ), x = right) a limit ( f ( x ), x = left )
Čtenář si jednoduše ověří, že pomocí těchto dvou příkazů lze jednostranné limity vypočítat.
Ve všech těchto třech příkazech místo f ( x ) může být uveden příkaz pro výpočet hodnoty funkce f ( x ) .
V případě, že příkazy začínají velkým písmenem L ( místo malého l ), výpočet limity se neprovede. Výsledek příkazu je pak pouze zápis limity v matematické symbolice. Za příkazem Limit může ale následovat příkaz
[ > value ( % ) ;
a výpočet limity, pokud existuje, se opět provede.
Ve všech příkazech pro výpočet limity bod může být infinity ( ) anebo - infinity ( -). Uvedeme si příklady :
[ > r : = ( x^2 - 1 ) / ( 11*x^2 -2*x - 9 ) ;
r : =
[ > limit ( sqrt ( r ), x = 1 ) ;
[ > limit ( r , x = infinity ) ;
[ > limit(sqrt (r), x = infinity );
Funkci, která má odstranitelnou nespojitost v bodě x0 , nakreslí Maple příkazem plot jako spojitou v tomto bodě. To může vést k nedobrým závěrům. Uvažme např. funkci . Zajímáme se o průběh této funkce v intervalu [ - 5, 5 ]. Víme, že v bodě 0 není definovaná. Vypočítáme limitu v tomto bodě.
[ > rr : = ( cos ( x ) ^2 - 1)/x^2 ;
rr : =
[ > limit( rr, x = 0 ) ;
- 1
[ > plot( rr, x = -5..5 ) ;
Na následující stránce na obrázku 13 vidíme, že Maple nedovede vyjádřit nespojitost funkce rr v bodě x = 0. Proto při vykreslování průběhů funkcí v příslušném intervalu je třeba hlídat body s odstranitelnou nespojitostí.
Pomocí Maplu se můžeme také přesvědčit o správnosti naších výpočtů limit tzv. neurčitých výrazů. Tak např. :
[ > limit ( cos ( x )^(cot ( x )^2), x = 0 ) ;
e-1/2
Obr. 13.
Definujme dále
[ > f : = ( x^3 - 1 ) / ( x^4 - 1 ) :
[ > subs( x = 1, f ) ;
Maple oznámí Error, division by zero. Vypočteme
[ > Limit( f, x = 1 ) = limit ( f, x = 1 ) ;
= 3/4
Derivace.
Příkaz, kterým se vypočítá derivace jak standardní funkce tak i funkce definované uživatelem, má tvar
D( jméno funkce )
Pro n-tou derivaci je příkaz tvaru
(D@@n)( jméno funkce )
Výsledkem provedení příkazu je opět funkce. Uvedeme si několik příkladů, které vyžadují jistý obecnější přístup k pojmu funkce. Tak např. pod symbolem sin budeme uvažovat obecně funkci sinus, připojíme-li hranatou závorku [ -Pi/2,Pi/2 ] jako index, bude to znamenat její zúžení na příslušný interval, kde formální zápis definuje funkci arcsinus. Zápisem sin(x) je definována funkce sinus v bodě x, který je obecným bodem dané části definičního oboru. Při tomto uvažování funkce x se označuje jako identita. Uvedeme si několik příkladů :
[ > D( sin );
cos
[ > D( log ) ;
[ > D( arctan ) ;
Definujme si nyní naši vlastní funkci
[ : f : = x - > x^3 -6*sin( x ) :
[ > df : = D( f ) ;
df : = x - > 3 x2 - 6 cos( x )
[ > df ( Pi ) ;
3 + 6
[ > ddf : = (D@@2)(df) ;
ddf := x -> 6 + 6 cos(x)
Což lze vypočítat také takto :
[ > h:=(D@@3)(f);
h := x -> 6 + 6 cos(x)
Není-li funkce definována, pak výsledkem je symbolická derivace.
[ > AB: = (D@@4)(hrk) ;
AB: = (D (4))(hrk)
Příkazy diff ( f ( x ), x ) a Diff ( f ( x ), x ) umožňnují spočítat první derivaci funkce f ( x ) a matematicky první derivaci zapsat. Příkaz diff ( f ( x ), x, x, . . . , x) , kde x je uvedeno n- krát, slouží k výpočtu n-té derivace. Pro n-tou derivaci se často užívá zjednodušeného zápisu
diff ( f ( x ), x$n)
V případě, že příkazy začínají velkým písmenem D místo malého písmene d , výpočet derivace se neprovede. Výsledkem příkazu je pak pouze zápis derivace v matematické symbolice ( používané se symbolem pro derivaci vzhledem k proměnné x) . Za příkazem Diff však může následovat příkaz
value(%)
a výpočet derivace se opět provede.
Uvedeme si několik příkladů :
[ > Diff( arctan(x) + arccot(x), x) = diff ( arctan(x) + arccot(x), x) ;
( arctan(x) + arccot(x)) = 0
[ > diff ( sin ( ln ( x^2 + 1 )/3), x ) ;
[ > Diff ( sin ( ln ( x^2 + 1 )/3), x ) ;
[ > value(%) ;
[ > Diff ( sin ( x ), x$3) = diff ( sin ( x ), x$3) ;
Vypočítáme nyní derivaci funkce v bodě x0 = 5.
[ > subs( x = 5, diff ( sqrt ( x ), x )) ;
Vypočítáme nyní tutéž úlohu, ale přímo z definice derivace v bodě.
[ > p : = (sqrt(5 + h) - sqrt(5))/h, h = 0 :
[ > Limit(p) = limit(p) ;
Výpočet Taylorova rozvoje.
Příkaz, na jehož základě se vypočítá Taylorův rozvoj funkce f v okolí bodu x = ve tvaru Tn - 1, ( x - ) + O (( x - )n ), má tvar
series( f ( x ), x = , n )
nebo
taylor ( f ( x ), x = , n )
V obou případech místo f ( x ) může být přímo uveden výraz pro výpočet hodnoty f ( x ). Stupeň n nemusí být uveden. V takovém případě je dán hodnotou pojmenovanou klíčovým slovem Order. Po každém vyvolání Maplu je tato hodnota rovna číslu 6. Lze ji však změnit přiřazovacím příkazem.
Příklady :
[ > t1:= series(sin(x), x=0, 20);
3 5 7 9
t1 := x - 1/6 x + 1/120 x - 1/5040 x + 1/362880 x - 1/39916800
11 13 15
x + 1/6227020800 x - 1/1307674368000 x +
17 19 20
1/355687428096000 x - 1/121645100408832000 x + O(x )
[ > T1:=convert(t1,polynom): plot(T1,x = -10..10, y= -2..2);
Příkaz convert slouží k potlačení zbytku O (( x - )n v Taylorově rozvoji, tj. k osamostanění Taylorova aproximačního polynomu Tn - 1, ( x - ). Jak viděl čtenář z předchozího, příkaz má tvar
convert( Taylorův polynom, polynom)
Obr. 14
Další je příkaz rem. Slouží ke snížení stupně Taylorova polynomu. Příkaz má tvar
rem ( Taylorův polynom, ( x - )k , x )
Po aplikaci příkazu rem se z Taylorova polynomu odstraní všechny členy počínaje členem ( x - )k , tak jak je uvedeno v následujícím příkladu.
T2 : = rem ( T1, x^6, x);
3 5
T2 := x - 1/6 x + 1/120 x
[ > plot( T2, x = -10..10, y = -2..2); Viz obr.15 na straně 29.
Příkazem mtaylor se přímo vypočítá Taylorův aproximační polynom Tn - 1, ( x - ) funkce f ( x ). Zbytek O (( x - )n ) je automaticky potlačen. Příkaz má tvar
mtaylor ( f ( x ), x = , n )
Místo f ( x ) může být přímo uveden výraz pro výpočet funkce. Všechno, co bylo uvedeno o stupni n v příkazu taylor včetně klíčového slova Order, platí i pro příkaz mtaylor .
Důležité upozornění.
Příkaz mtaylor není přímo zabudován v Maplu. Musí se nejdříve vyvolat z knihovny. Provede se to příkazem
readlib(mtaylor)
Uvedeme si několik příkladů :
Obr.15.
[ > readlib( mtaylor ) :
[ > r1 : = mtaylor( sin(x), x = 0 ) ;
r1 : = x -
[ > r2 : = mtaylor ( ln(x), x = 1, 4 ) ;
r2 : = x - 1 -
[ > r3 : = mtaylor ( r1*r1, x = 0, 10 ) ;
r3 := x2 - x4 + x6 - x8
[ > eval f(sin( 0.02 ) - subs( x = 0.02 , r1 )) ;
-.1 10-10
Vidíme, že hodnota sin(0,02) se liší od Taylorovy aproximace funkce sin x v bodě = 0 jen nepatrně. Ale již pro hodnotu x = 1 je rozdíl roven -0.0001956819. V tomto případě by bylo možné použít aproximaci T1, kdy pro x = 1 je rozdíl nulový.
[ > f : = x - > sin ( 4*x )*cos ( x ) ;
f : = x - > sin ( 4x ) cos ( x )
[ > g : = mtaylor( f(x), x = 0 ) ;
g : = 4 x -
Dvijice příkazů
[ > Order : = 10 :
[ > p : = mtaylor( f(x), x = 0 ) ;
nemá vliv na stupeň polynomu. Chceme-li polynom stupně nejvýše 9 je nutno napsat:
[ > p : = mtaylor( f(x), x = 0 ,10) ;
Podívejme se nyní, jak významná je vhodnost aproximace funkce f ( x ) polynomem g a p .
[ > evalf ( f (0.7) - subs ( x = 0.
Vloženo: 28.05.2009
Velikost: 562,00 kB
Komentáře
Tento materiál neobsahuje žádné komentáře.
Mohlo by tě zajímat:
Skupina předmětu BMA2 - Matematika 2
Reference vyučujících předmětu BMA2 - Matematika 2
Copyright 2025 unium.cz


