类 FunctionUtils
-
方法概要
修饰符和类型方法说明添加函数。static UnivariateFunctionadd(UnivariateFunction... f) 添加函数。static MultivariateFunctioncollector(BivariateFunction combiner, double initialValue) 返回由h(x[])定义的MultivariateFunction。static MultivariateFunctioncollector(BivariateFunction combiner, UnivariateFunction f, double initialValue) 返回由h(x[])定义的MultivariateFunction。static UnivariateFunctioncombine(BivariateFunction combiner, UnivariateFunction f, UnivariateFunction g) 返回单变量函数h(x) = combiner(f(x), g(x))。组合函数。static UnivariateFunctioncompose(UnivariateFunction... f) 组合函数。static MultivariateFunctionderivative(MultivariateDifferentiableFunction f, int[] orders) 将MultivariateDifferentiableFunction转换为计算nth阶导数的MultivariateFunction。static UnivariateFunctionderivative(UnivariateDifferentiableFunction f, int order) 将UnivariateDifferentiableFunction转换为计算nth阶导数的UnivariateFunction。static UnivariateFunctionfix1stArgument(BivariateFunction f, double fixed) 通过固定二元函数的第一个参数创建一元函数。static UnivariateFunctionfix2ndArgument(BivariateFunction f, double fixed) 通过固定二元函数的第二个参数创建一元函数。乘法函数。static UnivariateFunctionmultiply(UnivariateFunction... f) 乘法函数。static double[]sample(UnivariateFunction f, double min, double max, int n) 在指定区间上对指定的单变量实函数进行采样。将常规函数转换为MultivariateDifferentiableFunction。toDifferentiable(UnivariateFunction f, UnivariateFunction... derivatives) 将常规函数转换为UnivariateDifferentiableFunction。
-
方法详细资料
-
compose
组合函数。参数列表中的函数按给定顺序依次组合。例如,compose(f1,f2,f3)的作用类似于f1(f2(f3(x)))。
- 参数:
-
f- 函数列表。 - 返回:
- 组合函数。
-
compose
组合函数。参数列表中的函数按给定顺序依次组合。例如,compose(f1,f2,f3)的作用类似于f1(f2(f3(x)))。
- 参数:
-
f- 函数列表。 - 返回:
- 组合函数。
-
add
添加函数。- 参数:
-
f- 函数列表。 - 返回:
- 计算函数总和的函数。
-
add
添加函数。- 参数:
-
f- 函数列表。 - 返回:
- 计算函数总和的函数。
-
multiply
乘法函数。- 参数:
-
f- 函数列表。 - 返回:
- 计算函数乘积的函数。
-
multiply
乘法函数。- 参数:
-
f- 函数列表。 - 返回:
- 计算函数乘积的函数。
-
combine
public static UnivariateFunction combine(BivariateFunction combiner, UnivariateFunction f, UnivariateFunction g) 返回单变量函数h(x) = combiner(f(x), g(x))。- 参数:
-
combiner- 组合函数。 -
f- 函数。 -
g- 函数。 - 返回:
- 组合函数。
-
collector
public static MultivariateFunction collector(BivariateFunction combiner, UnivariateFunction f, double initialValue) 返回由h(x[])定义的MultivariateFunction。h(x[]) = combiner(...combiner(combiner(initialValue,f(x[0])),f(x[1]))...),f(x[x.length-1]))- 参数:
-
combiner- 组合函数。 -
f- 函数。 -
initialValue- 初始值。 - 返回:
- 收集器函数。
-
collector
返回由h(x[])定义的MultivariateFunction。h(x[]) = combiner(...combiner(combiner(initialValue,x[0]),x[1])...),x[x.length-1])- 参数:
-
combiner- 组合函数。 -
initialValue- 初始值。 - 返回:
- 收集器函数。
-
fix1stArgument
通过固定二元函数的第一个参数创建一元函数。- 参数:
-
f- 二元函数。 -
fixed- 将第一个参数设置为的值。 - 返回:
- 一元函数h(x) = f(fixed, x)
-
fix2ndArgument
通过固定二元函数的第二个参数创建一元函数。- 参数:
-
f- 二元函数。 -
fixed- 将第二个参数设置为的值。 - 返回:
- 一元函数h(x) = f(x, fixed)
-
sample
public static double[] sample(UnivariateFunction f, double min, double max, int n) throws MathIllegalArgumentException 在指定区间上对指定的单变量实函数进行采样。该区间等分为
n部分,并从min到max - (max - min) / n取样点;因此,f不会在上限max处取样。- 参数:
-
f- 待采样的函数 -
min- 区间下限(包括)。 -
max- 区间上限(不包括)。 -
n- 采样点数。 - 返回:
- 采样数组。
- 抛出:
-
MathIllegalArgumentException- 如果下限min大于或等于上限max。 -
MathIllegalArgumentException- 如果采样点数n为负数。
-
toDifferentiable
public static UnivariateDifferentiableFunction toDifferentiable(UnivariateFunction f, UnivariateFunction... derivatives) 将常规函数转换为UnivariateDifferentiableFunction。此方法处理具有一个自由参数和多个导数的情况。对于具有多个自由参数和仅一阶导数的情况,请参见
toDifferentiable(MultivariateFunction, MultivariateVectorFunction)。对于中间情况,即具有多个自由参数和2阶或更高阶导数的情况,没有直接支持,因为很难指定所有交叉导数。请注意,导数预计仅针对基本函数的原始参数x计算,即它们是df/dx,df2/dx2,...即使构建的函数稍后用于像f(sin(t))这样的组合,提供的导数也不应单独应用与正弦及其导数的组合。这里将自动执行组合,并且结果将正确包含f(sin(t)),df(sin(t))/dt,df2(sin(t))/dt2,尽管提供的导数函数对正弦函数一无所知。
- 参数:
-
f- 基本函数f(x) -
derivatives- 基本函数的导数,按增加的微分顺序 - 返回:
- 具有值和所有指定导数的可微函数
- 另请参阅:
-
toDifferentiable
public static MultivariateDifferentiableFunction toDifferentiable(MultivariateFunction f, MultivariateVectorFunction gradient) 将常规函数转换为MultivariateDifferentiableFunction。此方法处理具有多个自由参数和仅一阶导数的情况。对于具有一个自由参数和多个导数的情况,请参见
toDifferentiable(UnivariateFunction, UnivariateFunction...)。对于具有多个自由参数和2阶或更高阶导数的中间情况,没有直接支持,因为很难指定所有交叉导数。请注意,梯度预计仅针对基本函数的原始参数x计算,即df/dx1,df/dx2,...即使稍后构建的函数在类似f(sin(t), cos(t))的组合中使用,提供的梯度也不应用正弦或余弦及其导数本身。组合将在此自动完成,结果将正确包含f(sin(t), cos(t)),df(sin(t), cos(t))/dt,尽管提供的导数函数对正弦或余弦函数一无所知。
- 参数:
-
f- 基本函数 f(x) -
gradient- 基本函数的梯度 - 返回:
- 具有值和梯度的可微函数
- 另请参阅:
-
derivative
将UnivariateDifferentiableFunction转换为计算nth阶导数的UnivariateFunction。此转换器仅是一个便利方法。请注意,仅计算一个导数并不会节省任何计算,因为原始函数实际上将在底层被调用。导数将从完整的
DerivativeStructure结果中提取。- 参数:
-
f- 原始函数,具有值和所有导数 -
order- 要提取的导数阶数 - 返回:
- 在所需阶数计算导数的函数
- 另请参阅:
-
derivative
将MultivariateDifferentiableFunction转换为计算nth阶导数的MultivariateFunction。此转换器仅是一个便利方法。请注意,仅计算一个导数并不会节省任何计算,因为原始函数实际上将在底层被调用。导数将从完整的
DerivativeStructure结果中提取。- 参数:
-
f- 原始函数,具有值和所有导数 -
orders- 要提取的导数阶数,对于每个自由参数 - 返回:
- 在所需阶数计算导数的函数
- 另请参阅:
-