Modeling ARMAC

[From Rupert Young (980822.1633 UT)]
Hi Bill,

Regarding your armac algorithm, in the documentation you have

        o(t) = SUM [e(t-tau)*f(tau)]

is this output (o) the output from the _error_ function or output from the
output function. I notice from your code (csys in ftaucont.c) that you return
this o times gain.

I also notice from your code (line 1115 in armft1.c) you pass into csys a gain
value of -0.0001. Does this incorporate a slowing factor, why is it negative ?

Bill Powers (980822.0900 MDT)

Rupert, I hope that you, Richard Kennaway, other British contacts, and
Wolfgang Zocher and his crowd in Germany will also obtain Vensim PLE and
join the project. I know all of you have done modeling, but the point will
be both to learn and to contribute to the teaching via explanations and
demonstration models that others can run.

I'm afraid I haven't had time to look into it or follow the posts due to
writing up and job interviews. Also I'm not sure my ancient PC (386, 16M ram,
80M hd) would be up to it. Any idea what the memory requirements are ?
Hopefully when I get a job, by the end of the year I'll be able to get a real
computer.

Regards,
Rupert

[From Bill Powers (980822.1118 MDT)]

Rupert Young (980822.1633 UT)--

Regarding your armac algorithm, in the documentation you have

       o(t) = SUM [e(t-tau)*f(tau)]

is this output (o) the output from the _error_ function or output from the
output function.

It's the output from the output function.

I notice from your code (csys in ftaucont.c) that you return
this o times gain.

That's just a scaling factor to adjust the speed of adaptation. If you make
this number very small, it takes a long time to build up an f(tau) table
with sufficiently large numbers in it.

I also notice from your code (line 1115 in armft1.c) you pass into csys a
gain value of -0.0001. Does this incorporate a slowing factor, why is it
negative ?

This is the gain in the correction loop of the A. C. algorithm. The larger
it is, the more correction is applied to f(tau) entries on each iteration.
This works with the next argument, the decay rate, to determine how large
the entries will ultimately get. If you let them get too large the
algorithm becomes unstable. The negative sign really determines whether the
f(tau) plot will have a peak pointing upward or downward -- I picked a sign
that made the peak go downward, to fit on the screen. Either way, the
correction converges to the right final values.

Also I'm not sure my ancient PC (386, 16M ram,
80M hd) would be up to it. Any idea what the memory requirements are ?
Hopefully when I get a job, by the end of the year I'll be able to get a
real computer.

That sounds like the best plan. I think your PC is probably too slow for
convenient operation. Good luck with the job-hunting.

Best,

Bill P.