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