类 Gradient
- 所有已实现的接口:
-
Serializable
,Derivative<Gradient>
,CalculusFieldElement<Gradient>
,FieldElement<Gradient>
This class is a stripped-down version of DerivativeStructure
with derivation order
limited to one. It should have less overhead than DerivativeStructure
in its domain.
This class is an implementation of Rall's numbers. Rall's numbers are an extension to the real numbers used throughout mathematical expressions; they hold the derivative together with the value of a function.
Gradient
instances can be used directly thanks to the arithmetic operators to the mathematical functions provided as methods by this class (+, -, *, /, %, sin, cos ...).
Implementing complex expressions by hand using these classes is a tedious and error-prone task but has the advantage of having no limitation on the derivation order despite not requiring users to compute the derivatives by themselves.
Instances of this class are guaranteed to be immutable.
- 从以下版本开始:
- 1.7
- 另请参阅:
-
构造器概要
构造器说明Gradient
(double value, double... gradient) Build an instance with values and derivative.Build an instance from aDerivativeStructure
. -
方法概要
修饰符和类型方法说明abs()
absolute value.acos()
Arc cosine operation.acosh()
Inverse hyperbolic cosine operation.add
(double a) '+' operator.Compute this + a.asin()
Arc sine operation.asinh()
Inverse hyperbolic sine operation.atan()
Arc tangent operation.Two arguments arc tangent operation.atanh()
Inverse hyperbolic tangent operation.cbrt()
Cubic root.ceil()
Get the smallest whole number larger than instance.compose
(double... f) Compute composition of the instance by a univariate function.static Gradient
constant
(int freeParameters, double value) Build an instance corresponding to a constant value.copySign
(double sign) Returns the instance with the sign of the argument.Returns the instance with the sign of the argument.cos()
Cosine operation.cosh()
Hyperbolic cosine operation.divide
(double a) '÷' operator.Compute this ÷ a.boolean
Test for the equality of two univariate derivatives.exp()
Exponential.expm1()
Exponential minus 1.floor()
Get the largest whole number smaller than instance.int
Return the exponent of the instance, removing the bias.getField()
Get theField
to which the instance belongs.int
Get the number of free parameters.double[]
Get the gradient part of the function.int
getOrder()
Get the derivation order.double
getPartialDerivative
(int n) Get the partial derivative with respect to one parameter.double
getPartialDerivative
(int... orders) Get a partial derivative.getPi()
Get the Archimedes constant π.double
getReal()
Get the real value of the number.double
getValue()
Get the value part of the function.int
hashCode()
Get a hashCode for the univariate derivative.Returns the hypotenuse of a triangle with sidesthis
andy
- sqrt(this2 +y2) avoiding intermediate overflow or underflow.linearCombination
(double[] a, Gradient[] b) Compute a linear combination.linearCombination
(double a1, Gradient b1, double a2, Gradient b2) Compute a linear combination.linearCombination
(double a1, Gradient b1, double a2, Gradient b2, double a3, Gradient b3) Compute a linear combination.linearCombination
(double a1, Gradient b1, double a2, Gradient b2, double a3, Gradient b3, double a4, Gradient b4) Compute a linear combination.linearCombination
(Gradient[] a, Gradient[] b) Compute a linear combination.linearCombination
(Gradient a1, Gradient b1, Gradient a2, Gradient b2) Compute a linear combination.Compute a linear combination.linearCombination
(Gradient a1, Gradient b1, Gradient a2, Gradient b2, Gradient a3, Gradient b3, Gradient a4, Gradient b4) Compute a linear combination.log()
Natural logarithm.log10()
Base 10 logarithm.log1p()
Shifted natural logarithm.multiply
(double a) '×' operator.multiply
(int n) Compute n × this.Compute this × a.negate()
Returns the additive inverse ofthis
element.newInstance
(double c) Create an instance corresponding to a constant real value.pow
(double p) Power operation.static Gradient
Compute ax where a is a double and x aGradient
pow
(int n) Integer power operation.Power operation.Returns the multiplicative inverse ofthis
element.remainder
(double a) IEEE remainder operator.IEEE remainder operator.rint()
Get the whole number that is the nearest to the instance, or the even one if x is exactly half way between two integers.rootN
(int n) Nth root.scalb
(int n) Multiply the instance by a power of 2.sign()
Compute the sign of the instance.sin()
Sine operation.sinCos()
Combined Sine and Cosine operation.sinh()
Hyperbolic sine operation.sinhCosh()
Combined hyperbolic sine and sosine operation.sqrt()
Square root.subtract
(double a) '-' operator.Compute this - a.tan()
Tangent operation.tanh()
Hyperbolic tangent operation.double
taylor
(double... delta) Evaluate Taylor expansion a derivative structure.Convert radians to degrees, with error of less than 0.5 ULPConvert the instance to aDerivativeStructure
.Convert degrees to radians, with error of less than 0.5 ULPulp()
Compute least significant bit (Unit in Last Position) for a number.static Gradient
variable
(int freeParameters, int index, double value) Build aGradient
representing a variable.从接口继承的方法 org.hipparchus.CalculusFieldElement
isFinite, isInfinite, isNaN, norm, round
从接口继承的方法 org.hipparchus.FieldElement
isZero
-
构造器详细资料
-
Gradient
public Gradient(double value, double... gradient) Build an instance with values and derivative.- 参数:
-
value
- value of the function -
gradient
- gradient of the function
-
Gradient
Build an instance from aDerivativeStructure
.- 参数:
-
ds
- 导数结构 - 抛出:
-
MathIllegalArgumentException
- 如果ds
的阶数不是1
-
-
方法详细资料
-
constant
构建一个对应于常量值的实例。- 参数:
-
freeParameters
- 自由参数的数量(即梯度的维度) -
value
- 函数的常量值 - 返回:
-
一个具有常量值且所有导数均设置为0.0的
Gradient
-
variable
构建表示变量的Gradient
。使用此方法构建的实例被视为相对于其进行微分计算的自由变量。因此,它们相对于自身的微分为+1。
- 参数:
-
freeParameters
- 自由参数的数量(即梯度的维度) -
index
- 变量的索引(从0到getFreeParameters()
- 1) -
value
- 变量的值 - 返回:
-
一个具有常量值且所有导数均设置为0.0,除了在
index
处为1.0的Gradient
-
newInstance
创建一个对应于常量实数值的实例。- 指定者:
-
newInstance
在接口中CalculusFieldElement<Gradient>
- 参数:
-
c
- 常量实数值 - 返回:
- 对应于常量实数值的实例
-
getReal
public double getReal()获取数字的实部。- 指定者:
-
getReal
在接口中FieldElement<Gradient>
- 返回:
- 实部值
-
getValue
public double getValue()获取函数的值部分。- 指定者:
-
getValue
在接口中Derivative<Gradient>
- 返回:
- 函数值的值部分
-
getGradient
public double[] getGradient()获取函数的梯度部分。- 返回:
- 函数值的梯度部分
- 另请参阅:
-
getFreeParameters
public int getFreeParameters()获取自由参数的数量。- 指定者:
-
getFreeParameters
在接口中Derivative<Gradient>
- 返回:
- 自由参数的数量
-
getOrder
public int getOrder()获取导数阶数。- 指定者:
-
getOrder
在接口中Derivative<Gradient>
- 返回:
- 导数阶数
-
getPartialDerivative
获取一个偏导数。- 指定者:
-
getPartialDerivative
在接口中Derivative<Gradient>
- 参数:
-
orders
- 相对于每个变量的导数阶数(如果所有阶数都为0,则返回值) - 返回:
- 偏导数
- 抛出:
-
MathIllegalArgumentException
- 如果变量的数量与实例不匹配 -
MathIllegalArgumentException
- 如果导数阶数之和大于实例限制 - 另请参阅:
-
getPartialDerivative
获取相对于一个参数的偏导数。- 参数:
-
n
- 参数的索引(从0开始计数) - 返回:
- 相对于第n个参数的偏导数
- 抛出:
-
MathIllegalArgumentException
- 如果n为负数或大于或等于getFreeParameters()
-
toDerivativeStructure
将实例转换为DerivativeStructure
。- 返回:
-
具有相同值和导数的
DerivativeStructure
-
add
'+' 运算符。- 指定者:
-
add
在接口中CalculusFieldElement<Gradient>
- 参数:
-
a
- 运算符的右手边参数 - 返回:
- this+a
-
add
计算 this + a。- 指定者:
-
add
在接口中FieldElement<Gradient>
- 参数:
-
a
- 要添加的元素 - 返回:
- 代表this + a的新元素
-
subtract
'-' 运算符。- 指定者:
-
subtract
在接口中CalculusFieldElement<Gradient>
- 参数:
-
a
- 运算符的右手边参数 - 返回:
- this-a
-
subtract
计算 this - a。- 指定者:
-
subtract
在接口中FieldElement<Gradient>
- 参数:
-
a
- 要减去的元素 - 返回:
- 代表this - a的新元素
-
multiply
计算 n × this。将整数乘以一个数定义为以下求和 \[ n \times \mathrm{this} = \sum_{i=1}^n \mathrm{this} \]- 指定者:
-
multiply
在接口中FieldElement<Gradient>
- 参数:
-
n
- 必须将this
加到自身的次数 - 返回:
- 代表n × this的新元素
-
multiply
'×' 运算符。- 指定者:
-
multiply
在接口中CalculusFieldElement<Gradient>
- 参数:
-
a
- 运算符的右手边参数 - 返回:
- this×a
-
multiply
计算 this × a。- 指定者:
-
multiply
在接口中FieldElement<Gradient>
- 参数:
-
a
- 要相乘的元素 - 返回:
- 代表this × a的新元素
-
divide
'÷' 运算符。- 指定者:
-
divide
在接口中CalculusFieldElement<Gradient>
- 参数:
-
a
- 运算符的右手边参数 - 返回:
- this÷a
-
divide
计算 this ÷ a。- 指定者:
-
divide
在接口中FieldElement<Gradient>
- 参数:
-
a
- 要除以的元素 - 返回:
- 代表this ÷ a的新元素
-
remainder
IEEE余数运算符。- 指定者:
-
remainder
在接口中CalculusFieldElement<Gradient>
- 参数:
-
a
- 运算符的右操作数 - 返回:
- this - n × a,其中 n 是最接近 this/a 的整数
-
remainder
IEEE 余数运算符。- 指定者:
-
remainder
在接口中CalculusFieldElement<Gradient>
- 参数:
-
a
- 运算符的右操作数 - 返回:
- this - n × a,其中 n 是最接近 this/a 的整数
-
negate
返回this
元素的加法逆元。- 指定者:
-
negate
在接口中FieldElement<Gradient>
- 返回:
-
this
的相反数。
-
abs
绝对值。只是
CalculusFieldElement.norm()
的另一个名称- 指定者:
-
abs
在接口中CalculusFieldElement<Gradient>
- 返回:
- abs(this)
-
ceil
获取大于实例的最小整数。- 指定者:
-
ceil
在接口中CalculusFieldElement<Gradient>
- 返回:
- ceil(this)
-
floor
获取小于实例的最大整数。- 指定者:
-
floor
在接口中CalculusFieldElement<Gradient>
- 返回:
- floor(this)
-
rint
获取最接近实例的整数,如果 x 恰好处于两个整数之间,则获取偶数。- 指定者:
-
rint
在接口中CalculusFieldElement<Gradient>
- 返回:
- 一个双精度数 r,使得 r 是整数 r - 0.5 ≤ this ≤ r + 0.5
-
sign
计算实例的符号。对于负数,符号为 -1,对于正数,符号为 +1,否则为 0,对于复数,它在单位圆上扩展(等同于 z/|z|,对于 0 和 NaN 进行特殊处理)- 指定者:
-
sign
在接口中CalculusFieldElement<Gradient>
- 返回:
- -1.0, -0.0, +0.0, +1.0 或 NaN,取决于 a 的符号
-
copySign
返回具有参数符号的实例。NaNsign
参数被视为正数。- 指定者:
-
copySign
在接口中CalculusFieldElement<Gradient>
- 参数:
-
sign
- 返回值的符号 - 返回:
-
具有与
sign
参数相同符号的实例
-
copySign
返回具有参数符号的实例。NaNsign
参数被视为正数。- 指定者:
-
copySign
在接口中CalculusFieldElement<Gradient>
- 参数:
-
sign
- 返回值的符号 - 返回:
-
具有与
sign
参数相同符号的实例
-
getExponent
public int getExponent()返回实例的指数,去除偏差。对于形式为 2x 的双精度数,无偏指数正好是 x。
- 指定者:
-
getExponent
在接口中CalculusFieldElement<Gradient>
- 返回:
- 实例的指数,无偏
-
scalb
将实例乘以 2 的幂。- 指定者:
-
scalb
在接口中CalculusFieldElement<Gradient>
- 参数:
-
n
- 2 的幂 - 返回:
- this × 2n
-
ulp
计算数字的最低有效位(最后一位单位)。ulp
函数是一个阶跃函数,因此其所有导数均为 0。- 指定者:
-
ulp
在接口中CalculusFieldElement<Gradient>
- 返回:
- ulp(this)
- 从以下版本开始:
- 2.0
-
hypot
返回三角形的斜边,其两边为this
和y
- sqrt(this2 +y2),避免中间溢出或下溢。- 如果任一参数为无穷大,则结果为正无穷大。
- 否则,如果任一参数为 NaN,则结果为 NaN。
- 指定者:
-
hypot
在接口中CalculusFieldElement<Gradient>
- 参数:
-
y
- 一个值 - 返回:
- sqrt(this2 +y2)
-
reciprocal
返回this
元素的乘法逆元。- 指定者:
-
reciprocal
在接口中CalculusFieldElement<Gradient>
- 指定者:
-
reciprocal
在接口中FieldElement<Gradient>
- 返回:
-
this
的倒数。
-
compose
计算实例通过单变量函数的组合。- 指定者:
-
compose
在接口中Derivative<Gradient>
- 参数:
-
f
- 函数在当前点的值和导数的数组(即 [f(Derivative.getValue()
), f'(Derivative.getValue()
), f''(Derivative.getValue()
)...]) - 返回:
- f(this)
-
sqrt
平方根。- 指定者:
-
sqrt
在接口中CalculusFieldElement<Gradient>
- 返回:
- 实例的平方根
-
cbrt
立方根。- 指定者:
-
cbrt
在接口中CalculusFieldElement<Gradient>
- 返回:
- 实例的立方根
-
rootN
Nth 次根。- 指定者:
-
rootN
在接口中CalculusFieldElement<Gradient>
- 参数:
-
n
- 根的阶数 - 返回:
- 实例的 nth 次根
-
getField
获取实例所属的Field
。- 指定者:
-
getField
在接口中FieldElement<Gradient>
- 返回:
-
Field
实例所属的域
-
pow
计算ax,其中a是一个double类型,x是一个Gradient
- 参数:
-
a
- 要求幂的数字 -
x
- 要应用的幂 - 返回:
- ax
-
pow
幂运算。- 指定者:
-
pow
在接口中CalculusFieldElement<Gradient>
- 参数:
-
p
- 要应用的幂 - 返回:
- thisp
-
pow
整数幂运算。- 指定者:
-
pow
在接口中CalculusFieldElement<Gradient>
- 参数:
-
n
- 要应用的幂 - 返回:
- thisn
-
pow
幂运算。- 指定者:
-
pow
在接口中CalculusFieldElement<Gradient>
- 参数:
-
e
- 指数 - 返回:
- thise
-
exp
指数。- 指定者:
-
exp
在接口中CalculusFieldElement<Gradient>
- 返回:
- 实例的指数
-
expm1
指数减1。- 指定者:
-
expm1
在接口中CalculusFieldElement<Gradient>
- 返回:
- 实例的指数减1
-
log
自然对数。- 指定者:
-
log
在接口中CalculusFieldElement<Gradient>
- 返回:
- 实例的对数
-
log1p
偏移的自然对数。- 指定者:
-
log1p
在接口中CalculusFieldElement<Gradient>
- 返回:
- 1加上实例的对数
-
log10
底数为10的对数。- 指定者:
-
log10
在接口中CalculusFieldElement<Gradient>
- 返回:
- 实例的底数为10的对数
-
cos
余弦运算。- 指定者:
-
cos
在接口中CalculusFieldElement<Gradient>
- 返回:
- cos(this)
-
sin
正弦运算。- 指定者:
-
sin
在接口中CalculusFieldElement<Gradient>
- 返回:
- sin(this)
-
sinCos
组合正弦和余弦运算。- 指定者:
-
sinCos
在接口中CalculusFieldElement<Gradient>
- 返回:
- [sin(this), cos(this)]
-
tan
歇普里正切运算。- 指定者:
-
tan
在接口中CalculusFieldElement<Gradient>
- 返回:
- tan(this)
-
acos
反余弦运算。- 指定者:
-
acos
在接口中CalculusFieldElement<Gradient>
- 返回:
- acos(this)
-
asin
反正弦运算。- 指定者:
-
asin
在接口中CalculusFieldElement<Gradient>
- 返回:
- asin(this)
-
atan
反正切运算。- 指定者:
-
atan
在接口中CalculusFieldElement<Gradient>
- 返回:
- atan(this)
-
atan2
两参数反正切运算。注意参数的顺序!由于这是基于两个参数的函数,为了与参数顺序保持一致,实例是第一个参数,而提供的单个参数是第二个参数。为了与编程语言的
atan2
保持一致,此方法计算atan2(this, x)
,即实例表示y
参数,而作为单个参数传递的x
参数。这可能会令人困惑,特别是对于Wolfram alpha的用户,因为该网站与编程语言的atan2
两参数反正切不一致,并将x
作为其第一个参数。- 指定者:
-
atan2
在接口中CalculusFieldElement<Gradient>
- 参数:
-
x
- 反正切的第二个参数 - 返回:
- atan2(this, x)
-
cosh
双曲余弦运算。- 指定者:
-
cosh
在接口中CalculusFieldElement<Gradient>
- 返回:
- cosh(this)
-
sinh
双曲正弦运算。- 指定者:
-
sinh
在接口中CalculusFieldElement<Gradient>
- 返回:
- sinh(this)
-
sinhCosh
组合双曲正弦和余弦运算。- 指定者:
-
sinhCosh
在接口中CalculusFieldElement<Gradient>
- 返回:
- [sinh(this), cosh(this)]
-
tanh
双曲正切运算。- 指定者:
-
tanh
在接口中CalculusFieldElement<Gradient>
- 返回:
- tanh(this)
-
acosh
反双曲余弦运算。- 指定者:
-
acosh
在接口中CalculusFieldElement<Gradient>
- 返回:
- acosh(this)
-
asinh
反双曲正弦运算。- 指定者:
-
asinh
在接口中
-
atanh
反双曲正切运算。- 指定者:
-
atanh
在接口中CalculusFieldElement<Gradient>
- 返回:
- atanh(this)
-
toDegrees
将弧度转换为度,误差小于0.5 ULP- 指定者:
-
toDegrees
在接口中CalculusFieldElement<Gradient>
- 返回:
- 转换为度的实例
-
toRadians
将度转换为弧度,误差小于0.5 ULP- 指定者:
-
toRadians
在接口中CalculusFieldElement<Gradient>
- 返回:
- 转换为弧度的实例
-
taylor
public double taylor(double... delta) 计算导数结构的泰勒展开。- 参数:
-
delta
- 参数偏移量(Δx,Δy,...) - 返回:
- 在 x + Δx,y + Δy 等处的泰勒展开值
-
linearCombination
计算线性组合。- 指定者:
-
linearCombination
在接口中CalculusFieldElement<Gradient>
- 参数:
-
a
- 因子。 -
b
- 因子。 - 返回:
-
Σi ai bi
。
-
linearCombination
计算线性组合。- 指定者:
-
linearCombination
在接口中CalculusFieldElement<Gradient>
- 参数:
-
a
- 因子。 -
b
- 因子。 - 返回:
-
Σi ai bi
。
-
linearCombination
计算线性组合。- 指定者:
-
linearCombination
在接口中CalculusFieldElement<Gradient>
- 参数:
-
a1
- 第一项的第一个因子 -
b1
- 第一项的第二个因子 -
a2
- 第二项的第一个因子 -
b2
- 第二项的第二个因子 - 返回:
- a1×b1 + a2×b2
- 另请参阅:
-
linearCombination
计算线性组合。- 指定者:
-
linearCombination
在接口中CalculusFieldElement<Gradient>
- 参数:
-
a1
- 第一项的第一个因子 -
b1
- 第一项的第二个因子 -
a2
- 第二项的第一个因子 -
b2
- 第二项的第二个因子 - 返回:
- a1×b1 + a2×b2
- 另请参阅:
-
linearCombination
public Gradient linearCombination(Gradient a1, Gradient b1, Gradient a2, Gradient b2, Gradient a3, Gradient b3) 计算线性组合。- 指定者:
-
linearCombination
在接口中CalculusFieldElement<Gradient>
- 参数:
-
a1
- first factor of the first term -
b1
- second factor of the first term -
a2
- first factor of the second term -
b2
- second factor of the second term -
a3
- first factor of the third term -
b3
- second factor of the third term - 返回:
- a1×b1 + a2×b2 + a3×b3
- 另请参阅:
-
linearCombination
public Gradient linearCombination(double a1, Gradient b1, double a2, Gradient b2, double a3, Gradient b3) Compute a linear combination.- 指定者:
-
linearCombination
在接口中CalculusFieldElement<Gradient>
- 参数:
-
a1
- first factor of the first term -
b1
- second factor of the first term -
a2
- first factor of the second term -
b2
- second factor of the second term -
a3
- first factor of the third term -
b3
- second factor of the third term - 返回:
- a1×b1 + a2×b2 + a3×b3
- 另请参阅:
-
linearCombination
public Gradient linearCombination(Gradient a1, Gradient b1, Gradient a2, Gradient b2, Gradient a3, Gradient b3, Gradient a4, Gradient b4) Compute a linear combination.- 指定者:
-
linearCombination
在接口中CalculusFieldElement<Gradient>
- 参数:
-
a1
- first factor of the first term -
b1
- second factor of the first term -
a2
- first factor of the second term -
b2
- second factor of the second term -
a3
- first factor of the third term -
b3
- second factor of the third term -
a4
- first factor of the fourth term -
b4
- second factor of the fourth term - 返回:
- a1×b1 + a2×b2 + a3×b3 + a4×b4
- 另请参阅:
-
linearCombination
public Gradient linearCombination(double a1, Gradient b1, double a2, Gradient b2, double a3, Gradient b3, double a4, Gradient b4) Compute a linear combination.- 指定者:
-
linearCombination
在接口中CalculusFieldElement<Gradient>
- 参数:
-
a1
- 第一项的第一个因子 -
b1
- 第一项的第二个因子 -
a2
- 第二项的第一个因子 -
b2
- 第二项的第二个因子 -
a3
- 第三项的第一个因子 -
b3
- 第三项的第二个因子 -
a4
- 第四项的第一个因子 -
b4
- 第四项的第二个因子 - 返回:
- a1×b1 + a2×b2 + a3×b3 + a4×b4
- 另请参阅:
-
getPi
获取阿基米德常数 π。阿基米德常数是圆周长与直径的比值。
- 指定者:
-
getPi
在接口中CalculusFieldElement<Gradient>
- 返回:
- 阿基米德常数 π
-
equals
测试两个一元导数是否相等。如果两个一元导数具有相同的导数,则认为它们相等。
-
hashCode
public int hashCode()获取一元导数的哈希码。
-