Zaawansowana matematyka: możliwości i ograniczenia
Ta strona podsumowuje zaawansowaną matematykę w Varlig Calc: listy, wektory i macierze, liczby zespolone, sumy i iloczyny, rozwiązywanie równań oraz rachunek różniczkowy i całkowy. Dla każdej funkcji opisuje działanie, przyjmowane dane, dokładność wyników i ograniczenia. Zajrzyj tu, gdy wynik Cię zaskoczy.
Wprowadzenia z większą liczbą przykładów znajdziesz w rozdziałach: Listy i statystyka, Wektory i macierze, Liczby zespolone oraz Sumowanie, rozwiązywanie równań i rachunek różniczkowy i całkowy.
W skrócie
| Funkcja | Przykład | Wynik |
|---|---|---|
| Lista | [1, 2+3, 4*2] |
[1, 5, 8] |
| Element listy | [10, 20, 30][1] |
20 |
| Element listy zagnieżdżonej | [[1,2],[3,4]][1][0] |
3 |
| Suma wielkości | sum([1 kg, 500 g]) |
1.5 kg |
| Statystyka | average([1,2,3]), median([5,1,3]) |
2, 3 |
| Zakres malejący | range(5, 1, -2) |
[5, 3, 1] |
| Dodawanie list | [1,2] + [3,4] |
[4, 6] |
| Iloczyn macierzy | [[1,2],[3,4]] * [[1,0],[0,1]] |
[[1, 2], [3, 4]] |
| Macierz odwrotna | inverse([[1,2],[3,4]]) |
[[-2, 1], [1.5, -0.5]] |
| Wyznacznik | det([[1,2],[3,4]]) |
-2 |
| Transpozycja | transpose([[1,2],[3,4]]) |
[[1, 3], [2, 4]] |
| Układ równań liniowych | solve_system([[2,1],[1,2]], [34,29]) |
[13, 8] |
| Arytmetyka liczb zespolonych | (2+3i) * (2-3i) |
13 |
| Zespolony pierwiastek kwadratowy | sqrt(complex(-4,0)) |
2i |
| Najczęstsza wartość | mode([1,2,2,3]) |
2 |
| Percentyl | percentile([1,2,3,4],25) |
1.75 |
| Odchylenie standardowe populacji | population_stddev([1,2,3,4]) |
1.1180339887 |
| Suma w zadanym zakresie | sum(k^2, k, 1, 10) |
385 |
| Iloczyn w zadanym zakresie | product(k, k, 1, 5) |
120 |
| Dokładne rozwiązywanie równania | solve(x^2 - 5x + 6 = 0) |
[2, 3] |
| Rozwiązywanie równania w przedziale | solve(x^2 = 4, x, 0, 3) |
2 |
| Pochodna symboliczna | differentiate(sin(x), x) |
cos(x) |
| Pochodna w punkcie | derivative(x^3, x, 2) |
12 |
| Całka oznaczona | integrate(x^2, x, 0, 3) |
9 |
Listy, macierze i liczby zespolone są zwykłymi wartościami. Możesz nadawać im nazwy i przekazywać je do własnych funkcji. Po zmianie wcześniejszego wiersza są przeliczane ponownie.
squares(n) = sum(k^2, k, 1, n)squares(3) daje 14first(items) = items[0]first([10, 20]) daje 10root(y) = solve(x^2 = y, x, 0, 10)root(9) daje 3Co gwarantuje silnik obliczeniowy
Wszystko na tej stronie opiera się na jednej zasadzie: obliczenie daje wynik, którego poprawność Varlig może zagwarantować, albo błąd wyjaśniający przyczynę. Nigdy nie zastępuje dokładnego obliczenia liczbą, która tylko wygląda wiarygodnie.
Dokładność wyniku
| Sposób obliczania | Zakres zastosowania |
|---|---|
| Dokładne ułamki | Współczynniki równań i pierwiastek równania liniowego; pierwiastki równania kwadratowego, którego wyróżnik jest kwadratem liczby całkowitej; macierzowe +, -, *, mnożenie przez liczbę, transpose, det, inverse, rank i solve_system; median, mode, modes, percentile, quartile i wszystkie trzy warianty wariancji |
| Dziesiętny pierwiastek kwadratowy | stddev, sample_stddev, population_stddev oraz pierwiastki pozostałych równań kwadratowych |
| Binarna arytmetyka zmiennoprzecinkowa | eigenvalues, qr, lu, svd, integrate i czteroargumentowe solve |
Dokładny znaczy dokładny: od odczytania wiersza do wyświetlenia wyniku nic nie jest zaokrąglane, więc wynik zachowuje dokładność po nadaniu nazwy, zapisaniu i ponownym użyciu. Wynik przybliżony ma ograniczoną precyzję dziesiętną, tak jak wynik sqrt. Nie jest poprawnie zaokrąglony do ostatniej wyświetlanej cyfry, dlatego porównanie dwóch przybliżeń za pomocą == nie jest wiarygodnym testem — solve(x^2 - 2 = 0) i sqrt(2) wyświetlają 1.4142135624, ale nie są równe.
Jeden wynik nigdy nie łączy obu rodzajów. Jeśli wyróżnik równania kwadratowego nie jest kwadratem liczby wymiernej, oba pierwiastki są przybliżone.
Jednostki
| Operacja | Reguła |
|---|---|
| Macierze | Tylko liczby bez jednostek; jednostki, kwoty pieniężne i elementy zespolone są odrzucane |
| Równania | Tylko liczby bez jednostek, po obu stronach |
median, mode, modes, percentile, quartile, stddev, population_stddev |
Jeden spójny wymiar lub liczby bez jednostek. Zgodne jednostki są przeliczane na jednostkę pierwszej wartości, którą zachowuje wynik |
variance, sample_variance, population_variance |
Tylko liczby bez jednostek: wariancja podnosi obserwacje do kwadratu, a jednostki nie są przy tym zachowywane |
Łączenie wartości z jednostkami i wartości bez jednostek powoduje błąd, zamiast po cichu odczytywać same liczby. Istnieje jeden od dawna stosowany wyjątek: samo 0 jest traktowane jako zero w jednostce pozostałych wartości.
Co jest odrzucane
Żaden z poniższych przypadków nie daje liczby ani zwykłego tekstu. Każdy powoduje błąd wskazujący, czego nie da się obliczyć, i — jeśli istnieje — obsługiwaną formę zapisu:
- Równanie wielomianowe stopnia wyższego niż 2, równanie niewielomianowe, niewiadoma w dzielniku lub wykładniku, dwie nazwy bez przypisanych wartości, równanie bez niewiadomej albo równanie zawierające jednostki lub kwoty pieniężne. Każdy z tych przypadków odsyła do numerycznej funkcji
solvez czterema argumentami. - Równanie bez pierwiastka rzeczywistego — zamiast zwracać zespolony — oraz równanie spełnione przez każdą wartość — zamiast wybierać jedną z nich.
- Działanie na macierzach o niezgodnych wymiarach lub wymagające macierzy kwadratowej, odwracanie macierzy osobliwej albo element, który nie jest liczbą bez jednostki.
mode, gdy żadna wartość się nie powtarza lub kilka występuje równie często, percentyl spoza zakresu od 0 do 100, kwartyl spoza zakresu od 0 do 4 oraz każda statystyka pustej listy inna niżsum,producticount.
Celowo nie są obsługiwane: przekształcenia symboliczne poza zebraniem współczynników wielomianu, układy równań nieliniowych, zespolone pierwiastki równań rzeczywistych, macierze zawierające jednostki lub kwoty pieniężne, całkowanie symboliczne i kreślenie wykresów.
Same komunikaty znajdziesz w rozdziale Błędy, diagnostyka i ograniczenia.
Zapisywanie list i funkcji matematycznych
- Przecinki oddzielają elementy i argumenty. Przecinek ze spacją zawsze jest separatorem, a przecinek z dokładnie trzema następującymi po nim cyframi grupuje tysiące, więc
[1,200, 1,800]zawiera dwa elementy. Bez spacji każdy przecinek jest separatorem, jak w[12,-51,4]. Gdy możliwe są obie interpretacje, np. w[1,234], komunikat błędu pokazuje oba sposoby zapisu. Część ułamkową liczby oddzielaj kropką. - Macierze to listy wierszy, np.
[[1,2],[3,4]]. Skrócony zapis ze średnikami, taki jak[1,2;3,4], nie jest obsługiwany. - Indeksy zaczynają się od 0 i muszą być liczbami całkowitymi nieujemnymi. Indeks wykraczający poza listę powoduje błąd; nie wraca do początku ani nie jest zmniejszany do dozwolonej wartości.
- Liczba argumentów jest sprawdzana.
sqrt(4,9)powoduje błąd zamiast zgadywania intencji.
Listy i statystyka
Listę przyjmują funkcje: length lub count, sum, product, average lub mean, median, min, max, mode i modes, percentile i quartile oraz funkcje miar rozproszenia: variance, sample_variance, population_variance, stddev, sample_stddev i population_stddev.
modezwraca wynik tylko wtedy, gdy jedna wartość występuje częściej niż każda inna. Remis oraz lista bez powtórzeń powodują błąd wskazującymodes,medianlubaverage.modeszwraca wszystkie wartości o największej częstości.percentile(list, rank)przyjmuje rangę od 0 do 100 i interpoluje liniowo między dwiema najbliższymi pozycjami, zgodnie z definicją uwzględniającą oba krańce: 50. percentyl to mediana, a 0. i 100. to najmniejsza i największa wartość.quartile(list, k)przyjmuje całkowitekod 0 do 4 i odpowiadapercentile(list, 25k).varianceistddevsą miarami dla próby: dzielą przezn - 1i wymagają dwóch wartości.population_varianceipopulation_stddevdzielą przezni wymagają jednej.sample_varianceisample_stddevto dłuższe nazwy tych samych funkcji dla próby.- Dla pustej listy
sumwynosi 0,productwynosi 1, acountwynosi 0. Pozostałe statystyki pustej listy powodują błędy. - Dwie listy tej samej długości są dodawane i odejmowane element po elemencie. Listę można pomnożyć lub podzielić przez liczbę, a dwie listy porównać za pomocą
==. range(start, end, step)uwzględnia oba końce zakresu. Krok jest opcjonalny.dot(a, b)oblicza iloczyn skalarny dwóch wektorów rzeczywistych.
spend = [420, 385, 510, 460] daje [420, 385, 510, 460]sum(spend) daje 1,775average(spend) daje 443.75median(spend) daje 440spend[0] daje 420spend * 1.1 daje [462, 423.5, 561, 506]range(0, 1, 0.25) daje [0, 0.25, 0.5, 0.75, 1]Przekształcanie list
| Wywołanie | Wynik | Działanie |
|---|---|---|
sort([3,1,2]) |
[1, 2, 3] |
Sortuje liczby bez jednostek rosnąco; równe elementy zachowują kolejność |
reverse([1,2,3]) |
[3, 2, 1] |
Odwraca dowolną listę |
unique([3,1,3,2]) |
[3, 1, 2] |
Zachowuje pierwsze wystąpienie każdej wartości; elementy muszą być identyczne, także pod względem jednostek |
slice([10,20,30,40], 1, 3) |
[20, 30] |
Pobiera elementy od indeksu początkowego do końcowego, bez elementu o indeksie końcowym |
map(x^2, x, [1,2,3]) |
[1, 4, 9] |
Oblicza wyrażenie dla każdego elementu |
filter(x > 1, x, [1,2,3]) |
[2, 3] |
Zachowuje elementy, dla których warunek jest prawdziwy |
variance([1,2,3]) |
1 |
Dokładna wariancja próby, z dzieleniem przez liczbę elementów pomniejszoną o jeden |
slicewymaga liczb całkowitych spełniających 0 ≤ start ≤ end ≤ długość listy. Inne granice powodują błąd.variancewymaga co najmniej dwóch liczb bez jednostek.mapifilterprzyjmują najpierw wyrażenie, potem nazwę używaną dla każdego elementu, a na końcu listę. Nazwa obowiązuje tylko wewnątrz wywołania, więc nie zmienia nazwy zdefiniowanej gdzie indziej. Wyrażenie wfiltermusi dawaćtruelubfalse.
Wektory i macierze
Wektory są płaskimi listami, a macierze — listami wierszy. Macierze muszą być prostokątne, zawierać liczby rzeczywiste bez jednostek i mieć od 1 do 32 wierszy oraz kolumn.
| Funkcja | Działanie |
|---|---|
A * B |
Iloczyn macierzy; liczba kolumn A musi być równa liczbie wierszy B |
transpose(A) |
Zamienia wiersze z kolumnami |
shape(A) |
[rows, columns] |
identity(n) |
Macierz jednostkowa o wymiarach n na n |
trace(A) |
Suma elementów przekątnej macierzy kwadratowej |
det(A) |
Wyznacznik macierzy kwadratowej |
inverse(A) |
Odwrotność macierzy kwadratowej; macierz osobliwa powoduje błąd |
rank(A) |
Rząd dowolnej macierzy prostokątnej, obliczany metodą dokładnej eliminacji |
dot(a, b) |
Iloczyn skalarny dwóch wektorów tej samej długości |
cross(a, b) |
Iloczyn wektorowy dwóch wektorów trójelementowych |
solve_system(A, b) |
Rozwiązuje A*x = b dla macierzy kwadratowej A i płaskiego wektora b |
eigenvalues(A) |
Wartości własne rzeczywistej macierzy kwadratowej, w tym pary zespolone, bez ustalonej kolejności |
qr(A) |
[Q, R], gdzie Q*R jest w przybliżeniu równe A |
lu(A) |
[P, L, U], gdzie P*A jest w przybliżeniu równe L*U; tylko macierze kwadratowe |
svd(A) |
[U, s, Vt], gdzie s jest płaską listą wartości osobliwych, a A jest w przybliżeniu równe U*diag(s)*Vt |
Wyniki dokładne. det, inverse, rank i solve_system używają dokładnych ułamków. rank nie stosuje tolerancji zaokrągleń. solve_system zgłasza błąd dla układu osobliwego i nie obsługuje układów nieliniowych ani układów o nieskończenie wielu rozwiązaniach.
Wyniki przybliżone. eigenvalues, qr, lu i svd używają arytmetyki zmiennoprzecinkowej i sprawdzają, czy wynik jest skończony. qr i svd przyjmują macierze prostokątne i zwracają czynniki w postaci zredukowanej („cienkiej”). Obliczanie wartości własnych i SVD kończy się po 10 000 iteracji. Element będący jedynie błędem zaokrąglenia względem największego elementu jest wyświetlany jako 0, ale odwołanie przez indeks zwraca zapisaną wartość. Macierze źle uwarunkowane mogą dawać mniej dokładne wyniki, więc nie sprawdzaj ich za pomocą ==.
# Two adult tickets and one child ticket cost 34; one adult and two children cost 29solve_system([[2,1],[1,2]], [34,29]) daje [13, 8]det([[2,1],[1,2]]) daje 3rank([[1,2],[2,4]]) daje 1Liczby zespolone
i jest jednostką urojoną, chyba że zdefiniujesz nazwę lub własną jednostkę o nazwie i.
- Funkcje:
complex(real, imaginary),real,imag,conj,abs,arg(w radianach) isqrt(pierwiastek główny) przyjmują liczby zespolone. - Dokładność: części liczby, działania arytmetyczne i potęgi całkowite pozostają dokładne. Pierwiastki w ogólnym przypadku oraz
argsą przybliżone. - Wyniki rzeczywiste: gdy części urojone się redukują, jak w
(2+3i) * (2-3i), wynikiem jest zwykła liczba rzeczywista. Wartość zapisana jako zespolona, np.-4 + 0ilubcomplex(-4,0), pozostaje zespolona w działaniach i po nadaniu nazwy, nawet gdy wyświetla się jako-4. - Pierwiastki kwadratowe i logarytmy liczb ujemnych:
sqrt(-4),ln(-1)ilog(-100)pozostają w dziedzinie liczb rzeczywistych i zgłaszają błąd liczby urojonej, wskazując odpowiedni zapis zespolony, np.sqrt(-4 + 0i). Ten zapis lubsqrt(complex(-4,0))daje2i. - Wyświetlanie: część będąca jedynie błędem zaokrąglenia zmiennoprzecinkowego jest pokazywana jako 0, więc
exp(i*pi)wyświetla-1. Zapisana wartość zachowuje swoje cyfry. - Porównania:
<i>działają tylko wtedy, gdy obie części urojone są równe zeru. - Pozostałe funkcje:
sin,cos,tani ich funkcje odwrotne, funkcje hiperboliczne i ich odwrotności,exp,ln,loglublog10,log2,cbrtoraz potęgi o wykładnikach ułamkowych lub zespolonych przyjmują liczby zespolone. Używają arytmetyki zmiennoprzecinkowej i gałęzi głównych. Logarytm z zera i każdy wynik nieskończony lub nieokreślony powodują błąd.
(2+3i) * (2-3i) daje 13abs(3+4i) daje 5sqrt(-4 + 0i) daje 2isqrt(complex(-4,0)) daje 2isqrt(-4) daje Error: imaginary number. For a complex answer, write sqrt(-4 + 0i)exp(i*pi) daje -1Sumy i iloczyny
sum(expression, name, from, to) sumuje wyrażenie dla każdej liczby całkowitej od from do to, z uwzględnieniem obu końców. summation jest inną nazwą tej funkcji, a product zamiast sumować — mnoży.
- Nazwa jest lokalna dla wywołania. Nie zmienia wcześniej zdefiniowanej nazwy ani nie tworzy zależności wiersza od takiej nazwy.
- Jedną sumę lub iloczyn można umieścić wewnątrz drugiej.
- Jeśli
tojest mniejsze niżfrom, zakres jest pusty: suma wynosi 0, a iloczyn 1. - Jedno wywołanie może obejmować najwyżej 10 000 wyrazów.
sum(k^2, k, 1, 10) daje 385product(k, k, 1, 5) daje 120k = 7 daje 7sum(k, k, 1, 3) daje 6k daje 7Rozwiązywanie równań
solve(equation) odczytuje równanie wielomianowe stopnia 1 lub 2 z jedną niewiadomą i oblicza jego pierwiastki. Niewiadomą jest jedyna nazwa w równaniu, która nie ma wartości. Nazwa z przypisaną wartością jest odczytywana jako ta wartość. Prawą stronę można pominąć — wtedy wyrażenie zostaje przyrównane do zera.
- Równanie liniowe zwraca liczbę. Równanie kwadratowe zwraca listę różnych pierwiastków rzeczywistych w kolejności rosnącej, więc pierwiastek podwójny daje listę jednoelementową. Postać wyniku zależy od zapisanego stopnia równania, a nie od znalezionych pierwiastków.
- Współczynniki i ich przekształcenia są dokładne, podobnie jak pierwiastki, gdy wyróżnik jest kwadratem liczby wymiernej. Pozostałe równania kwadratowe zwracają dwa pierwiastki w przybliżeniu dziesiętnym.
- Obie strony muszą być liczbami bez jednostek. Jednostki, kwoty pieniężne i wartości zespolone są odrzucane.
- Równanie bez pierwiastka rzeczywistego daje
Error: no real solutionzamiast pierwiastka zespolonego. Równanie spełnione przez każdą wartość informuje o tym, zamiast wybierać jedną wartość. - Pozostałe przypadki — stopień 3 lub wyższy, równanie niewielomianowe, niewiadoma w dzielniku lub wykładniku, druga nazwa bez wartości — są odrzucane z komunikatem wskazującym poniższą formę z czterema argumentami.
solve(2x + 6 = 10) daje 2solve(x^2 - 5x + 6 = 0) daje [2, 3]solve(x^2 - 2 = 0) daje [-1.4142135624, 1.4142135624]solve(x^2 + 1 = 0) daje Error: no real solutionsolve(expression, name, lower, upper) to inna funkcja: znajduje jedną rzeczywistą wartość name między lower a upper, dla której wyrażenie jest równe zeru. solve(left = right, name, lower, upper) znajduje punkt, w którym obie strony są równe.
- Granice muszą być liczbami skończonymi, a
lowermusi być mniejsze niżupper. - Pierwiastek leżący dokładnie na granicy jest przyjmowany. W przeciwnym razie wyrażenie musi być dodatnie na jednej granicy i ujemne na drugiej oraz powinno być ciągłe między nimi.
- W każdym kroku wyszukiwanie dzieli przedział na pół. Kończy się powodzeniem, gdy wartość wyrażenia różni się od zera o nie więcej niż
1e-10, a przedział jest dostatecznie wąski — w ciągu 128 kroków. Jeśli wyrażenie jest nieokreślone w sprawdzanym punkcie lub wyszukiwanie nie osiągnie zbieżności, wiersz pokazuje błąd. - Funkcja znajduje jeden pierwiastek, nie wszystkie. Do układów równań liniowych użyj
solve_system.
solve(1500 + 12*x = 20*x, x, 0, 1000) daje 187.5solve(x^2 = 2, x, 0, 2) daje 1.4142135624Rachunek różniczkowy i całkowy
Pochodne symboliczne
differentiate(expression, name), dostępne też jako derivative(expression, name), zwraca pochodną w postaci tekstu.
- Stosuje reguły różniczkowania sumy, iloczynu, ilorazu, potęgi i funkcji złożonej do działań na liczbach rzeczywistych bez jednostek oraz funkcji
sin,cos,tan,sinh,cosh,exp,lnisqrt. - Pozostałe nazwy w wyrażeniu są traktowane jako stałe, niezależnie od tego, czy mają wartość w notatce:
differentiate(a*x^2, x)daje(a*(2*(x^(2-1)))). - Wynik nie jest upraszczany i może mieć najwyżej 8192 znaki.
- Inne funkcje, np.
abs, powodują błąd; dla nich użyj pochodnej w punkcie. Nie jest to pełny system algebry komputerowej. - Pochodna podlega tym samym ograniczeniom dziedziny co pierwotne wyrażenie.
differentiate(sin(x), x) daje cos(x)differentiate(x^3, x) daje (3*(x^(3-1)))Pochodne w punkcie
derivative(expression, name, point) lub differentiate z trzema argumentami oblicza numerycznie nachylenie w jednym punkcie. Stosuje stopniowo udokładniane różnice centralne i porównuje je z przybliżeniami jednostronnymi. Wyrażenie może korzystać z własnych funkcji, ale musi być gładkie w otoczeniu punktu i operować na liczbach rzeczywistych bez jednostek. Jeśli przybliżenie nie osiągnie zbieżności lub wartość w którymś próbkowanym punkcie będzie nieokreślona, wiersz pokaże błąd.
Ponieważ formy numeryczne obliczają liczbę, każda nazwa poza zmienną musi mieć wartość. Dotyczy to pochodnej w punkcie, sum, product, solve i integrate. Nazwa bez wartości powoduje komunikat Unsupported: Unknown name:, po którym pojawia się ta nazwa.
derivative(x^3, x, 2) daje 12f(x) = x^2derivative(f(x), x, 3) daje 6differentiate(a*x^2, x) daje (a*(2*(x^(2-1))))derivative(a*x^2, x, 3) daje Unsupported: Unknown name: aCałki oznaczone
integrate(expression, name, lower, upper) oblicza pole pod wykresem wyrażenia między dwiema skończonymi granicami.
- Zamiana granic zmienia znak wyniku, a jednakowe granice dają zero.
- Funkcja stosuje adaptacyjne kwadratury Gaussa–Kronroda o 7 i 15 punktach, rozmieszczonych nierównomiernie. Dzięki temu regularna fala taka jak
cos(128*pi*x)nie wprowadza jej w błąd:integrate(cos(128*pi*x), x, 0, 1)daje około-1.3e-15, czyli zero z dokładnością do błędu zaokrąglenia. - Celem jest łączny szacowany błąd nie większy niż
1e-9razy wartość bezwzględna wyniku (lub1e-9dla wyników o wartości bezwzględnej mniejszej niż 1). Funkcja porównuje co najmniej dwa poziomy dokładności, uwzględnia błędy zaokrągleń i najpierw zagęszcza obliczenia w części o największym szacowanym błędzie. - Obliczenia kończą się po 2048 udokładnieniach, 20 poziomach podziału albo 100 000 kroków współdzielonych z innymi zaawansowanymi obliczeniami w wierszu. Osiągnięcie limitu lub nieokreślona wartość w próbkowanym punkcie powoduje błąd.
- Oszacowanie błędu jest dobrą wskazówką, ale nie gwarancją. Używaj gładkich wyrażeń o skończonych wartościach. Wyniki dla wyrażeń z ostrymi pikami, skokami lub szybkimi oscylacjami mogą być niedokładne.
- Całki nieoznaczone i nieskończone granice nie są obsługiwane.
integrate(x^2, x, 0, 3) daje 9integrate(x^2, x, 3, 0) daje -9Argumenty i jednostki w funkcjach matematycznych
factorialto inna nazwafact, atrunc—int.signzwraca -1, 0 lub 1.atan2(y, x)zwraca kąt w radianach jako liczbę bez jednostki.- Opcjonalny drugi argument
round,flooriceilokreśla krok, a nie liczbę miejsc po przecinku:round(17, 5)zaokrągla do najbliższej wielokrotności 5. Zaokrąglanie do miejsc po przecinku opisuje rozdział Zaokrąglanie. - Logarytmy, funkcje wykładnicze i hiperboliczne nie przyjmują jednostek ani kwot pieniężnych. Zwykłe funkcje trygonometryczne przyjmują kąty, np.
30°. - Pierwiastki kwadratowe i sześcienne zachowują jednostki, gdy wykładnik jednostki dzieli się bez reszty przez stopień pierwiastka. Potęgowanie wielkości również zachowuje jednostki. Temperatur w stopniach Celsjusza lub Fahrenheita nie można podnosić do kwadratu ani pierwiastkować.
gcd(12, 18) daje 6round(17, 5) daje 15sin(30°) daje 0.5sqrt(9 m²) daje 3 m(2 kg)^2 daje 4 kg²Limity
Przed wyświetleniem wyniku sprawdzane są limity:
- 1024 elementy listy lub
range - macierze do 32 × 32
- 10 000 wyrazów w jednym
sumlubproduct - 16 poziomów zagnieżdżenia list i wywołań funkcji
- 100 000 kroków współdzielonych przez wszystkie zaawansowane obliczenia w wierszu, w tym wywołania zagnieżdżone
- 4096 bitów w liczniku lub mianowniku ułamka, tak jak w pozostałych obliczeniach Varlig Calc
Osiągnięcie limitu powoduje błąd w danym wierszu; reszta notatki nadal działa. Częściowa suma, niedokończone odwracanie macierzy ani pierwiastek bez osiągniętej zbieżności nigdy nie są przedstawiane jako wynik. Wszystkie limity i zasady dokładności opisuje rozdział Odczytywanie wyników: wyświetlanie i precyzja.