我面临以下问题:我有一个160000个线性方程组,有160000个变量。我将编写两个关于共轭梯度法和最速下降法的程序来解决它。矩阵是块三对角线,只有5个非零对角线,因此不需要创建和存储矩阵。但是我遇到了以下问题:当我进入iterarion stepe时,必须有涉及向量的点积。我尝试了以下命令:dot(u,v),u' * v,它们是常用的。但是当我运行程序时,MATLAB告诉我数据大小对于内存来说太大了。
为了解决这个问题,我尝试将巨大的矢量分解为支持较小的稀疏矢量,然后计算小矢量的点积,最后将它们粘合在一起。但似乎这种方法更复杂,效率也不高,而且很容易(特别是像我这样的初学者)犯错误。我想知道是否有更有效的方法来解决这个问题。提前谢谢。