到目前为止,我总是使用(=
mldivide
(来解决(常规(三角形系统。但是,在使用适当的求解器之前,此函数始终首先检查矩阵是否为三角形。对三角形的天真检查已经具有与求解本身大致相同的订单成本。(但因此仅增加一个常数因子的运行时间,因此通常应该无关紧要(我想知道:
如果您已经知道矩阵是三角形的,是否可以使用内置求解器来避免此检查?
linsolve
,它具有各种矩阵类型的选项,包括三角矩阵。https://www.mathworks.com/help/matlab/ref/linsolve.html
我尝试使用Mathworks的例子,两者都太快了,无关紧要。当扩展到 5000x3000 时,linsolve 的速度要快得多。而且也没用,因为得到的矩阵是秩缺陷的,并且该方法产生了完全错误的结果,充满了NaN。普通除法按预期工作 - 有一些错误,但大多数结果是 1。