diff options
Diffstat (limited to 'src/algebra/odeef.spad.pamphlet')
-rw-r--r-- | src/algebra/odeef.spad.pamphlet | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/src/algebra/odeef.spad.pamphlet b/src/algebra/odeef.spad.pamphlet index e33f827e..9795f76d 100644 --- a/src/algebra/odeef.spad.pamphlet +++ b/src/algebra/odeef.spad.pamphlet @@ -191,8 +191,7 @@ ElementaryFunctionLODESolver(R, F, L): Exports == Implementation where [u::F, bas] lastChance(op, g, x) == --- one? degree op => firstOrder(coefficient(op,0), leadingCoefficient op,g,x) - (degree op) = 1 => firstOrder(coefficient(op,0), leadingCoefficient op,g,x) + one? degree op => firstOrder(coefficient(op,0), leadingCoefficient op,g,x) "failed" -- solves a0 y + a1 y' = g @@ -224,8 +223,7 @@ ElementaryFunctionLODESolver(R, F, L): Exports == Implementation where a expsols(op, k, x) == --- one? degree op => - (degree op) = 1 => + one? degree op => firstOrder(multivariate(coefficient(op, 0), k), multivariate(leadingCoefficient op, k), 0, x).basis [xpart(expint(multivariate(h, k), x), x) for h in ricDsolve(op, ffactor)] @@ -249,8 +247,7 @@ ElementaryFunctionLODESolver(R, F, L): Exports == Implementation where -- if the coefficients are rational functions, then the equation does not -- not have a proper 1st-order right factor over the rational functions norf1(op, k, x, n) == --- one? n => firstOrder(coefficient(op, 0), leadingCoefficient op,0,x).basis - (n = 1) => firstOrder(coefficient(op, 0), leadingCoefficient op,0,x).basis + one? n => firstOrder(coefficient(op, 0), leadingCoefficient op,0,x).basis -- for order > 2, we check that the coeffs are still rational functions symbolIfCan(kmax vark(coefficients op, x)) case SY => eq := ulodo(op, k) @@ -466,8 +463,7 @@ ElementaryFunctionODESolver(R, F): Exports == Implementation where a := rhs center kx:K := kernel(x := retract(lhs(center))@SY) (ur := parseODE(diffeq, y, x)) case NLQ => --- not one?(#y0) => error "solve: more than one initial condition!" - not ((#y0) = 1) => error "solve: more than one initial condition!" + not one?(#y0) => error "solve: more than one initial condition!" rc := ur::NLQ (u := solve(rc.dx, rc.dy, y, x)) case "failed" => "failed" u::F - eval(u::F, [kx, retract(y(x::F))@K], [a, first y0]) |