Číselné obory
1 Celá čísla
| (%i1) | 1; |
| (%i2) | integerp (1); |
| (%i3) | 4^(4^4); |
| (%i4) | 2^32-1; |
| (%i5) | 4*(2^17-2)-1; |
| (%i6) | number:10^29-10^14-1; |
| (%i7) | 123456789^987654321; |
Ověřuje, zda je zadané číslo prvočíslem.
| (%i8) | primep(216091); |
| (%i9) | primep(number); |
Rozklad na součin prvočísel.
| (%i10) | 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.
| (%i11) | next_prime (number); |
| (%i12) | prev_prime (number); |
Dělení se zbytkem
| (%i13) |
a:1234$ b:56$ |
| (%i15) | q:quotient(a,b); |
Zbytek po dělení
| (%i16) | r:remainder(a,b); |
| (%i17) | divide(a,b); |
Vypíše podíl i zbytek (ve formě seznamu).
| (%i18) | a=q*b+r; |
| (%i19) | is(a=q*b+r); |
Největší společný dělitel a nejmenší společný násobek.
| (%i20) | gcd(1234,56); |
| (%i21) | load ("functs"); |
| (%i22) | lcm(21,35,99); |
Určení absolutní hodnoty.
| (%i23) | abs(-3); |
2 Racionální čísla
| (%i24) | 4/6; |
Narozdíl od Maplu může být i jmenovatel záporný.
| (%i25) | -3/-6; |
3 Čísla s pohyblivou desetinnou čárkou
| (%i26) | 25^(1/6); |
| (%i27) | float(%); |
| (%i28) | floatnump(%); |
| (%i29) | 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.
| (%i30) | bfloat(%o25); |
| (%i31) | floatnump(%); |
| (%i32) | bfloatp(%o29); |
| (%i33) | fpprec; |
| (%i34) | fpprec:30; |
Ludolfovo číslo zadáváme pomocí %pi.
| (%i35) | bfloat (%pi), fpprec=20; |
| (%i36) | bfloat (%pi), fpprec=100; |
| (%i37) | set_display(ascii); |
| (%i38) | bfloat (%pi), fpprec=100; |
| (%i39) | set_display(xml); |
bfloat používá pro označení exponentu písmeno b.
| (%i40) | 1.b-6; |
| (%i41) | %pi, numer; |
Jakmile zadáme nějaké číslo aproximativně,
Maxima automaticky použije aproximativní aritmetiku.
| (%i42) | 3/2*5; |
| (%i43) | 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.
| (%i44) | floor(7.5); |
| (%i45) | ceiling(7.5); |
| (%i46) | round(7.5);round(7.4);round(7.6); |
| (%i49) | rationalize(0.5); |
Pomocí příkazů numer:true a numer:false určujeme, zda bude Maxima
používat aritmetiku numerickou nebo symbolickou.
| (%i50) | numer:true; |
| (%i51) | %pi; |
| (%i52) | numer:false; |
| (%i53) | %pi; |
Konstanty:
Eulerovo číslo e
| (%i54) | %e; exp(1); %e, numer; |
Nekonečno, -nekonečno, komplexní nekonečno
| (%i57) | inf; minf; infinity; |
4 Počítání s odmocninami
| (%i60) | (1/2+1/2*sqrt(5))^2; |
| (%i61) | expand(%); |
| (%i62) | 1/%; |
| (%i63) | ratsimp(%); |
| (%i64) | algebraic:true; |
| (%i65) | ratsimp(2/(sqrt(5)+3)); |
Implicitní nastavení je alegebraic : false.
| (%i66) | algebraic : false; |
| (%i67) | (-1-3*%pi-3*%pi^2-%pi^3)^(1/3); |
| (%i68) | radcan(%); |
| (%i69) | 1/(1+sqrt(2)); |
| (%i70) | algebraic : true; |
| (%i71) | ratsimp(1/(1+sqrt(2))); |
| (%i72) | algebraic : false; |
| (%i73) | (4+2*3^(1/2))^(1/2); |
| (%i74) | load(sqdnst); |
| (%i75) | sqrtdenest((4+2*3^(1/2))^(1/2)); |
Maxima pracuje standardně v reálném oboru (Maple v komplexním)
| (%i76) | sqrt(x^2); |
| (%i77) | (-8)^(1/3); |
| (%i78) | domain : complex; |
| (%i79) | sqrt(x^2); |
| (%i80) | (-8)^(1/3); |
| (%i81) | kill(all); |
5 Komplexní čísla
Komplexní jednotku zadáváme pomocí %i.
| (%i1) | (2+3*%i)*(4+5*%i); |
| (%i2) | expand(%); |
Převod na základní tvar.
| (%i3) | k_cislo : (2+3*%i)/(4+5*%i); |
| (%i4) | 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.
| (%i5) | realpart(%);imagpart(%o4); |
| (%i7) | realpart(k_cislo);imagpart(k_cislo); |
Pro určení čísla komplexně sdruženého použijeme příkaz conjugate
z balíčku eigen.
| (%i9) | load(eigen); |
| (%i10) | conjugate(k_cislo); rectform(%); |
| (%i12) | sqrt(-8); |
cabs určuje absolutní hodnotu komplexního čísla
| (%i13) | cabs(%); |
| (%i14) | 1/(2+a-b*%i); |
| (%i15) | rectform(%); |
| (%i16) | cabs(1/(2+a-b*%i)); |