#1236 closed defect (fixed)
BysMcmc: Error with Non Linear Filters and Transfer Functions
Reported by: | Pedro Gea | Owned by: | Víctor de Buen Remiro |
---|---|---|---|
Priority: | highest | Milestone: | Mantainance |
Component: | Kernel | Version: | head |
Severity: | blocker | Keywords: | |
Cc: | mafernandez@… |
Description
Se encuentran errores al utilizar funciones de transferencias con varios retardos junto a los filtros no lineales. Algo del tipo: (0.1+0.2*B) : FiltroNL(input)
El error que devuelve BSR es:
Warning: [1] <W>Imposible sumar dos matrices de dimensiones (365,1) y (0,0).</W> Warning: [2] <W>Imposible restar dos matrices de dimensiones (0,0) y (365,1).</W> ERROR: [1] No es posible aplicar * a matrices virtuales de dimensiones (365x365) (0x0)
Investigando un poco en el archivo _nonLinBlock.tol veo que el problema surje en la línea 98:
Matrix _.Z := _.W + _.Fi * omega;
porque, en mi caso, _.Fi
es 365x1 y omega
es 3x1.
Veo que _.Fi
tiene un tamaño inadecuado porque en la inicialización (línea 370) se le da un tamaño _.mx1:
Matrix _.Fi = Rand(_.m,1,0,0)
sin atender a las dimensiones de omega
.
Lo más extraño es que creo que esto se ha estado usando antes sin problemas.
Change History (5)
comment:1 Changed 14 years ago by
comment:2 Changed 14 years ago by
Cc: | mafernandez@… added |
---|---|
Status: | new → accepted |
El problema parece estar arreglado en el nuevo paquete BysMcmc.4.5
Respecto a que antes funcionara supongo que será por algún cambio que ha habido en las rutinas de inicialización del master de BSR.
Una vez que pasa por @BlockNonLin::useStore
ya se queda bien dimensionado tras ejecutar la sentencia
Matrix _.Fi := _.filter::eval(VMat2Mat(_.store));
Es posible que en versiones pasadas se llamara antes de hora y los dos errores se anularan
comment:3 Changed 14 years ago by
Resolution: | → fixed |
---|---|
Status: | accepted → closed |
(In [3611]) Refs #1236