polynomialcurvefitting.java
来自「基于差分进化与粒子群混合算法优化源程序,这是一个java语言编制的源程序,很实用」· Java 代码 · 共 66 行
JAVA
66 行
/**
* Description: Polynomial fitting function
*
* @ Author Create/Modi Note
* Xiaofeng Xie Jun 26, 2008
*
* @version 1.0
* @Since MAOS1.0
*
*/
package problem.custom;
public class PolynomialCurveFitting extends AbstractCurveFitting {
private static int NG = 2;
double[] xc = new double[NG];
private double minY = -100;
private double maxY = 100;
public PolynomialCurveFitting() throws Exception {
super(NG);
}
public void initEncoder() throws Exception {
if (NG!=2) {
initParams(NG);
xc = new double[NG];
}
super.initEncoder();
setDefaultXRanges();
}
public boolean setParameter(String name, String value) {
if (super.setParameter(name, value)) return true;
else if (name.equalsIgnoreCase("NG")) NG=new Integer(value).intValue();
else if (name.equalsIgnoreCase("minY")) minY=new Integer(value).intValue();
else if (name.equalsIgnoreCase("maxY")) maxY=new Integer(value).intValue();
else return false;
return true;
}
private void setDefaultXRanges() {
for(int i=0; i<NG; i++) {
setDefaultXAt(i, minY, maxY);
}
}
protected double getFuncValue(double x, double[] VX) {
return getBasicFuncValue(Math.abs(x), 0, VX);
}
protected double getBasicFuncValue(double x, int vxIndex, double[] VX) {
xc[0] = x;
int number = VX.length-1;
for (int i=1; i<number; i++) {
xc[i] = xc[0]*xc[i-1];
}
double realV = VX[vxIndex];
for (int i=0; i<number; i++) {
realV += VX[vxIndex+i+1]*xc[i];
}
return realV;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?