<chapter id="reference">
<title
>Довідник з &kmplot;</title>
	
<!--
	<mediaobject>
		<imageobject>
			<imagedata fileref="kfkt.png" format="PNG"/>
		</imageobject>
	</mediaobject>
	
	<para
>This menu entry or toolbar button opens the Functions Editor.  Here
		you can enter up to 10 functions or
		function groups.  The parser knows <firstterm
>explicit</firstterm
> and
		<firstterm
>parametric</firstterm
> form.  With specific extensions it
		is possible to add first and second derivatives and to choose values
		for the function group parameter.</para>
	-->
		
<sect1 id="func-syntax">
	<title
>Синтаксис функцій</title>
	
	<para
>Слід дотримуватися деяких синтаксичних правил:</para>
	
	<screen
><userinput
>назва(змінна_1[, змінна_2])=вираз [;додатки]</userinput
>
        </screen>
	
	
	<variablelist>
		<varlistentry>
			<term
>назва</term>
			<listitem>
				
				<para
>Назва функції. Якщо першим символом назви буде <quote
>r</quote
>, засіб обробки вважатиме, що ви використовуєте полярні координати. Якщо першим символом назви є <quote
>x</quote
> (наприклад <quote
>xfunc</quote
>), засіб обробки шукатиме парну функцію з початковою літерою <quote
>y</quote
> (у даному випадку, <quote
>yfunc</quote
>), щоб завершити визначення функції, заданої параметрично. </para>
			</listitem>
		</varlistentry>
		<varlistentry>
			<term
>змінна_1</term>
			<listitem
><para
>Змінна функції</para
></listitem>
		</varlistentry>
		<varlistentry>
			<term
>змінна_2</term
> 
			<listitem
><para
><quote
>Груповий параметр</quote
> функції. Його слід відокремити від змінної функції комою. Ви можете використовувати груповий параметр, наприклад, для побудови декількох графіків з однієї функції. Значення параметра можна вибрати вручну, а можна використати панель з повзунком для керування одним параметром. Змінюючи розташування повзунка, ви змінюватимете значення параметра. Повзунок може перебувати у позиції, що визначає значення від 0 до 100.</para
></listitem>
		</varlistentry>
		<varlistentry>
			<term
>вираз</term>
			<listitem
><para
>Вираз, що визначає функцію.</para
></listitem>
		</varlistentry>
	</variablelist>
</sect1>

<sect1 id="func-predefined">
	<title
>Вже визначені назви функцій і констант</title>
	
	<para
>Побачити список всіх вже визначених функцій і констант, які відомі &kmplot; можна за допомогою пункту меню <menuchoice
><guimenu
>Довідка</guimenu
><guimenuitem
>Вже визначені математичні функції</guimenuitem
> </menuchoice
>, який відкриє цю сторінку довідника з &kmplot;. </para>
	
	<para
>Ці функції та константи, а також функції та константи визначені користувачем можна також використовувати для керування параметрами осей. Докладніше про це можна дізнатися з пункту <xref linkend="axes-config"/>. </para>
	
	<sect2 id="trigonometric-functions">
		<title
>Тригонометричні функції</title>
		
		<para
>Типово, тригонометричні функції працюють зі значеннями у радіанах. Але цю поведінку можна змінити за допомогою пункту меню <menuchoice
><guimenu
>Параметри</guimenu
><guimenuitem
>Налаштувати &kmplot;</guimenuitem
></menuchoice
>. </para>
		
		<variablelist>
			
			<varlistentry>
				<term
>sin(x)</term>
				<term
>arcsin(x)</term>
				<term
>cosec(x)</term>
				<term
>arccosec(x)</term>
				<listitem
><para
>Функції синуса, обернена до синуса, косеканса і обернена до косеканса, відповідно.</para
></listitem>
			</varlistentry>
			
			<varlistentry>
				<term
>cos(x)</term>
				<term
>arccos(x)</term>
				<term
>sec(x)</term>
				<term
>arcsec(x)</term>
				<listitem
><para
>Функції косинуса, обернена до косинуса, секанса і обернена до секанса, відповідно.</para
></listitem>
			</varlistentry>
			
			<varlistentry>
				<term
>tan(x)</term>
				<term
>arctan(x)</term>
				<term
>cot(x)</term>
				<term
>arccot(x)</term>
				<listitem
><para
>Функції тангенса, оберненого тангенса, котангенса і оберненого котангенса, відповідно.</para
></listitem>
			</varlistentry>
			
		</variablelist>
	</sect2>
	
	<sect2 id="hyperbolic-functions">
		<title
>Гіперболічні функції</title>
		<para
>Гіперболічні функції.</para>
		
		<variablelist>
			
			<varlistentry>
				<term
>sinh(x)</term>
				<term
>arcsinh(x)</term>
				<term
>cosech(x)</term>
				<term
>arccosech(x)</term>
				<listitem
><para
>Функції гіперболічного синуса, оберненого гіперболічного синуса, гіперболічного косеканса та оберненого гіперболічного косеканса, відповідно.</para
></listitem>
			</varlistentry>
			
			<varlistentry>
				<term
>cosh(x)</term>
				<term
>arccosh(x)</term>
				<term
>sech(x)</term>
				<term
>arcsech(x)</term>
				<listitem
><para
>Функції гіперболічного косинуса, оберненого гіперболічного косинуса, гіперболічного секанса та оберненого гіперболічного секанса, відповідно.</para
></listitem>
			</varlistentry>
			
			<varlistentry>
				<term
>tanh(x)</term>
				<term
>arctanh(x)</term>
				<term
>coth(x)</term>
				<term
>arccoth(x)</term>
				<listitem
><para
>Функції гіперболічного тангенса, оберненого гіперболічного тангенса, гіперболічного котангенса та оберненого гіперболічного котангенса, відповідно.</para
></listitem>
			</varlistentry>
			
		</variablelist>
	</sect2>
	
	<sect2 id="other-functions">
		<title
>Інші функції</title>
		<variablelist>
			
			<varlistentry>
				<term
>sqr(x)</term>
				<listitem
><para
>Квадрат (x^2) змінної x.</para
></listitem>
			</varlistentry>
			
			<varlistentry>
				<term
>sqrt(x)</term>
				<listitem
><para
>Квадратний корінь зі змінної x.</para
></listitem>
			</varlistentry>
			
			<varlistentry>
				<term
>sign(x)</term>
				<listitem
><para
>Знак змінної x. Повертає 1, якщо x додатне, 0, якщо x рівне нулеві, і &minus;1, якщо x від’ємне.</para
></listitem>
			</varlistentry>
			
			<varlistentry>
				<term
>H(x)</term>
				<listitem
><para
>Ступінчаста функція Хевісайда. Повертає 1, якщо x додатне, 0.5, якщо x рівне нулеві, і 0, якщо x від’ємне.</para
></listitem>
			</varlistentry>
			
			<varlistentry>
				<term
>exp(x)</term>
				<listitem
><para
>Експоненційна функція (e^x) змінної x.</para
></listitem>
			</varlistentry>
			
			<varlistentry>
				<term
>ln(x)</term>
				<listitem
><para
>Натуральний логарифм (логарифм за основою e) змінної x.</para
></listitem>
			</varlistentry>
			
			<varlistentry>
				<term
>log(x)</term>
				<listitem
><para
>Десятковий логарифм (за основою 10) змінної x.</para
></listitem>
			</varlistentry>
			
			<varlistentry>
				<term
>abs(x)</term>
				<listitem
><para
>Модуль (абсолютне значення) змінної x.</para
></listitem>
			</varlistentry>
			
			<varlistentry>
				<term
>floor(x)</term>
				<listitem
><para
>Округлює змінну x до найближчого цілого числа, меншого або рівного x.</para
></listitem>
			</varlistentry>
			
			<varlistentry>
				<term
>ceil(x)</term>
				<listitem
><para
>Округлює x до найближчого цілого числа більшого або рівного x.</para
></listitem>
			</varlistentry>
			
			<varlistentry>
				<term
>round(x)</term>
				<listitem
><para
>Округлює x до найближчого цілого числа.</para
></listitem>
			</varlistentry>
			
			<varlistentry>
				<term
>gamma(x)</term>
				<listitem
><para
>Гамма-функція Ейлера.</para
></listitem>
			</varlistentry>
			
			<varlistentry>
				<term
>factorial(x)</term>
				<listitem
><para
>Функція факторіала.</para
></listitem>
			</varlistentry>
			
			<varlistentry>
				<term
>min(x<subscript
>1</subscript
>,x<subscript
>2</subscript
>,...,x<subscript
>n</subscript
>)</term>
				<listitem
><para
>Повертає мінімальне значення з набору чисел {x<subscript
>1</subscript
>,x<subscript
>2</subscript
>,...,x<subscript
>n</subscript
>}.</para
></listitem>
			</varlistentry>
			
			<varlistentry>
				<term
>max(x<subscript
>1</subscript
>,x<subscript
>2</subscript
>,...,x<subscript
>n</subscript
>)</term>
				<listitem
><para
>Повертає максимальне значення з набору чисел {x<subscript
>1</subscript
>,x<subscript
>2</subscript
>,...,x<subscript
>n</subscript
>}.</para
></listitem>
			</varlistentry>
			
			<varlistentry>
				<term
>mod(x<subscript
>1</subscript
>,x<subscript
>2</subscript
>,...,x<subscript
>n</subscript
>)</term>
				<listitem
><para
>Повертає модуль (Евклідову довжину) набору чисел {x<subscript
>1</subscript
>,x<subscript
>2</subscript
>,...,x<subscript
>n</subscript
>}.</para
></listitem>
			</varlistentry>
			
			<!-- TODO: Legendre polynomials -->
			
		</variablelist>
	</sect2>
	
	<sect2>
		<title
>Вже визначені константи</title>
		<variablelist>
			
			<varlistentry>
				<term
>pi</term>
				<term
>&pgr;</term>
				<listitem>
					<para
>Константа, що відповідає &pgr; (3,1415926...).</para>
				</listitem>
			</varlistentry>
			
			<varlistentry>
				<term
>e</term>
				<listitem>
					<para
>Константа, що відповідає Ейлеровому числу e (2,71828...).</para>
				</listitem>
			</varlistentry>
			
		</variablelist>
	</sect2>
</sect1>

<sect1 id="func-extension">
	<title
>Додатки</title>
	<para
>Додаток для функції можна вказати після визначення функції у вигляді крапки з комою, за якою слідує текст додатка. Додаток можна ввести за допомогою обробника методів DBus addFunction. Для функцій, заданих параметрично, додатків немає, але додатки N і D[a,b] працюють також і для функцій, заданих у полярних координатах. Наприклад, у результаті виконання<screen>
                        <userinput>
                                f(x)=x^2; A1
                        </userinput>
                </screen
> буде показано графік функції y=x<superscript
>2</superscript
> з графіком її першої похідної. Ось список доступних додатків з описами: <variablelist>
			<varlistentry>
				<term
>N</term>
				<listitem>
					<para
>Функцію буде збережено, але не накреслено графік. Її можна буде потім використовувати як будь-яку іншу визначену користувачем або попередньо визначену функцію. </para>
				</listitem>
			</varlistentry>
			<varlistentry>
				<term
>A1</term>
				<listitem>
					<para
>Крім графіку самої функції буде накреслено графік похідної функції тим же кольором, але з меншою товщиною лінії. </para>
				</listitem>
			</varlistentry>
			<varlistentry>
				<term
>A2</term>
				<listitem>
					<para
>Крім графіку самої функції буде накреслено графік другої похідної функції тим же кольором, але з меншою товщиною лінії. </para>
				</listitem>
			</varlistentry>
			<varlistentry>
				<term
>D[a,b]</term>
				<listitem>
					<para
>Встановити проміжок, для якого буде показано графік. </para>
				</listitem>
			</varlistentry>
			<varlistentry>
				<term
>P[a{,b...}]</term>
				<listitem>
					<para
>Вказує набір значень групового параметра, для якого слід побудувати функцію. Наприклад, інструкція <userinput
>f(x,k)=k*x;P[1,2,3]</userinput
> призведе до побудови функцій f(x)=x, f(x)=2*x і f(x)=3*x. Ви також можете використовувати функції як аргументи параметра P. </para>
				</listitem>
			</varlistentry>
		</variablelist>
	</para>
	<para
>Будь ласка, зауважте, що ви можете також виконувати всі ці дії за допомогою зміни елементів на вкладці <guilabel
>Похідні</guilabel
>, у розділі <guilabel
>Область графіка, визначена користувачем</guilabel
> і у розділі <guilabel
>Параметри</guilabel
> бічної панелі <guilabel
>Функції</guilabel
>. </para>
</sect1>

<sect1 id="math-syntax">
	<title
>Математичний синтаксис</title>
	<para
>У &kmplot; використано традиційні форми для виразів математичних функцій, отже, вам буде просто у всьому розібратися. Ось оператори, які відомі &kmplot;, у порядку зменшення пріоритету: <variablelist>
			
			<varlistentry>
				<term
>^</term>
				<listitem
><para
>Символ шапочки означає піднесення до степеня. Наприклад, <userinput
>2^4</userinput
> рівне 16.</para>
				</listitem>
			</varlistentry>
			
			<varlistentry>
				<term
>*</term>
				<term
>/</term>
				<listitem>
					<para
>Символи зірочки і похилої риски означають множення і ділення. Наприклад, <userinput
>3*4/2</userinput
> рівне 6.</para>
				</listitem>
			</varlistentry>
			
			<varlistentry>
				<term
>+</term>
				<term
>&minus;</term>
				<listitem
><para
>Символи плюс і мінус виконують додавання і віднімання. Наприклад, <userinput
>1+3&minus;2</userinput
> рівне 2.</para>
				</listitem>
			</varlistentry>
			
			<varlistentry>
				<term
>&lt;</term>
				<term
>&gt;</term>
				<term
>&le;</term>
				<term
>&ge;</term>
				<listitem
><para
>Оператори порівняння. Вони повертають 1, якщо вираз відповідає дійсності, у іншому випадку вони повертають 0. Наприклад, <userinput
>1 &le; 2</userinput
> повертає 1.</para>
				</listitem>
			</varlistentry>
			
			<varlistentry>
				<term
>&radic;</term>
				<listitem
><para
>Квадратний корінь з  числа. Наприклад, <userinput
>&radic;4</userinput
> повертає 2.</para>
				</listitem>
			</varlistentry>
			
			<varlistentry>
				<term
>|x|</term>
				<listitem
><para
>Модуль числа x. Наприклад, <userinput
>|&minus;4|</userinput
> повертає 4.</para>
				</listitem>
			</varlistentry>
			
			<varlistentry>
				<term
>&plusmn;</term>
				<term
></term>
				<listitem
><para
>Кожен знак плюс-мінус дає два набори графіків: один для значення взятого зі знаком плюс, а інший для значення зі знаком мінус. Наприклад, <userinput
>y = &plusmn;sqrt(1&minus;x^2)</userinput
> побудує коло. Але цей символ не можна використовувати у константах. </para>
				</listitem>
			</varlistentry>
			
			
			
		</variablelist>
	</para>
	<para
>Майте на увазі, що існує певний пріоритет операцій — це означає, що якщо не використовувати дужки, піднесення до степеня буде виконуватися перед множенням або діленням, яке в свою чергу передуватиме додаванню або відніманню. Таким чином, <userinput
>1+2*4^2</userinput
> дасть результатs 33, а не, скажімо, 144. Щоб встановити власний порядок виконання дій, скористайтеся дужками. Наприклад, якщо ввести <userinput
>((1+2)*4)^2</userinput
> результатом <emphasis
>буде</emphasis
> 144. </para>
</sect1>

<!--
<sect1 id="coord-system">
	<title
>Coordinate Systems</title>
	
	<para
><inlinemediaobject>
			<imageobject>
				<imagedata fileref="ksys1.png" format="PNG"/>
			</imageobject>
		</inlinemediaobject
></para>
	
	<para>
		<inlinemediaobject>
			<imageobject>
				<imagedata fileref="ksys2.png" format="PNG"/>
			</imageobject>
		</inlinemediaobject
></para>
	
	<para>
		<inlinemediaobject>
			<imageobject>
				<imagedata fileref="ksys3.png" format="PNG"/>
			</imageobject>
		</inlinemediaobject
></para>
	-->
<sect1 id="coord-area"
><title
>Область побудови</title>
	<para
>Типово, задані явно функції буде побудовано на всій видимій частині горизонтальної вісі. Ви можете вказати інший діапазон у діалоговому вікні зміни функції. Якщо у області побудови знаходиться сингулярна точка, її буде з’єднано з останньою побудованою точкою лінією. </para>
	<para
>Функції, задані параметрично та у полярних координатах, мають типовий діапазон змінної у межах від 0 до 2&pgr;. Цей діапазон можна також змінити на бічній панелі <guilabel
>Функції</guilabel
>. </para>
</sect1>

<sect1 id="coord-cross">
	<title
>Курсор-візир</title>
	<para
>Коли вказівник миші знаходиться над областю побудови, він змінює вигляд на курсор-візир. Поточні його координати можна бачити на перетинах перпендикулярів з координатними осями, а також у смужці стану внизу головного вікна. </para>
	<para
>Ви можете слідкувати за значеннями функції і у більш точний спосіб, якщо наведете вказівник на точку на графіку або поряд з ним і клацнете лівою кнопкою миші. В результаті такої дії функцію буде показано у правому стовпчику смужки стану. Курсор-перехрестя буде прив’язано до графіку функції перефарбовано у її колір. Якщо колір графіка збігається з кольором тла, курсор набуде кольору інвертованого відносно кольору тла. Тепер, якщо ви будете пересувати курсор за допомогою миші або клавішами стрілок ліворуч і праворуч на клавіатурі, перехрестя рухатиметься вздовж функції і ви бачитимете поточні значення горизонтальної та вертикальної координат. Якщо перехрестя наближатиметься до вертикальної вісі, на смужці стану буде показано значення кореня функції. Перемикання між різними функціями можна здійснити за допомогою клавіш стрілок вгору і вниз на клавіатурі. Вийти з режиму слідкування можна за допомогою повторного клацання лівою кнопкою миші або натискання будь-якої не пов’язаної з навігацією клавіші на клавіатурі. </para>
	<para
>Щоб застосувати додаткові параметри слідкування, відкрийте діалогове вікно налаштування програми і позначте пункт <guilabel
>Малювати дотичну і нормаль під час слідкування</guilabel
>  на сторінці <guilabel
>Загальні параметри</guilabel
>. Якщо увімкнути цей параметр у точці функції, за якою ви слідкуєте, буде побудовано дотичну, нормаль і стичне коло. </para>
	
</sect1>

<sect1 id="coords-config">
	<title
>Налаштування «Координатної системи»</title>
	<para
>Щоб відкрити це діалогове вікно, виберіть пункт меню <menuchoice
><guimenu
>Перегляд</guimenu
><guimenuitem
>Координатна система...</guimenuitem
></menuchoice
>.</para>
	<screenshot>
		<screeninfo
>Знімок вікна налаштування координатної системи</screeninfo>
		<mediaobject>
			<imageobject>
				<imagedata fileref="settings-coords.png" format="PNG"/>
			</imageobject>
			<textobject>
				<phrase
>Знімок вікна налаштування координатної системи</phrase>
			</textobject>
		</mediaobject>
	</screenshot>
	
	<sect2 id="axes-config">
		<title
>Налаштування «Осей»</title>
		<para>
			<variablelist>
				
				<varlistentry>
					<term
><guilabel
>Діапазон значень горизонтальної осі</guilabel
></term>
					<listitem>
						<para
>Встановлює діапазон значень для горизонтальної вісі. Зауважте, що ви можете скористатися вже визначеними функціями і константами (докладніше про це можна дізнатися з <xref linkend="func-predefined"/>) для обмеження діапазону (наприклад, встановити <guilabel
>Мін:</guilabel
> у значення <userinput
>2*pi</userinput
>). Ви навіть можете використовувати визначені вами функції для обмеження діапазону на осі. Наприклад, якщо ви визначите функцію <userinput
>f(x) = x^2</userinput
>, ви зможете встановити значення для <guilabel
>Мін:</guilabel
> у <userinput
>f(3)</userinput
>, що зробить межею знизу для діапазону число рівне 9.</para>
					</listitem>
				</varlistentry>
				
				<varlistentry>
				  <term
><guilabel
>Діапазон значень вертикальної осі</guilabel
></term>
					<listitem>
						<para
>Встановлює діапазон значень для вертикальної вісі. Докладніше про це можна дізнатися з пункту <quote
>Діапазон значень горизонтальної осі</quote
> вище.</para>
					</listitem>
				</varlistentry>
				
				<varlistentry>
					<term
><guilabel
>Проміжки між горизонтальними лініями сітки</guilabel
></term>
					<listitem>
						<para
>Цей параметр контролює відстань між лініями сітки у горизонтальному напрямку. Якщо вибрано значення <guilabel
>Автоматично</guilabel
>, &kmplot; спробує знайти відстань між лініями сітки, яка на екрані буде приблизно рівна двом сантиметрам і відповідатиме якомога коротшим значенням змінної на осі. Якщо вибрано значення <guilabel
>Нетипова</guilabel
>, ви зможете вручну ввести горизонтальний проміжок між лініями сітки. Це значення використовуватиметься незалежно від масштабу. Наприклад, якщо введено значення 0.5, а діапазон за віссю x від 0 до 8, буде намальовано 16 ліній сітки. </para>
					</listitem>
				</varlistentry>
				
				<varlistentry>
					<term
><guilabel
>Проміжки між вертикальними лініями сітки</guilabel
></term>
					<listitem>
						<para
>Цей параметр визначає проміжки між лініями сітки у вертикальному напрямку. Перегляньте пункт про «Проміжки між горизонтальними лініями сітки». </para>
					</listitem>
				</varlistentry>
				
			</variablelist>
		</para>
		
	</sect2>
</sect1>

<sect1 id="constants-config">
	<title
>Налаштування «Констант»</title>
	<para
>Щоб відкрити це діалогове вікно виберіть пункт меню <menuchoice
><guimenu
>Зміни</guimenu
><guimenuitem
>Константи...</guimenuitem
></menuchoice
>.</para>
	
	<screenshot>
		<screeninfo
>Знімок діалогового вікна «Константи»</screeninfo>
		<mediaobject>
			<imageobject>
				<imagedata fileref="settings-constants.png" format="PNG"/>
			</imageobject>
			<textobject>
				<phrase
>Знімок діалогового вікна «Константи»</phrase>
			</textobject>
		</mediaobject>
	</screenshot>
	
	<para
>Константи можна використовувати як частину виразу будь-де у &kmplot;. Кожна константа повинна мати назву і значення. Деякі з назв, оскільки вони вже є назвами існуючих функцій або констант, використовувати не можна. </para>
	
	<para
>Існує два параметри, що визначають область дії константи: <variablelist>
			
			<varlistentry>
				<term
><guilabel
>Документ</guilabel
></term>
				<listitem>
					<para
>Якщо ви позначите поле <guilabel
>Документ</guilabel
>, константу буде збережено разом з поточною діаграмою, коли ви зберігатимете її до файла. Але, якщо ви не позначите також поле <guilabel
>Загальна</guilabel
>, константа не буде доступною для інших графіків у &kmplot;.</para>
				</listitem>
			</varlistentry>
			
			<varlistentry>
				<term
><guilabel
>Загальні</guilabel
></term>
				<listitem>
					<para
>Якщо ви позначите поле <guilabel
>Загальна</guilabel
>, назву константи і її значення буде записано до параметрів &kde; (де її також зможе використовувати &kcalc;). Константу не буде втрачено після закриття програми &kmplot;, вона залишиться доступною для використання, коли ви знову відкриєте &kmplot;.</para>
				</listitem>
			</varlistentry>
			
		</variablelist>
	</para>
</sect1>

</chapter>

<!--
	Local Variables:
	mode: sgml
	sgml-minimize-attributes:nil
	sgml-general-insert-case:lower
	sgml-indent-step:0
	sgml-indent-data:nil
	sgml-parent-document:("index.docbook" "BOOK" "CHAPTER")
	End:
			-->
