public virtual void testPSplineFit2D() { //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final com.opengamma.strata.math.impl.interpolation.PSplineFitter psf = new com.opengamma.strata.math.impl.interpolation.PSplineFitter(); PSplineFitter psf = new PSplineFitter(); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final GeneralizedLeastSquareResults<double[]> results = psf.solve(X_SIN_EXP, Y_SIN_EXP, SIGMA_COS_EXP, new double[] {0.0, 0.0 }, new double[] {10.0, 10.0 }, new int[] {10, 10 }, new int[] {3, 3 }, new double[] {0.001, 0.001 }, new int[] {3, 3 }); GeneralizedLeastSquareResults <double[]> results = psf.solve(X_SIN_EXP, Y_SIN_EXP, SIGMA_COS_EXP, new double[] { 0.0, 0.0 }, new double[] { 10.0, 10.0 }, new int[] { 10, 10 }, new int[] { 3, 3 }, new double[] { 0.001, 0.001 }, new int[] { 3, 3 }); assertEquals(0.0, results.ChiSq, 1e-9); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final java.util.function.Function<double[], double> spline = results.getFunction(); System.Func <double[], double> spline = results.Function; assertEquals(0.5333876489112092, spline(new double[] { 4, 3 }), 1e-8); /* * Print out function for debugging */ if (PRINT) { Console.WriteLine("Chi^2:\t" + results.ChiSq); Console.WriteLine("weights:\t" + results.FitParameters); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final double[] x = new double[2]; double[] x = new double[2]; for (int i = 0; i < 101; i++) { x[0] = 0 + i * 10.0 / 100.0; Console.Write("\t" + x[0]); } Console.Write("\n"); for (int i = 0; i < 101; i++) { x[0] = -0.0 + i * 10 / 100.0; Console.Write(x[0]); for (int j = 0; j < 101; j++) { x[1] = -0.0 + j * 10.0 / 100.0; //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final double y = spline.apply(x); double y = spline(x); Console.Write("\t" + y); } Console.Write("\n"); } } }
public virtual void testPSplineFit() { //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final GeneralizedLeastSquare gls = new GeneralizedLeastSquare(); GeneralizedLeastSquare gls = new GeneralizedLeastSquare(); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final GeneralizedLeastSquareResults<double> results = gls.solve(X, Y, SIGMA, BASIS_FUNCTIONS, 1000.0, 2); GeneralizedLeastSquareResults <double> results = gls.solve(X, Y, SIGMA, BASIS_FUNCTIONS, 1000.0, 2); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final java.util.function.Function<double, double> spline = results.getFunction(); System.Func <double, double> spline = results.Function; assertEquals(2225.7, results.ChiSq, 1e-1); assertEquals(-0.758963811327287, spline(1.1), 1e-8); /* * Print out function for debugging */ if (PRINT) { Console.WriteLine("Chi^2:\t" + results.ChiSq); Console.WriteLine("weights:\t" + results.FitParameters); for (int i = 0; i < 101; i++) { //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final double x = 0 + i * 2.0 / 100.0; double x = 0 + i * 2.0 / 100.0; Console.WriteLine(x + "\t" + spline(x)); } for (int i = 0; i < X.Length; i++) { Console.WriteLine(X[i] + "\t" + Y[i]); } } }
public override bool Equals(object obj) { if (this == obj) { return(true); } if (!base.Equals(obj)) { return(false); } if (!(obj is GeneralizedLeastSquareResults)) { return(false); } //JAVA TO C# CONVERTER WARNING: Java wildcard generics have no direct equivalent in .NET: //ORIGINAL LINE: GeneralizedLeastSquareResults<?> other = (GeneralizedLeastSquareResults<?>) obj; GeneralizedLeastSquareResults <object> other = (GeneralizedLeastSquareResults <object>)obj; if (!Objects.Equals(_function, other._function)) { return(false); } return(true); }
public virtual void testPSplineFit2() { //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final com.opengamma.strata.math.impl.interpolation.BasisFunctionGenerator generator = new com.opengamma.strata.math.impl.interpolation.BasisFunctionGenerator(); BasisFunctionGenerator generator = new BasisFunctionGenerator(); IList <System.Func <double, double> > basisFuncs = generator.generateSet(BasisFunctionKnots.fromUniform(0, 12, 100, 3)); IList <System.Func <double, double> > basisFuncsLog = generator.generateSet(BasisFunctionKnots.fromUniform(-5, 3, 100, 3)); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final GeneralizedLeastSquare gls = new GeneralizedLeastSquare(); GeneralizedLeastSquare gls = new GeneralizedLeastSquare(); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final double[] xData = new double[] {7.0 / 365, 14 / 365.0, 21 / 365.0, 1 / 12.0, 3 / 12.0, 0.5, 0.75, 1, 5, 10 }; double[] xData = new double[] { 7.0 / 365, 14 / 365.0, 21 / 365.0, 1 / 12.0, 3 / 12.0, 0.5, 0.75, 1, 5, 10 }; //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final double[] yData = new double[] {0.972452371, 0.749039802, 0.759792085, 0.714206462, 0.604446956, 0.517955313, 0.474807307, 0.443532132, 0.2404755, 0.197128583}; double[] yData = new double[] { 0.972452371, 0.749039802, 0.759792085, 0.714206462, 0.604446956, 0.517955313, 0.474807307, 0.443532132, 0.2404755, 0.197128583 }; //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final int n = xData.length; int n = xData.Length; //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final double[] lnX = new double[n]; double[] lnX = new double[n]; //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final double[] yData2 = new double[n]; double[] yData2 = new double[n]; for (int i = 0; i < n; i++) { lnX[i] = Math.Log(xData[i]); yData2[i] = yData[i] * yData[i] * xData[i]; } //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final double[] sigma = new double[n]; double[] sigma = new double[n]; Arrays.fill(sigma, 0.01); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final GeneralizedLeastSquareResults<double> results = gls.solve(xData, yData, sigma, basisFuncs, 1000.0, 2); GeneralizedLeastSquareResults <double> results = gls.solve(xData, yData, sigma, basisFuncs, 1000.0, 2); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final java.util.function.Function<double, double> spline = results.getFunction(); System.Func <double, double> spline = results.Function; //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final GeneralizedLeastSquareResults<double> resultsLog = gls.solve(lnX, yData, sigma, basisFuncsLog, 1000.0, 2); GeneralizedLeastSquareResults <double> resultsLog = gls.solve(lnX, yData, sigma, basisFuncsLog, 1000.0, 2); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final java.util.function.Function<double, double> splineLog = resultsLog.getFunction(); System.Func <double, double> splineLog = resultsLog.Function; //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final GeneralizedLeastSquareResults<double> resultsVar = gls.solve(xData, yData2, sigma, basisFuncs, 1000.0, 2); GeneralizedLeastSquareResults <double> resultsVar = gls.solve(xData, yData2, sigma, basisFuncs, 1000.0, 2); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final java.util.function.Function<double, double> splineVar = resultsVar.getFunction(); System.Func <double, double> splineVar = resultsVar.Function; //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final GeneralizedLeastSquareResults<double> resultsVarLog = gls.solve(lnX, yData2, sigma, basisFuncsLog, 1000.0, 2); GeneralizedLeastSquareResults <double> resultsVarLog = gls.solve(lnX, yData2, sigma, basisFuncsLog, 1000.0, 2); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final java.util.function.Function<double, double> splineVarLog = resultsVarLog.getFunction(); System.Func <double, double> splineVarLog = resultsVarLog.Function; if (PRINT) { Console.WriteLine("Chi^2:\t" + results.ChiSq); Console.WriteLine("weights:\t" + results.FitParameters); for (int i = 0; i < 101; i++) { //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final double logX = -5 + 8 * i / 100.0; double logX = -5 + 8 * i / 100.0; //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final double x = Math.exp(logX); double x = Math.Exp(logX); Console.WriteLine(x + "\t" + +logX + "\t" + spline(x) + "\t" + splineLog(logX) + "\t" + splineVar(x) + "\t" + splineVarLog(logX)); } for (int i = 0; i < n; i++) { Console.WriteLine(lnX[i] + "\t" + yData[i]); } } }