Polynomy a racionální funkce
Zde je uvedeno několik funkcí pro práci s polynomy a racionálními funkcemi. Nebudeme zvlášť popisovat každou z nich, ale použijeme pouze komentářů. Podrobnější informace lze nalést v helpu.
> p1:=2*x+3*x^2+5*x^3+4;
>
sort(p1,x); #seřazení podle mocnin x
sort(p1); # x není v našem případě nutno zadávat
> p2:=a*x^3+b*x^3+2*c*x^2+3*c*x^2+e*x^2+d*x-1:sort(p2,x);
> collect(%,x); # sort "neumí" vytknout koeficienty u jednotlivých mocnin x, což umí příkaz collect
> factor(p1);
> expand(%);
>
nops(p1); #počet členů
### WARNING: degree(0,x) now returns -infinity
degree(p1); #stupeň polynomu
coeff(p1,x,2); #koeficient u x^2
lcoeff(p1); #koeficient u nejvyšší mocniny
tcoeff(p1); #koeficient u nejnižší mocniny
Racionální funkce jsou podílem polynomů, takže pro ně lze použít i stejných příkazů.
> rac:=p1/(3*x^4-4*x^2+6*x^3+10*x-15);
>
sort(rac);
`citatel`=numer(rac);
`jmenovatel`=denom(rac);
>
factor(rac);
factor(numer(rac))/expand(denom(rac));
expand(numer(rac))/factor(denom(rac));
Velmi potřebná je funkce convert , kterou lze provést mnoho převodů mezi různými formami racionální funkce.
> convert(rac,parfrac,x); #převod na částečné (parciální) zlomky
> convert(rac,parfrac,x,real);
Argumentů ve funkci convert[parfrac] lze mít několik (viz help). Následují další ukázky funkce convert.
> convert(%,rational); #nechci pracovat s čísly v plovoucí čárce
> convert(rac,confrac,x);
Do této kapitoly patří i celočíselné dělění a zbytek po něm.
> `podil`=quo(denom(rac),numer(rac),x,'r');`zbytek`=r; #zbytek se uloží do r
> `zbytek`=rem(denom(rac),numer(rac),x,'q');`podil`=q; #podobně, ale obráceně
Pro tyto výpočty lze požít i obecnější alternativy v podobě příkazů Rem a Quo , využívající příkazu mod .