zhuningyuan126 发表于 2011-7-3 11:06:38

有限差分法解偏微分方程;Out of memory;matlab

利用有限差分法解偏微分方程遇到的问题:由于采用以下格式,所以矩阵很大而很容易超出矩阵的最大容量。现nr的取值只能去到20,想将nr取值越大越好,最少达到50,请问能有什么办法。当nr取值为25时的报警为
??? Error using ==> zeros
Out of memory. Type HELP MEMORY for your options.
Error in ==> FDM_forming0623_arbitrary_point_load at 18
a=sparse(zeros(n,n));
%程序
nr=20;nct=nr;nt=nr;n=nr*nct*nt;
a=sparse(zeros(n,n));
b=sparse(zeros(n,1));
r=sparse(zeros(n,1));ct=r;t=r;
for i=1:nr
for j=1:nct
    for m=1:nt
……
    end
end
end
通过一系列for循环将数据写入矩阵a和b;
%方程求解
u=a\b;

messenger 发表于 2011-7-3 13:18:25

这么多代码,这个只能你自己检查了。实在不行,换换算法吧,差分法不是很多算法吗?

zhuningyuan126 发表于 2011-7-3 14:53:19

2# messenger
这个还只是很少的一部分呢,:'( :'( :'( '( :'( :'( '( :'( :'( '( :'( :'( '( :'( :'(
页: [1]
查看完整版本: 有限差分法解偏微分方程;Out of memory;matlab