# Číselné obory

## Celá čísla

1;

integerp (1);

4^(4^4);

2^32-1;

4*(2^17-2)-1;

number:10^29-10^14-1;

123456789^987654321;

Ověřuje, zda je zadané číslo prvočíslem.

primep(216091);

primep(number);

Rozklad na součin prvočísel.

factor(number);

Algoritmus pro rozklad na součin není v Maximě příliš efektivní. Často
je výhodnější použít specializovaný software, např. PARI/GP.

Nejbližší větší a menší prvočíslo.

next_prime (number);

prev_prime (number);

Dělení se zbytkem

a:1234$
b:56$

q:quotient(a,b);

Zbytek po dělení

r:remainder(a,b);

divide(a,b);

Vypíše podíl i zbytek (ve formě seznamu).

a=q*b+r;

is(a=q*b+r);

Největší společný dělitel a nejmenší společný násobek.

gcd(1234,56);

load ("functs");

lcm(21,35,99);

Určení absolutní hodnoty.

abs(-3);

## Racionální čísla

4/6;

Narozdíl od Maplu může být i jmenovatel záporný.

-3/-6;

## Čísla s pohyblivou desetinnou čárkou

25^(1/6);

float(%);

floatnump(%);

1.e-6;

Maxima pracuje standartně s přesností na 16 platných číslic. 
Přesnost můžeme změnit nastavením proměnné fpprec, ta se ale projeví 
pouze při použití bfloat. fpprec určuje počet platných číslic.

bfloat(%o25);

floatnump(%);

bfloatp(%o29);

fpprec;

fpprec:30;

Ludolfovo číslo zadáváme pomocí %pi.

bfloat (%pi), fpprec=20;

bfloat (%pi), fpprec=100;

set_display(ascii);

bfloat (%pi), fpprec=100;

set_display(xml);

bfloat používá pro označení exponentu písmeno b.

1.b-6;

%pi, numer;

Jakmile zadáme nějaké číslo aproximativně, 
Maxima automaticky použije aproximativní aritmetiku.

3/2*5;

3/2*5.0;

ceiling(x) učuje nejmenší celé číslo větší nebo rovné zadanému x, 
floor(x) největší celé číslo menší nebo rovné zadanému x.

floor(7.5);

ceiling(7.5);

round(7.5);round(7.4);round(7.6);

rationalize(0.5);

Pomocí příkazů numer:true a numer:false určujeme, zda bude Maxima 
používat aritmetiku numerickou nebo symbolickou.

numer:true;

%pi;

numer:false;

%pi;

Konstanty:

Eulerovo číslo e

%e; exp(1); %e, numer;

Nekonečno, -nekonečno, komplexní nekonečno

inf; minf; infinity;

## Počítání s odmocninami

(1/2+1/2*sqrt(5))^2;

expand(%);

1/%;

ratsimp(%);

algebraic:true;

ratsimp(2/(sqrt(5)+3));

Implicitní nastavení je alegebraic : false.

algebraic : false;

(-1-3*%pi-3*%pi^2-%pi^3)^(1/3);

radcan(%);

1/(1+sqrt(2));

algebraic : true;

ratsimp(1/(1+sqrt(2)));

algebraic : false;

(4+2*3^(1/2))^(1/2);

load(sqdnst);

sqrtdenest((4+2*3^(1/2))^(1/2));

## Komplexní čísla

Komplexní jednotku zadáváme pomocí %i.

(2+3*%i)*(4+5*%i);

expand(%);

Převod na základní tvar.

(2+3*%i)/(4+5*%i);

rectform(%);

Pro zobrazení reálné, resp. imaginární části komplexního čísla 
použijeme příkaz realpart, resp. imagpart. 
Komplexní číslo nemusí být v základním tvaru.

realpart(%);imagpart(%o78);

realpart(%o77);imagpart(%o77);

Pro určení čísla komplexně sdruženého použijeme příkaz conjugate 
z balíčku eigen.

load(eigen);

conjugate(%o77);

sqrt(-8);

cabs určuje absolutní hodnotu komplexního čísla

cabs(%);

1/(2+a-b*%i);

rectform(%);

cabs(1/(2+a-b*%i));