# Підручник з &kalgebra;

## Вступ

У &kalgebra; передбачено численні можливості, за допомогою яких користувач здатен виконувати будь-які обчислення та будувати за результатами графіки. Певний час програму було зорієнтовано лише на розвиток і використання можливостей MathML. Поточною ж версією може користуватися будь-хто з мінімальними знаннями математики для розв’язування простих та складних задач.

Серед можливостей програми:

- калькулятор для пришвидшення та спрощення обчислення за математичними формулами;

- можливість створення скриптів для виконання послідовних обчислень;

- можливості мови програмування, зокрема визначення функцій та автодоповнення синтаксичних конструкцій;

- можливості числення, зокрема диференціювання, векторне числення та обробка списків;

- креслення графіків функцій з інтерактивним курсором для пошуку коренів та виконання інших аналітичних дійґ;

- креслення просторових поверхонь з метою візуалізації тривимірних даних.

- вбудований словник операцій та операторів з довідковими можливостями щодо багатьох функцій, якими можна скористатися у програмі;

На цьому зображенні ви бачите головне вікно &kalgebra;:

На цьому зображенні ви бачите головне вікно &kalgebra; Головне вікно &kalgebra;

Після запуску користувачем сеансу &kalgebra; буде відкрито одне головне вікно, що складається з вкладки Калькулятор, вкладки двовимірних (плоских) графіків, вкладки тривимірних (просторових) графіків і вкладки Словника. Під цими вкладками знаходиться поле для введення ваших функцій і виконання обчислень та поле для показу результатів.

Керувати сеансом можна за допомогою пунктів меню Сеанс:

&Ctrl; N Сеанс Створити

- Відкрити нове вікно &kalgebra;.

&Ctrl;&Shift; F Сеанс Повноекранний режим

- Увімкнути або вимкнути режим повноекранного показу вікна &kalgebra;. Повноекранний режим можна також увімкнути або вимкнути за допомогою кнопки , розташованої у правій верхній частині вікна &kalgebra;.

&Ctrl; Q Сеанс Вийти

- Завершує роботу програми.

## Синтаксис

У &kalgebra; використовується інтуїтивно зрозумілий алгебраїчний синтаксис для функцій, визначених користувачем, подібний до використаного у більшості сучасних графічних калькуляторів. У цьому розділі наведено основні вбудовані оператори &kalgebra;. Синтаксичні конструкції автор &kalgebra; створив на основі синтаксичних конструкцій Maxima та maple для користувачів, які можуть бути обізнані з цими програмами.

Для тих, хто цікавиться внутрішніми механізмами роботи &kalgebra;: введені користувачем вирази перетворюються на вирази мовою MathML сервером обробки. Початкове розуміння можливостей, що підтримуються MathML, виходить далеко за межі визначення внутрішніх можливостей &kalgebra;.

Ось список доступних у цій версії дій:

- `+ - * /`: Додавання, віднімання, множення і ділення.

- `^, **`: Піднесення до степеня, можна використовувати обидва позначення. Також можна використовувати символи unicode `²`. Степені також використовуються для позначення коренів, це можна зробити за допомогою формули. Приклад: `a**(1/b)`

- `->`: лямбда. За допомогою цього виразу можна вказати одну або декілька вільних змінних, які буде пов’язано у функцію. Наприклад, у виразі `length:=(x,y)->(x*x+y*y)^0.5`, лямбда-оператор використовується для позначення того, що `x` і `y` буде пов’язано під час обчислення функції довжини.

- `x=a..b`: Ця конструкція використовується, якщо ми змінюємо діапазон зміни змінної (обмежена зміна+обмеження згори+обмеження знизу). Це означає, що `x` пробігає значення від `a` до `b`.

- `()`: Дужки використовуються для зазначення вищого пріоритету обчислень.

- `abc(параметри)`: Функції. Коли обробник знаходить функцію, він перевіряє, чи є `abc` оператором. Якщо це так, дії з ним буде виконано як з оператором, якщо ні — обробник поводитиметься з ним як з функцією.

- `:=`: Визначення. Використовується для встановлення значення змінної. Ви можете писати `x:=3`, `x:=y` у випадках визначеності або невизначеності `y`, або `perimeter:=r->2*pi*r`.

- `?`: Визначення кускової умови. Кускові умови — це спосіб визначення умовних розгалужень у &kalgebra;. Інакше кажучи, це спосіб визначення послідовності умов if, elseif, else. Якщо вказати умову перед знаком «`?`», значення буде використано, лише якщо умова справджується, якщо обробник знайде «`?`» без жодної умови, буде використано залишок після попередніх умов. Приклад: `piecewise { x=0 ? 0, x=1 ? x+1, ? x**2 }`

- `{ }`: Контейнер MathML. Його можна використовувати для визначення контейнера. Головним чином корисний для роботи з кусковими виразами.

- `= > >= < <=`: порівняння значень (рівність, більше, більше або дорівнює, менше та менше або дорівнює, відповідно)

Читач тепер може зауважити, а навіщо взагалі згадувати про MathML? Дуже просто. За його допомогою можна виконувати операції, подібні до `cos()`, `sin()`, будь-яких інших тригонометричних функцій, `sum()` або `product()`. Характер самої функції не є важливим. Можна використовувати `plus()`, `times()` і будь-які інші функції, яким відповідає певний оператор. Також реалізовано булеві функції, отже, можна виконувати операції, подібні до `or(1,0,0,0,0)`.

## Користування калькулятором

Калькулятор &kalgebra; — корисний калькулятор з додатковими можливостями. Користувач може вводити вирази для обчислення у режимах Обчислення та Визначення значення, залежно від вибраного у меню Калькулятор варіанта.

У режимі визначення значення &kalgebra; намагається спростити вираз, навіть якщо якусь з його змінних не визначено. У режимі обчислення &kalgebra; виконує обчислення всіх знайдених виразів, а якщо виявить невизначену змінну, покаже повідомлення про помилку.

Окрім показу введених користувачем рівнянь та результатів обчислень, на панелі калькулятора буде показано всі оголошені змінні (праворуч). Подвійним клацанням на пункті змінної можна буде викликати діалогове вікно, за допомогою якого ви зможете змінити значення змінної (якщо треба підкоригувати проміжні результати).

Змінна «`ans`» є особливою. Кожного разу після введення виразу для обчислень значення «`ans`» замінюватиметься останнім результатом.

Нижче наведено приклад функцій, які можна ввести до поля введення панелі калькулятора:

- `sin(pi)`

- `k:=33`

- `sum(k*x : x=0..10)`

- `f:=p->p*k`

- `f(pi)`

Нижче наведено знімок панелі калькулятора після введення наведених вище прикладів виразів:

Знімок вікна калькулятора &kalgebra; з прикладами виразів Вікно калькулятора &kalgebra;

Користувач може керувати послідовністю обчислень за допомогою пунктів меню Калькулятор:

&Ctrl; L Калькулятор Завантажити скрипт…

- Послідовно виконує інструкції з файла. Корисне для визначення деяких бібліотек або відновлення попередніх сеансів.

Калькулятор Нещодавні скрипти

- Показує підменю, за допомогою якого ви можете вибрати один із нещодавно виконаних скриптів.

&Ctrl; G Калькулятор Зберегти скрипт…

- Зберігає інструкції, які ви ввели з часу початку сеансу для подальшого повторного використання. Створює текстові файли, які буде просто виправити, за допомогою, наприклад, &kate;.

&Ctrl; S Калькулятор Експортувати журнал…

- Зберігає журнал з результатами та іншою інформацією до файла &HTML;, який можна надрукувати або оприлюднити у мережі.

F3 Калькулятор Вставити відповідь…

- Вставляє змінну `ans` і полегшує повторне використання попередніх результатів обчислень.

Калькулятор Обчислення

- Перемикач для встановлення параметра Режим виконання для обчислень.

Калькулятор Визначення значення

- Перемикач для встановлення параметра Режим виконання для визначення значень.

## Двовимірні графіки

Щоб додати новий двовимірний графік у &kalgebra;, вам просто слід перейти до вкладки Двовимірні графіки і натиснути кнопку Додати, щоб додати нову функцію. Після цього фокус буде передано у поле для введення тексту, де ви зможете вказати вашу функцію.

### Синтаксис

Якщо ви бажаєте використовувати звичайну функцію `f(x)`, не потрібно окремо визначати її, але, якщо ви бажаєте визначити, скажімо, `f(y)` або функцію у полярних координатах, вам слід додати `y->` і `q->` як обмежені змінні.

Приклади:

- `sin(x)`

- `x²`

- `y->sin(y)`

- `q->3*sin(7*q)`

- `t->vector{sin t, t**2}`

Якщо ви ввели функцію, натисніть кнопку Гаразд, щоб побачити графік у головному вікні.

### Можливості

Можна накреслити декілька графіків на одному малюнку. Просто скористайтеся кнопкою Додати, коли ви знаходитеся у режимі списку. Для кожного з графіків ви можете встановити його колір.

Розмір та розташування області перегляду можна змінювати за допомогою миші. За допомогою коліщатка ви можете її збільшувати або зменшувати. Також ви можете вибрати область, утримуючи ліву кнопку миші, коли ви відпустите кнопку, область буде збільшено до розмірів області перегляду. Пересунути область перегляду можна за допомогою клавіш зі стрілочками.

Ви можете явно задати ділянку показу плоского графіка за допомогою вкладки Демонстраційне вікно вкладки Двовимірний графік.

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

У меню Двовимірний графік ви знайдете такі пункти:

- Сітка: показати або приховати сітку

- Зберігати співвідношення розмірів: зберігати співвідношення розмірів під час зміни масштабу

- Зберегти: зберегти (&Ctrl; S) графік у файлі зображення

- Збільшити/Зменшити: збільшити (&Ctrl; +) і зменшити (&Ctrl; -)

- Фактичний розмір: оновити перегляд до початкового масштабу

- Роздільна здатність: містить список варіантів для вибору роздільної здатності для графіків

Нижче наведено знімок вікна, на якому вказівник користувача розташовано у позиції найправішого кореня функції `sin(1/x)`. Для креслення графіка використано дуже малий масштаб, оскільки функція осцилює у околі початку координат. Також показано можливості інтерактивного курсора: у відповідь на наведення вказівника на точку графіка програма показує значення координат `x` та `y` у нижньому лівому куті екрана. Також на графіку показано інтерактивну лінію дотичної.

На цьому зображенні ви бачите вікно плоского графіка &kalgebra; Вікно плоских графіків &kalgebra;

## Тривимірні графіки

Щоб накреслити тривимірний графік за допомогою &kalgebra;, вам слід перейти до вкладки Тривимірні графіки, там внизу ви побачите поле для вводу, куди і слід ввести вашу функцію. `Z` поки що визначати не можна, у цій версії &kalgebra; підтримується лише явне задання поверхонь у вигляді залежності від `x` і `y`, наприклад `(x,y)->x*y`, де `z=x*y`.

Приклади:

- `(x,y)->sin(x)*sin(y)`

- `(x,y)->x/y`

Розмір та розташування області перегляду можна змінювати за допомогою миші. За допомогою коліщатка ви можете її збільшувати або зменшувати. Натисніть і утримуйте ліву кнопку миші, а потім пересуньте вказівник миші, щоб повернути графік.

За допомогою клавіш зі стрілочками ліворуч і праворуч можна обертати графік навколо осі `z`, за допомогою клавіш зі стрілочками вгору і вниз можна обертати графік навколо горизонтальної осі перегляду. Натисканням клавіші W можна збільшити масштаб, а натисканням клавіші S — зменшити його.

У меню Тривимірний графік ви знайдете такі пункти:

- Зберегти: зберегти (&Ctrl; S) графік у файлі зображення або підтримуваному документі

- Скинути перегляд: пункт відновлення початкового масштабу у меню Тривимірний графік

- У меню просторового графіка передбачено можливості малювати графік точками, лініями або суцільною поверхнею.

Нижче наведено знімок так званої поверхні «Сомбреро». Поверхню показано з використанням лінійчастого стилю просторових графіків.

На цьому зображенні ви бачите вікно просторового графіка &kalgebra; Вікно просторових графіків &kalgebra;

## Словник

Словник є збіркою всіх доступних дій &kalgebra;. За його допомогою можна знайти визначення всіх операцій та параметрів, які слід вказати для виконання дій. Він корисним для ознайомлення з багатьма можливостями &kalgebra;.

Нижче наведено знімок вікна з прикладом пошуку функції косинуса у словнику &kalgebra;.

На цьому зображенні ви бачите вікно словника &kalgebra; Вікно словника &kalgebra;
&commands;

## Подяки і ліцензія

- Авторські права на програму належать &Aleix.Pol;, ©2005-2009

Авторські права на документацію до програми належать &Aleix.Pol; &Aleix.Pol.mail;, ©2007

Юрій Чорноіван yurchor@ukr.net

&underFDL; &underGPL;
&documentation.index;