aboutsummaryrefslogtreecommitdiff
path: root/src/algebra/odeef.spad.pamphlet
diff options
context:
space:
mode:
Diffstat (limited to 'src/algebra/odeef.spad.pamphlet')
-rw-r--r--src/algebra/odeef.spad.pamphlet12
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])