|
|
last edited 17 years ago |
1 2 3 | ||
Editor: 127.0.0.1
Time: 2007/11/06 21:01:40 GMT-8 |
||
Note: copied from axiom-developer |
changed: - Here is a simple implemention of a recurrence relation operator. It is far from finished, but might serve as a starting point. I experienced the following difficulties: - The operator model in Axiom is quite restrictive: all arguments have to be from the same domain. This leads to problems elsewhere, too. I don't think that the following can be justified mathematically: \begin{axiom} sum(k,k=1.0..2.5) \end{axiom} - dummy variables are only supported in a very limited fashion: for the recurrence relation operator it would be good to have also "dummy operators"... Things to do: - a proper operation analogous to 'sum', 'rootOf' or the like needs to be written. The operation 'evalRec' is just for a start - 'evalRec' needs to be speeded up - 'evalADE' doesn't really work concerning evaluation The pamphlet is [rec.spad.pamphlet] and the source is [rec.spad]. Here is an example: \begin{axiom} )lib RECOP dummy := new()$Symbol; f := operator 'f; eq := f(dummy) - f(dummy - 1) - f(dummy - 2); r:=evalRec(f, dummy, n, n0, eq, [1,1])$RecurrenceOperator(Integer, Expression Integer) [eval(r, n0=k) for k in 0..10] \end{axiom}
Here is a simple implemention of a recurrence relation operator. It is far from finished, but might serve as a starting point. I experienced the following difficulties:
axiomsum(k,k=1.0..2.5)
![]() | (1) |
sum
, rootOf
or the like needs to be written.
The operation evalRec
is just for a startevalRec
needs to be speeded upevalADE
doesn't really work concerning evaluationThe pamphlet is [rec.spad.pamphlet]? and the source is [rec.spad]?.
Here is an example:
axiom)lib RECOP )library cannot find the file RECOP. dummy := new()$Symbol;
axiomf := operator 'f;
axiomeq := f(dummy) - f(dummy - 1) - f(dummy - 2);
axiomr:=evalRec(f, dummy, n, n0, eq, [1,1])$RecurrenceOperator(Integer, Expression Integer) Category, domain or package constructor RecurrenceOperator is not available. [eval(r, n0=k) for k in 0..10]
![]() | (2) |