2016-04-26 4 views
0

Ich habe die nächste Frage, wie man eine Matrix mit spezifischen Werten baut, wobei man weiß, dass die Größe der Matrix NxN ist.Wie erzeuge ich eine Matrix in Matlab mit den nächsten Werten?

Here is my question

Ich habe sein mit dem nächsten Code versuchen:

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); 

Aber wie Sie es sehen können, nicht der benötigten Wert in (1,1) und (N, N) ist, Wie kann ich diese spezifischen Matrizen erstellen? Wie wäre der Code dafür in MATLAB?

Antwort

0

spdiags ist der Weg zu gehen,

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

, die für die erste Matrix ist richtig? und für den zweiten? Was soll ich ändern? –

Verwandte Themen