<?xml version="1.0" encoding="UTF-8"?>
<!--
 * Scilab ( https://www.scilab.org/ ) - This file is part of Scilab
 * Copyright (C) 2005 - INRIA
 * Copyright (C) 2012 - 2016 - Scilab Enterprises
 * Copyright (C) 2018 - Samuel GOUGEON
 *
 * This file is hereby licensed under the terms of the GNU GPL v2.0,
 * pursuant to article 5.3.4 of the CeCILL v.2.1.
 * This file was originally licensed under the terms of the CeCILL v2.1,
 * and continues to be available under such terms.
 * For more information, see the COPYING file which you should have received
 * along with this program.
 *
 -->
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
        xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML"
        xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org"
        xml:lang="ru" xml:id="rational">
    <refnamediv>
        <refname>рациональное число</refname>
        <refpurpose>объекты Scilab, рациональное число в Scilab</refpurpose>
    </refnamediv>
    <refsection>
        <title>Описание</title>
        <para>
            Рациональное число <literal>r</literal> является частным двух полиномов
            <literal>r=num/den</literal>.
        </para>
        <para>
            Массив <literal>R</literal> рациональных чисел могут быть напрямую определены как
            поэлементное деление двух полиномиальных массивов <literal>Num</literal> и <literal>Den</literal>:
            <literal>R = Num./Den</literal>.
        </para>
        <para>
            Внутреннее представление рациональных чисел является списком типа "r":
            <literal>R = tlist(['r','num','den','dt'], Num, Den,[])</literal> или
            <literal>R = rlist(Num, Den, [])</literal>.
        </para>
        <para>
            С массивами рациональных чисел могут быть использованы все обычные операторы:
            <literal>'  .'  +  -  *  .*  /  ./  .^  .*.  [,] [;]</literal>,
        </para>
        <para>
            Что касается полиномиальных чисел, функция <literal>horner()</literal> позволяет вычислить
            значение рациональных чисел для некоторого значения их переменной.
        </para>
        <para>
            С рациональными числами в качестве входных переменных могут быть использованы много других
            функций Scilab: <literal>permute</literal>,
            <literal>cat</literal>, <literal>real</literal>, <literal>imag</literal>,
            <literal>conj</literal>, <literal>isreal</literal> и др.
        </para>
        <warning>
            Адресация некоторых элементов массива <literal>R</literal> рациональных чисел может быть
            выполнена с помощью линеаризированных индексов, используя синтаксис <literal>R(k,0)</literal>,
            где <literal>k</literal> - это вектор линеаризованных индексов, а 0 используется вместо
            <literal>j</literal> или индексов более высокого порядка.
        </warning>
    </refsection>
    <refsection>
        <title>Примеры</title>
        <programlisting role="example"><![CDATA[
s=poly(0,'s');
W=[1/s,1/(s+1)]
W'*W
Num=[s,s+2;1,s];Den=[s*s,s;s,s*s];
rlist(Num,Den,[])
H=Num./Den
syslin('c',Num,Den)
syslin('c',H)
[Num1,Den1]=simp(Num,Den)
 ]]></programlisting>
    <para/>
    <programlisting role="example"><![CDATA[
R = (1-%s).^[1 0 2] ./ %s.^[1 2 0]
horner(R,[-1 0 2 -2]')

R = (1-%s)/(1+%s)
horner(R, 1-%z^2)
 ]]></programlisting>
    <screen><![CDATA[
--> R = (1-%s).^[1 0 2] ./ %s.^[1 2 0]
 R  =
                         2
   1 - s   1   1 - 2s + s
   ------  --  -----------
            2
     s     s       1

--> horner(R,[-1 0 2 -2]')
 ans  =
  -2.    1.     4.
   Inf   Inf    1.
  -0.5   0.25   1.
  -1.5   0.25   9.

--> R = (1-%s)/(1+%s)
 R  =
   1 - s
   ------
   1 + s

--> horner(R, 1-%z^2)
 ans  =
      2
     z
   ------
        2
   2 - z
]]></screen>
    </refsection>
    <refsection role="see also">
        <title>Смотрите также</title>
        <simplelist type="inline">
            <member>
                <link linkend="poly">poly</link>
            </member>
            <member>
                <link linkend="syslin">syslin</link>
            </member>
            <member>
                <link linkend="horner">horner</link>
            </member>
            <member>
                <link linkend="simp">simp</link>
            </member>
        </simplelist>
    </refsection>
    <refsection role="history">
        <title>История</title>
        <revhistory>
            <revision>
                <revnumber>6.0.2</revnumber>
                <revdescription>
                    Теперь доступен синтаксис <literal>R(k,0)</literal> для адресации элементов
                    с помощью их линеаризованных индексов <literal>k</literal>.
                </revdescription>
            </revision>
        </revhistory>
    </refsection>
</refentry>
