<?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="fr" xml:id="rational">
    <refnamediv>
        <refname>rational</refname>
        <refpurpose>Fraction rationnelle</refpurpose>
    </refnamediv>
    <refsection>
        <title>Description</title>
        <para>
            Une fraction rationnelle <literal>r</literal> est le quotient de deux polynômes
            <literal>r = num/den</literal>.
        </para>
        <para>
            Un tableau <literal>R</literal> de fractions rationnelles peut être défini directement
            comme le quotient terme à terme de deux tableaux de polynômes <literal>Num</literal>
            et <literal>Den</literal> : <literal>R = Num./Den</literal>.
        </para>
        <para>
            La représentation interne d'un tableau de fractions rationnelles est une liste de type "r" :
            <literal>R = tlist(['r','num','den','dt'], Num, Den,[])</literal>, ou avec
            <literal>R = rlist(Num,Den,[])</literal>.
        </para>
        <para>
            Tous les opérateurs usuels peuvent être utilisés pour des tableaux de fractions rationnelles :
            <literal>'  .'  +  -  *  .* /  ./  .^  .*.  [,] [;]</literal>,
        </para>
        <para>
            Comme pour les polynômes, la fonction <literal>horner()</literal> permet de calculer
            la valeur des fractions rationnelles
        </para>
        <para>
            De nombreuses autres fonctions leur sont applicables : <literal>permute</literal>,
            <literal>cat</literal>, <literal>real</literal>, <literal>imag</literal>,
            <literal>conj</literal>, <literal>isreal</literal>, etc.
        </para>
        <warning>
            Il est possible d'adresser des éléments d'un tableau <literal>R</literal> de fractions
            rationnelles avec leur indice linéarisé k via la syntaxe <literal>R(k,0)</literal>,
            où j=0 est utilisé au lieu des réels indices <literal>j</literal> (et suivants).
        </warning>
    </refsection>
    <refsection>
        <title>Exemples</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>Voir aussi</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>Historique</title>
        <revhistory>
            <revision>
                <revnumber>6.0.2</revnumber>
                <revdescription>
                    Il est désormais possible d'adresser les éléments d'un tableau de fractions
                    rationnelles par leurs indices linéarisés k via la syntaxe
                    <literal>R(k,0)</literal>.
                </revdescription>
            </revision>
        </revhistory>
    </refsection>
</refentry>
