public double StaticNS4FactorModelObjfun(double[] para) { var sns4factor = new StaticNS4FactorModel(); sns4factor.beta1 = para[0]; sns4factor.beta2 = para[1]; sns4factor.beta3 = para[2]; sns4factor.beta4 = para[3]; sns4factor.lambda1 = para[4]; sns4factor.lambda2 = para[5]; sns4factor.tau = maturities; var modelyields = sns4factor.GetYield(); var error = 0.0; if (checkpara(sns4factor) == false) { error = 9999999999999999.99; } else { for (int i = 0; i < yields.Length; i++) { var temperror = (modelyields[i] - yields[i]); error = error + temperror * temperror; } } return(error); }
public bool checkpara(StaticNS4FactorModel n4factor) { var result = true; if (n4factor.beta1 + n4factor.beta2 <= 0) { result = false; } return(result); }
public double[] CalculateModelOutput(double[] tau, double[] para) { var sns4factor = new StaticNS4FactorModel(); sns4factor.beta1 = para[0]; sns4factor.beta2 = para[1]; sns4factor.beta3 = para[2]; sns4factor.beta4 = para[3]; sns4factor.lambda1 = para[4]; sns4factor.lambda2 = para[5]; sns4factor.tau = tau; var modelyields = sns4factor.GetYield(); return(modelyields); }