【问题标题】:Mirroring function with apache commonsapache commons的镜像功能
【发布时间】:2014-04-08 15:24:24
【问题描述】:

如何在 Apache commons math 中镜像 x 轴上的函数,
分别设置f() = -f()


到目前为止,我发现您可以使用 FunctionUtils 类添加函数,我想我可以

通过取一些点、设置 y 值负值和插值新函数来解决问题,

但这对我来说似乎有点麻烦。有没有更简单的方法?

【问题讨论】:

  • 您可以将 f 乘以始终返回 -1 的 UnivariateFunction。

标签: java math


【解决方案1】:

由于org.apache.commons.math3.analysis 中的所有函数都是接口,因此您可以将要反转的每个函数包装到实现该接口的匿名对象中。

以下是三个可以帮助您入门的示例:

/**
 * Created for http://stackoverflow.com/q/22929746/1266906
 */
public class MinusFunction {

    public static BivariateFunction invert(final BivariateFunction function) {
        return new BivariateFunction() {
            @Override
            public double value(double x, double y) {
                return - function.value(x,y);
            }
        };
    }

    public static MultivariateFunction invert(final MultivariateFunction function) {
        return new MultivariateFunction() {
            @Override
            public double value(double[] point) {
                return -function.value(point);
            }
        };
    }

    public static MultivariateMatrixFunction invert(final MultivariateMatrixFunction function) {
        return new MultivariateMatrixFunction() {
            @Override
            public double[][] value(double[] point) {
                final double[][] value = function.value(point);
                for (int i = 0; i < value.length; i++) {
                    for (int j = 0; j < value[i].length; j++) {
                        value[i][j] = -value[i][j];
                    }
                }
                return value;
            }
        };
    }
}

【讨论】:

    猜你喜欢
    • 2011-09-15
    • 2016-05-12
    • 1970-01-01
    • 2010-12-06
    • 1970-01-01
    • 1970-01-01
    • 2012-04-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多