odeef.spad line 1 [edit on github]
SystemODESolver provides tools for triangulating and solving some systems of linear ordinary differential equations.
solve(m, lv, solve)
is a parametric version of solve(m
, v
, solve)
solve(m, v, solve)
returns [v_p, bm]
such that the solutions in F
of the system D x = m x + v
are v_p + c_1 v_1 + ... + c_m v_m
where the c_i's
are constants, and the v_i's
are columns of bm
and form a basis for the solutions of D x = m x
. Argument solve
is a function for solving a single linear ordinary differential equation in F
.
solveInField(m, lv, solve)
is a parametric version of solveInField(m
, v
, solve)
solveInField(m, v, solve)
returns [[v_1, ..., v_m], v_p]
such that the solutions in F
of the system m x = v
are v_p + c_1 v_1 + ... + c_m v_m
where the c_i's
are constants, and the v_i's
form a basis for the solutions of m x = 0
. Argument solve
is a function for solving a single linear ordinary differential equation in F
.
triangulate(M, v)
returns A, [[C_1, g_1, L_1, h_1], ..., [C_k, g_k, L_k, h_k]]
such that under the change of variable y = A z
, the first order linear system D y = M y + v
is uncoupled as D z_i = C_i z_i + g_i
and each C_i
is a companion matrix corresponding to the scalar equation L_i z_j = h_i
.
triangulate(A, lv)
is a parametric version of triangulate(A, v
).
triangulate(m, v)
returns [m_0, v_0]
such that m_0
is upper triangular and the system m_0 x = v_0
is equivalent to m x = v
.
triangulate(m, [v1, ..., vn])
returns [m_0, [w1, ..., wn]]
such that for any constant c1, ..., cn
the system m_0 x = c1*w1 + ... + cn*wn
is equivalent to to m x = c1*v1 + ... + cn*vn