当前位置: 首页>>代码示例>>Java>>正文


Java UnivariatePointValuePair类代码示例

本文整理汇总了Java中org.apache.commons.math3.optimization.univariate.UnivariatePointValuePair的典型用法代码示例。如果您正苦于以下问题:Java UnivariatePointValuePair类的具体用法?Java UnivariatePointValuePair怎么用?Java UnivariatePointValuePair使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


UnivariatePointValuePair类属于org.apache.commons.math3.optimization.univariate包,在下文中一共展示了UnivariatePointValuePair类的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: search

import org.apache.commons.math3.optimization.univariate.UnivariatePointValuePair; //导入依赖的package包/类
/**
 * Find the minimum of the function {@code f(p + alpha * d)}.
 *
 * @param p Starting point.
 * @param d Search direction.
 * @return the optimum.
 * @throws org.apache.commons.math3.exception.TooManyEvaluationsException
 * if the number of evaluations is exceeded.
 */
public UnivariatePointValuePair search(final double[] p, final double[] d) {
    final int n = p.length;
    final UnivariateFunction f = new UnivariateFunction() {
            /** {@inheritDoc} */
            public double value(double alpha) {
                final double[] x = new double[n];
                for (int i = 0; i < n; i++) {
                    x[i] = p[i] + alpha * d[i];
                }
                final double obj = PowellOptimizer.this.computeObjectiveValue(x);
                return obj;
            }
        };

    final GoalType goal = PowellOptimizer.this.getGoalType();
    bracket.search(f, goal, 0, 1);
    // Passing "MAX_VALUE" as a dummy value because it is the enclosing
    // class that counts the number of evaluations (and will eventually
    // generate the exception).
    return optimize(Integer.MAX_VALUE, f, goal,
                    bracket.getLo(), bracket.getHi(), bracket.getMid());
}
 
开发者ID:biocompibens,项目名称:SME,代码行数:32,代码来源:PowellOptimizer.java

示例2: search

import org.apache.commons.math3.optimization.univariate.UnivariatePointValuePair; //导入依赖的package包/类
/**
 * Find the minimum of the function {@code f(p + alpha * d)}.
 *
 * @param p Starting point.
 * @param d Search direction.
 * @return the optimum.
 * @throws org.apache.commons.math3.exception.TooManyEvaluationsException
 * if the number of evaluations is exceeded.
 */
public UnivariatePointValuePair search(final double[] p, final double[] d) {
    final int n = p.length;
    final UnivariateFunction f = new UnivariateFunction() {
            public double value(double alpha) {
                final double[] x = new double[n];
                for (int i = 0; i < n; i++) {
                    x[i] = p[i] + alpha * d[i];
                }
                final double obj = PowellOptimizer.this.computeObjectiveValue(x);
                return obj;
            }
        };

    final GoalType goal = PowellOptimizer.this.getGoalType();
    bracket.search(f, goal, 0, 1);
    // Passing "MAX_VALUE" as a dummy value because it is the enclosing
    // class that counts the number of evaluations (and will eventually
    // generate the exception).
    return optimize(Integer.MAX_VALUE, f, goal,
                    bracket.getLo(), bracket.getHi(), bracket.getMid());
}
 
开发者ID:Quanticol,项目名称:CARMA,代码行数:31,代码来源:PowellOptimizer.java

示例3: fitPoisson

import org.apache.commons.math3.optimization.univariate.UnivariatePointValuePair; //导入依赖的package包/类
/**
 * Fit a truncated Poisson to the contents of a histogram.
 * Returns the background proportion in the sample
 *
 */
public double fitPoisson(RealValuedHistogram h, Sample samp){
	DRand re = new DRand();
	//Heuristic to find the upper bound for the truncated Poisson
	int pUpper = poissUpperBound;
	double uniformMean = samp.getHitCount()/(gen.getGenomeLength()/binWidth);
	if(cdfPercOfUniform>0 && cdfPercOfUniform<=1){
		Poisson uniPoiss = new Poisson(uniformMean, re);
		double tmpProp=0;
		int i=0;
		while(tmpProp<cdfPercOfUniform){
			tmpProp = uniPoiss.cdf(i);
			i++;
		}
		pUpper=Math.max(i,poissUpperBoundMin);
	}
	System.out.println("Truncated Poisson Upper Bound:\t"+pUpper);
	
	//Fit the Poisson
	int left=0, right=pUpper;
	double xsum=0, xcount=0;
	for(double i=left; i<=right; i++){
		xsum += i*h.getBin( h.getBinContainingVal(i));
		xcount += h.getBin( h.getBinContainingVal(i));
	}
	double xavg = xsum/xcount;
	UnivariateFunction func = new truncPoisson(xavg, left, right);
	double relativeAccuracy = 1.0e-6;
	double absoluteAccuracy = 1.0e-4;
	UnivariateOptimizer solver = new BrentOptimizer(relativeAccuracy, absoluteAccuracy);
	UnivariatePointValuePair pvp = solver.optimize(100, func, GoalType.MINIMIZE, 0.001, 50.0, xavg);
	double lambda = pvp.getPoint();
	System.out.println("xavg: "+ xavg+"\tlambda: "+lambda);
	
	//Calculate the background proportion
	Poisson poiss = new Poisson(lambda, re);
	double backsize = xsum / (poiss.cdf(right) - poiss.cdf(left - 1));
	double backprop = Math.min(backsize / sampleTotals[samp.getIndex()], 1.0);
	System.out.println("Background= "+ backsize+" / "+sampleTotals[samp.getIndex()]+" =\t"+backprop);
	
	return backprop;
}
 
开发者ID:seqcode,项目名称:multigps,代码行数:47,代码来源:BackgroundDetector.java


注:本文中的org.apache.commons.math3.optimization.univariate.UnivariatePointValuePair类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。