2016-04-26 76 views
0

我有下一个问题,如何建立一个具有特定值的矩阵,知道矩阵的大小是N×N。如何用matlab生成下一个值的矩阵?

Here is my question

我已经是下一个代码尝试:

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中的代码如何?

回答

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]; 
+0

这是第一个矩阵吗?和第二个?我应该修改什么? –