javascript计算列表元素的个数(简单求积分的方法)
javascript计算列表元素的个数(简单求积分的方法)sigma notation数学上的求和公式为:function sum_cubes(a b) { return a > b ? 0 : cube(a) sum_cubes(a 1 b); }求下面的序列之和:求pi的序列function pi_sum(a b) { return a > b ? 0 : 1 / (a * (a 2)) pi_sum(a 4 b); }该值收敛于pi/8.
我们的最终目标是求下面的积分算式:
integral-function
1.先看求和的方法:求整数数列的和:
function sum_integers(a b) {
return a > b ? 0
: a sum_integers(a 1 b);
}
求立方和:
function sum_cubes(a b) {
return a > b ? 0
: cube(a) sum_cubes(a 1 b);
}
求下面的序列之和:
求pi的序列
function pi_sum(a b) {
return a > b ? 0
: 1 / (a * (a 2)) pi_sum(a 4 b);
}
该值收敛于pi/8.
2.提取抽象部分数学上的求和公式为:
sigma notation
抽象到数学方程为:
function sum(term a next b) {
return a > b ? 0
: term(a) sum(term next(a) next b);
}
应用上面的公式重新计算立方和:
function inc(n) {
return n 1;
}
function sum_cubes(a b) {
return sum(cube a inc b);
}
求整数之和:
function identity(x) {
return x;
}
function sum_integers(a b) {
return sum(identity a inc b);
}
最后是pi值的求和:
function pi_sum(a b) {
function pi_term(x) {
return 1 / (x * (x 2));
}
function pi_next(x) {
return x 4;
}
return sum(pi_term a pi_next b);
}
3.求积分
积分公式为:
积分公式
方程为:
function integral(f a b dx) {
function add_dx(x) {
return x dx;
}
return sum(f a dx/2 add_dx b) * dx;
}
integral(cube 0 1 0.01);
如此便能应用简单的抽象解决问题。