diff -r 000000000000 -r 0efde00f9229 mpc/gpc_ex11.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mpc/gpc_ex11.py Fri May 27 14:24:59 2011 +0530 @@ -0,0 +1,39 @@ +#!/usr/bin/env python +# 12.1 +# Camacho and Bordon's GPC example; model formation +import os, sys +sys.path += [os.getcwdu() + os.sep + ".." + os.sep + "python"] + +import pylab as pl +from xdync import xdync +from polyfuncs import polmul + +A, dA = pl.array([1, -0.8]), 1 +B, dB = pl.array([0.4, 0.6]), 1 +N=3 +k=1 +D, dD = pl.array([1, -1]), 1 +AD, dAD = pl.convolve(A,D), dA+1 +Nu = N+k +zj, dzj = 1, 0 +G = pl.zeros((Nu, 1)) +H1 = pl.zeros((Nu, k-1+dB)) +H2 = pl.zeros((Nu, dA+1)) + +for j in range(Nu): + zj = pl.convolve(zj, [0,1]) + dzj = dzj + 1 + Fj, dFj, Ej, dEj = xdync(zj, dzj, AD, dAD, 1, 0)[:4] + Gj, dGj = polmul(B, dB, Ej, dEj) + m, n = G.shape + G = pl.column_stack((G, pl.zeros((m, dGj-n)))) + G[j, :dGj] = Gj[dGj-1::-1] + H1[j,:k-1+dB] = Gj[dGj:dGj+k-1+dB] + H2[j,0:dA+1] = Fj + +print "G" +print G +print "H1" +print H1 +print "H2" +print H2