How to implement backward Euler's method?
Afficher commentaires plus anciens
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]
Réponses (1)
Dinesh Yadav
le 27 Nov 2019
1 vote
Hi,
Kindly go through the following existing posts for backward euler method.
Hope it helps.
Catégories
En savoir plus sur Creating and Concatenating Matrices 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!