5. Rovnice:
a) Řešení rovnic (lineárních, a kvadratických):
K řešení rovnic se používápříkaz "solve", jeho syntaxe je následující:
solve(<rovnice>,<proměnná>);
hezky to bude vypadat třeba u takovéto rovnice:
> with(linalg):
> rovnice:= ((x^2-3*x)/(6-2*x))+1=0;

> solve(rovnice,x);
2
b) Řešení soustav lineárních rovnic pomocí matic:
Jordanovou eliminací
a
pomocí Cramerova pravidla.
něco úvodem: představte si že máte soustavu dejme tomu tří lineárních rovnic o třech neznámých, které upravíte tak, aby na levé straně byli neznámé a na pravé ten zbytek asi do takového to tvaru:
> r1:=5*x-2*y+4*z=10;
> r2:=3*x+3*y-6*z=11;
> r3:=3*x-4*y+4*z=12;
![]()
![]()
máme li takto připravené rovnice, můžeme přistoupit k dalšíímu kroku a to je vytvoření matice soustavy. Matice soustavy je matice složená levých stran rovnic.
Pak budem potřebovat ještě jeden takovej vektor, ten získáme z pravých stran rovnic.
takhle:
>matice := matrix(3,3,[5,-2,4,3,3,-6,3,-4,4]);

>vektor_pravych_stran :=vector(3,[10,11,12]);
![]()
ztoho všeho spácháme tzv. slepenec = ROZŠÍŘENÁ MATICE SOUSTAVY pomocí příkazu "concat"
> slepenec := concat(matice,vektor_pravych_stran);

ted teda máme všechno připraveno, aby jsme však mohli takto soustavy řešit je třeba si ověřit zda má soustava řešení - tzv Frobeniova podmínka. Přece nechcete dělat zbytečnou práci :-).
To uděláme následovně
![]()
![]()
![]()
jak vidíme v našem případě má soustava pouze jedno řešení, které si teď několika způsoby zjistíme.
1. JORDANOVA ELIMINACE:
provedeme ji tak, že rozšířenou matici rovnice upravujeme tak (pomocí příkazu gaussjord();), že na místě rovnice soustavy vznikne jednotková matice a na místě vektoru pravých stran uvidíme naše řešení. První řádek je první neznámá a tak dál...
jordanova_eliminace:=gaussjord(slepenec);

2. CRAMEROVO PRAVIDLO
tohle bude trochu delší, tak se prosím obrňte trpělivostí ( ou to už je tolik >> 1:00 AM), tak teda do toho. Co vlastně obnáší tahle metoda:
> matice_x:= matrix(3,3,[10,-2,4,11,3,-6,12,-4,4]);
> matice_y:= matrix(3,3,[5,10,4,3,11,-6,3,12,4]);
> matice_z:= matrix(3,3,[5,-2,10,3,3,11,3,-4,12]);
> neznama_x:=det(matice_x)/det(matice);
> neznama_y:=det(matice_y)/det(matice);
> neznama_z:=det(matice_z)/det(matice);



![]()
![]()
![]()
no a ještě něco krákýho. Soustavy lineárních rovnic můžete řešit i přímo, tak že zadáte všechny rovnice soustavy do příkazu solve a to tak:
> prime_vlozeni:=solve({r1,r2,r3},{x,z,y});
![]()
Co závěrem: no na keci si moc nepotrpim, takže doufám že to nikomu k něčemu bude.