加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在c / c中为有限差分法创建五对角稀疏矩阵的最佳方法是什么?

发布时间:2020-12-16 07:29:48 所属栏目:百科 来源:网络整理
导读:在MATLAB中,使用如下命令创建五对角稀疏矩阵非常方便: I = eye(m); % create identity matrixe = ones(m,1); % create an array of all 1'sT = spdiags([e -4*e e],[-1 0 1],m,m); S = spdiags([e e],[-1 1],m);A = (kron(I,T) + kron(S,I))/h?2; 我想知道
在MATLAB中,使用如下命令创建五对角稀疏矩阵非常方便:

I = eye(m);  % create identity matrix
e = ones(m,1); % create an array of all 1's
T = spdiags([e -4*e e],[-1 0 1],m,m); 
S = spdiags([e e],[-1 1],m);
A = (kron(I,T) + kron(S,I))/h?2;

我想知道是否有任何巧妙的技巧在c / c中做同样的事情.

解决方法

C中没有稀疏的Matrix类型.但是网络上有很多开源代数库(或者你可以编写自己的代码库).

Boost uBLAS支持稀疏矩阵,如果你只想“试验”有限差分,它可能是最好的选择.
如果您需要更高级的求解器,您应该看一下GSL,或者考虑一下LAPACK的C版本.

至于你原来的问题,据我所知,这些库都没有实现kron函数,因为它只是一个“方便”的例程.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读