How to implement backward Euler's method?

I am trying to implement these formulas:
Forward Euler's method:
this is what I have tried:
x_new = (speye(nv)+ dt * lambda * L) * x_old;
Is there anything wrong with this? How can I calculate this using sparse operation?
Backward Euler's method:
I have tried this:
x_new = (speye(nv)- dt * lambda * L) \ x_old;
How to implement the backward part where the existing x is calculated based on the new x? Is it OK to use division?
=============================================================================
L is a sparse matrix like this:
full(L) =
-1.0000 0.2500 0.2500 0.2500 0.2500
0.3333 -1.0000 0.3333 0 0.3333
0.3333 0.3333 -1.0000 0.3333 0
0.3333 0 0.3333 -1.0000 0.3333
0.3333 0.3333 0 0.3333 -1.0000
also for other variable we have something like this:
nv = 5;
dt = 0.01;
lambda = 0.5;
x_old = [-4 0 5;
1 -5 5;
1 0 1;
1 5 5;
1 0 0]

Catégories

En savoir plus sur Loops and Conditional Statements dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by