Modelové cvičení z matematiky: Základy programu Maple

Transkript

Modelové cvičení z matematiky: Základy programu Maple
Modelové cvičení z matematiky: Základy programu Maple
Maple lze zjednodušeně charakterizovat jako matematický manipulační jazyk. Jednotlivé příkazy se ukončují středníkem nebo dvojtečkou a po stisku klávesy ENTER jsou ihned vykonány.
Lineární algebra
Na modelovém příkladu řešení soustavy lin. rovnic si ukážeme základní příkazy používané lineární algebrou. Dříve než začneme pracovat, musíme si otevřít knihovnu lin. algebry zadáním příkazu with(linalg);
nebo with(linalg): .
Použijeme tuto pracovní soustavu
Soustavu můžeme např. chápat jako maticovou
3x1
5x1
4x1
7x1
+
−
+
+
3x2
7x2
5x2
8x2
+
+
−
+
4x3
8x3
7x3
3x3
−
+
−
+
5x4
2x4
3x4
4x4
=
=
=
=
9
8
−5
−2

rovnici 
3
5
4
7
3
−7
5
8
4
8
−7
3
−5
2
−3
4


·X =
9
8
−5
−2


Ověření Frobeniovy podmínky: příkazem A:=matrix(4,4,[3,3,4,-5,5,-7,8,2,4,5,-7,-3,7,8,3,4]); zadáme do počítače matici soustavy a příkazem b:=vector(4,[9,8,-5,-2]); se zadá vektor pravých stran.
Hodnost matice soustavy zjistíme příkazem rank(A);. Rozšířenou matici soustavy (pojmenujeme si ji
třeba Aroz) získáme např. tímto způsobem: Aroz:=concat(A,b); spojí matici A a vektor ~b (jako
sloupec). Hodnost matice Aroz zjistíme příkazem rank(Aroz);. Je-li Frobeniova podmínka ověřena,
příkazy linsolve(A,b); či leastsqrs(A,b); najdou řešení maticové rovnice A · ~xT = ~bT . Soustavu
můžeme také řešit použitím inverzní matice: příkaz Ainv:=inverse(A); vypočítá matici A−1 , následně
pak můžeme příkazem X:=multiply(Ainv,b); zjistit řešení naší soustavy.
x1:=det(A1)/det(A);
Jiný způsob, jak řešit soustavu lin. rovnic, je použití Cramerova pravidla. x2:=det(A2)/det(A);
Vložíme matici soustavy A a příslušné matice A1 , A2 , A3 , A4 a pomocí pří- x3:=det(A3)/det(A);
kazu pro výpočet determinantu postupně vypočteme jednotlivé neznámé: x4:=det(A4)/det(A);
V programu Maple lze samozřejmě řešit soustavy lin. rovnic také pomocí Gaussovy a Jordanovy eliminace.
Máme-li vloženu rozšířenou matici soustavy Aroz, pak příkaz gausselim(Aroz); provede úpravu na
Gaussův tvar a příkaz gaussjord(Aroz); Jordanovu eliminaci.
Poslední způsob řešení, který si předvedeme (na jiné soustavě rovnic), r1:=x1+3*x2+4*x3=9:
r2:=6*x1-7*x2+8*x3=10:
je přímé vložení jednotlivých rovnic (tj. r1, r2, r3):
r3:=4*x1+5*x2-5*x3=-5:
a pak použití příkazu „solveÿ reseni:=solve({r1,r2,r3},{x1,x2,x3}); .
Přehled příkazů (otestujte je na vektorech ~u = (−1, 5, 15), ~v = (−7, 8, 9) a nějakých maticích A, B):
norm(u,2); vypočítá normu vektoru ~u
angle(u,v); určí úhel vektorů ~u, ~v (v radiánech!)
dotprod(u,v); provede skalární součin ~u · ~v
crossprod(u,v); provede vektorový součin ~u × ~v
transpose(A); transponuje matici A
det(A); počítá det(A)
inverse(A); počítá A−1
rank(A); počítá h(A) evalm(A+B); počítá A + B
adj(A); počítá A
multiply(A,B); počítá A · B
evalm(A&*B - 3*A); počítá A · B − 3C.
POZOR, znak * lze použít pouze na součin čísla a matice, na součin dvou matic je třeba „dvojznakÿ &∗
Posloupnosti a řady
n+3
2
n→∞ n −4n+16
Limitu posloupnosti lim
obdržíme příkazem limit((n+3)/(n∧ 2-4*n+16),n=infinity);.
Součty posloupností a řad zajišťuje „sumÿ. Např. sum(1/k∧ 2,k=1. .infinity); vypočte
∞
P
1
k2 .
k=1
Příkaz taylor(cos(x),x=Pi/4,15); dá Taylorův mnohočlen 15. stupně funkce cos x v bodě x =
π
4
.
Funkce
Funkce vkládáme pomocí funkčního operátoru -> . Např. f:= x -> x/(x-5); vloží funkci f : y =
x
x−5 .
Chceme-li určit funkční hodnotu funkce f v bodě x = 12, stačí zadat f(12); . Analogicky vkládáme
x−5y
funkce více proměnných. Např. g:=(x,y) -> (x-5*y)/(5*x+y); vloží funkci g : z = 5x+y
.
K výpočtu limit funkcí slouží stejný příkaz jako u posloupností, např. limit(sin(x),x=Pi/3,right);
najde limitu funkce sin x v bodě x = π3 zprava.
Derivace, integrály, diferenciální rovnice
Derivování má 2 možnosti: (A) Povel „diffÿ. Ukázka: diff(sqrt(x∧ 2+1),x); určí první derivaci funkce
√
x2 + 1, kdežto diff(ln(1-x),x$5); určí pátou derivaci funkce ln(1 − x). Příkaz diff(tan(x-y),y);
určí první parciální derivaci funkce tg (x − y) podle proměnné y.
(B) Povel „Dÿ u první a „(D@@k)ÿ u k-té derivace. Ukázka: nejdříve definujeme funkci, např. f:= x -> sqrt(x∧ 2+1); a pak D(f ) určí její první a (D@@3)(f ) její třetí derivaci. Pokud chceme s těmito derivacemi ještě dál pracovat jako s funkcemi, zadáme rovnou g:=D(f );
a h:=(D@@3)(f ); a pak například jejich hodnoty v bodě a = 13 zjistíme příkazy g(13); a h(13);.
Užitečné jsou příkazy „maximizeÿ, „minimizeÿ. Např. pro nalezení absolutního maxima a minima funkce
y = 1−x2 na uz. intervalu h−2, 5i užijeme: maximize(1 - x∧ 2,x,-2. .5); a minimize(1 - x∧ 2,x,-2. .5);.
Integrál
R
x2 dx počítáme jako int(x∧ 2,x);
zatímco
R3
x2 dx jako int(x∧ 2,x=-3. .3); .
−3
K řešení diferenciálních rovnic slouží příkaz „dsolveÿ. Nejprve vložíme zadanou dif. rovnici. Např. pro
rovnici x·y 0 (x)+y(x) = x3 použijeme klasický přiřazovací příkaz R:=x*diff(y(x),x)+y(x)=x∧ 3; (čímž
ji označíme jako celek symbolem R ). Následně zadáním dsolve(R,y(x)); získáme řešení y(x) této dif.
rovnice.
Získání partikulárního řešení dif. rovnice pro určitou počáteční podmínku: vložíme počáteční
podmínku pp:=y(1)=7; a pak partikulární řešení dříve vložené rovnice R splňující podmínku pp
nalezneme příkazem dsolve({R,pp},y(x));.
Můžeme užít jediný příkaz. Např. příkaz dsolve({diff(y(x),x$2)=6*x, y(1) = 3, y(2) = 7}, y(x));
řeší rovnou dif. rovnici 2. řádu y 00 = 6x s dvěma počátečními podmínkami y(1) = 3, y(2) = 7.
Pokud chceme s řešením dif. rovnice dále pracovat jako s funkcí, použijeme „speciálníÿ postup – např.
u předchozí rovnice (s pomocnou proměnnou „reseniÿ, která dál nemá žádný význam) to bude takto:
reseni:=dsolve({diff(y(x),x$2)=6*x, y(1) = 3, y(2) = 7}, y(x));
assign(reseni): g:=unapply(y(x),x): unassign(’y(x)’):
a dále pak již pracujeme s řešením
jako s funkcí g (třeba si ji můžeme nakreslit příkazem „plotÿ, zjišťovat její funkční hodnoty apod).
Grafika
Grafy funkcí lze vykreslit užitím příkazu „plotÿ. Např. plot(exp(2*x- 1),x=-0.15. .2); vykreslí část
grafu funkce y = e2x−1 pro rozmezí hodnot x ∈ h−0.15, 2i.
plot({x∧ 3,2*x},x=-5. .5); kreslí dva grafy funkcí y = x3 , y = 2x pro x ∈ h−5, 5i do jednoho obrázku.
plot3d(x∧ 2-x*y+y∧ 2,x=-4. .4,y=-2. .2); kreslí část grafu funkce 2 proměnných z = x2 − xy + y 2
v uvedených rozmezích hodnot x ∈ h−4, 4i a y ∈ h−2, 2i.
Poznámka
Nápovědy mají hypertextovou strukturu a vyvolají se poklepáním myší na nápis HELP. Další možnost
nápovědy (pokud známe název příkazu) je zadání z příkazového řádku: ?<příkaz>;, např.: ?vector;.
Ještě jedna rada: jestliže se Maple začne chovat „divněÿ, zadejte příkaz restart; a začněte znovu.
Syntaxe povelů v Maple
Příkazy mohou končit středníkem nebo dvojtečkou. Pokud příkaz končí dvojtečkou, příkaz se sice provede,
ale jeho výsledek se nezobrazí na obrazovce. V případě, že příkaz končí středníkem, povel se provede i
zobrazí na obrazovce. Maple používá klasické operační znaky +, −, ∗, \,∧ . Podobně jako v programovacích
jazycích je rozdíl mezi := a = . Totiž := je klasický přiřazovací příkaz, = se používá např. u podmínek
či při zadávání rovnic (např. if a = b znamená: jestliže a = b). Jestliže v příkazu s parametrem zadáme
místo parametru %, pak se za parametr dosadí výsledek předchozího příkazu.
operátor
+
−
∗
/
∗∗
∧
$
·
,
:=
%%
význam
sčítání
odčítání
násobení
dělení
umocňování
umocňování
sekvenční operátor
desetinná čárka
oddělovač výrazů
přiřazovací příkaz
odkaz na druhý předcházející výraz
operátor
<
<=
>
>=
=
<>
−>
and
or
%
%%%
význam
menší než
menší nebo rovno
větší než
větší nebo rovno
rovnost
nerovnost
funkční operátor
logická spojka ∧
logická spojka ∨
odkaz na předcházející výraz
odkaz na třetí předch. výraz

Podobné dokumenty

Algebra Polynomy, rovnice a jejich soustavy

Algebra Polynomy, rovnice a jejich soustavy Maple umí i další úpravy, jsou to především různé modifikace Gaussovy eliminace, dále se pokouší upravovat i hermitovsky (bohužel podle mě ne moc užitečným způsobem) viz. příslušné helpy na : ffgau...

Více

OBÁLKY ROVINNÝCH KŘIVEK S PROGRAMEM MAPLE 1 Úvod 2

OBÁLKY ROVINNÝCH KŘIVEK S PROGRAMEM MAPLE 1 Úvod 2 způsobuje studentům problémy, přesto je přínosné, aby se s ním seznámili a naučili se ho používat.

Více

Diferenciální rovnice a jejich použití v elektrotechnice – práce s

Diferenciální rovnice a jejich použití v elektrotechnice – práce s Předvedeme ještě jinou možnost řešení, která je ovšem komplikovanější. Můžeme ji použít, jestliže si chceme zkontrolovat náš ruční“ výpočet krok za krokem:

Více

Základy numerické matematiky Interpolace a aproximace funkcí

Základy numerické matematiky Interpolace a aproximace funkcí Numerické řešení diferenciálních rovnic Maple obsahuje poměrně velkou knihovnu všemožných metod na numerické řešení všech možných diferenciálních rovnice. Základní používání těchto metod nastíníme ...

Více

Soustavy lineárních rovnic

Soustavy lineárních rovnic h( A ) = h( R ) , takže homogenní soustava má vždy řešení. Zbývající tvrzení jsou důsledkem věty 5.2. Poznámka 5.5. Homogenní soustava lineárních rovnic S 0 (m, n) , kde n > m tedy počet neznámých ...

Více

Obycejné diferenciáln´ı rovnice s poc´ıtacovou podporou

Obycejné diferenciáln´ı rovnice s poc´ıtacovou podporou V této kapitole se budeme zabývat řešenı́m diferenciálnı́ch rovnic prvnı́ho řádu. Ukážeme si, jak formulovat diferenciálnı́ rovnici, zı́skat obecné řešenı́, partikulárnı́ řešenı́ po...

Více

8 Urcitý integrál, krivkový integrál a Cauchyovy integráln´ı vety

8 Urcitý integrál, krivkový integrál a Cauchyovy integráln´ı vety Poznámka. i) Obecně neplatı́, že ke každé funkci spojité na Ω existuje funkce primitivnı́ (jako je tomu u reálných funkcı́). ii) Pro existenci primitivnı́ funkce k funkci f na Ω je třeba h...

Více

praktická cvičení

praktická cvičení výpočet integrálu – do již otevřeného souboru s příponou nb (z Příkladu 1) postupně zadejte (do dalšího řádku přejdete stiskem klávesy Enter): f2[x_,y_]:=y*Exp[x] Export["D:\\u09b.bmp",Plot3D[f2[x,...

Více