主要内容

mldivide\

解线性方程组Ax = Bx

描述

例子

x=一个\B解线性方程组A*x = B。的矩阵一个B必须有相同的行数。MATLAB®显示警告消息,如果一个严重缩放或接近奇异,但不顾一切地执行计算。

  • 如果一个是标量吗一个\ B等于答:\ B

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

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

x= mldivide (一个B是否有另一种执行方式x=一个\B,但很少使用。它支持类的操作符重载。

例子

全部折叠

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

A = magic(3);B = [15];15;15);x = A\B
x =3×11.0000 1.0000 1.0000

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

A = magic(4);B = [34];34;34;34);x = A\b
警告:矩阵接近奇异或缩放严重。结果可能不准确。RCOND = 1.306145e-17。
x =4×11.5000 2.5000 -0.5000 0.5000

rcond之间的是0每股收益时,MATLAB®发出一个近乎单一的警告,但继续进行计算。当处理病态矩阵时,即使残差,也会得到不可靠的解(b * x)是相对较小的。在这个特殊的例子中,残差的范数为零,并且得到了一个精确解,尽管rcond很小。

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

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

在这种情况下,除以0得到的是和/或,使得计算结果不可靠。

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

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

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

考虑矩阵方程A*x = B

A = sparse([0 2 0 1 0;4 -1 -1 0 0;0 0 0 3 -6;-2 0 0 0 2;0 0 4 2 0];B = sparse([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 = (a '\B')'

  • 如果一个是方阵吗一个\ B大致等于发票(一)* B,但MATLAB处理一个\ B不同的,更健壮的。

  • 如果一个小于里面的列数一个,然后x = A\B不一定是最小范数解。可以使用最小范数最小二乘解计算最小范数最小二乘解x =lsqminnorm(A, B)x =pinv(一)* B

  • 使用分解对象有效地求解一个线性系统多次与不同的右手边。分解对象非常适合解决需要重复解的问题,因为系数矩阵的分解不需要执行多次。金宝搏官方网站

算法

全部折叠

的多功能性mldivide在求解线性系统的过程中,它能够利用问题中的对称性,将问题分配给合适的求解器。这种方法的目的是最小化计算时间。函数的第一个区别是完整的(也叫“密集的”),稀疏的输入数组。

全输入算法

下图显示了输入时的算法路径一个B完整的

全输入矩阵的性质决定了mldivide使用哪种算法来求解线性系统

稀疏输入算法

如果一个是满的B是稀疏的mldivide转换B到一个完整的矩阵,并使用完整的算法路径(如上)来计算一个具有完整存储的解决方案。如果一个是稀疏,存储了解吗x和…一样吗Bmldivide的算法路径稀疏的输入,如下所示。

稀疏输入矩阵的性质决定了mldivide使用哪种算法来求解线性系统

参考文献

bbb Gilbert, John R.和Tim Peierls。与算术运算成比例的时间稀疏部分旋转。SIAM科学与统计计算杂志9日,没有。5(1988年9月):862-874。https://doi.org/10.1137/0909058

[2]安德森,E., ed。LAPACK用户指南。第3版:软件,环境,工具。费城:工业与应用数学学会,1999。https://doi.org/10.1137/1.9780898719604

蒂莫西·戴维斯。算法832:UMFPACK V4.3——一种非对称模式的多额方法。ACM数学软件汇刊30日,没有。2(2004年6月):196-199。https://doi.org/10.1145/992200.992206

[10]杜夫,Iain S.“MA57-一个稀疏对称定系统和不定系统的解的代码”。ACM数学软件汇刊30日,没有。2(2004年6月):118-144。https://doi.org/10.1145/992200.992202

[5] Davis, Timothy A., John R. Gilbert, Stefan I. Larimore, Esmond G. Ng。算法836:COLAMD,列近似最小度排序算法。ACM数学软件汇刊30日,没有。3(2004年9月):377-380。https://doi.org/10.1145/1024074.1024080

bbb Amestoy, Patrick R., Timothy A. Davis和Iain S. Duff。算法837:AMD,一种近似最小度排序算法。ACM数学软件汇刊30日,没有。(2004年9月):381-388。https://doi.org/10.1145/1024074.1024081

[10]陈延庆,Timothy A. Davis, William W. Hager, Sivasankaran Rajamanickam。算法887:CHOLMOD,超节点稀疏choolesky分解和更新/降级。ACM数学软件汇刊35岁,没有。3(2008年10月):1-14。https://doi.org/10.1145/1391989.1391995

[10] Davis, Timothy A.“算法915,SuiteSparseQR:多额多线程揭示秩的稀疏QR分解”。ACM数学软件汇刊38岁的没有。1(2011年11月):1 - 22。https://doi.org/10.1145/2049662.2049670

扩展功能

版本历史

R2006a之前引入

全部展开