L*U*x = b
的解决方案。我认为MATLAB足够聪明,可以发现只需要后向/前向替换。但我觉得如果我能告诉matlab(不知何故)只进行前向/后向替换会更快。
请告诉我如何告诉MATLAB只做后向/前向替换,不需要额外的操作。
由于
答案 0 :(得分:1)
docs非常明确:
三角矩阵的排列
mldivide检查三角形 通过测试零元素。如果矩阵A是三角形,则为MATLAB 软件使用替换来计算解向量x。如果A是 对于三角矩阵的置换,MATLAB软件使用置换 替代算法。
所以
x = U \ (L \ b);
是您的问题的后向/前向解决方案。
答案 1 :(得分:0)
搜索documentation似乎Matlab确实使用了向后/向前替换。但是,由于mldivide
分别得到矩阵L*U
而不是L
和U
,因此必须在内部执行分解。
如果您已经拥有L和U矩阵,则可以保存该部分计算。