Function fang_oost_option::option_calibration::obj_fn_cmpl [−][src]
pub fn obj_fn_cmpl<'a>(
phi_hat: &[Complex<f64>],
u_array: &[f64],
params: &[f64],
maturity: f64,
cf_fn: &impl Fn(&Complex<f64>, f64, &[f64]) -> Complex<f64>
) -> f64
Expand description
Returns function which computes the mean squared error between the empirical and analytical characteristic functions for a vector of parameters.
Examples
extern crate num_complex;
use num_complex::Complex;
extern crate fang_oost_option;
use fang_oost_option::option_calibration;
//u_array is the values in the complex domain to
//calibrate to (ie, making cf(u_i) and cf_emp(u_i)
//close in mean-square).
let u_array = vec![
-1.0,
0.5,
3.0
];
//same length as u (computed using generate_fo_estimate function)
let phi_hat = vec![
Complex::new(-1.0, 1.0),
Complex::new(0.5, 0.5),
Complex::new(3.0, 1.0)
];
//Gaussian (0, params[0]) distribution
let cf = |u: &Complex<f64>, maturity:f64, params:&[f64]| (u*u*0.5*params[0].powi(2)).exp();
let params=vec![0.0];
let maturity=1.0;
let mean_square_error = option_calibration::obj_fn_cmpl(
&phi_hat,
&u_array,
¶ms,
maturity,
&cf
);