This example evaluates the beta density, gradient, and hessian for a small sample of data.
import com.imsl.math.*; import com.imsl.stat.distributions.BetaPD; import java.text.DecimalFormat; public class BetaPDEx1 { public static void main(String[] args) throws Exception { double[] x = { 0.12396e0, 0.58037e0, 0.28837e0, 0.38195e0, 0.44387e0, 0.17680e0, 0.22661e0, 0.55939e0 }; double[] values = new double[x.length]; double a = 1.2; double b = 2.0; BetaPD beta = new BetaPD(); for (int i = 0; i < x.length; i++) { values[i] = beta.pdf(x[i], a, b); } PrintMatrixFormat pmf = new PrintMatrixFormat(); pmf.setNumberFormat(new DecimalFormat("0.00000000")); PrintMatrix pm = new PrintMatrix("Beta(1.2,2.0) pdf values at x="); pm.print(x); pm.setTitle("f(x;a,b)="); pm.print(values); double[] gradient = beta.getPDFGradientApproximation(x[0], a, b); pm.setTitle("Gradient f(x;a,b) at x[0]"); pm.print(gradient); double[][] hessian = beta.getPDFHessianApproximation(x[0], a, b); pm.setTitle("Hessian of f(x;a,b) at x[0]"); pm.print(pmf, hessian); } }
Beta(1.2,2.0) pdf values at x= 0 0 0.124 1 0.58 2 0.288 3 0.382 4 0.444 5 0.177 6 0.227 7 0.559 f(x;a,b)= 0 0 1.523 1 0.994 2 1.465 3 1.346 4 1.248 5 1.537 6 1.517 7 1.036 Gradient f(x;a,b) at x[0] 0 0 -1.219 1 0.676 Hessian of f(x;a,b) at x[0] 0 1 0 -0.39787363 0.01734585 1 0.01734585 -0.12450620Link to Java source.