0

我有下一个问题,如何在知道矩阵大小为 NxN 的情况下构建具有特定值的矩阵。

这是我的问题

我正在尝试使用下一个代码:

  a = (1+2*Du*dt/dx^2);  
  b = -Du*dt/dx^2;        
  main = a*sparse(ones(Nx,1));
  off  = b*sparse(ones(Nx-1,1));
  Bu = diag(main) + diag(off,1) + diag(off,-1);

但是正如您所看到的,(1,1) 和 (N,N) 中没有所需的值,那么我该如何构建这个特定的矩阵呢?MATLAB 中的代码如何?

4

1 回答 1

0

spdiags是要走的路,

A = sparse(Nx);
A = spdiags(b*ones(Nx-1,1), -1, A);
A = spdiags(a*ones(Nx,1), 0, A);
A = spdiags(b*ones(Nx-1,1), 1, A);
A(1, 1:2) = [1,1];
A(N, N-1:N) = [1,1];
于 2016-04-26T02:26:51.087 回答