求解关于 x 的线性方程组 xA = B
x = B/A
x = mrdivide(B,A)
示例
x = B / A 对线性方程组 x*A = B 求解 x 。矩阵 A 和 B 必须具有相同的列数。如果 A 未正确缩放或接近奇异值,MATLAB ® 将会显示警告信息,但还是会执行计算。
x = B / A
x
B
A
x*A = B
如果 A 是标量,那么 B/A 等于 B./A 。
B/A
B./A
如果 A 是 n × n 方阵, B 是 n 列矩阵,那么 x = B/A 是方程 x*A = B 的解(如果存在解的话)。
n
如果 A 是矩形 m × n 矩阵,且 m ~= n , B 是 n 列矩阵,那么 x = B / A 返回方程组 x*A = B 的最小二乘解。
m
m ~= n
=
x = mrdivide( B , A ) 是执行 x = B / A 这一操作的替代方法,但很少使用。它可以启用类的运算符重载。
x = mrdivide( B , A )
/
全部折叠
对具有唯一解的方程组 x*A = B 求解。
A = [1 1 3; 2 0 4; -1 6 -1]; B = [2 19 8]; x = B/A
x = 1×3 1.0000 2.0000 3.0000
对欠定方程组 x*C = D 求解。
x*C = D
C = [1 0; 2 0; 1 0]; D = [1 2]; x = D/C
Warning: Rank deficient, rank = 1, tol = 1.332268e-15.
x = 1×3 0 0.5000 0
MATLAB® 发出警告,但会继续计算。
验证 x 不是精确解。
x*C-D
ans = 1×2 0 -2
操作数,指定为向量、满矩阵或稀疏矩阵。 A 和 B 必须具有相同的列数。
如果 A 或 B 具有整数数据类型,则另一个输入必须为标量。整数数据类型的操作数不能为复数。
数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char 复数支持: 是
single
double
int8
int16
int32
int64
uint8
uint16
uint32
uint64
logical
char
解,以向量、满矩阵或稀疏矩阵返回。如果 A 是 m × n 矩阵, B 是 p × n 矩阵,那么 x 是 p × m 矩阵。
p
仅当 A 和 B 同时为稀疏矩阵时, x 才为稀疏矩阵。
运算符 / 和 \ 通过以下对应关系而相互关联: B/A = (A'\B')' 。
\
B/A = (A'\B')'
如果 A 是方阵,则 B/A 约等于 B*inv(A) ,但 MATLAB 会用不同的更为稳健的方式处理 B/A ,而且效果更好。
B*inv(A)
使用 decomposition 对象多次高效地求解具有不同右侧的线性方程组。 decomposition 对象非常适合求解需要重复求解的问题,因为系数矩阵的分解不需要执行多次。
decomposition
此函数支持 tall 数组,但存在以下限制:
对于语法 Z = X/Y , Y 操作数必须为标量。
Z = X/Y
Y
有关详细信息,请参阅 使用 tall 数组处理无法放入内存的数据 。
用法说明和限制:
代码生成不支持对此函数使用稀疏矩阵输入。
如果代码生成器在编译时确定 A 是标量,则 B/A 等效于 B./A 。
否则,即使 A 的运行时值是标量,代码生成器也会将 A 视为矩阵,并要求 A 和 B 中的列数相等。因此,如果 B 有多个列,代码生成器会生成错误。
backgroundPool
ThreadPool
此函数完全支持基于线程的环境。有关详细信息,请参阅 在基于线程的环境中运行 MATLAB 函数 。
如果 B 是矩形矩阵,则它也必须是非稀疏矩阵。
如果 B 未正确缩放、接近奇异矩阵或秩亏,MATLAB mrdivide 函数会显示警告。 gpuArray mrdivide 不能检查此情况。请采取措施来避免这种情况。
mrdivide
gpuArray
不支持 64 位整数。
有关详细信息,请参阅 Run MATLAB Functions on a GPU (Parallel Computing Toolbox) 。
如果 B 未正确缩放、接近奇异矩阵或秩亏,MATLAB mrdivide 函数会显示警告。分布式数组 mrdivide 无法检查此情况。请采取措施来避免这种情况。
如果 B 是 N > M 的 M×N 矩阵,则对于分布式数组, mrdivide 计算可将 norm(X) 最小化的解。结果与 PINV(B)*A 的结果相同。
norm(X)
PINV(B)*A
有关详细信息,请参阅 Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox) 。
在 R2006a 之前推出
mldivide | ldivide | rdivide | inv | transpose | decomposition
mldivide
ldivide
rdivide
inv
transpose