CoCalc Public FilesCiselne_obory.sagewsOpen with one click!
Author: Roman Plch
Views : 163
Description: Číselné obory -- ukázkový zápisník pro M2142
Compute Environment: Ubuntu 20.04 (Default)
%typeset_mode True
%latex $x^2+y^2$
type(1)
<class 'sage.rings.integer.Integer'>
1.is_integer()
True\displaystyle \mathrm{True}
Integer(1)
1\displaystyle 1
_.is_integer()
True\displaystyle \mathrm{True}
1 in ZZ
True\displaystyle \mathrm{True}
ZZ #okruh celých čísel
Z\displaystyle \Bold{Z}
ZZ.is_field() #není tělesem
False\displaystyle \mathrm{False}
4^(4^4)
13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084096\displaystyle 13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084096
len(str(_))
155\displaystyle 155
#123456789^987654321
216091.is_prime(); # Použití metody
True\displaystyle \mathrm{True}
is_prime(216091) # Použití funkce
216091. #stisknutím Tab za tečkou dostaneme nabídku metod, které v daný moment můžeme aplikovat na objekt

Některé operace voláme jako funkce programu sage, tj. funkce(objekt), některé jako metody aplikované na daný objekt, tj. objekt.funkce(). V případě příkazu is_prime je možné použít obojí.

number=10^29-10^14-1;number.is_prime()
False\displaystyle \mathrm{False}
number.factor(); factor(number)
6122357171316670197660768252549\displaystyle 61 \cdot 223 \cdot 5717 \cdot 13166701 \cdot 97660768252549
6122357171316670197660768252549\displaystyle 61 \cdot 223 \cdot 5717 \cdot 13166701 \cdot 97660768252549
next_prime(number)
99999999999999900000000000157\displaystyle 99999999999999900000000000157
previous_prime(number)
99999999999999899999999999981\displaystyle 99999999999999899999999999981
P = Primes();P
Set of all prime numbers: 2, 3, 5, 7, ...
P.unrank(0)
2\displaystyle 2
prime_range(1,10)
[2\displaystyle 2, 3\displaystyle 3, 5\displaystyle 5, 7\displaystyle 7]
a=1234;b=56;a;b
1234\displaystyle 1234
56\displaystyle 56
Celočíselné dělení.
q=a//b;q
22\displaystyle 22
Zbytek po celočíselném dělení.
r=a%b;r
2\displaystyle 2
bool(a==q*b+r) #testování rovnosti, rovnost zapisujeme pomocí ==
True\displaystyle \mathrm{True}
a.quo_rem(b)
(22\displaystyle 22, 2\displaystyle 2)
gcd(a,b) #největší společný dělitel
2\displaystyle 2
lcm([21,35,99]) #nejmenší společný násobek
3465\displaystyle 3465
abs(-3)
3\displaystyle 3
pro celočíselné argumenty je % modulo (zbytek po dělení)
10 % 3
1\displaystyle 1
mod(10,3)
1\displaystyle 1
Racionální čísla
4/6;-3/-6
23\displaystyle \frac{2}{3}
12\displaystyle \frac{1}{2}
from sage.rings.rational import is_Rational
is_Rational(4/6)
True\displaystyle \mathrm{True}
type(4/6)
<class 'sage.rings.rational.Rational'>
QQ #těleso racionálních čísel
Q\displaystyle \Bold{Q}
QQ.is_field()
True\displaystyle \mathrm{True}
2/3 in QQ
True\displaystyle \mathrm{True}
2/3 in ZZ
False\displaystyle \mathrm{False}
Čísla s pohyblivou desetinnou čárkou
25^(1/6)
2516\displaystyle 25^{\frac{1}{6}}
type(25^(1/6))
<class 'sage.symbolic.expression.Expression'>
simplify(25^(1/6)) #zjednodušení
513\displaystyle 5^{\frac{1}{3}}
n(_) #aproximace
1.70997594667670\displaystyle 1.70997594667670
type(_)
<class 'sage.rings.real_mpfr.RealNumber'>
sqrt(2).n(digits=20)
1.4142135623730950488\displaystyle 1.4142135623730950488
n(sqrt(2), digits=20)
1.4142135623730950488\displaystyle 1.4142135623730950488
RR.is_field()
True\displaystyle \mathrm{True}
(25^1/6) in RR
True\displaystyle \mathrm{True}
pi.n(digits=150)
3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940813\displaystyle 3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940813
e.n()
2.71828182845905\displaystyle 2.71828182845905
float(e)
2.718281828459045\displaystyle 2.718281828459045
'{:.9f}'.format(_) #nepočítá aproximaci, pouze přepisuje číslo v jiném tvaru, v tomto případě zobrazuje 9 desetinných míst
2.718281828
3/2;3/2.0
32\displaystyle \frac{3}{2}
1.50000000000000\displaystyle 1.50000000000000
type(3/2.0)
<class 'sage.rings.real_mpfr.RealNumber'>
RR #Těleso reálných čísel
R\displaystyle \Bold{R}
pi in RR
True\displaystyle \mathrm{True}
I in RR
False\displaystyle \mathrm{False}
floor(7.5); #největší celé číslo menší nebo rovné zadanému číslu
7\displaystyle 7
ceil(7.5) #nejmenší celé číslo větší nebo rovné zadanému číslu
8\displaystyle 8
round(7.5)
8\displaystyle 8
7.5.trunc()
7\displaystyle 7
frac(7.5)
0.500000000000000\displaystyle 0.500000000000000
0.5.exact_rational()
12\displaystyle \frac{1}{2}
QQ(0.5)
12\displaystyle \frac{1}{2}

Počítání s odmocninami

v=((1/2+1/2*sqrt(5))^2);v
14(5+1)2\displaystyle \frac{1}{4} \, {\left(\sqrt{5} + 1\right)}^{2}
expand(v)
125+32\displaystyle \frac{1}{2} \, \sqrt{5} + \frac{3}{2}
(1/expand(v))
25+3\displaystyle \frac{2}{\sqrt{5} + 3}

Algebraicka cisla: Koreny ireducibilnich polynomu nad racionalnimi cisly - tvori teleso.

QQbar.is_field()
True\displaystyle \mathrm{True}
QQbar(1/expand(v))
0.3819660112501051?\displaystyle 0.3819660112501051?
QQbar(1/expand(v)).radical_expression() #usměrnění
125+32\displaystyle -\frac{1}{2} \, \sqrt{5} + \frac{3}{2}
((4+2*3^(1/2))^(1/2))
23+4\displaystyle \sqrt{2 \, \sqrt{3} + 4}
QQbar(_).radical_expression()
3+1\displaystyle \sqrt{3} + 1
type(QQbar(2))
<class 'sage.rings.qqbar.AlgebraicNumber'>
(sqrt(25+5*sqrt(5))-sqrt(5+sqrt(5))-2*sqrt(5-sqrt(5)))
55+255+525+5\displaystyle \sqrt{5 \, \sqrt{5} + 25} - \sqrt{\sqrt{5} + 5} - 2 \, \sqrt{-\sqrt{5} + 5}
QQbar(_).radical_expression()
0\displaystyle 0
(1/(1+sqrt(2)))
12+1\displaystyle \frac{1}{\sqrt{2} + 1}
QQbar(_).radical_expression()
21\displaystyle \sqrt{2} - 1
sqrt(2, all=True)
[2\displaystyle \sqrt{2}, 2\displaystyle -\sqrt{2}]
sqrt(-4, all=True)
[2i\displaystyle 2 i, 2i\displaystyle -2 i]
sqrt(2).minpoly()
x22\displaystyle x^{2} - 2
oo
+\displaystyle +\infty
oo+5;oo*5
+\displaystyle +\infty
+\displaystyle +\infty
reset()
z=(2+3*I)*(4+5*I);z
22i7\displaystyle 22 i - 7
type(z)
<class 'sage.symbolic.expression.Expression'>
z in CC
True\displaystyle \mathrm{True}
CC #těleso komplexních čísel
C\displaystyle \Bold{C}
CC.is_field()
True\displaystyle \mathrm{True}
real(z)
7\displaystyle -7
imag(z)
22\displaystyle 22
conjugate(z) #číslo komplexně sdružené
22i7\displaystyle -22 i - 7
abs(z)
533\displaystyle \sqrt{533}
sqrt(-8).rectform()
2i2\displaystyle 2 i \, \sqrt{2}
k_cislo=(2+3*i)/(4+5*i);k_cislo
241i+2341\displaystyle \frac{2}{41} i + \frac{23}{41}
a,b=var('a,b')
k=1/(a+2-I*b);k
1aib+2\displaystyle \frac{1}{a - i \, b + 2}
k.rectform()
a+2(a+2)2+b2+ib(a+2)2+b2\displaystyle \frac{a + 2}{{\left(a + 2\right)}^{2} + b^{2}} + \frac{i \, b}{{\left(a + 2\right)}^{2} + b^{2}}
abs(k)
1aib+2\displaystyle \frac{1}{{\left| a - i \, b + 2 \right|}}