Funkce pro práci s čísly

Clean

Syntaxe: [B] = clean(A [epsa])
kde A je matice a parametr epsa je velmi malé reálná čísla (default hodnota je 1.d-10). Funkce clean zaokrouhlí malá čísla k nule pro absolutní hodnoty menší než epsa

Pro ukázku použití funkce clean vytvoříme matici A o rozměru 3x3 a vynásobíme ji její inverzní maticí.

Příklad 4.1.A - funkce clean
 A = [1,3,2;-1,2,1;4,2,1]	// matice A
 A  =

    1.    3.    2.  
  - 1.    2.    1.  
    4.    2.    1.  
Vypočítáme B = A×A-1, která vytvoří jednotkovou matici 3x3:
 B = A*inv(A)	// matice B
 B  =

    1.          - 3.053D-16   - 8.327D-17  
    0             1.          - 2.776D-17  
    1.110D-16   - 3.331D-16     1.         
Hodnoty prvků pod a nad diagonálou by měly být nulové, ale díky drobným numerickým chybám při výpočtu inverzní matice jsou některé hodnoty pouze blížící se k nule. Funkce clean tato velmi malá čísla "vyčistí" (zaokrouhlí na nulu), takže dostaneme požadovanou jednotkovou matici s nulami mimo hlavní diagonálu.
 B = clean(B) 	// matice B - jednotková matice
 B  =

    1.    0.    0.  
    0.    1.    0.  
    0.    0.    1.  


Zaokrouhlování

Ceil

Syntaxe: [y] = ceil(x)
kde funkce ceil(x) zaokrouhluje nahoru k celému číslu.

Příklad 4.1.B - funkce ceil
 ceil(1.2) 	// zaokrouhluje nahoru
 ans = 2

 ceil(-1.2) 	// zaokrouhluje nahoru
 ans = - 1

Floor

Syntaxe: [y] = floor(x)
kde funkce floor(x) zaokrouhluje dolů k celému číslu.

Příklad 4.1.C - funkce floor
 floor(1.2) 	// zaokrouhluje dolů
 ans = 1

 floor(-1.2) 	// zaokrouhluje dolů
 ans = - 2

Round

Syntaxe: [y] = round(x)
kde funkce round(x) zaokrouhluje nahoru nebo dolů podle matematických pravidel.

Příklad 4.1.D - funkce round
 round([1.25 1.50 1.75]) 	// zaokrouhluje nahoru nebo dolů 
 ans  =
    1.    2.    2. 

Fix

Syntaxe: [y] = fix(x)
Funkce fix(x) číslo za desetinnou čárkou zaokrouhlí k nule.

Příklad 4.1.E - funkce fix
 fix([1.25 1.50 1.75]) 	// zaokrouhluje dolů 
 ans  =
    1.    1.    1.  

Int

Syntaxe: [y] = int(x)
Funkce int(x) vrací celou část čísla. Za povšimnutí stojí, že funkce floor a fix zaokrouhlují dolů k nejbližšímu celému číslu, jejich výsledek tedy bude stejný s funkcí int.

Příklad 4.1.F - funkce int
 int([-1.2 1.2 2.3])	// celočíselná část
 ans  =
  - 1.    1.    2.  


 // desetinnou část čísla dostaneme tak, 
 že odečteme od desetinného čísla jeho celočíselnou část

 x = 12.4345;

 x-int(x)
 ans = .4345


Dále si vykreslíme graf funkce floor a ceil:

Příklad 4.1.G - graf funkce floor
 x = -10:0.1:10;    
 plot(x,floor(x))
 xtitle ('funkce floor','x', 'y')


Funkce ceil je velmi podobná funkci floor:

Příklad 4.1.H - graf funkce ceil
 x = -10:0.1:10;    
 plot(x,ceil(x))
 xtitle ('funkce ceil','x', 'y')


Jen pro srovnání si můžeme vykreslit oba grafy do jednoho okna:





Komplexní čísla
Funkce clean, ceil, floor, fix, int, a round můžeme použít i u komplexních čísel. V tomto případě je funkce aplikována na reálnou a imaginární část jednotlivě.

Příklad 4.1.I - komplexní čísla
 z = 2.3 - 5.2*%i 		// definice komplexního čísla z
 z  =  2.3 - 5.2i
 
 ceil(z)
 ans  =  3. - 5.i

 floor(z)
 ans  =  2. - 6.i 
 
 int(z)
 ans  =  2. - 5.i  
 
 round(z)
 ans  =  2. - 5.i  
 
 fix(z)
 ans  =  2. - 5.i    
Komplexní číslo se píše ve tvaru z = a + bi, kde a a b jsou reálná čísla a i = (-1)^(1/2) je imaginární jednotka.

a je reálná část z, a = Re(z)
b je imaginární část z, b = Im(z)

Real a imag

Syntaxe: [y] = real(x)
[y] = imag(x)
Pomocí funkcí real a imag můžeme získat reálnou a imaginární část komplexního čísla.
Tady je příklad použití těchto funkcí:

Příklad 4.1.J - funkce real a imag
 z = 2.4 + 3.5*%i 		// definice komplexního čísla z
 z  =  2.4 + 3.5i
 
 x = real(z)
 x  =  2.4
 
 y = imag(z)
 y  =  3.5


Abs

Syntaxe: t = abs(x)
Funkce abs (x) vrací absolutní hodnotu čísla.
U komplexních čísel je absolutní hodnota definována jako |z| = sqrt (a^2 + b^2)

Příklad 4.1.K - funkce abs
 abs ([-3.4 0.0 3.4]) 		 // absolutní hodnoty reálných čísel
 ans  = 
    3.4    0.    3.4 
 abs (-3 + 4*%i)		// absolutní hodnota komplexního čísla
 ans  =  5.


Sign

Syntaxe: X = sign(A)
Funkce sign(A) vrací hodnotu 1.0, -1.0 nebo 0.0 pro reálná čísla podle toho jestli je číslo kladné, záporné nebo nula. Nazývá se také znaménková funkce.
Pro komplexní čísla vrací funkce sign hodnotu z/|z|.

Příklad 4.1.L - funkce sign
 sign([-2.4 0.0 5.8])  // pro reálná čísla
 ans  =
  - 1.    0.    1. 

 sign(3-4*%i)		// pro komplexní čísla
 ans  =  0.6 - 0.8i


Jednoduché znázornění funkce signum pomocí grafu:

Příklad 4.1.M - graf funkce sign
 x=[-2:0.1:2];			// definujeme obor hodnot x
 plot(x,sign(x)); 		// graf 
 xtitle('signum', 'x', 'y')	// popis grafu a os  

Modulo

Syntaxe: i = modulo(n,m)
Funkce modulo(n, m) se používá pro výpočet zbytku při celočíselném dělení. Při volání funkce ve tvaru modulo (n,m) se vypočítá číslo n - m * int (n / m), kde n,m jsou reálná čísla.


Příklad 4.1.N - funkce modulo
 modulo(10,7) 
 ans  =  3.
 
 // je stejné jako

 10-7*int(10/7) 
 ans  =  3.
Funkci modulo můžeme také použít při ověřování dělitelnosti dvou celých čísel - číslo n je násobek čísla m, když modulo(n,m) = 0

Příklad 4.1.O - funkce modulo - ověření dělitelnosti
 // Je číslo 1771 dělitelné 7 ?
 modulo(1771,7) 
 ans  =  0   // ano
 
 // Je číslo 268 dělitelné 6 ?
 modulo(268,6) 
 ans  =  4.  // ne


Rat

Syntaxe: [n,d] = rat(x)
kde x je desetinné číslo, n,d jsou celá čísla.
Funkce rat převede desetinné číslo na zlomek.
Platí: x » n/d.

Příklad 4.1.P - funkce rat
 // převedeme číslo pi = 3.14159 na zlomek
 [n,d] = rat(3.14159) 
 d  =  113.
 n  =  355. 
 
 // ověříme výsledek
 n/d 
 ans  =  3.1415929 


Sqrt

Syntaxe: y = sqrt(x)
Funkce sqrt(x) vypočítá druhou odmocninu čísla. Druhá odmocnina kladného reálného čísla je kladné reálné číslo. Odmocnina záporného čísla je komplexní číslo.

Příklad 4.1.Q - funkce sqrt
 // druhá odmocnina kladného čísla
 sqrt(561.69)  
 ans  =  23.7 
 
 // druhá odmocnina záporného čísla
 sqrt(-2355.1609) 
 ans  =  48.53i
Graf druhé odmocniny můžeme vykreslit pouze pro kladná čísla x > 0:

Příklad 4.1.R - graf druhé odmocniny
 x=[0:0.1:4];				// definujeme obor hodnot x
 plot(x,sqrt(x)); 			// graf 
 xtitle('druhá odmocnina', 'x', 'y')	// popis grafu a os  



Faktoriál

Syntaxe: y = gamma(x)
Pro výpočet faktoriálu slouží funkce gamma(x), která je definována jako n! = gamma(n+1)

Příklad 4.1.S - faktoriál
 // Vypočítáme 5!
 gamma(5+1)	// nebo můžeme napsat přímo gamma(6)
 ans  =
    120. 
Vygenerujeme si faktoriál pro hodnoty 1 až 10:

Příklad 4.1.T - faktoriál pro hodnoty 1 až 10
 x = [1:10]';	// vektor s hodnotami 1 až 10	
 fakt = [x, gamma(x+1)] 	
fakt  =
    1.     1.
    2.     2.
    3.     6.
    4.     24.
    5.     120.
    6.     720.
    7.     5040.
    8.     40320.
    9.     362880.
    10.    3628800.