2016-04-26 53 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

這是第一個矩陣嗎?和第二個?我應該修改什麼? –