How to implement backward Euler's method?

192 次查看(过去 30 天)
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]

回答(1 个)

Dinesh Yadav
Dinesh Yadav 2019-11-27

类别

Help CenterFile Exchange 中查找有关 Mathematics 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by