afa6cae772c094cee2d68a629f94155e806e40ac
[scilab.git] / scilab / modules / core / help / fr_FR / 1_keywords / backslash.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <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="backslash">
3     <refnamediv>
4         <refname>backslash</refname>
5         <refpurpose>(\) division matricielle à gauche</refpurpose>
6     </refnamediv>
7     <refsynopsisdiv>
8         <title>Séquence d'appel</title>
9         <synopsis>x=A\b</synopsis>
10     </refsynopsisdiv>
11     <refsection>
12         <title>Description</title>
13         <para>
14             L'anti-slash représente la division matricielle à gauche.
15             <literal>x=A\b</literal> est une solution de <literal>A*x=b</literal>.
16         </para>
17         <para>
18             Si <literal>A</literal> est carrée et régulière <literal>x=A\b</literal> (unique) est équivalent mathématiquement à <literal>x=inv(A)*b</literal> (dont le calcul est par contre beaucoup plus coûteux).
19         </para>
20         <para>
21             Si <literal>A</literal> n'est pas carrée, <literal>x</literal> est une solution au sens des moindres carrés, c'est à dire que <literal>norm(A*x-b)</literal> est minimale (norme euclidienne). Si <literal>A</literal> est de rang maximal (colonnes linéairement indépendantes), la solution au sens des moindres carrés, <literal>x=A\b</literal>, est unique (le vecteur <literal>x</literal> minimisant <literal>norm(A*x-b)</literal> est unique).
22             Si <literal>A</literal> n'est pas de rang maximal, cette solution n'est pas unique, et <literal>x=A\b</literal>, en général, n'est pas la solution de norme minimale (la solution de norme minimale est <literal>x=pinv(A)*b</literal>).
23         </para>
24         <para>
25             <literal>A.\B</literal>  est la matrice dont le terme <literal>(i,j)</literal> est égal à   <literal>A(i,j)\B(i,j)</literal>.
26             Si <literal>A</literal> (ou <literal>B</literal>) est un scalaire <literal>A.\B</literal> est équivalent à  <literal>A*ones(B).\B</literal> (or <literal>A.\(B*ones(A))</literal>.
27         </para>
28         <para>
29             <literal>A\.B</literal>  est un opérateur dont la signification n'est pas prédéfinie. il peut être utilisé pour définir de nouveaux opérateurs (voir <link linkend="overloading">overloading</link>) avec la même priorité que <literal>*</literal> ou <literal>/</literal>.
30         </para>
31     </refsection>
32     <refsection>
33         <title>Exemples</title>
34         <programlisting role="example"><![CDATA[
35 A=rand(3,2);b=[1;1;1]; x=A\b; y=pinv(A)*b;  x-y
36 A=rand(2,3);b=[1;1]; x=A\b; y=pinv(A)*b; x-y, A*x-b, A*y-b
37
38 // Rang non maximal
39 A=rand(3,1)*rand(1,2); b=[1;1;1]; x=A\b; y=pinv(A)*b; A*x-b, A*y-b
40 A=rand(2,1)*rand(1,3); b=[1;1]; x=A\b; y=pinv(A)*b; A*x-b, A*y-b
41 // Une comparaison de différents solveurs linéaire creux
42
43 [A,descr,ref,mtype] = ReadHBSparse(SCI+"/modules/umfpack/demos/bcsstk24.rsa");
44
45 b = zeros(size(A,1),1);
46
47 tic();
48 res = umfpack(A,'\',b);
49 mprintf('\ntemps nécessaire à la résolution du système avec umfpack: %.3f\n',toc());
50
51 tic();
52 res = linsolve(A,b);
53 mprintf('\ntemps nécessaire à la résolution du système avec linsolve: %.3f\n',toc());
54
55 tic();
56 res = A\b;
57 mprintf('\ntemps nécessaire à la résolution du système avec l''opérateur backslash: %.3f\n',toc());
58  ]]></programlisting>
59     </refsection>
60     <refsection role="see also">
61         <title>Voir aussi</title>
62         <simplelist type="inline">
63             <member>
64                 <link linkend="slash">slash</link>
65             </member>
66             <member>
67                 <link linkend="inv">inv</link>
68             </member>
69             <member>
70                 <link linkend="pinv">pinv</link>
71             </member>
72             <member>
73                 <link linkend="percent">percent</link>
74             </member>
75             <member>
76                 <link linkend="ieee">ieee</link>
77             </member>
78             <member>
79                 <link linkend="linsolve">linsolve</link>
80             </member>
81             <member>
82                 <link linkend="umfpack">umfpack</link>
83             </member>
84         </simplelist>
85     </refsection>
86 </refentry>