MathGroup Archive 1995

[Date Index] [Thread Index] [Author Index]

Search the Archive

ExactModeling Package

Dear reader,

I'm working in the field of (exact) modeling investigating the usability of
a recursive algorithm if applied to experimental data.
I think my implementation is more or less complete and might be useful for
others. I therefore release it to the public domain. You're invited to
download it by anonymous ftp (submission to MathSource is under way):

There are two files available at the moment:

ExactModeling.m         the algorithm implemented as a Mathematica package       (very) short introduction

Whole documentation is still under developement!

(In case of troubles try the following address:

I would appreciate to get feedback. Being what can be done better, wether
you like it, bug reports and especially if somebody can use it and what for
;-) !

Below I included the introduction (from

Thank you for your interest.
With kind regards

Martin Rickli                           E-mail: Rickli at
Automatic Control Laboratory
ETH Zurich                              Physikstr. 3, ETL K12
CH-8092 Zurich,  Switzerland

Excerpt from

You should be familiar with theory of exact modeling and the behavior framework
 Have a look at following references (and the references therein):

A. C. Antoulas, J. C. Willems: A Behavioral Approach to Linear Exact
Modeling; TAC 38-12 (Dez. 93)

J. C. Willems: From Time Series To Linear Systems; Automatica; Part I 22-5;
Part II 22-6; Part III 23-1

Short overview:

Given vector-valued data
  w(t) = (p0 + p1 t + p2 t^2 + ... + pk t^k ) exp(lambda t)
find the operator Theta(d/dt), such that
  Theta(d/dt) w(t) = 0

lambda may be a complex number but Theta has only real valued coefficients.

The algorithm is recursive in processing the number of data and proceeds in
several steps

 Theta_new = Psort x Delta x Gamma x P x Theta_old

 It keeps track of controllable rows (rows of Theta that have full row rank
for all values of the indeterminate).

(* late braking news from the author ... *)


*** ExactModeling 0.93b loaded.
    Author: M. Rickli, IfA, ETH Zurich   (Feb 95)

*** Usage Information:

ExactModeling implements algorithms for recursive exact modeling of
   polynomial exponential time series (using approximate numbers).

TF2Theta[lam,tf,var,opts] finds a model theta explaining tf at
   frequencies lam.
   tf can be a pure function or an expression
   in var (MIMO supported).

RatInt[lam,zlam,nout,(var)] returns the MPUM thnew  which
   corresponds to (frequency response) measurements {lam,zlam}.

   nout equals number of output signals. zlam must be a matrix
   #col(zlam)  = #inputs;
   #rows(zlam) = nout
   {Balance, Method, PrintFlag,
   PrintLevel, Sorting, VectorNorm, WorkingPrecision}

MarkovModel[data,var,opts] computes a model for given Markov
   parameters (impulse response data) 'data'.
   For SISO system
   'data' is a vector: {h(0),h(1),h(2), ..}
   For MIMO system
   'data' is a sequence of matrices: A(0),A(1),A(2), ..

CalculateError[th,p,lam,(var)] returns vector eps of error
   time-polynomials without factor Exp[lam t].
   Data:  w(t) =
   p(t) Exp[lam t]
   Error: e(t) = Theta(d/dt) w(t) = eps Exp[lam

   Time variable must be 't'

ProcessNewMeasurement[th,data,lam,(var),options] returns matrices
   P, gamma, Psort and thnew which 'update' the MPUM 'th' with new
   measurement 'data' to thnew.
   Aliases: PNM

  • Prev by Date: Re: Vote YES YES YES!
  • Next by Date: suggestions?
  • Previous by thread: Re: Vote YES YES YES!
  • Next by thread: suggestions?