解决三角系统的特殊功能?

special function for solving triangular systems?

到目前为止,我总是使用 \ (= mldivide) 解决(常规)三角系统。但是这个函数总是先 checks whether the matrix is triangular 在使用合适的求解器之前。三角性的天真检查已经具有与求解本身大致相同的阶次成本。 (但因此只增加一个常数因子的运行时间,所以通常应该没有那么重要)我想知道:

如果您已经知道矩阵是三角形的可以避免此检查,是否有可以使用的内置求解器?

您可以使用 linsolve,它有各种矩阵类型的选项,包括三角矩阵。 https://www.mathworks.com/help/matlab/ref/linsolve.html

我尝试使用 Mathworks 的示例,两者都太快了。当放大到 5000x3000 时,linsolve 的速度要快得多。而且也没有用,因为生成的矩阵秩不足,并且该方法产生了完全错误的结果,其中充满了 NaN。普通除法按预期工作 - 有一些错误,但大多数结果是 1.