Exemplo n.º 1
0
def solve_Ab(A, b, squeeze=True):
    AA, bb = make_same_dims(A, b)
    x = np.linalg.solve(AA, bb)
    result = hfarray(x, dims=bb.dims)
    if squeeze:
        result = result.squeeze()
    return result
Exemplo n.º 2
0
def delay(freq, var):
    r"""Berakna grupploptid :math:`\tau=-\frac{d\varphi}{d\omega}` for data

    Invariabler

        *freq*
            frekvenser som *var* galler for

        *var*
            komplexa data som skall anvandas i berakningen

    Resultat (f,tau)

        *f*
            frekvenserna som motsvarar mittpunkter i *freq*

        *tau*
            beraknad grupploptid med hjalp av mittpunkts approximation for
            derivatan

   >>> x=hfarray(np.arange(0,10.))
   >>> y=hfarray(np.exp(-2j*np.pi*x/10))
   >>> f,tau=delay(x,y)
   >>> f
   hfarray([ 0.5,  1.5,  2.5,  3.5,  4.5,  5.5,  6.5,  7.5,  8.5])
   >>> tau
   hfarray([ 0.1,  0.1,  0.1,  0.1,  0.1,  0.1,  0.1,  0.1,  0.1])

    """
    freq, var = make_same_dims(freq, var)
    f_mean = (freq[:-1] + freq[1:]) / 2
    domega = (2 * pi * (freq[:-1] - freq[1:]))
    dfi = angle(var[1:] / var[:-1])
    return (f_mean, dfi / domega)
Exemplo n.º 3
0
def delay(freq, var):
    r"""Berakna grupploptid :math:`\tau=-\frac{d\varphi}{d\omega}` for data

    Invariabler

        *freq*
            frekvenser som *var* galler for

        *var*
            komplexa data som skall anvandas i berakningen

    Resultat (f,tau)

        *f*
            frekvenserna som motsvarar mittpunkter i *freq*

        *tau*
            beraknad grupploptid med hjalp av mittpunkts approximation for
            derivatan

   >>> x=hfarray(np.arange(0,10.))
   >>> y=hfarray(np.exp(-2j*np.pi*x/10))
   >>> f,tau=delay(x,y)
   >>> f
   hfarray([ 0.5,  1.5,  2.5,  3.5,  4.5,  5.5,  6.5,  7.5,  8.5])
   >>> tau
   hfarray([ 0.1,  0.1,  0.1,  0.1,  0.1,  0.1,  0.1,  0.1,  0.1])

    """
    freq, var = make_same_dims(freq, var)
    f_mean = (freq[:-1] + freq[1:]) / 2
    domega = (2 * pi * (freq[:-1] - freq[1:]))
    dfi = angle(var[1:] / var[:-1])
    return (f_mean, dfi / domega)
Exemplo n.º 4
0
def solve_Ab(A, b, squeeze=True):
    AA, bb = make_same_dims(A, b)
    x = np.linalg.solve(AA, bb)
    result = hfarray(x, dims=bb.dims)
    if squeeze:
        result = result.squeeze()
    return result
Exemplo n.º 5
0
def matrix_multiply(a, b):
    """Multiply arrays of matrices.

    a and b are hfarrays containing dimensions DimMatrix_i and DimMatrix_j.
    Matrix multiplication is done by broadcasting the other dimensions first.
    """
    A, B = make_same_dims(a, b)
    res = np.einsum("...ij,...jk->...ik", A, B)
    return hfarray(res, dims=A.dims)
Exemplo n.º 6
0
def matrix_multiply(a, b):
    """Multiply arrays of matrices.

    a and b are hfarrays containing dimensions DimMatrix_i and DimMatrix_j.
    Matrix multiplication is done by broadcasting the other dimensions first.
    """
    A, B = make_same_dims(a, b)
    res = np.einsum("...ij,...jk->...ik", A, B)
    return hfarray(res, dims=A.dims)
Exemplo n.º 7
0
 def test_4(self):
     a, b = aobj.make_same_dims(self.a, np.array(self.a))
     self.assertEqual(a.dims, b.dims)
     self.assertEqual(a.dims, (ds.DiagAxis("f", 3), ))
Exemplo n.º 8
0
 def test_3(self):
     b, a = aobj.make_same_dims(self.b, self.a)
     self.assertEqual(a.dims, b.dims)
     self.assertEqual(a.dims, (ds.DiagAxis("f", 3), ds.DiagAxis("p", 3),))
Exemplo n.º 9
0
 def test_2(self):
     a, b = aobj.make_same_dims(self.a, self.b)
     self.assertEqual(a.dims, b.dims)
     self.assertEqual(a.dims, (ds.DiagAxis("f", 3), ds.DiagAxis("p", 3),))
Exemplo n.º 10
0
 def test_1(self):
     a, b = aobj.make_same_dims(self.a, self.a)
     self.assertEqual(a.dims, b.dims)