<< percent (%) Mots clés Scilab brackets [,;] >>

Scilab Help >> Scilab > Mots clés Scilab > backslash

backslash

(\) division matricielle à gauche

Séquence d'appel

X = A \ B

Description

L'anti-slash représente la division matricielle à gauche. x=A\b est une solution de A*x=b.

Si A est carrée et régulière x=A\b (unique) est équivalent mathématiquement à x=inv(A)*b (dont le calcul est par contre beaucoup plus coûteux).

Si A n'est pas carrée, x est une solution au sens des moindres carrés, c'est à dire que norm(A*x-b) est minimale (norme euclidienne). Si A est de rang maximal (colonnes linéairement indépendantes), la solution au sens des moindres carrés, x=A\b, est unique (le vecteur x minimisant norm(A*x-b) est unique). Si A n'est pas de rang maximal, cette solution n'est pas unique, et x=A\b, en général, n'est pas la solution de norme minimale (la solution de norme minimale est x=pinv(A)*b).

A.\B est la matrice dont le terme (i,j) est égal à A(i,j)\B(i,j). Si A (ou B) est un scalaire A.\B est équivalent à A*ones(B).\B (or A.\(B*ones(A)).

A\.B 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 overloading) avec la même priorité que * ou /.

Exemples

A=rand(3,2);b=[1;1;1]; x=A\b; y=pinv(A)*b;  x-y
A=rand(2,3);b=[1;1]; x=A\b; y=pinv(A)*b; x-y, A*x-b, A*y-b

// Rang non maximal
A=rand(3,1)*rand(1,2); b=[1;1;1]; x=A\b; y=pinv(A)*b; A*x-b, A*y-b
A=rand(2,1)*rand(1,3); b=[1;1]; x=A\b; y=pinv(A)*b; A*x-b, A*y-b
// Une comparaison de différents solveurs linéaire creux

[A,descr,ref,mtype] = ReadHBSparse(SCI+"/modules/umfpack/demos/bcsstk24.rsa");

b = zeros(size(A,1),1);

tic();
res = umfpack(A,'\',b);
mprintf('\ntemps nécessaire à la résolution du système avec umfpack: %.3f\n',toc());

tic();
res = linsolve(A,b);
mprintf('\ntemps nécessaire à la résolution du système avec linsolve: %.3f\n',toc());

tic();
res = A\b;
mprintf('\ntemps nécessaire à la résolution du système avec l''opérateur backslash: %.3f\n',toc());

Voir aussi

Historique

VersionDescription
5.5.0 The threshold level which switches between Gaussian Elimination with row pivoting and linear least squares when computing A\B is decreased from sqrt(eps) to eps.

Report an issue
<< percent (%) Mots clés Scilab brackets [,;] >>