Rozklady, řešení rovnic a jejich soustav
1 Rozklady
V panelu nástrojů Matematické operace
a v podmenu Zjednodušit v Hlavním menu
najdeme příkazy, kterými můžeme výraz rozložit na součin.
1.1 Přirozená čísla
Rozklad přirozeného čísla na prvočinitele:
| (%i1) | p: 15360; |
V menu Matematické operace stiskneme tlačítko Na součin
nebo zvolíme tutéž volbu v podmenu Zjednodušit
| (%i2) | factor(%); |
Nebo můžeme napsat příkaz sami:
| (%i3) | factor(p); |
Pozor, příkaz Rozložit naopak činitele navzájem roznásobí:
| (%i4) | expand(%); |
1.2 Další operace s celými a přirozenými čísly
Pro přirozená čísla jsou k dispozici i další operace a příkazy;
několik příkladů:
příkaz divisors vypíše všechny dělitele daného čísla:
| (%i5) | divisors(p); |
Příkaz integer_partitions(n) vypíše všechny navzálem různé podmnožiny přirozených čísel takové,
že součet jejich prvků je roven číslu n.
| (%i6) |
q: 8 $ integer_partitions(q); integer_partitions(q,2); |
| (%i9) | cardinality(integer_partitions(q)); |
Další funkce snadno najdete v nápovědě.
Hledejte hesla Sets, Lists, Integers
1.3 Mnohočleny
Vložíme výraz:
| (%i10) | mn: x^3-5*x^2-6*x $ |
V menu Matematické operace stiskneme tlačítko Na součin
nebo zvolíme tutéž volbu v podmenu Zjednodušit
(zcela stejný postup, který jsme provedli výše s přírozeným číslem)
dá výsledek:
| (%i11) | factor(%); |
Opět zapíšeme rovnou příkaz:
| (%i12) | factor(mn); |
| (%i13) | factor(x^2-1/4); factor(x^2+1); factor(x^2-3); |
Maxima provádí pouze rozklady na činitele s racionálními koeficienty
Můžeme ale zvolit rozklad v komplexních číslech:
| (%i16) | x^2+1; |
| (%i17) | gfactor(%); |
2 Rovnice
2.1 Polynomické rovnice
Pro řešení rovnic a soustav rovnic je k dispozici celé podmenu v Hlavním menu
nazvané Rovnice.
V paneku nástrojů Matematické operace je k dispozici tlačítko Řešit.
Pro řešení rovnice můžeme zapsat jako výchozí výraz
buď celou rovnici
nebo její levou stranu (a předpokládá se, že jde o levou stranu anulované rovnice):
| (%i18) | 2*x-5 $ |
Menu matematické operace, tlačítko Řešit...
nebo podmenu Rovnice, volba Řešit...
| (%i19) | solve([%], [x]); |
| (%i20) | 5*x-2=2*x+3 $ |
| (%i21) | solve([%], [x]); |
V podmenu Rovnice je ale větší výběr příkazů:
| (%i22) | x^2-3 $ |
Příkaz Kořeny polynomu (bfloat) - tedy s nastavitelnou přesností
| (%i23) | bfallroots(x^2-3); |
Příkaz Kořeny polynomu (reálné)
| (%i24) | realroots(%); |
Příkaz Kořeny polynomu - s pevnou přesností
| (%i25) | allroots(x^2-3); |
A příkaz Najít kořen, který dovoluje zadat interval,
na němž numericky hledáme kořen.
2.2 Přesnost numerického výpočtu
Přesnost numerických výpočtů nastavíme v podmenu Numerické výpočty,
volba Nastavit přesnost.
Hodnotu však musíme nejprve vyjádřit jako bigfloat.
Nebo také příkazy bfloat, fpprec:
| (%i26) |
fprec : 30$ fpprintprec : 30$ bfloat(allroots(x^2-3)); |
Numericky můžeme (přibližně) vyjádřit také iracionální konstanty,
pokud změníme symbolické vjadřování na numerické.
Buď volbou Přepnout numerický výstup z menu nebo příkazem:
| (%i29) | %pi; |
| (%i30) | if numer#false then numer:false else numer:true; |
| (%i31) |
fpprec : 40$ fpprintprec : 30$ bfloat(%pi); bfloat(sqrt(3)); |
Vrátíme zpět algebraické zápisy
| (%i35) | if numer#false then numer:false else numer:true; |
3 Soustavy rovnic
3.1 Soustavy lineárních rovnic
Soustavy lineárních rovnic ve škole řešíme nejčastěji.
K jejich řešení opět použijeme volbu Řešit lineární systém...
z podmenu Rovnice.
Rovnice (stačí jejich anulované levé strany)
| (%i36) | linsolve([5*x-4*y + 2*z-3, -2*x-6*y + z-10, x- y + 2*z-2], [x, y, z]); |
Poznámka: podívejte se (zkuste), jak by vypadal výstup,
kdybychom nepřepnuli numerický výstup zpět na algebraický.
3.2 Soustavy závislých lineárních rovnic
Soustava, která nemá řešení
| (%i37) | linsolve([2*x - 3*y + 2*z + 4, 2*x - 3*y + 2*z + 6, 2*x + 3*y - 2*z ], [[x, y, z]]); |
Soustava, která má nekonečně mnoho řešení
| (%i38) | linsolve([2*x + 5*y - z + 4, 4*x + 10*y - 2*z + 8, x + y + z], [x, y, z]); |
Jedna proměnná je označena jako parametr, ostatní jsou vyjádřeny v závislosti na ní.
3.3 Soustavy rovnic
V analytické geometrii někdy hledáme společné body kuželosečky a přímky,
řešíme soustavu nelineárních rovnic.
Pro tento účel použijeme volbu Řešit algebraický systém... z podmenu Rovnice.
| (%i39) | algsys([x^2 - y^2 - 16 , 2*x - 3*y + 1], [x, y]); |
Konec této části
| (%i40) | kill(all)$ |