- Scilab help
- Scilab
- Ключевые слова Scilab
- ans
- backslash (\)
- квадратные скобки
- colon
- запятая
- комментарии
- сравнение
- доллар
- точка
- else
- elseif
- empty
- end
- знак равенства
- выделение
- global
- крышечка
- вставка
- left
- меньше
- минус
- НЕ
- круглые скобки
- процент
- плюс
- возведение в степень
- кавычка
- точка с запятой
- слэш
- звёздочка
- символы
- тильда
- try
Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
See the recommended documentation of this function
backslash (\)
(\) левое матричное деление.
Последовательность вызова
x=A\b
Описание
Обратный слэш означает левое матричное деление.
x=A\b
является решением для A*x=b
.
Если A
-- квадратная и невырожденная, то x=A\b
(уникально определённая) эквивалентно x=inv(A)*b
(но вычисления гораздо дешевле).
Если A
не квадратная, то x
является решением наименьших квадратов,
т.е. norm(A*x-b)
является минимальной (эвклидовой нормой). Если ранг матрицы A
полный, то решение наименьших квадратов, x=A\b
, является уникально
определённым (есть уникальное x
, которое минимизирует norm(A*x-b)
).
Если ранг матрицы A
неполный, то решение наименьших квадратов не является уникальным,
и x=A\b
, в общем, не является решением с минимальной нормой (решение минимальной
нормы равно x=pinv(A)*b
).
A.\B
является матрицей с (i,j)
-тым элементом, равным A(i,j)\B(i,j)
.
Если A
(или B
) является скаляром, то A.\B
эквивалентно
A*ones(B).\B
(или A.\(B*ones(A))
.
A\.B
является оператором без предопределённого значения. Он может использоваться
для определения нового оператора (см. overloading) с тем же самым приоритетом что и *
или /
.
Примеры
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 // если ранг неполный 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 // Проверка эффективности нескольких программ решения систем линейных уравнений [A,descr,ref,mtype] = ReadHBSparse(SCI+"/modules/umfpack/examples/bcsstk24.rsa"); b = zeros(size(A,1),1); tic(); res = umfpack(A,'\',b); mprintf('\nвремя, необходимое для решения системы с помощью umfpack: %.3f\n',toc()); tic(); res = linsolve(A,b); mprintf('\nвремя, необходимое для решения системы с помощью linsolve: %.3f\n',toc()); tic(); res = A\b; mprintf('\nвремя, необходимое для решения системы с помощью оператора ""обратный слэш"": %.3f\n',toc());
Смотрите также
Report an issue | ||
<< ans | Ключевые слова Scilab | квадратные скобки >> |