|
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 |