linsolve

解决线性方程系统

描述

X= linsolve(一个求解线性系统一个X=使用这些方法之一:

  • 什么时候一个广场linsolve使用LU分解具有部分枢转。

  • 对于所有其他情况下,linsolve使用QR分解用柱枢转。

linsolve警告说,如果一个状态不好(对于正方形矩阵)或秩亏(对于矩形矩阵)。

X= linsolve(一个OPTS使用适当的解算器由选项结构确定OPTS。在田间地头OPTS是描述矩阵的性能逻辑值一个。例如,如果一个是上三角矩阵,可以设置opts.UT =真为了使linsolve使用设计用于上三角矩阵求解器。linsolve不通过测试来验证一个具有指定的属性OPTS

[X[R] = linsolve(___也回报[R,这是的条件数的倒数一个(对于正方形矩阵)或的秩一个(对于矩形矩阵)。您可以在前面的语法使用任何输入参数的组合。有了这个语法,linsolve不警告如果一个状态不好或秩亏。

例子

全部收缩

解决既具有线性系统mldividelinsolve比较性能。

mldivide是解决MATLAB®方程的最线性系统的推荐方式。但是,该函数对输入矩阵执行若干检查,以确定它是否具有任何特殊的性质。如果你知道的时间系数矩阵领先的性能,那么你可以使用linsolve以避免大矩阵费时检查。

创建10000通过-10000幻方矩阵,并提取下三角部分。设置LT领域OPTS结构真正以表明一个是下三角矩阵。

A = TRIL(魔(1E4));opts.LT = TRUE;

创建者的向量为线性方程的右手侧 斧头 = 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比最小的大。

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=。如果是一个矩阵,则矩阵中的每个列表示右手侧上的不同载体。

行的数一个必须等于行数

数据类型:|
复数支持:万博1manbetx

系数矩阵特性,指定为结构。使用此结构来指定的性质一个linsolve用途来选择用于线性系统的适当求解器。在结构中的字段包含真正/值指示是否一个有每个属性。默认情况下,结构中的所有字段都假定为。下表列出了可能的领域OPTS和它们相应的基体的性能。

领域 matrix属性

LT

下三角(只出现在或低于主对角线非零值)

UT

上三角(非零只出现在或主对角线以上的值)

UHESS

上Hessenberg(第一次对角以下的所有零个值)

SYM

实对称或复合厄米特(矩阵等于它的转置)

POSDEF

正定(所有正的特征值)

RECT

矩形矩阵(不同数目的行和列的)

TRANSA

共轭转 - 指定函数是否解决了A * X = B(什么时候opts.TRANSA = FALSE)或调换问题A'* X = B(什么时候opts.TRANSA =真

例:opts.UT =真该指定一个是上三角。

例:opts.SYM =真,opts.POSDEF =真将两个字段指定一个是对称和正定的。

有效组合

此表中的行字段值的所有组合OPTS这是有效的linsolve。空单元格的默认值真正/项指示linsolve可以接受的值。

LT

UT

UHESS

SYM

POSDEF

RECT

TRANSA

一个是下三角

真正

真正/

真正/

一个是上三角

真正

真正/

真正/

一个是上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真正无一不LTUT, 在这种情况下,[R给出的排名一个

提示

  • 的速度优势linsolve可以根据矩阵结构和底层算法的相对优化而变化。在某些情况下(如小的矩阵),可能没有任何加速相比mldivide。随着速度的好处linsolve源自于避免对大矩阵的性质昂贵的检查,或通过选择更适合于输入不是选择一个算法mldivide让。

扩展功能

也可以看看

||

R2006a前推出