matlab - 求解三角系统的特殊函数?

标签 matlab linear-algebra

到目前为止,我始终使用 \ (= mldivide) 求解(常规)三角系统。但这个函数总是第一个checks whether the matrix is triangular在使用适当的求解器之前。对三角形的简单检查已经与求解本身具有大约相同的阶数成本。 (但因此仅将运行时间增加一个常数因子,因此通常应该没有那么重要)我想知道:

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

最佳答案

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

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

关于matlab - 求解三角系统的特殊函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44119230/

相关文章:

matlab - 如何在 MATLAB 中从 zip 存档中提取单个文件?

MATLAB 矩阵乘法与每列的 for 循环

math - 将捕获的坐标转换为屏幕坐标

c++ - 计算线性系统的误差 - 提取每一列

matlab - 循环语句性能和预分配循环语句本身

matlab - 如何在匿名函数中使用条件

c++ - 线性代数的CPU指令集?

r - Julia 中的完美(或接近)多重共线性

r - 有没有R程序可以得到矩阵的行和列空间?

workspace - matlab "from workspace" block 有错误