Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

New to MATLAB?

Tridiagonal matrix (thomas algorithm)

Asked by Mehmet

Mehmet (view profile)

on 11 Mar 2011

hi.

i want to solve a second order, homogeneous differential equation by using tridiagonal matrix. can u help me?

example: http://img846.imageshack.us/i/diffeq.jpg/

so, i want only a general matlab code to solve like this equation.

because i am using "finite difference method"

0 Comments

Mehmet

Mehmet (view profile)

Products

No products are associated with this question.

1 Answer

Answer by John D'Errico

John D'Errico (view profile)

on 11 Mar 2011

Why not just build it as a sparse matrix using spdiags, then solve using backslash? It will be quite fast for a tridiagonal matrix, and you won't need to write any solver at all.

For example, I won't bother to do more than create a random tridiagonal matrix, rather than building one directly from your equation, but the time is all that matters.

n = 100000;
A = spdiags(rand(n,3),-1:1,n,n);
b = rand(n,1);
tic,x = A\b;toc
Elapsed time is 0.023090 seconds.

So to solve a system with 1e5 unknowns took me .023 seconds, with virtually NO time invested to write anything.

2 Comments

Mehmet

Mehmet (view profile)

on 11 Mar 2011

i am very new on matlab and didnt understood anything from your answer. But thank for your answer.i dont know anything about backslash.

i need only general example code (a basic application) like my differential equation.this example should solve second order, homogeneous diff eq. i think it was been solved by using "thomas algorithm" but if there another solution you can give me as .m file. i need this solution immediately.
thank for all John

John D'Errico

John D'Errico (view profile)

on 11 Mar 2011

I gave you the solution as m-code. If you don't understand it, then it is high time to start reading the tutorials. Read the help for slash, or for linsolve, and for spdiags.

John D'Errico

John D'Errico (view profile)

Contact us