# Rozklady, øešení rovnic a jejich soustav

## 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.  

### Pøirozená èísla

Rozklad pøirozeného èísla na prvoèinitele: 

p: 15360;

V menu Matematické operace stiskneme tlaèítko Na souèin
nebo zvolíme tutéž volbu v podmenu Zjednodušit

factor(%);

Nebo mùžeme napsat pøíkaz sami:

factor(p);

Pozor, pøíkaz Rozložit naopak èinitele navzájem roznásobí:

expand(%);

### 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:

divisors(p);

Pøíkaz integer_partitions(n) vypíše všechny navzájem rùzné podmnožiny pøirozených èísel takové, 
že souèet jejich prvkù je roven èíslu n.

q: 8 $
integer_partitions(q);
integer_partitions(q,2);

cardinality(integer_partitions(q));

Další funkce snadno najdete v nápovìdì. 
Hledejte hesla Sets, Lists, Integers

### Mnohoèleny

Vložíme výraz:

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:

factor(%);

Opìt zapíšeme rovnou pøíkaz:

factor(mn);

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:

x^2+1;

gfactor(%);

## Rovnice

### Polynomické rovnice

Pro øešení rovnic a soustav rovnic je k dispozici celé podmenu v Hlavním menu
nazvané Rovnice.
V panelu 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):

2*x-5 $

Menu matematické operace, tlaèítko Øešit...
nebo podmenu Rovnice, volba Øešit...

solve([%], [x]);

5*x-2=2*x+3 $

solve([%], [x]);

Pøíkaz Øešit... (solve) poèítá také iracionální koøeny

solve([x^2-3], [x]);

V podmenu Rovnice je ale vìtší výbìr pøíkazù:

x^2-3 $

Pøíkaz Koøeny polynomu (bfloat) - tedy s nastavitelnou pøesností

bfallroots(x^2-3);

Pøíkaz Koøeny polynomu (reálné) 

realroots(%);

Pøíkaz Koøeny polynomu - s pevnou pøesností

allroots(x^2-3);

A pøíkaz Najít koøen, který dovoluje zadat interval, 
na nìmž numericky hledáme koøen.

### 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:

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é vyjadøování hodnot na numerické.
Buï volbou Pøepnout numerický výstup z menu nebo pøíkazem:

%pi;

if numer#false then numer:false else numer:true;

fpprec : 40$ fpprintprec : 30$
bfloat(%pi);
bfloat(sqrt(3));

Vrátíme zpìt algebraické zápisy

if numer#false then numer:false else numer:true;

## Soustavy rovnic

### 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) 

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ý.

### Soustavy závislých lineárních rovnic

Soustava, která nemá øešení

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í 

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í.

### 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.

algsys([x^2 - y^2 - 16 , 2*x - 3*y + 1], [x, y]);

# Konec této èásti

kill(all)$