fourseasons
2010-05-30, 21:06
首先感谢你浏览本帖,如果能提点意见,感谢不尽!
问题:二维平面的10万网点(差分法)迭代计算,速度难以忍受,同样程序,划分1000网点的时间是几秒种,划10万网点快一小时还在busy。 难道不是100倍?
具体是这样的,微分方程细网差分化,求线性方程组的特征值。AX=λx这样子,系数A主对角占优。差分方程是5点迭代式,用高斯赛德尔迭代,也用了超松弛因子ω加速收敛。 程序结构很简单,就是输入公式,然后高斯迭代,几百行的样子。程序中的数据都以矩阵形式输入和计算。
为什么划10万网点时间会这么长?1000网点也才几秒种。这样的话3维就没法算了。
优化算法我知道,粗网格的差分法我会。细网差分计算慢这的确是它有的缺点。我想问:就程序上来说,还有没有什么可能提高点效率的,什么clear之类?
谢谢!◎◎◎◎◎◎◎◎◎◎
问题:二维平面的10万网点(差分法)迭代计算,速度难以忍受,同样程序,划分1000网点的时间是几秒种,划10万网点快一小时还在busy。 难道不是100倍?
具体是这样的,微分方程细网差分化,求线性方程组的特征值。AX=λx这样子,系数A主对角占优。差分方程是5点迭代式,用高斯赛德尔迭代,也用了超松弛因子ω加速收敛。 程序结构很简单,就是输入公式,然后高斯迭代,几百行的样子。程序中的数据都以矩阵形式输入和计算。
为什么划10万网点时间会这么长?1000网点也才几秒种。这样的话3维就没法算了。
优化算法我知道,粗网格的差分法我会。细网差分计算慢这的确是它有的缺点。我想问:就程序上来说,还有没有什么可能提高点效率的,什么clear之类?
谢谢!◎◎◎◎◎◎◎◎◎◎