使用全矩阵求解方程值得注意的是,随着N的增加,全矩阵A的大小快速增长。我试图找到稀疏矩阵中最大数量的点 N 并使用如下方法,但使用“horzcat”时出现错误 连接数组的尺寸不一致。
N = 1000; h=0.25
虽然是真的
main_diag = (2/h^2) * ones(N-1, 1);
sub_diag = (-1/h^2) * ones(N-2, 1);
A = spdiags([sub_diag, main_diag, sub_diag], [-1, 0, 1], N-1, N-1);
try
full(A);
catch
N = N - 1; % Reduce N if an error occurs
continue;
end
break;
结束
disp(['稀疏矩阵的最大 N: ' num2str(N)]);
这个问题只需调试代码即可解决。您应该自己动手,在引发错误的行上放置断点并分析尺寸。
通过这样做,值得注意的是,在
A = spdiags([sub_diag, main_diag, sub_diag], [-1, 0, 1], N-1, N-1);
行中,您正在尝试水平连接 3 个具有不同维度的向量。事实上:
因此它们不能连接。