Creating a sparse tridiagonal matrix (for 2D finite difference second order Laplacian)

6 visualizzazioni (ultimi 30 giorni)
Hi,
I'm trying to solve a 2D finite difference problem. I simplified the problem to solving a Ax = B equation. My issue is building the A matrix in Matlab rapidly.
The matrix I need to create is a sparce matrix with 5 diagonal lines. Also, at some lines, the whole line will be filled with 0 except for a 1 at the diagonal for my Dirichlet condition.
How can I write it in Matlab so it can create this matrix rapidly? I'm simulating a 400x400 environment which means a 16000x16000 sparce matrix.
Let's say A is my sparce matrix, is there a way I can call my diagonal matrix with a vector? Like A(1:5) would select the 5 first diagonal values and the same for not centered diagonal.

Risposta accettata

msaitta
msaitta il 16 Ago 2018
spdiags will do all of those things for you.

Più risposte (0)

Categorie

Scopri di più su Operating on Diagonal Matrices in Help Center e File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by