一、欧拉积分法
欧拉积分法是数值积分方法中精度最低,但也是最容易变成实现的一种方法,其可以写成如下表达式:
image.png
其微分方程可定义如下:
image.png
当
image.png
,则欧拉积分定义为:
image.png
image.png
二、Java实现欧拉积分法
/**
* 二元组
* @param
* @param
*/
public class Tuple {
public final X xValue;
public final Y yValue;
public Tuple(X x, Y y){
xValue = x;
yValue = y;
}
public String toString(){
return "(" + xValue + ", " + yValue + ")";
}
}
/**
* 欧拉积分法
* @param x0 函数自变量下确界
* @param x1 函数自变量上确界
* @param fx 原函数
* @param dFx 导函数
* @param step 约等于△x
*/
public List> integral(double x0, double x1, Function fx, Function dFx, double step) {
List> result = new LinkedList<>();
// 迭代次数
double iterations = Math.floor((x1-x0)/step);
double fx0 = fx.apply(x0);
result.add(new Tuple(x0, fx0));
double xResult = 0;
double yResult = 0;
int index = 1;
while(index
int indexM1 = index - 1;
Tuple tuple = result.get(indexM1);
xResult = tuple.xValue + step;
double xa = tuple.xValue;
double ya = tuple.yValue;
double slope = dFx.apply(xa);
// 欧拉积分定义
yResult = ya + step * slope;
result.add(new Tuple(xResult, yResult));
index += 1;
}
return result;
}