看板Programming
标 题Re: [问题] 请教矩阵LU分解法
发信站交大资科_BBS (Mon Nov 27 00:27:04 2006)
转信站ptt!ctu-reader!ctu-peer!news.nctu!news.cis.nctu!cis_nctu
==> 在 [email protected] (燃烧我的青春) 的文章中提到:
> 最近上课上到关於矩阵解法的LU分解,
> 我想这是满普遍存在於一般数值分析教材,
> 关於整个过程的演算程序我也知道,
> 因为作业有个问题是求解二维Laplace方程式。
> 之前曾做过另一个解法是使用"三对角矩阵"解法,
> 把方程式经过排列以"逐线"方式求解,
> 最近要以LU分解去做该问题,在想LU分解若是以逐线方式求解去做并不难,
> 但如此作法好像就跟"三对角矩阵"解法的精神似乎差不多!?
> 可是若是"全域"方式去解,即一口气解一个平面上所有变数,
> 好像比较符合LU分解所谓一次求解的精神?!
> 但是若是以这样方式作,好像变数排列问题,
> 在程式撰写上是不是比较麻烦呢?
> 尝试以一个小维度矩阵去手写看其排列,
> 每条方程式求解变数并非完全有一规则,
> 不知道说LU分解法在一般问题应用时,也是属於以"逐线"方式求解吗?
> ps.听老师曾讲过是说,在大型平行电脑计算,以LU分解法为佳,
> 若是在一般PC上,LU分解法会储存庞大阵列资料,
> 所以我会想说LU分解法在应用时,是"逐线"或是"全区域"去解。
我想在你的 matrix size 很小的时候,用 LU 分解反而花了更多时间
但是当 matrix size 大到一定程度 (ex. 100 x 100)
LU 的方法一定比较快吧(纯理论推测)
我没有实际写程式实验这两者的差别
也许你可以把 matrix size 加大,比较两种 algorithm 的差别
不过根据之前的经验,当 size 超过 15 x 15,程式跑起来
就开始怀疑自己是不是写了一个 dead loop
应该是之前的写法有点问题+电脑太烂吧
--
* Origin: ★ 交通大学资讯科学系 BBS ★ <bbs.cis.nctu.edu.tw: 140.113.23.3>