mpc/gpc_ex11.py
changeset 0 0efde00f9229
equal deleted inserted replaced
-1:000000000000 0:0efde00f9229
       
     1 #!/usr/bin/env python
       
     2 # 12.1
       
     3 # Camacho and Bordon's GPC example; model formation
       
     4 import os, sys
       
     5 sys.path += [os.getcwdu() + os.sep + ".." + os.sep + "python"]
       
     6 
       
     7 import pylab as pl
       
     8 from xdync import xdync
       
     9 from polyfuncs import polmul
       
    10 
       
    11 A, dA = pl.array([1, -0.8]), 1
       
    12 B, dB = pl.array([0.4, 0.6]), 1
       
    13 N=3
       
    14 k=1
       
    15 D, dD = pl.array([1, -1]), 1
       
    16 AD, dAD = pl.convolve(A,D), dA+1
       
    17 Nu = N+k
       
    18 zj, dzj = 1, 0
       
    19 G = pl.zeros((Nu, 1))
       
    20 H1 = pl.zeros((Nu, k-1+dB))
       
    21 H2 = pl.zeros((Nu, dA+1))
       
    22 
       
    23 for j in range(Nu):
       
    24     zj = pl.convolve(zj, [0,1])
       
    25     dzj = dzj + 1
       
    26     Fj, dFj, Ej, dEj = xdync(zj, dzj, AD, dAD, 1, 0)[:4]
       
    27     Gj, dGj = polmul(B, dB, Ej, dEj)
       
    28     m, n = G.shape
       
    29     G = pl.column_stack((G, pl.zeros((m, dGj-n))))
       
    30     G[j, :dGj] = Gj[dGj-1::-1]
       
    31     H1[j,:k-1+dB] = Gj[dGj:dGj+k-1+dB]
       
    32     H2[j,0:dA+1] = Fj
       
    33 
       
    34 print "G"
       
    35 print G
       
    36 print "H1"
       
    37 print H1
       
    38 print "H2"
       
    39 print H2