类 ArrayRealVector
java.lang.Object
org.hipparchus.linear.RealVector
org.hipparchus.linear.ArrayRealVector
- 所有已实现的接口:
-
Serializable
This class implements the
RealVector interface with a double array.
- 另请参阅:
-
嵌套类概要
从类继承的嵌套类/接口 org.hipparchus.linear.RealVector
RealVector.Entry, RealVector.SparseEntryIterator -
构造器概要
构造器构造器说明构建一个长度为0的向量。ArrayRealVector(double[] d) 从数组构造向量,复制输入数组。ArrayRealVector(double[] d, boolean copyArray) 使用输入数组创建一个新的ArrayRealVector作为基础数据数组。ArrayRealVector(double[] v1, double[] v2) 通过将一个向量附加到另一个向量来构造一个向量。ArrayRealVector(double[] d, int pos, int size) 从数组的一部分构造向量。ArrayRealVector(double[] v1, ArrayRealVector v2) 通过将一个向量附加到另一个向量来构造一个向量。ArrayRealVector(int size) 构造一个零向量。ArrayRealVector(int size, double preset) 使用预设值构造一个向量。ArrayRealVector(Double[] d) 从数组构造一个向量。ArrayRealVector(Double[] d, int pos, int size) 从数组的一部分构造一个向量。从另一个向量构造一个向量,使用深拷贝。ArrayRealVector(ArrayRealVector v, boolean deep) 从另一个向量构造一个向量。ArrayRealVector(ArrayRealVector v1, double[] v2) 通过将一个向量附加到另一个向量来构造一个向量。通过将一个向量附加到另一个向量来构造一个向量。ArrayRealVector(ArrayRealVector v1, RealVector v2) 通过将一个向量附加到另一个向量来构造一个向量。从另一个向量构造一个向量,使用深拷贝。ArrayRealVector(RealVector v1, ArrayRealVector v2) 通过将一个向量附加到另一个向量来构造一个向量。 -
方法概要
修饰符和类型方法说明add(RealVector v) 计算此向量和v的和。voidaddToEntry(int index, double increment) 更改指定索引处的条目。append(double in) 通过将一个double附加到此向量来构造一个新向量。通过将一个向量附加到此向量来构造一个向量。append(RealVector v) 通过将一个向量附加到此向量来构造一个新向量。protected voidcheckVectorDimensions(int n) 检查实例维度是否等于某个预期值。protected void检查实例和指定向量是否具有相同的维度。combine(double a, double b, RealVector y) 返回一个新向量,表示a * this + b * y,即this和y的线性组合。combineToSelf(double a, double b, RealVector y) 更新this为this和y的线性组合。copy()返回此向量的(深)拷贝。double计算此向量与v的点积。逐元素除法。逐元素乘法。boolean测试两个实向量是否相等。double[]获取对基础数据数组的引用。int返回向量的大小。double两个向量之间的距离。doublegetEntry(int index) 返回指定索引处的条目。double两个向量之间的距离。double返回向量的L1范数。double两个向量之间的距离。double返回向量的L∞范数。doublegetNorm()返回向量的L2范数。getSubVector(int index, int n) 从连续元素中获取子向量。inthashCode().boolean检查此向量的任何坐标是否为无穷大且没有NaN。booleanisNaN()检查此向量的任何坐标是否为NaN。map(UnivariateFunction function) 作为实现的效果:mapAddToSelf(double d) 向每个条目添加一个值。mapDivideToSelf(double d) 将每个条目除以参数。mapMultiplyToSelf(double d) 乘以每个条目。mapSubtractToSelf(double d) 从每个条目中减去一个值。mapToSelf(UnivariateFunction function) 作为实现的效果:计算外积。voidset(double value) 将所有元素设置为单个值。voidsetEntry(int index, double value) 设置单个元素。voidsetSubVector(int index, double[] v) 设置一组连续元素。voidsetSubVector(int index, RealVector v) 设置一系列连续元素。从此向量中减去v。double[]toArray()将向量转换为double数组。toString()double以默认顺序(增加索引)访问(可能更改)此向量的所有条目。doublewalkInDefaultOrder(RealVectorChangingVisitor visitor, int start, int end) 以默认顺序(增加索引)访问(可能更改)此向量的一些条目。double以默认顺序(增加索引)访问(但不更改)此向量的所有条目。doublewalkInDefaultOrder(RealVectorPreservingVisitor visitor, int start, int end) 以默认顺序(增加索引)访问(但不更改)此向量的一些条目。double以优化顺序访问(可能更改)此向量的所有条目。doublewalkInOptimizedOrder(RealVectorChangingVisitor visitor, int start, int end) 以优化顺序访问(可能更改)此向量的一些条目。double以优化顺序访问(但不更改)此向量的所有条目。doublewalkInOptimizedOrder(RealVectorPreservingVisitor visitor, int start, int end) 以优化顺序访问(但不更改)此向量的一些条目。从类继承的方法 org.hipparchus.linear.RealVector
checkIndex, checkIndices, cosine, getMaxIndex, getMaxValue, getMinIndex, getMinValue, iterator, mapAdd, mapDivide, mapMultiply, mapSubtract, projection, sparseIterator, unitize, unitVector, unmodifiableRealVector
-
构造器详细资料
-
ArrayRealVector
public ArrayRealVector()构建一个长度为0的向量。长度为0的向量可用于通过数据收集初始化向量的构造。我们从长度为0开始,使用ArrayRealVector(ArrayRealVector, ArrayRealVector)构造函数或append方法之一(append(double)、append(ArrayRealVector))将数据收集到此向量中。 -
ArrayRealVector
public ArrayRealVector(int size) 构造一个零向量。- 参数:
-
size- 向量的大小。
-
ArrayRealVector
public ArrayRealVector(int size, double preset) 使用预设值构造一个向量。- 参数:
-
size- 向量的大小 -
preset- 所有条目将设置为此值。
-
ArrayRealVector
public ArrayRealVector(double[] d) 从数组复制输入数组构造一个向量。- 参数:
-
d- 数组。
-
ArrayRealVector
使用输入数组创建一个新的ArrayRealVector作为基础数据数组。如果为了嵌入在ArrayRealVector中而专门构建了一个数组,并且不直接使用,可以将copyArray设置为false。这将防止复制并提高性能,因为不会构建新数组,也不会复制数据。- 参数:
-
d- 新向量的数据。 -
copyArray- 如果为true,则将复制输入数组,否则将引用它。 - 抛出:
-
NullArgumentException- 如果d为null。 - 另请参阅:
-
ArrayRealVector
public ArrayRealVector(double[] d, int pos, int size) throws MathIllegalArgumentException, NullArgumentException 从数组的一部分构造一个向量。- 参数:
-
d- 数组。 -
pos- 第一个条目的位置。 -
size- 要复制的条目数。 - 抛出:
-
NullArgumentException- 如果d为null。 -
MathIllegalArgumentException- 如果d的大小小于pos + size。
-
ArrayRealVector
从数组构造一个向量。- 参数:
-
d-Double数组。
-
ArrayRealVector
public ArrayRealVector(Double[] d, int pos, int size) throws MathIllegalArgumentException, NullArgumentException 从数组的一部分构造一个向量。- 参数:
-
d- 数组。 -
pos- 第一个条目的位置。 -
size- 要复制的条目数。 - 抛出:
-
NullArgumentException- 如果d为null。 -
MathIllegalArgumentException- 如果d的大小小于pos + size。
-
ArrayRealVector
从另一个向量构造向量,使用深度复制。- 参数:
-
v- 要复制的向量。 - 抛出:
-
NullArgumentException- 如果v为null。
-
ArrayRealVector
从另一个向量构造向量,使用深度复制。- 参数:
-
v- 要复制的向量。 - 抛出:
-
NullArgumentException- 如果v为null。
-
ArrayRealVector
从另一个向量构造向量。- 参数:
-
v- 要复制的向量。 -
deep- 如果为true,执行深度复制,否则执行浅复制。
-
ArrayRealVector
通过将一个向量附加到另一个向量来构造向量。- 参数:
-
v1- 第一个向量(将放在新向量的前面)。 -
v2- 第二个向量(将放在新向量的后面)。
-
ArrayRealVector
通过将一个向量附加到另一个向量来构造向量。- 参数:
-
v1- 第一个向量(将放在新向量的前面)。 -
v2- 第二个向量(将放在新向量的后面)。
-
ArrayRealVector
通过将一个向量附加到另一个向量来构造向量。- 参数:
-
v1- 第一个向量(将放在新向量的前面)。 -
v2- 第二个向量(将放在新向量的后面)。
-
ArrayRealVector
通过将一个向量附加到另一个向量来构造向量。- 参数:
-
v1- 第一个向量(将放在新向量的前面)。 -
v2- 第二个向量(将放在新向量的后面)。
-
ArrayRealVector
通过将一个向量附加到另一个向量来构造向量。- 参数:
-
v1- 第一个向量(将放在新向量的前面)。 -
v2- 第二个向量(将放在新向量的后面)。
-
ArrayRealVector
public ArrayRealVector(double[] v1, double[] v2) 通过将一个向量附加到另一个向量来构造向量。- 参数:
-
v1- 第一个向量(将放在新向量的前面)。 -
v2- 第二个向量(将放在新向量的后面)。
-
-
方法详细资料
-
copy
返回此向量的(深度)复制。- 指定者:
-
copy在类中RealVector - 返回:
- 一个向量副本。
-
add
计算此向量与v的和。返回一个新向量。不更改实例数据。- 覆盖:
-
add在类中RealVector - 参数:
-
v- 要添加的向量。 - 返回:
-
this+v。 - 抛出:
-
MathIllegalArgumentException- 如果v与this向量的大小不同。
-
subtract
从此向量中减去v。返回一个新向量。不更改实例数据。- 覆盖:
-
subtract在类中RealVector - 参数:
-
v- 要减去的向量。 - 返回:
-
this-v。 - 抛出:
-
MathIllegalArgumentException- 如果v与this向量的大小不同。
-
map
作为实现方式:return copy().mapToSelf(function);
返回一个新向量。不更改实例数据。- 覆盖:
-
map在类中RealVector - 参数:
-
function- 要应用于每个条目的函数。 - 返回:
- 一个新向量。
-
mapToSelf
作为实现方式:Entry e = null; for(Iterator<Entry> it = iterator(); it.hasNext(); e = it.next()) { e.setValue(function.value(e.getValue())); }通过此方法,此向量的条目将被就地修改。- 覆盖:
-
mapToSelf在类中RealVector - 参数:
-
function- 要应用于每个条目的函数。 - 返回:
- 对此向量的引用。
-
mapAddToSelf
向每个条目添加一个值。实例将就地更改。- 覆盖:
-
mapAddToSelf在类中RealVector - 参数:
-
d- 要添加到每个条目的值。 - 返回:
-
this。
-
mapSubtractToSelf
从每个条目中减去一个值。实例将就地更改。- 覆盖:
-
mapSubtractToSelf在类中RealVector - 参数:
-
d- 要减去的值。 - 返回:
-
this。
-
mapMultiplyToSelf
将每个条目相乘。实例将就地更改。- 覆盖:
-
mapMultiplyToSelf在类中RealVector - 参数:
-
d- 乘法因子。 - 返回:
-
this。
-
mapDivideToSelf
将每个条目除以参数。实例将就地更改。- 覆盖:
-
mapDivideToSelf在类中RealVector - 参数:
-
d- 要除以的值。 - 返回:
-
this。
-
ebeMultiply
逐元素相乘。- 指定者:
-
ebeMultiply在类中RealVector - 参数:
-
v- 必须将实例元素乘以的向量 - 返回:
- 包含所有i的this[i] * v[i]的向量。
- 抛出:
-
MathIllegalArgumentException- 如果v与this向量的大小不同。
-
ebeDivide
逐元素相除。- 指定者:
-
ebeDivide在类中RealVector - 参数:
-
v- 必须将实例元素除以的向量。 - 返回:
- 包含所有i的this[i] / v[i]的向量。
- 抛出:
-
MathIllegalArgumentException- 如果v与this向量的大小不同。
-
getDataRef
public double[] getDataRef()获取对基础数据数组的引用。此方法不会对基础数据进行新鲜复制。- 返回:
- 条目数组。
-
dotProduct
计算此向量与v的点积。- 覆盖:
-
dotProduct在类中RealVector - 参数:
-
v- 应计算点积的向量 - 返回:
-
此实例与
v之间的标量点积。 - 抛出:
-
MathIllegalArgumentException- 如果v与this向量的大小不同。
-
getNorm
public double getNorm()返回向量的L2范数。L2范数是平方元素和的平方根。
- 覆盖:
-
getNorm在类中RealVector - 返回:
- 范数。
- 另请参阅:
-
getL1Norm
public double getL1Norm()返回向量的L1范数。L1范数是元素绝对值的总和。
- 覆盖:
-
getL1Norm在类中RealVector - 返回:
- 范数。
- 另请参阅:
-
getLInfNorm
public double getLInfNorm()返回向量的L∞范数。L∞范数是元素绝对值的最大值。
- 覆盖:
-
getLInfNorm在类中RealVector - 返回:
- 范数。
- 另请参阅:
-
getDistance
两个向量之间的距离。此方法计算与L2范数一致的距离,即元素差的平方和的平方根,或欧几里德距离。
- 覆盖:
-
getDistance在类中RealVector - 参数:
-
v- 请求距离的向量。 - 返回:
- 两个向量之间的距离。
- 抛出:
-
MathIllegalArgumentException- 如果v与this向量的大小不同。 - 另请参阅:
-
getL1Distance
两个向量之间的距离。此方法计算与L1范数一致的距离,即元素差的绝对值之和。
- 覆盖:
-
getL1Distance在类中RealVector - 参数:
-
v- 请求距离的向量。 - 返回:
- 两个向量之间的距离。
- 抛出:
-
MathIllegalArgumentException- 如果v与this向量的大小不同。
-
getLInfDistance
两个向量之间的距离。此方法计算与L∞范数一致的距离,即元素差的绝对值的最大值。
- 覆盖:
-
getLInfDistance在类中RealVector - 参数:
-
v- 请求距离的向量。 - 返回:
- 两个向量之间的距离。
- 抛出:
-
MathIllegalArgumentException- 如果v与this向量的大小不同。 - 另请参阅:
-
outerProduct
计算外积。- 覆盖:
-
outerProduct在类中RealVector - 参数:
-
v- 用于计算外积的向量。 - 返回:
-
此实例与
v之间的矩阵外积。
-
getEntry
返回指定索引处的条目。- 指定者:
-
getEntry在类中RealVector - 参数:
-
index- 要获取的条目的索引位置。 - 返回:
-
索引
index处的向量条目。 - 抛出:
-
MathIllegalArgumentException- 如果索引无效。 - 另请参阅:
-
getDimension
public int getDimension()返回向量的大小。- 指定者:
-
getDimension在类中RealVector - 返回:
- 此向量的大小。
-
append
通过将一个向量附加到此向量来构造一个新向量。- 指定者:
-
append在类中RealVector - 参数:
-
v- 要附加到此向量的向量。 - 返回:
- 一个新向量。
-
append
通过将一个向量附加到此向量来构造一个向量。- 参数:
-
v- 要附加到此向量的向量。 - 返回:
- 一个新向量。
-
append
通过将一个double附加到此向量来构造一个新向量。- 指定者:
-
append在类中RealVector - 参数:
-
in- 要附加的double值。 - 返回:
- 一个新向量。
-
getSubVector
获取连续元素的子向量。- 指定者:
-
getSubVector在类中RealVector - 参数:
-
index- 第一个元素的索引。 -
n- 要检索的元素数量。 - 返回:
- 包含n个元素的向量。
- 抛出:
-
MathIllegalArgumentException- 如果索引无效。 -
MathIllegalArgumentException- 如果元素数量不是正数。
-
setEntry
设置单个元素。- 指定者:
-
setEntry在类中RealVector - 参数:
-
index- 元素索引。 -
value- 元素的新值。 - 抛出:
-
MathIllegalArgumentException- 如果索引无效。 - 另请参阅:
-
addToEntry
更改指定索引处的条目。- 覆盖:
-
addToEntry在类中RealVector - 参数:
-
index- 要设置的条目的索引位置。 -
increment- 要添加到向量条目的值。 - 抛出:
-
MathIllegalArgumentException- 如果索引无效。
-
setSubVector
设置一系列连续元素。- 指定者:
-
setSubVector在类中RealVector - 参数:
-
index- 要设置的第一个元素的索引。 -
v- 包含要设置的值的向量。 - 抛出:
-
MathIllegalArgumentException- 如果索引无效。
-
setSubVector
设置一组连续元素。- 参数:
-
index- Index of first element to be set. -
v- Vector containing the values to set. - 抛出:
-
MathIllegalArgumentException- if the index is inconsistent with the vector size.
-
set
public void set(double value) Set all elements to a single value.- 覆盖:
-
set在类中RealVector - 参数:
-
value- 设置所有元素的单个值。
-
toArray
public double[] toArray()将向量转换为double数组。该数组与此向量数据独立:元素被复制。- 覆盖:
-
toArray在类中RealVector - 返回:
- 包含向量元素副本的数组。
-
toString
-
checkVectorDimensions
检查实例和指定向量是否具有相同的维度。- 覆盖:
-
checkVectorDimensions在类中RealVector - 参数:
-
v- 用于比较实例的向量。 - 抛出:
-
MathIllegalArgumentException- 如果向量的维度不相同。
-
checkVectorDimensions
检查实例维度是否等于某个预期值。- 覆盖:
-
checkVectorDimensions在类中RealVector - 参数:
-
n- 预期维度。 - 抛出:
-
MathIllegalArgumentException- 如果维度与向量大小不一致。
-
isNaN
public boolean isNaN()检查此向量的任何坐标是否为NaN。- 指定者:
-
isNaN在类中RealVector - 返回:
-
如果此向量的任何坐标为
NaN,则返回true,否则返回false。
-
isInfinite
public boolean isInfinite()检查此向量的任何坐标是否为无穷大且没有NaN。- 指定者:
-
isInfinite在类中RealVector - 返回:
-
如果此向量的任何坐标为无穷大且没有
NaN,则返回true,否则返回false。
-
equals
测试两个实向量是否相等。如果两个实向量的所有坐标完全相同,并且没有
NaN,则认为两个实向量相等。将NaN坐标视为全局影响向量并相互相等 - 即,如果实向量的任何坐标(或所有坐标)等于NaN,则该实向量等于所有NaN坐标的向量。此方法必须由
RealVector的具体子类覆盖(当前实现会抛出异常)。- 覆盖:
-
equals在类中RealVector - 参数:
-
other- 用于测试相等性的对象。 - 返回:
-
如果两个向量对象相等,则返回
true,如果other为null、不是RealVector的实例或与此RealVector实例不相等,则返回false。
-
hashCode
public int hashCode(). 此方法必须由RealVector的具体子类覆盖(当前实现会抛出异常)。所有NaN值具有相同的哈希码。- 覆盖:
-
hashCode在类中RealVector
-
combine
public ArrayRealVector combine(double a, double b, RealVector y) throws MathIllegalArgumentException 返回一个新向量,表示a * this + b * y,即this和y的线性组合。返回一个新向量。不更改实例数据。- 覆盖:
-
combine在类中RealVector - 参数:
-
a-this的系数。 -
b-y的系数。 -
y- 与this进行线性组合的向量。 - 返回:
-
包含所有
i的a * this[i] + b * y[i]的向量。 - 抛出:
-
MathIllegalArgumentException- 如果y与this向量的大小不同。
-
combineToSelf
public ArrayRealVector combineToSelf(double a, double b, RealVector y) throws MathIllegalArgumentException 更新this为this和y的线性组合。- 覆盖:
-
combineToSelf在类中RealVector - 参数:
-
a-this的权重。 -
b-y的权重。 -
y- 与this进行线性组合的向量。 - 返回:
-
this,其分量等于所有i的a * this[i] + b * y[i]。 - 抛出:
-
MathIllegalArgumentException- 如果y与this向量的大小不同。
-
walkInDefaultOrder
访问(但不更改)此向量的所有条目,按默认顺序(索引递增)。- 覆盖:
-
walkInDefaultOrder在类中RealVector - 参数:
-
visitor- 用于处理此向量条目的访问者 - 返回:
-
在遍历结束时由
RealVectorPreservingVisitor.end()返回的值
-
walkInDefaultOrder
public double walkInDefaultOrder(RealVectorPreservingVisitor visitor, int start, int end) throws MathIllegalArgumentException 访问(但不更改)此向量的某些条目,按默认顺序(索引递增)。- 覆盖:
-
walkInDefaultOrder在类中RealVector - 参数:
-
visitor- 用于处理此向量条目的访问者 -
start- 要访问的第一个条目的索引 -
end- 要访问的最后一个条目的索引(包括) - 返回:
-
在遍历结束时由
RealVectorPreservingVisitor.end()返回的值 - 抛出:
-
MathIllegalArgumentException- 如果end < start。 -
MathIllegalArgumentException- 如果索引无效。
-
walkInOptimizedOrder
访问(但不更改)此向量的所有条目,按优化顺序。选择访问条目的顺序以导致最有效的实现;这可能取决于此抽象类的具体实现。在此实现中,优化顺序是默认顺序。- 覆盖:
-
walkInOptimizedOrder在类中RealVector - 参数:
-
visitor- 用于处理此向量条目的访问者 - 返回:
-
在遍历结束时由
RealVectorPreservingVisitor.end()返回的值
-
walkInOptimizedOrder
public double walkInOptimizedOrder(RealVectorPreservingVisitor visitor, int start, int end) throws MathIllegalArgumentException 访问(但不更改)此向量的某些条目,按优化顺序。选择访问条目的顺序以导致最有效的实现;这可能取决于此抽象类的具体实现。在此实现中,优化顺序是默认顺序。- 覆盖:
-
walkInOptimizedOrder在类中RealVector - 参数:
-
visitor- 用于处理此向量条目的访问者 -
start- 要访问的第一个条目的索引 -
end- 要访问的最后一个条目的索引(包括) - 返回:
-
在遍历结束时由
RealVectorPreservingVisitor.end()返回的值 - 抛出:
-
MathIllegalArgumentException- 如果end < start。 -
MathIllegalArgumentException- 如果索引无效。
-
walkInDefaultOrder
访问(并可能更改)此向量的所有条目,按默认顺序(索引递增)。- 覆盖:
-
walkInDefaultOrder在类中RealVector - 参数:
-
visitor- 用于处理和修改该向量条目的访问者 - 返回:
-
在遍历结束时由
RealVectorChangingVisitor.end()返回的值
-
walkInDefaultOrder
public double walkInDefaultOrder(RealVectorChangingVisitor visitor, int start, int end) throws MathIllegalArgumentException 在默认顺序(索引递增)中访问(并可能更改)该向量的一些条目。- 覆盖:
-
walkInDefaultOrder在类中RealVector - 参数:
-
visitor- 用于处理该向量条目的访问者 -
start- 要访问的第一个条目的索引 -
end- 要访问的最后一个条目的索引(包括) - 返回:
-
在遍历结束时由
RealVectorChangingVisitor.end()返回的值 - 抛出:
-
MathIllegalArgumentException- 如果end < start。 -
MathIllegalArgumentException- 如果索引无效。
-
walkInOptimizedOrder
以优化顺序访问(并可能更改)该向量的所有条目。选择访问条目的顺序是为了实现最有效的实现;它可能取决于该抽象类的具体实现。在此实现中,优化顺序是默认顺序。- 覆盖:
-
walkInOptimizedOrder在类中RealVector - 参数:
-
visitor- 用于处理该向量条目的访问者 - 返回:
-
在遍历结束时由
RealVectorChangingVisitor.end()返回的值
-
walkInOptimizedOrder
public double walkInOptimizedOrder(RealVectorChangingVisitor visitor, int start, int end) throws MathIllegalArgumentException 以优化顺序访问(并可能更改)该向量的一些条目。选择访问条目的顺序是为了实现最有效的实现;它可能取决于该抽象类的具体实现。在此实现中,优化顺序是默认顺序。- 覆盖:
-
walkInOptimizedOrder在类中RealVector - 参数:
-
visitor- 用于处理该向量条目的访问者 -
start- 要访问的第一个条目的索引 -
end- 要访问的最后一个条目的索引(包括) - 返回:
-
在遍历结束时由
RealVectorChangingVisitor.end()返回的值 - 抛出:
-
MathIllegalArgumentException- 如果end < start。 -
MathIllegalArgumentException- 如果索引无效。
-