See http://www.salome-platform.org/
-In addition, we require that all publication or presentation describing
-work using this software, or all commercial or not products using it,
-quote at least one of the references given below:
+In addition, it is requested that any publication or presentation describing
+work using this module, or any commercial or non-commercial product using it,
+cite at least one of at least one of the references below with the current year
+added:
* *ADAO, a module for Data Assimilation and Optimization*,
http://www.salome-platform.org/
vZm = EZ.mean(axis=1, dtype=mfp).astype('float').reshape((__p,1))
#
mS = RIdemi @ EnsembleOfAnomalies( EZ, vZm, 1./math.sqrt(__m-1) )
+ mS = mS.reshape((-1,__m)) # Pour dimension 1
delta = RIdemi @ ( Ynpu - vZm )
mT = numpy.linalg.inv( numpy.identity(__m) + mS.T @ mS )
vw = mT @ mS.T @ delta
#--------------------------
if VariantM == "KalmanFilterFormula":
mS = RIdemi * EaHX / math.sqrt(__m-1)
+ mS = mS.reshape((-1,__m)) # Pour dimension 1
delta = RIdemi * ( Ynpu - Hfm )
mT = numpy.linalg.inv( numpy.identity(__m) + mS.T @ mS )
vw = mT @ mS.T @ delta
disp = False,
)
#
- Hto = EaHX.T @ (RI * EaHX)
+ Hto = EaHX.T @ (RI * EaHX).reshape((-1,__m))
Htb = (__m-1) * numpy.identity(__m)
Hta = Hto + Htb
#
disp = False,
)
#
- Hto = EaHX.T @ (RI * EaHX)
+ Hto = EaHX.T @ (RI * EaHX).reshape((-1,__m))
Htb = __m * \
( (1 + 1/__m + vw.T @ vw) * numpy.identity(__m) - 2 * vw @ vw.T ) \
/ (1 + 1/__m + vw.T @ vw)**2
disp = False,
)
#
- Hto = EaHX.T @ (RI * EaHX)
+ Hto = EaHX.T @ (RI * EaHX).reshape((-1,__m))
Htb = (__m+1) * \
( (1 + 1/__m + vw.T @ vw) * numpy.identity(__m) - 2 * vw @ vw.T ) \
/ (1 + 1/__m + vw.T @ vw)**2
disp = False,
)
#
- Hto = EaHX.T @ (RI * EaHX)
+ Hto = EaHX.T @ (RI * EaHX).reshape((-1,__m))
Htb = ((__m+1) / (__m-1)) * \
( (1 + 1/__m + vw.T @ vw / (__m-1)) * numpy.identity(__m) - 2 * vw @ vw.T / (__m-1) ) \
/ (1 + 1/__m + vw.T @ vw / (__m-1))**2
EaY = ( (HE2 - vy2) @ numpy.linalg.inv(Ta) ) / math.sqrt(__m-1)
#
GradJ = numpy.ravel(vw[:,None] - EaY.transpose() @ (RI * ( Ynpu - vy1 )))
- mH = numpy.identity(__m) + EaY.transpose() @ (RI * EaY)
+ mH = numpy.identity(__m) + EaY.transpose() @ (RI * EaY).reshape((-1,__m))
Deltaw = - numpy.linalg.solve(mH,GradJ)
#
vw = vw + Deltaw
EaY = ( (HE2 - vy2) @ numpy.linalg.inv(Ta) ) / math.sqrt(__m-1)
#
GradJ = numpy.ravel(vw[:,None] - EaY.transpose() @ (RI * ( Ynpu - vy2 )))
- mH = numpy.identity(__m) + EaY.transpose() @ (RI * EaY)
+ mH = numpy.identity(__m) + EaY.transpose() @ (RI * EaY).reshape((-1,__m))
Deltaw = - numpy.linalg.solve(mH,GradJ)
#
vw = vw + Deltaw