主要内容

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,唯一的警告出现了。

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

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

解线性方程组,A * x =

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

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

考虑矩阵方程A * x =

A =稀疏([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 =稀疏([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|逻辑|字符
复数的支持:万博1manbetx是的

输出参数

全部折叠

解,返回为向量、全矩阵或稀疏矩阵。如果一个是一个——- - - - - -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