文档帮助中心
解决线性方程系统
X = linsolve(A,B)
X = linsolve(A,B,OPTS)
[X,R] = linsolve(___)
例
X= linsolve(一个,乙)求解线性系统一个X=乙使用这些方法之一:
X= linsolve(一个,乙)
X
一个
乙
什么时候一个是广场,linsolve使用LU分解具有部分枢转。
linsolve
对于所有其他情况下,linsolve使用QR分解用柱枢转。
linsolve警告说,如果一个状态不好(对于正方形矩阵)或秩亏(对于矩形矩阵)。
X= linsolve(一个,乙,OPTS)使用适当的解算器由选项结构确定OPTS。在田间地头OPTS是描述矩阵的性能逻辑值一个。例如,如果一个是上三角矩阵,可以设置opts.UT =真为了使linsolve使用设计用于上三角矩阵求解器。linsolve不通过测试来验证一个具有指定的属性OPTS。
X= linsolve(一个,乙,OPTS)
OPTS
opts.UT =真
[X,[R] = linsolve(___)也回报[R,这是的条件数的倒数一个(对于正方形矩阵)或的秩一个(对于矩形矩阵)。您可以在前面的语法使用任何输入参数的组合。有了这个语法,linsolve不警告如果一个状态不好或秩亏。
[X,[R] = linsolve(___)
[R
全部收缩
解决既具有线性系统mldivide和linsolve比较性能。
mldivide
mldivide是解决MATLAB®方程的最线性系统的推荐方式。但是,该函数对输入矩阵执行若干检查,以确定它是否具有任何特殊的性质。如果你知道的时间系数矩阵领先的性能,那么你可以使用linsolve以避免大矩阵费时检查。
创建10000通过-10000幻方矩阵,并提取下三角部分。设置LT领域OPTS结构真正以表明一个是下三角矩阵。
LT
真正
A = TRIL(魔(1E4));opts.LT = TRUE;
创建者的向量为线性方程的右手侧 斧头 = b 。行的数一个和b必须相等。
b
B =酮(尺寸(A,2),1);
求解线性系统 斧头 = b 运用mldivide和时间的计算。
抽动X1 = A \ B;T1 = TOC
T1 = 0.0916
现在,再次解决系统使用linsolve。指定的选项结构,使linsolve可以选择较低的三角矩阵的适当求解器。
抽动X2 = linsolve(A,B,OPTS);T2 = TOC
T2 = 0.0353
比较执行时间,看看有多少快linsolve是。正如任何定时比较,其结果可能不同的计算机和MATLAB的版本之间变化。
加速比= T1 / T2
加速比= 2.5925
解决使用线性系统linsolve具有两个输出抑制基质调理警告。
创建一个20×20希尔伯特测试矩阵。这个矩阵是接近奇异的,最大的奇异值约为2e18比最小的大。
2e18
A = hilb(20);
解决涉及一个线性系统一个同linsolve。以来一个几乎是奇异的,linsolve返回警告。
B =酮(20,1);X = linsolve(A,B);
警告:矩阵接近奇异或严重缩放。结果可能是不准确的。RCOND = 1.276108e-19。
现在,解决了相同的线性系统,但是指定两个输出到linsolve。MATLAB®抑制警告,第二输出[R包含的倒数条件数一个。您可以使用此语法在代码中特殊情况来处理病态矩阵,而不会产生警告的代码。
[X,R] = linsolve(A,B)
X =20×1108×0.0000 -0.0000 0.0008 -0.0144 0.1448 -0.8567 3.1338 -7.1545 9.9712 -8.4571⋮
R = 1.2761e-19
系数矩阵。一个出现在线性方程系统在左边一个X=乙。行的数一个必须等于行数乙。
一个不能稀疏。为了解决涉及的稀疏矩阵,使用线性系统mldivide要么分解代替。
分解
数据类型:单|双复数支持:万博1manbetx是
单
双
输入阵列,指定为矢量或矩阵。乙出现在线性方程系统,如右图一个X=乙。如果乙是一个矩阵,则矩阵中的每个列表示右手侧上的不同载体。
行的数一个必须等于行数乙。
系数矩阵特性,指定为结构。使用此结构来指定的性质一个那linsolve用途来选择用于线性系统的适当求解器。在结构中的字段包含真正/假值指示是否一个有每个属性。默认情况下,结构中的所有字段都假定为假。下表列出了可能的领域OPTS和它们相应的基体的性能。
假
下三角(只出现在或低于主对角线非零值)
UT
上三角(非零只出现在或主对角线以上的值)
UHESS
上Hessenberg(第一次对角以下的所有零个值)
SYM
实对称或复合厄米特(矩阵等于它的转置)
POSDEF
正定(所有正的特征值)
RECT
矩形矩阵(不同数目的行和列的)
TRANSA
共轭转 - 指定函数是否解决了A * X = B(什么时候opts.TRANSA = FALSE)或调换问题A'* X = B(什么时候opts.TRANSA =真)
A * X = B
opts.TRANSA = FALSE
A'* X = B
opts.TRANSA =真
例:opts.UT =真该指定一个是上三角。
例:opts.SYM =真,opts.POSDEF =真将两个字段指定一个是对称和正定的。
opts.SYM =真,opts.POSDEF =真
此表中的行字段值的所有组合OPTS这是有效的linsolve。空单元格的默认值假和真正/假项指示linsolve可以接受的值。
一个是下三角
真正/假
一个是上三角
一个是上Hessenberg
一个是对称的
一个是矩形
如果一个在属性OPTS, 然后linsolve是更快的比mldivide,因为linsolve求解器立即调用适当的和不执行任何测试来验证一个具有指定的属性。
如果一个不不具有的属性,您指定OPTS, 然后linsolve返回不正确的结果,不返回错误消息。因此,如果您不能确定是否一个具有指定的属性,使用mldivide要么分解代替。
数据类型:结构
结构
线性系统解决方案,返回作为载体或基质,其满足一个X=乙(要么一个ŤX=乙如果opts.TRANSA =真)。的大小X取决于是否opts.TRANSA =真:
如果一个是米-通过-ñ和乙是米-通过-ķ, 然后X是ñ-通过-ķ并且是解决一个X=乙。
米
ñ
ķ
如果opts.TRANSA =真, 然后一个是米-通过-ñ和乙是ñ-通过-ķ。在这种情况下,X是米-通过-ķ并且是解决一个ŤX=乙。
倒数条件数或等级,返回一个标量。
如果一个是正方形矩阵,则[R是的倒数条件数一个。
如果一个是矩形矩阵,则[R是的秩一个。
如果OPTS被指定,则[R是的条件数的倒数一个除非RECT是真正无一不LT和UT是假, 在这种情况下,[R给出的排名一个。
的速度优势linsolve可以根据矩阵结构和底层算法的相对优化而变化。在某些情况下(如小的矩阵),可能没有任何加速相比mldivide。随着速度的好处linsolve源自于避免对大矩阵的性质昂贵的检查,或通过选择更适合于输入不是选择一个算法mldivide让。
使用注意事项和限制:
该OPTS结构必须是一个常数量。代码生成不支持的选项结构数组。万博1manbetx
代码生成唯一优化这些情况:
UHESS=真正(该TRANSA可以是真正要么假)
SYM=真正和POSDEF=真正
其他选项是等效于使用mldivide。
代码生成器不支持此功能稀疏矩阵输入。万博1manbetx
分解|lsqminnorm|mldivide
lsqminnorm
这个例子的修改版本的系统上存在。你要打开这个版本呢?
您单击对应于该MATLAB命令的链接:
在MATLAB命令窗口中输入它运行的命令。Web浏览器不支持MATLAB的命令。万博1manbetx
选择一个网站,以获得翻译的内容,其中可看到当地的活动和优惠。根据您的位置,我们建议您选择:。
您还可以选择从下面的列表中的网站:
选择最佳的网站性能的中国网站(在中国或英文)。其他MathWorks的国家网站都没有从您的位置访问进行了优化。
请联系您当地的办事处