Назад до змісту 

Вибір оточення для математичних об'єктів

5.1 Оточення

Перш ніж буде заданий будь-який математичний об'єкт, число, функція або символ, має бути ясно визначено простір, у якому будуть визначатися об'єкти. У цьому розділі описуються методи завдання оточення. Переміщення з деякого оточення до поточного, як правило, повинно виконуватися явно за допомогою функції toNewRing. У деяких випадках таке перетворення до поточного оточення відбувається автоматично.

Для вибору оточення задається алгебраїчне місце змінних. Воно визначається іменами змінних та числовими просторами, в яких ці змінні набувають значення. Порядок змінних у списку змінних визначає лінійний порядок цих змінних. Зліва направо розташовуються змінні, упорядковані за старшинством від молодших до старших.

За умовчанням визначено простір $\mathbb{R}64[x,y,z,t]$ чотирьох змінних, наймолодша — $x$, найстарша — $t$.

У будь-який момент користувач може змінити оточення, задавши новий простір алгебри змінних за допомогою команди установки <<SPACE=>>. Наприклад, задач обчислювальної математики може бути достатньо простору типу $\mathbb{R}64[x]$ або $\mathbb{Q}[x]$. Команда установки: <<SPACE=R64[x];>> або <<SPACE=Q[x];>>, відповідно.

Якщо ім'я змінної починається з символу $\backslash$ і великої літери (верхній регістр), то така змінна позначає елемент алгебри, у якої операція множення некомутативна, для решти змінних операція множення комутативна.

5.2 Числові множини

Визначено такі числові множини:

Z — безліч цілих чисел ${\mathbb Z}$,

Zp — кінцеве поле з p=MOD елементів ${\mathbb Z}/p{\mathbb Z}$, MOD — постійна,

Zp32 — кінцеве поле з p=MOD32 елементів ${\mathbb Z}/p{\mathbb Z}$, MOD32 менше $2^{31}$,

Z64 — кільце цілих чисел $z$ таких, що $-2^{63} \leqslant z < 2^{63}$,

Q — безліч раціональних чисел, R — безліч чисел з плаваючою точкою для зберігання наближених дійсних чисел з довільною мантисою,

R64 — безліч чисел з плаваючою точкою для зберігання наближених дійсних чисел з подвійною точністю (зі стандартною 52-розрядною мантисою та окремим 11-розрядним полем для зберігання порядку), R128 — стандартні 64-бітові числа з плаваючою точкою для зберігання наближених дійсних чисел зі стандартною 52-розрядною мантисою та окремим 64-розрядним полем для зберігання порядку,

C — комплексний клас, утворений із класу R,

C64 — комплексний клас, утворений із класу R64,

C128 — комплексний клас, утворений із класу R128,

CZ — комплексний клас, утворений із класу Z,

CZp — комплексний клас, утворений із класу Zp,

CZp32 — комплексний клас, утворений із класу Zp32,

CZ64 — комплексний клас, утворений із класу Z64,

CQ — комплексний клас, утворений із класу Q.

Приклади простих поліноміальних кілець:

SPACE = Z[x, y, z];

SPACE = R64 [u, v];

SPACE = C[x].

5.3 Визначення кількох числових множин

Дозволяється встановлювати алгебраїчні простори з декількох числових множин, наприклад, простір <<C[z]R[x, y]Z[n, m]>> дозволяє працювати з п'ятьма іменами змінних, визначених у множинах $\mathbb{C}$, $\mathbb{R}$ і $\mathbb{Z}$ відповідно. Перша множина вважається основною і до неї будуть наводиться, при необхідності, решта змінних. У разі це $\mathbb{C}$.

Його можна розглядати як кільце поліномів п'яти змінних над $\mathbb{C}$, при цьому воно має додаткові властивостями. Якщо поліном не містить змінної $ z $, це поліном з коефіцієнтами з $\mathbb{R}$. Якщо поліном не містить змінних $z$, $x$, $y$, це поліном з коефіцієнтами з $\mathbb{Z}$.

Приклади:

SPACE=Z[x, y]Z[u];

SPACE = R64 [u, v] Z [a, b];

SPACE=C[x]R[y, z];

Кільце <<Z[x, y, z]Z[u, v, w]>>, в якому шість змінних розділені на дві групи, можна використовувати для завдань, у яких будуються поліноми, у яких коефіцієнти є поліномами чи функціями інших змінних. Наприклад, характеристичний поліном для матриці над кільцем $\mathbb{Z}[x, y, z]$ буде отриманий як поліном з невідомою $u$, коефіцієнти якого лежать у кільці $\mathbb{Z}[x, y, z]$.

%

5.4 Групові алгебри

%Групову алгебру позначає символ $G$. %% простір, у якому діє група.

%Приклади вільних групових алгебр:

%SPACE=Z[x, y]G[U, V]; (утворюють U, V),

%SPACE=R64[u, v]G[A, B]; (утворюють A, B),

%SPACE=C[]G[X, Y, Z, T]; (Утворюють X, Y, Z, T).

%Кожен елемент алгебри є сумою термів з коефіцієнтами, що є функціями. %Наприклад, <<R64[x, y]G[X, Y, Z]>> — це вільна групова алгебра з трьома некомутативними %утворюючими X, Y, Z над функціями % $\mathbb{R}64[x, y] $. Тоді, наприклад, % $A=(t^2+1)X + \sin(t)Y + 3X^2y^3 +(t^2+1)XY^3X^2Y^{-2}x^2$ — - Елемент такої алгебри.

5.5 Ідемпотентні алгебри. Тропічна математика.

Крім класичних числових алгебр з операціями <<+,~-,~*>> та операцією <</>> для полів, будуть доступні користувачеві та ідемпотентні алгебри. Для числової множини $\mathbb{R}64$, можна буде використовувати алгебри $R64MaxPlus$, $R64MinPlus$, $R64MaxMin$, $R64MinMax$, $R64MaxMult$, $R64MinMult$. Для числової множини $\mathbb{R}$, можна буде використовувати алгебри $RMaxPlus$, $RMinPlus$, $RMaxMin$, $R64MinMax$, $RMaxMult$, $RMinMult$. Для числової множини $\mathbb{Z}$, можна буде використовувати алгебри $ZMaxPlus$, $ZMinPlus$, $ZMaxMin$, $ZMinMax$, $ZMaxMult$, $ZMinMult$.

Доки немає результату

5.6 Константи

Можна встановити або замінити такі постійні.

FLOATPOS — кількість десяткових знаків після коми, які виводяться на друк. За промовчанням приймається значення 2.

MachineEpsilonR — машинний епсілон для чисел типу R. За замовчуванням приймається значення $10^{-29}$. Число, модуль якого менше $10^{-29}$, вважається машинним нулем. Для встановлення нового значення $10^{-30}$ потрібно ввести команду <<MachineEpsilonR64=30>>.

MachineEpsilonR64 — машинний епсілон для чисел типу R64. За замовчуванням приймається $2^{-36}$. Число, модуль якого менше $2^{-36}$, вважається машинним нулем. Зазначимо, що числа R64 має 52 розряди в мантисі, Для встановлення нового значення $2^{-48}$ потрібно ввести команду <<MachineEpsilonR64=48>>.

Постійна MachineEpsilonR (і MachineEpsilonR64) використовується при факторизації поліномів з коефіцієнтами типу R (або R64). Кожен коефіцієнт такого полінома буде попередньо ділитися на число $MachineEpsilonR$ (або $MachineEpsilonR64$) і округляється до цілого значення.

ACCURACY визначає кількість точних десяткових позицій після коми для чисел типу $R$ і $C$ операціях множення та поділу. За промовчанням ACCURACY має значення $MachineEpsilonR * 10^{-5}$. Якщо n<m, то команда <<MachineEpsilonR=n/m>> встановить одночасно MachineEpsilonR=$10^{-n}$ та ACCURACY=$10^{-m}$.

MOD32 — модуль для простого поля, що не перевищує $2^{31}$ (за замовчуванням приймається значення 268435399). Просте число MOD32 - характеристика кінцевого поля. Константа MOD32 використовується в тому випадку, коли обчислення відбуваються в кінцевому полі Zp32 і вона повинна бути меншою за число $2^{31}$.

MOD — модуль типу Z для простого поля (за замовчуванням приймається значення 268435399). Просте число MOD ~ — це характеристика кінцевого поля, але на відміну від MOD32 у нього немає обмеження на абсолютне значення. Константа MOD використовується в тому випадку, коли обчислення відбуваються в кінцевому полі Zp.

RADIAN може набувати значень 1 або 0. Якщо RADIAN = 1, то кути вимірюються в радіанах, інакше — в градусах. За промовчанням RADIAN=1.

STEPBYSTEP може приймати значення 1 або 0. Якщо STEPBYSTEP = 1, виводитимуться проміжні результати обчислень. Типово STEPBYSTEP = 0.

EXPAND може приймати значення 1 або 0. Якщо EXPAND = 1, то у вхідному виразі будуть розкриватися всі дужки. За промовчанням EXPAND = 1.

SUBSTITUTION може набувати значення 1 або 0. Якщо SUBSTITUTION = 1, то у вхідному виразі будуть підставлятися замість імен виразів їх значення, якщо вони були визначені раніше. Типово SUBSTITUTION = 1.

Доки немає результату
Назад до змісту