1 <?xml version="1.0" encoding="UTF-8"?>
3 * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
4 * Copyright (C) 2008 - INRIA
5 * Copyright (C) 2012 - 2016 - Scilab Enterprises
6 * Copyright (C) 2016, 2018 - Samuel GOUGEON
8 * This file is hereby licensed under the terms of the GNU GPL v2.0,
9 * pursuant to article 5.3.4 of the CeCILL v.2.1.
10 * This file was originally licensed under the terms of the CeCILL v2.1,
11 * and continues to be available under such terms.
12 * For more information, see the COPYING file which you should have received
13 * along with this program.
16 <refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
17 xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml"
18 xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook"
19 xmlns:scilab="http://www.scilab.org" xml:id="linspace" xml:lang="fr">
21 <refname>linspace</refname>
22 <refpurpose>suite de nombres équidistants entre 2 bornes atteintes</refpurpose>
25 <title>Syntaxe</title>
27 row = linspace(x1, x2)
28 row = linspace(x1, x2, n)
29 Matrix = linspace(Col1, Col2)
30 Matrix = linspace(Col1, Col2, n)
34 <title>Arguments</title>
40 Nombres réels ou complexes ou entiers encodés scalaires : bornes entre
41 lesquelles les valeurs doivent être générées.
46 <term>Col1, Col2</term>
49 Vecteurs colonne de nombres réels ou complexes ou entiers encodés, de mêmes
58 Nombre entier positif. Il précise le nombre de valeurs ou de colonnes à
59 générer entre les deux extrémités (extrémités comprises). 100 par défaut.
67 Vecteur ligne de <literal>n</literal> nombres.
75 Matrice à <literal>n</literal> colonnes de nombres.
82 <title>Description</title>
84 <literal>linspace(x1, x2)</literal>
85 génère un vecteur ligne de <literal>n</literal> valeurs allant
86 exactement de <literal>x1</literal> à <literal>x2</literal> à
91 La syntaxe <literal>y1:y2</literal> ou <literal>y1:step:y2</literal>
92 comme <literal>1:0.1:%pi</literal> produit une suite similaire,
93 mais fixe la valeur de départ <literal>y1</literal> et
94 <emphasis role="bold">le pas/incrément</emphasis>.
95 <literal>y2</literal> sert de valeur d'arrêt à ne pas dépasser.
96 La dernière valeur générée peut elle être inférieure,
97 <literal>y2</literal> ne figurant alors pas parmi les valeurs
101 Au lieu de fixer le pas/incrément, <literal>linspace</literal>
102 fixe la seconde borne <literal>x2</literal> à exactement
103 <emphasis role="bold">atteindre</emphasis>, et calcule le pas
108 Si <literal>x1</literal> ou <literal>x2</literal> sont des nombres
109 complexes, <literal>linspace(x1,x2)</literal> interpole alors
110 séparément la partie réelle de <literal>x1</literal> et <literal>x2</literal>,
111 et d'autre part leur partie imaginaire.
114 Si des vecteurs colonnes <literal>Col1</literal> et <literal>Col2</literal>
115 sont fournis, <literal>linspace</literal> est alors appliquée
117 La <literal>Matrix</literal> résultante à le même nombre de lignes,
118 et <literal>n</literal> colonnes, avec
119 <literal>Matrix(i,:) = linspace(Col1(i), Col2(i), n)</literal>.
122 Lorsque les bornes fournies sont des entiers encodés, le pas effectif observable
123 peut varier d'une unité le long de la série générée. Voir l'exemple ci-dessous.
127 <title>Exemples</title>
128 <programlisting role="example"><![CDATA[
129 linspace(1, %pi, 0) // n = 0
130 linspace(1, 2, 10) // x2 > x1 : suite croissante
131 linspace(2, 1, 10) // x2 < x1 : suite décroissante
132 linspace(1+%i, 2-2*%i, 5) // avec des nombres complexes
133 linspace([1:4]', [5:8]', 10) // avec des colonnes de bornes
135 <screen><![CDATA[--> linspace(1, %pi, 0) // n = 0
139 --> linspace(1, 2, 10) // x2 > x1 : suite croissante
141 1. 1.111 1.222 1.333 1.444 1.556 1.667 1.778 1.889 2.
143 --> linspace(2, 1, 10) // x2 < x1 : suite décroissante
145 2. 1.889 1.778 1.667 1.556 1.444 1.333 1.222 1.111 1.
147 --> linspace(1+%i, 2-2*%i, 5) // avec des nombres complexes
149 1. +i 1.25 +0.25i 1.5 -0.5i 1.75 -1.25i 2. -2.i
151 --> linspace([1:4]', [5:8]', 10) // avec des colonnes de bornes
153 1. 1.444 1.889 2.333 2.778 3.222 3.667 4.111 4.556 5.
154 2. 2.444 2.889 3.333 3.778 4.222 4.667 5.111 5.556 6.
155 3. 3.444 3.889 4.333 4.778 5.222 5.667 6.111 6.556 7.
156 4. 4.444 4.889 5.333 5.778 6.222 6.667 7.111 7.556 8.
160 <emphasis role="bold">Avec des entiers encodés :</emphasis>
161 le pas peut varier d'au plus une unité en cours de série, afin d'assurer que la borne
162 supérieure est toujours atteinte :
164 <programlisting role="example"><![CDATA[
165 x = linspace(int8([5;127]), int8([127;5]), 10)
166 x(:,1:$-1) - x(:,2:$)
169 --> x = linspace(int8([5;127]), int8([127;5]), 10)
171 5 18 32 45 59 72 86 99 113 127
172 127 114 100 87 73 60 46 33 19 5
174 --> x(:,1:$-1) - x(:,2:$)
176 -13 -14 -13 -14 -13 -14 -13 -14 -14
177 13 14 13 14 13 14 13 14 14
180 <refsection role="see also">
181 <title>Voir aussi</title>
182 <simplelist type="inline">
184 <link linkend="colon">colon</link>
187 <link linkend="logspace">logspace</link>
190 <link linkend="grand">grand</link>
195 <title>Historique</title>
198 <revnumber>5.4.0</revnumber>
201 <listitem>Des vecteurs colonne de bornes peuvent être utilisées.
203 <listitem>Le nombre de colonnes générées doit
204 être obligatoirement un entier.
210 <revnumber>6.0</revnumber>
213 <listitem>linspace(a, b, n<=0) produit [] au lieu de b.
215 <listitem>Toute borne %inf ou %nan est détectée et rejetée.
221 <revnumber>6.0.2</revnumber>
223 linspace() génère désormais de manière fiable les séries d'entiers encodés.