如何融入 java?
How do I integrate in java?
我正在研究累积分布函数,我需要能够求解 Java 中的积分。
我已经在 Apache Commons 中尝试过 Math3,但我也无法弄明白。
我需要解决的积分类型是从下限到上限的积分,我需要它对变量进行积分,比如 'T'。
剩下的我可以想出,比如在方程式中使用变量。但是当我从 Math3 尝试 Simpson Integration 时,构造函数中有 2 个参数或 4 个参数。使用这些:
// Construct an integrator with default settings.
SimpsonIntegrator()
// Build a Simpson integrator with given accuracies and iterations counts.
SimpsonIntegrator(double relativeAccuracy, double absoluteAccuracy,
int minimalIterationCount, int maximalIterationCount)
// Build a Simpson integrator with given iteration counts.
SimpsonIntegrator(int minimalIterationCount, int maximalIterationCount)
我也不知道准确率是什么意思。而且我不太擅长 Integrals,因为我只是用它来计算方程式,然后在 google Play 商店的计算器上使用它。
您的积分有一个真实值 I
。还有辛普森结果 S(n)
与 2n
个样本的数值积分。
绝对准确度限制误差
abs(S(n)-I)
相对准确度是
的界限
abs(S(n)-I)/abs(I).
当被积函数加倍时,绝对误差加倍,相对误差在这种缩放下保持不变。两种错误类型都有其用途,出于显示目的,相对错误应该更重要,因为它给出了有效数字的数量。例如,如果结果为 0.01,则 0.01 的绝对误差会给出介于 0.00 和 0.03 之间的结果。相同情况下0.1的相对误差将数值结果限制在0.009和0.011之间。
其他两个数字给出了 n
(或 2n
)的起始值和救助值。
由于 I
未知,因此必须估计其值和误差。为此,Simpson 的错误阶数为 4,这意味着渐近
S(n) = I + C·n^(-4)+O(n^(-6))
这样
16·S(2n)-S(n) = 15·I + O(n^(-6))
为 I
和
提供了改进的值
16·n^4·(S(n)-S(2n)) = 15·C + O(n^(-2))
给出系数 C
的估计值,然后可以得到满足误差范围所需的最佳 n
的良好估计值。
C*nopt^(-4) <= min(absacc, relacc*abs(I))
nopt = ceil( pow(C/min(absacc, relacc*abs(I)), 0.25) )
所以用最小值 n
计算第一个近似值,然后计算最优值 n
(如果小于最大值 n
)并确认第一个误差估计值。如果失败,则使用新的近似值计算新的最优 n。
我正在研究累积分布函数,我需要能够求解 Java 中的积分。
我已经在 Apache Commons 中尝试过 Math3,但我也无法弄明白。
我需要解决的积分类型是从下限到上限的积分,我需要它对变量进行积分,比如 'T'。
剩下的我可以想出,比如在方程式中使用变量。但是当我从 Math3 尝试 Simpson Integration 时,构造函数中有 2 个参数或 4 个参数。使用这些:
// Construct an integrator with default settings.
SimpsonIntegrator()
// Build a Simpson integrator with given accuracies and iterations counts.
SimpsonIntegrator(double relativeAccuracy, double absoluteAccuracy,
int minimalIterationCount, int maximalIterationCount)
// Build a Simpson integrator with given iteration counts.
SimpsonIntegrator(int minimalIterationCount, int maximalIterationCount)
我也不知道准确率是什么意思。而且我不太擅长 Integrals,因为我只是用它来计算方程式,然后在 google Play 商店的计算器上使用它。
您的积分有一个真实值 I
。还有辛普森结果 S(n)
与 2n
个样本的数值积分。
绝对准确度限制误差
abs(S(n)-I)
相对准确度是
的界限abs(S(n)-I)/abs(I).
当被积函数加倍时,绝对误差加倍,相对误差在这种缩放下保持不变。两种错误类型都有其用途,出于显示目的,相对错误应该更重要,因为它给出了有效数字的数量。例如,如果结果为 0.01,则 0.01 的绝对误差会给出介于 0.00 和 0.03 之间的结果。相同情况下0.1的相对误差将数值结果限制在0.009和0.011之间。
其他两个数字给出了 n
(或 2n
)的起始值和救助值。
由于 I
未知,因此必须估计其值和误差。为此,Simpson 的错误阶数为 4,这意味着渐近
S(n) = I + C·n^(-4)+O(n^(-6))
这样
16·S(2n)-S(n) = 15·I + O(n^(-6))
为 I
和
16·n^4·(S(n)-S(2n)) = 15·C + O(n^(-2))
给出系数 C
的估计值,然后可以得到满足误差范围所需的最佳 n
的良好估计值。
C*nopt^(-4) <= min(absacc, relacc*abs(I))
nopt = ceil( pow(C/min(absacc, relacc*abs(I)), 0.25) )
所以用最小值 n
计算第一个近似值,然后计算最优值 n
(如果小于最大值 n
)并确认第一个误差估计值。如果失败,则使用新的近似值计算新的最优 n。