Linear differential equation solver (lde.m)

solves a linear, first-order, vector differential equation
391 Downloads
Updated 15 Jun 2021

View License

lde.m solves linear, vector differential equations, including nonhomogeneous equations with functional coefficients. For a constant square matrix A, lde(A) is functionally equivalent to expm(A) (exponential matrix), although lde can be faster (for large matrices) and can exhibit better numerical accuracy (e.g. by a factor of 10^-15 in one test case). Relative to MATLAB's ordinary differential solvers (e.g. ode45), an advantage of lde is that it can simultaneously obtain all independent solutions of a homogeneous differential equation, or can simultaneously process multiple forcing functions for a nonhomogeneous equation. A live script demo is included showing several practical applications: (1) exponential matrix, (2) resonantly forced harmonic oscillator, (3) harmonic oscillator with variable mass ("leaky bucket on a spring"), (4) Airy functions, and (5) Scorer functions.

Cite As

Kenneth Johnson (2024). Linear differential equation solver (lde.m) (https://www.mathworks.com/matlabcentral/fileexchange/60475-linear-differential-equation-solver-lde-m), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2016b
Compatible with any release
Platform Compatibility
Windows macOS Linux
Categories
Find more on Numerical Integration and Differential Equations in Help Center and MATLAB Answers
Acknowledgements

Inspired: pageexpm

Community Treasure Hunt

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

Start Hunting!

Version Published Release Notes
1.6.1

- Re-ran lde_demo.mlx with R2021a and newer computer (6-core Xeon processor, 3.6GHz, 15MB cache; 128 GB RAM, 2400 MHz).
- Fixed legend problem in lde_demo.mlx, third figure.

1.6.0.1

spelling correction in Description

1.6.0.0

Updated documentation citation in lde.m comments.
Revised local function getPadeCoef in lde.m.

1.5.0.0

Fixed handling of 'MATLAB:nearlySingularMatrix' (missing lastwarn(''), corrected commentary explanantion).

1.4.0.0

12/21/2016 Algorithm runtime is improved. This version should now be stable.
12/21/2016(b) minor fixes in comments, spelling

1.3.0.0

12/19/2016 update: Further improvments to error/tolerance analysis
12/19/2016 update: Further improvements to error/tolerance analysis

1.2.0.0

12/16/2016 update: Improved error/tolerance analysis

1.1.0.0

2016/12/13 update: more robust error/tolerance control

1.0.0.0