块向量

实现一个通用的“块向量”

pyomo.contrib.pynumero.sparse.block_vector 模块包含了一些方法,这些方法扩展了 numpy 中的线性代数操作,适用于具有固有块结构的结构化问题。此接口考虑以下形式的向量:

\[v = [v_1, v_2, v_3, ... , v_n]\]

其中 v_i 是维度为1的numpy数组

目录

特定于BlockVector的方法:

特定于BlockVector的属性:

NumPy 兼容方法:

例如,

>>> import numpy as np
>>> from pyomo.contrib.pynumero.sparse import BlockVector
>>> v = BlockVector(2)
>>> v.set_block(0, np.random.normal(size=100))
>>> v.set_block(1, np.random.normal(size=30))
>>> avg = v.mean()

NumPy 兼容函数:

  • log10()

  • sin()

  • cos()

  • exp()

  • ceil()

  • floor()

  • tan()

  • arctan()

  • arcsin()

  • arccos()

  • sinh()

  • cosh()

  • abs()

  • tanh()

  • arccosh()

  • arcsinh()

  • arctanh()

  • fabs()

  • sqrt()

  • log()

  • log2()

  • absolute()

  • isfinite()

  • isinf()

  • isnan()

  • log1p()

  • logical_not()

  • expm1()

  • exp2()

  • sign()

  • rint()

  • square()

  • positive()

  • negative()

  • rad2deg()

  • deg2rad()

  • conjugate()

  • reciprocal()

  • signbit()

  • add()

  • multiply()

  • divide()

  • subtract()

  • greater()

  • greater_equal()

  • less()

  • less_equal()

  • not_equal()

  • maximum()

  • minimum()

  • fmax()

  • fmin()

  • equal()

  • logical_and()

  • logical_or()

  • logical_xor()

  • logaddexp()

  • logaddexp2()

  • remainder()

  • heaviside()

  • hypot()

例如,

>>> import numpy as np
>>> from pyomo.contrib.pynumero.sparse import BlockVector
>>> v = BlockVector(2)
>>> v.set_block(0, np.random.normal(size=100))
>>> v.set_block(1, np.random.normal(size=30))
>>> inf_norm = np.max(np.abs(v))

BlockVector(nblocks)

结构化向量接口。

BlockVector.set_block(key, value)

设置一个块。

BlockVector.get_block(key)

访问一个块。

BlockVector.block_sizes([copy])

返回一个包含此BlockVector中各个块大小的1D数组

BlockVector.get_block_size(ndx)

BlockVector.is_block_defined(ndx)

BlockVector.copyfrom(other)

将其他向量的条目复制到此向量中

BlockVector.copyto(other)

将此BlockVector的条目复制到其他

BlockVector.copy_structure()

返回一个填充了零的BlockVector结构的副本

BlockVector.set_blocks(blocks)

以块为单位分配向量

BlockVector.pprint()

以漂亮的格式打印BlockVector

BlockVector.nblocks

返回块的数量。

BlockVector.bshape

返回此BlockVector中的块数,以元组形式表示。

BlockVector.has_none

指示此BlockVector是否有任何非零条目。

Classes

BlockVector(nblocks)

结构化向量接口。

异常

NotFullyDefinedBlockVectorError

Functions

assert_block_structure(vec)