文档

mldivide,\

解线性方程组Ax = Bx

描述

例子

x=一个\B解决了线性方程组A * x =。的矩阵一个B必须有相同数量的行。MATLAB®显示一条警告消息一个严重比例或近奇异,但无论如何执行计算。

  • 如果一个是一个标量,然后呢一个\ B相当于答:\ B

  • 如果一个是一个广场n——- - - - - -n矩阵和B是一个矩阵n行,然后x = A \ B方程的解吗A * x =,如果它存在。

  • 如果一个是一个长方形——- - - - - -n矩阵m ~ = n,B是一个矩阵行,然后一个\B返回一个方程组最小二乘解A * x =

x= mldivide (一个,B)另一种方法是执行x=一个\B,但很少使用。它使操作符重载为类。

例子

全部折叠

解决一个简单的线性方程组,A * x =

一个=魔法(3);B = [15;15;15);x = A \ B
x =3×11.0000 1.0000 1.0000

解一个线性方程组A * x =涉及一个奇异矩阵,一个

一个=魔法(4);b = [34;34;34;34);x = A \ b
警告:矩阵接近奇异或严重了。结果可能是不准确的。RCOND = 4.625929 e-18。
x =4×10.9804 0.9412 1.0588 1.0196

rcond之间的是0每股收益近奇异警告,MATLAB®问题,但与计算所得。当处理坏心肠的矩阵,一个可靠的解决方案会导致即使残留(b * x)相对较小。在这个特殊的例子中,剩余的标准是零,和一个精确的解,虽然rcond很小。

rcond等于0出现,单数的警告。

(1 = 0;0 0];b = [1;1);x = A \ b
警告:矩阵是奇异的工作精度。
x =2×11正

在这种情况下,除零导致计算和/或,使得计算结果不可靠。

解一个线性方程组,A * x =

一个= [1 2 0;0 4 3];b = [8;18];x = A \ b
x =3×10 4.0000 0.6667

解决一个简单的使用稀疏矩阵的线性方程组。

考虑了矩阵方程A * x =

一个=稀疏([0 2 0 1 0;4 1 1 0 0;0 0 0 3 6;2 0 0 0 2;2 0 0 4 0]);B =稀疏([8;1;-18;8;20]); x = A\B
x = (1, 1) 1.0000 (2, 1) 2.0000 (3,1) 3.0000 (4,1) 4.0000 5.0000 (5、1)

输入参数

全部折叠

操作数,指定为向量,矩阵,或稀疏矩阵。一个B必须有相同数量的行。

  • 如果一个B整数数据类型,其他输入必须标量。操作数和整数数据类型不能复杂。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑|字符
复数的支持:金宝app是的

输出参数

全部折叠

解决方案,作为一个矢量,返回完整的矩阵,或稀疏矩阵。如果一个是一个——- - - - - -n矩阵和B是一个——- - - - - -p矩阵,然后x是一个n——- - - - - -p矩阵,包括时的情况p = = 1

如果一个完整存储,x也满了。如果一个是稀疏的,那么x有相同的存储B

提示

  • 运营商/\彼此相关的方程B / A = (‘\ B) '

  • 如果一个是一个方阵,那么一个\ B约等于发票(一)* B,但MATLAB过程一个\ B不同的和更强劲。

  • 如果的秩一个小于列数一个,然后x = A \ B不一定是最低标准的解决方案。你可以计算使用的最小范数最小二乘解x =lsqminnorm(A, B)x =pinv(一)* B

算法

全部折叠

的多功能性mldivide在解决线性系统源于它能够利用对称性问题,调度的一个适当的解决者。这种方法旨在减少计算时间。第一个区别函数之间完整的(也称为“密集的”),稀疏的输入数组。

算法完整输入

下面的流程图显示了该算法当输入路径一个B完整的

算法的输入

如果一个是完整的和B是稀疏的,那么mldivide转换B完整的矩阵,使用完整的算法路径(上图)计算与完整的存储解决方案。如果一个是稀疏的,解决方案的存储x是一样的吗Bmldivide遵循路径的算法稀疏的输入,如下所示。

扩展功能

之前介绍过的R2006a