<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
>Типово, задані явно функції буде побудовано на всій видимій частині осі x. Ви можете вказати інший діапазон у діалоговому вікні зміни функції. Якщо у області побудови знаходиться сингулярна точка, її буде з’єднано з останньою побудованою точкою лінією. </para>
	<para
>Функції, задані параметрично та у полярних координатах, мають типовий діапазон змінної у межах від 0 до 2&pgr;. Цей діапазон можна також змінити на бічній панелі <guilabel
>Функції</guilabel
>. </para>
</sect1>

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

<sect1 id="coords-config">
	<title
>Налаштування <guimenuitem
>Координатної системи</guimenuitem
></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
>Налаштування <guilabel
>осей</guilabel
></title>
		<para>
			<variablelist>
				
				<varlistentry>
					<term
><guilabel
>Діапазон значень на осі X</guilabel
></term>
					<listitem>
						<para
>Встановлює діапазон значень для осі x. Зауважте, що ви можете скористатися вже визначеними функціями і константами (докладніше про це можна дізнатися з <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
>Діапазон значень на осі Y</guilabel
></term>
					<listitem>
						<para
>Встановлює діапазон значень для осі y. Докладніше про це можна дізнатися з пункту <quote
>Діапазон значень на осі X</quote
> вище.</para>
					</listitem>
				</varlistentry>
				
				<varlistentry>
					<term
><guilabel
>Проміжки між лініями сітки по X</guilabel
></term>
					<listitem>
						<para
>Цей параметр контролює відстань між лініями сітки у горизонтальному напрямку. Якщо вибрано значення <guilabel
>Автоматично</guilabel
>, &kmplot; спробує знайти відстань між лініями сітки, яка на екрані буде приблизно рівна двом сантиметрам і відповідатиме якомога коротшим значенням змінної на осі. Якщо вибрано значення <guilabel
>Нетипова</guilabel
>, ви зможете вручну ввести горизонтальний проміжок між лініями сітки. Це значення використовуватиметься незалежно від масштабу. Наприклад, якщо введено значення 0.5, а діапазон за віссю x від 0 до 8, буде намальовано 16 ліній сітки. </para>
					</listitem>
				</varlistentry>
				
				<varlistentry>
					<term
><guilabel
>Проміжки між лініями сітки по Y</guilabel
></term>
					<listitem>
						<para
>Цей параметр визначає проміжки між лініями сітки у вертикальному напрямку. Перегляньте пункт про <quote
>Проміжки між лініями сітки по Y</quote
>. </para>
					</listitem>
				</varlistentry>
				
			</variablelist>
		</para>
		
	</sect2>
</sect1>

<sect1 id="constants-config">
	<title
>Налаштування <guimenuitem
>Констант</guimenuitem
></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:
			-->
