You are viewing an archived page from the original site. Go to the new numericalmethod.com →

Changeset 200 in public


Ignore:
Timestamp:
7/23/2014 4:01:48 PM (5 months ago)
Author:
kenyiu
Message:

CHG: Updated examples with suanshu-3.0.0 API.

Location:
Examples
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • Examples/pom.xml

    r140 r200  
    1919    <properties> 
    2020        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    21         <suanshu.version>2.5.0</suanshu.version> 
     21        <suanshu.version>3.0.0</suanshu.version> 
    2222    </properties> 
    2323 
  • Examples/src/main/java/com/numericalmethod/suanshu/examples/DistributedPrimeCheck.java

    r137 r200  
    2323package com.numericalmethod.suanshu.examples; 
    2424 
    25 import com.numericalmethod.suanshu.grid.DefaultDistributedExecutorFactory; 
    26 import com.numericalmethod.suanshu.grid.DistributedExecutor; 
     25import com.numericalmethod.suanshu.grid.executor.DefaultGridExecutorFactory; 
     26import com.numericalmethod.suanshu.grid.executor.GridExecutor; 
    2727import com.numericalmethod.suanshu.grid.function.Function; 
    2828import com.numericalmethod.suanshu.number.DoubleUtils; 
    … …  
    6969     */ 
    7070    public static void main(String[] args) { 
    71         DistributedExecutor executor = 
    72             DefaultDistributedExecutorFactory.getInstance().newDistributedExecutor(); 
     71        GridExecutor executor 
     72            = DefaultGridExecutorFactory.getInstance().newExecutor(); 
    7373 
    7474        List<Integer> numbers = DoubleUtils.intArray2List(DoubleUtils.seq(10, 20)); 
  • Examples/src/main/java/com/numericalmethod/suanshu/examples/DistributedRandomNumberGeneration.java

    r84 r200  
    2323package com.numericalmethod.suanshu.examples; 
    2424 
    25 import com.numericalmethod.suanshu.grid.DefaultDistributedExecutorFactory; 
    26 import com.numericalmethod.suanshu.grid.DistributedExecutor; 
    27 import com.numericalmethod.suanshu.grid.function.RandomizedFunction; 
    28 import com.numericalmethod.suanshu.stats.random.univariate.RandomLongGenerator; 
     25import com.numericalmethod.suanshu.grid.executor.DefaultGridExecutorFactory; 
     26import com.numericalmethod.suanshu.grid.executor.GridExecutor; 
     27import com.numericalmethod.suanshu.grid.function.random.RLGFunction; 
     28import com.numericalmethod.suanshu.stats.random.rng.univariate.RandomLongGenerator; 
    2929import java.util.List; 
    3030 
    … …  
    3939     * Generates a random number using the given random number generator. 
    4040     */ 
    41     public static class GenerateRandomNumber extends RandomizedFunction<Long, Integer> { 
     41    public static class GenerateRandomNumber extends RLGFunction<Long, Integer> { 
    4242 
    4343        private static final long serialVersionUID = -4580493892345384714L; 
    4444 
    4545        @Override 
    46         public Long eval(Integer in, RandomLongGenerator rng) { 
    47             long x = rng.nextLong(); 
     46        public Long eval(Integer in, RandomLongGenerator rlg) { 
     47            long x = rlg.nextLong(); 
    4848 
    4949            System.out.printf("%s generates %d%n", Thread.currentThread().getName(), x); 
    … …  
    6363     */ 
    6464    public static void main(String[] args) { 
    65         DistributedExecutor executor = 
    66             DefaultDistributedExecutorFactory.getInstance().newDistributedExecutor(); 
     65        GridExecutor executor 
     66            = DefaultGridExecutorFactory.getInstance().newExecutor(); 
    6767 
    6868        List<Long> numbers1 = executor.forLoop(0, N_NUMBERS, new GenerateRandomNumber()); 
    6969 
    70         System.out.println("random list 1: " + numbers1); 
    71  
    72         List<Long> numbers2 = executor.forLoop(0, N_NUMBERS, new GenerateRandomNumber()); 
    73  
    74         System.out.println("random list 2: " + numbers2); 
    75  
    76         // this depends on whether the seeds have been added in the config file 
    77         System.out.println("two lists are equal? " + numbers1.equals(numbers2)); 
     70        System.out.println("random list" + numbers1); 
    7871    } 
    7972} 
  • Examples/src/main/java/com/numericalmethod/suanshu/examples/LinearAlgebra.java

    r137 r200  
    3131import com.numericalmethod.suanshu.algebra.linear.matrix.doubles.factorization.svd.SVD; 
    3232import com.numericalmethod.suanshu.algebra.linear.matrix.doubles.factorization.triangle.Doolittle; 
    33 import com.numericalmethod.suanshu.algebra.linear.matrix.doubles.factorization.triangle.cholesky.Chol; 
    34 import com.numericalmethod.suanshu.algebra.linear.matrix.doubles.factorization.triangle.cholesky.Cholesky; 
     33import com.numericalmethod.suanshu.algebra.linear.matrix.doubles.factorization.triangle.cholesky.*; 
    3534import com.numericalmethod.suanshu.algebra.linear.matrix.doubles.linearsystem.LinearSystemSolver; 
    3635import com.numericalmethod.suanshu.algebra.linear.matrix.doubles.matrixtype.dense.DenseMatrix; 
    … …  
    3837import com.numericalmethod.suanshu.algebra.linear.matrix.doubles.matrixtype.dense.triangle.*; 
    3938import com.numericalmethod.suanshu.algebra.linear.matrix.doubles.operation.*; 
     39import com.numericalmethod.suanshu.algebra.linear.matrix.doubles.operation.householder.HouseholderReflection; 
    4040import com.numericalmethod.suanshu.algebra.linear.vector.doubles.Vector; 
    4141import com.numericalmethod.suanshu.algebra.linear.vector.doubles.dense.DenseVector; 
    4242import com.numericalmethod.suanshu.number.DoubleUtils; 
    43 import java.util.Arrays; 
    44 import java.util.List; 
     43import java.util.*; 
    4544 
    4645/** 
  • Examples/src/main/java/com/numericalmethod/suanshu/examples/LinearTimeSeries.java

    r55 r200  
    2323package com.numericalmethod.suanshu.examples; 
    2424 
    25 import com.numericalmethod.suanshu.stats.random.RNGUtils; 
     25import com.numericalmethod.suanshu.stats.random.rng.RNGUtils; 
    2626import com.numericalmethod.suanshu.stats.timeseries.datastructure.univariate.realtime.inttime.IntTimeTimeSeries; 
    2727import com.numericalmethod.suanshu.stats.timeseries.datastructure.univariate.realtime.inttime.SimpleTimeSeries; 
  • Examples/src/main/java/com/numericalmethod/suanshu/examples/QuadraticProgramming.java

    r55 r200  
    3030import com.numericalmethod.suanshu.misc.PrecisionUtils; 
    3131import com.numericalmethod.suanshu.optimization.multivariate.constrained.constraint.linear.*; 
    32 import com.numericalmethod.suanshu.optimization.multivariate.constrained.convex.sdp.socp.qp.QPInfeasible; 
    33 import com.numericalmethod.suanshu.optimization.multivariate.constrained.convex.sdp.socp.qp.QPSolution; 
    34 import com.numericalmethod.suanshu.optimization.multivariate.constrained.convex.sdp.socp.qp.activeset.QPPrimalActiveSetSolver; 
    35 import com.numericalmethod.suanshu.optimization.multivariate.constrained.convex.sdp.socp.qp.activeset.QPPrimalActiveSetSolver.Solution; 
     32import com.numericalmethod.suanshu.optimization.multivariate.constrained.convex.sdp.socp.qp.*; 
     33import com.numericalmethod.suanshu.optimization.multivariate.constrained.convex.sdp.socp.qp.activeset.QPPrimalActiveSetMinimizer; 
     34import com.numericalmethod.suanshu.optimization.multivariate.constrained.convex.sdp.socp.qp.activeset.QPPrimalActiveSetMinimizer.Solution; 
    3635import com.numericalmethod.suanshu.optimization.multivariate.constrained.convex.sdp.socp.qp.problem.QPProblem; 
    37 import static java.lang.Math.sqrt; 
     36import static java.lang.Math.*; 
    3837 
    3938/** 
    … …  
    149148            throws QPInfeasible, Exception { 
    150149        QPProblem problem = new QPProblem(F, equal, greater, less); 
    151         QPPrimalActiveSetSolver instance = new QPPrimalActiveSetSolver(precision, maxIterations); 
     150        QPPrimalActiveSetMinimizer instance = new QPPrimalActiveSetMinimizer(precision, maxIterations); 
    152151        Solution soln = instance.solve(problem); 
    153152        QPSolution qpSoln = soln.search(initialGuess); 
  • Examples/src/main/java/com/numericalmethod/suanshu/examples/Random.java

    r57 r200  
    2626import com.numericalmethod.suanshu.stats.distribution.univariate.ExponentialDistribution; 
    2727import com.numericalmethod.suanshu.stats.distribution.univariate.ProbabilityDistribution; 
    28 import com.numericalmethod.suanshu.stats.random.univariate.InverseTransformSampling; 
    29 import com.numericalmethod.suanshu.stats.random.univariate.RandomNumberGenerator; 
    30 import com.numericalmethod.suanshu.stats.random.univariate.normal.BoxMuller; 
    31 import com.numericalmethod.suanshu.stats.random.univariate.normal.NormalRNG; 
    32 import com.numericalmethod.suanshu.stats.random.univariate.uniform.UniformRNG; 
    33 import com.numericalmethod.suanshu.stats.random.univariate.uniform.mersennetwister.MersenneTwister; 
     28import com.numericalmethod.suanshu.stats.random.rng.univariate.InverseTransformSampling; 
     29import com.numericalmethod.suanshu.stats.random.rng.univariate.RandomNumberGenerator; 
     30import com.numericalmethod.suanshu.stats.random.rng.univariate.normal.BoxMuller; 
     31import com.numericalmethod.suanshu.stats.random.rng.univariate.normal.NormalRNG; 
     32import com.numericalmethod.suanshu.stats.random.rng.univariate.uniform.UniformRNG; 
     33import com.numericalmethod.suanshu.stats.random.rng.univariate.uniform.mersennetwister.MersenneTwister; 
    3434import java.util.Arrays; 
    3535 
  • Examples/src/main/java/com/numericalmethod/suanshu/examples/SOCP.java

    r78 r200  
    2727import com.numericalmethod.suanshu.algebra.linear.vector.doubles.Vector; 
    2828import com.numericalmethod.suanshu.algebra.linear.vector.doubles.dense.DenseVector; 
    29 import com.numericalmethod.suanshu.optimization.multivariate.constrained.convex.sdp.socp.interiorpoint.PrimalDualInteriorPoint; 
     29import com.numericalmethod.suanshu.optimization.multivariate.constrained.convex.sdp.socp.interiorpoint.PrimalDualInteriorPointMinimizer; 
    3030import com.numericalmethod.suanshu.optimization.multivariate.constrained.convex.sdp.socp.interiorpoint.PrimalDualSolution; 
    3131import com.numericalmethod.suanshu.optimization.multivariate.constrained.convex.sdp.socp.problem.SOCPGeneralConstraint; 
    … …  
    114114        PrimalDualSolution soln0 = new PrimalDualSolution(x0, s0, y0); 
    115115 
    116         PrimalDualInteriorPoint socp = new PrimalDualInteriorPoint(epsilon, maxIteration); 
     116        PrimalDualInteriorPointMinimizer socp = new PrimalDualInteriorPointMinimizer(epsilon, maxIteration); 
    117117        IterativeMinimizer<PrimalDualSolution> soln = socp.solve(problem); 
    118118        soln.search(soln0); 
    … …  
    131131    public static void solveSOCP_0020(SOCPGeneralProblem problem, double epsilon, int maxIteration) 
    132132        throws Exception { 
    133         PrimalDualInteriorPoint socp = new PrimalDualInteriorPoint(epsilon, maxIteration); 
     133        PrimalDualInteriorPointMinimizer socp = new PrimalDualInteriorPointMinimizer(epsilon, maxIteration); 
    134134        IterativeMinimizer<PrimalDualSolution> soln = socp.solve(problem); 
    135135        soln.search(); 
  • Examples/src/main/java/com/numericalmethod/suanshu/examples/SemiDefiniteProgramming.java

    r55 r200  
    2828import com.numericalmethod.suanshu.algebra.linear.vector.doubles.dense.DenseVector; 
    2929import com.numericalmethod.suanshu.optimization.multivariate.constrained.convex.sdp.pathfollowing.*; 
    30 import com.numericalmethod.suanshu.optimization.multivariate.constrained.convex.sdp.pathfollowing.PrimalDualPathFollowing.Solution; 
     30import com.numericalmethod.suanshu.optimization.multivariate.constrained.convex.sdp.pathfollowing.PrimalDualPathFollowingMinimizer.Solution; 
    3131import com.numericalmethod.suanshu.optimization.multivariate.constrained.convex.sdp.problem.SDPDualProblem; 
    3232 
    … …  
    142142    public static void primalDualPathFollowing( 
    143143            SDPDualProblem problem, CentralPath path0, double gamma0, double epsilon) throws Exception { 
    144         PrimalDualPathFollowing pdpf = new PrimalDualPathFollowing(gamma0, epsilon); 
     144        PrimalDualPathFollowingMinimizer pdpf = new PrimalDualPathFollowingMinimizer(gamma0, epsilon); 
    145145        Solution soln = pdpf.solve(problem); 
    146146        CentralPath path = soln.search(path0); 
    … …  
    163163    public static void homogeneousPathFollowing( 
    164164            SDPDualProblem problem, double epsilon) throws Exception { 
    165         HomogeneousPathFollowing hsdpf = new HomogeneousPathFollowing(epsilon); 
     165        HomogeneousPathFollowingMinimizer hsdpf = new HomogeneousPathFollowingMinimizer(epsilon); 
    166166        Solution soln = hsdpf.solve(problem); 
    167167        CentralPath path = soln.search(); 
  • Examples/src/main/java/com/numericalmethod/suanshu/examples/SequentialQuadraticProgramming.java

    r55 r200  
    3333import com.numericalmethod.suanshu.optimization.multivariate.constrained.constraint.general.GeneralGreaterThanConstraints; 
    3434import com.numericalmethod.suanshu.optimization.multivariate.constrained.constraint.linear.LinearGreaterThanConstraints; 
    35 import com.numericalmethod.suanshu.optimization.multivariate.constrained.general.sqp.activeset.SQPActiveSetSolver; 
    36 import com.numericalmethod.suanshu.optimization.multivariate.constrained.general.sqp.activeset.SQPActiveSetSolver.Solution; 
    37 import com.numericalmethod.suanshu.optimization.multivariate.constrained.general.sqp.activeset.SQPActiveSetSolverForOnlyInequalityConstraint; 
     35import com.numericalmethod.suanshu.optimization.multivariate.constrained.general.sqp.activeset.SQPActiveSetMinimizer; 
     36import com.numericalmethod.suanshu.optimization.multivariate.constrained.general.sqp.activeset.SQPActiveSetMinimizer.Solution; 
     37import com.numericalmethod.suanshu.optimization.multivariate.constrained.general.sqp.activeset.SQPActiveSetOnlyInequalityConstraintMinimizer; 
    3838import com.numericalmethod.suanshu.optimization.multivariate.constrained.general.sqp.activeset.equalityconstraint.*; 
    3939import com.numericalmethod.suanshu.optimization.multivariate.constrained.problem.ConstrainedOptimProblemImpl1; 
    … …  
    6060    public static void main(String[] args) throws Exception { 
    6161        System.out.println("This class demonstrates how to solve sequential quadratic programming " 
    62                            + "problems in Java using SuanShu."); 
     62            + "problems in Java using SuanShu."); 
    6363        inequalityAndEquality(); 
    6464        inequalityOnly(); 
    … …  
    9797 
    9898        EqualityConstraints equal = new GeneralEqualityConstraints( 
    99                 new RealScalarFunction() { 
    100                     @Override 
    101                     public Double evaluate(Vector x) { 
    102                         double x1 = x.get(1); 
    103                         double x2 = x.get(2); 
    104  
    105                         double fx = x1 * x1 + x2 * x2 - 9.; 
    106                         return fx; 
    107                     } 
    108  
    109                     @Override 
    110                     public int dimensionOfDomain() { 
    111                         return 2; 
    112                     } 
    113  
    114                     @Override 
    115                     public int dimensionOfRange() { 
    116                         return 1; 
    117                     } 
    118                 }); 
     99            new RealScalarFunction() { 
     100                @Override 
     101                public Double evaluate(Vector x) { 
     102                    double x1 = x.get(1); 
     103                    double x2 = x.get(2); 
     104 
     105                    double fx = x1 * x1 + x2 * x2 - 9.; 
     106                    return fx; 
     107                } 
     108 
     109                @Override 
     110                public int dimensionOfDomain() { 
     111                    return 2; 
     112                } 
     113 
     114                @Override 
     115                public int dimensionOfRange() { 
     116                    return 1; 
     117                } 
     118            }); 
    119119 
    120120        LinearGreaterThanConstraints greater = new LinearGreaterThanConstraints( 
    121                 new DenseMatrix(new double[][]{ 
    122                     {1, 0}, 
    123                     {-1, 0}, 
    124                     {0, 1}, 
    125                     {0, -1} 
    126                 }), 
    127                 new DenseVector(1., -5., 2., -4.)); 
    128  
    129         SQPActiveSetSolver instance = new SQPActiveSetSolver(1e-6, 20); 
     121            new DenseMatrix(new double[][]{ 
     122                {1, 0}, 
     123                {-1, 0}, 
     124                {0, 1}, 
     125                {0, -1} 
     126            }), 
     127            new DenseVector(1., -5., 2., -4.)); 
     128 
     129        SQPActiveSetMinimizer instance = new SQPActiveSetMinimizer(1e-6, 20); 
    130130        ConstrainedOptimProblemImpl1 problem = new ConstrainedOptimProblemImpl1( 
    131                 f, equal, greater.toLessThanConstraints()); 
     131            f, equal, greater.toLessThanConstraints()); 
    132132 
    133133        Vector x; 
    … …  
    178178 
    179179        GreaterThanConstraints greater = new GeneralGreaterThanConstraints( 
    180                 new RealScalarFunction() { 
    181                     @Override 
    182                     public Double evaluate(Vector x) { 
    183                         double x1 = x.get(1); 
    184                         double x2 = x.get(2); 
    185                         double x3 = x.get(3); 
    186                         double x4 = x.get(4); 
    187  
    188                         Matrix v = new DenseMatrix(new double[]{x1, x2}, 2, 1); 
    189  
    190                         Matrix A = new DenseMatrix(new double[][]{ 
    191                                     {0.25, 0}, 
    192                                     {0, 1} 
    193                                 }); 
    194                         Matrix B = new DenseMatrix(new double[]{0.5, 0}, 2, 1); 
    195  
    196                         Matrix FX = v.t().multiply(A).multiply(v); 
    197                         FX = FX.scaled(-1); 
    198                         FX = FX.add(v.t().multiply(B)); 
    199  
    200                         double fx = FX.get(1, 1); 
    201                         fx += 0.75; 
    202  
    203                         return fx; 
    204                     } 
    205  
    206                     @Override 
    207                     public int dimensionOfDomain() { 
    208                         return 4; 
    209                     } 
    210  
    211                     @Override 
    212                     public int dimensionOfRange() { 
    213                         return 1; 
    214                     } 
    215                 }, 
    216                 new RealScalarFunction() { 
    217                     @Override 
    218                     public Double evaluate(Vector x) { 
    219                         double x3 = x.get(3); 
    220                         double x4 = x.get(4); 
    221  
    222                         Matrix v = new DenseMatrix(new double[]{x3, x4}, 2, 1); 
    223  
    224                         Matrix A = new DenseMatrix(new double[][]{ 
    225                                     {5, 3}, 
    226                                     {3, 5} 
    227                                 }); 
    228                         Matrix B = new DenseMatrix(new double[]{11. / 2, 13. / 2}, 2, 1); 
    229  
    230                         Matrix FX = v.t().multiply(A).multiply(v); 
    231                         FX = FX.scaled(-1. / 8); 
    232                         FX = FX.add(v.t().multiply(B)); 
    233  
    234                         double fx = FX.get(1, 1); 
    235                         fx += -35. / 2; 
    236  
    237                         return fx; 
    238                     } 
    239  
    240                     @Override 
    241                     public int dimensionOfDomain() { 
    242                         return 4; 
    243                     } 
    244  
    245                     @Override 
    246                     public int dimensionOfRange() { 
    247                         return 1; 
    248                     } 
    249                 }); 
    250  
    251         SQPActiveSetSolverForOnlyInequalityConstraint instance = 
    252                 new SQPActiveSetSolverForOnlyInequalityConstraint(1e-7, 300); 
     180            new RealScalarFunction() { 
     181                @Override 
     182                public Double evaluate(Vector x) { 
     183                    double x1 = x.get(1); 
     184                    double x2 = x.get(2); 
     185                    double x3 = x.get(3); 
     186                    double x4 = x.get(4); 
     187 
     188                    Matrix v = new DenseMatrix(new double[]{x1, x2}, 2, 1); 
     189 
     190                    Matrix A = new DenseMatrix(new double[][]{ 
     191                        {0.25, 0}, 
     192                        {0, 1} 
     193                    }); 
     194                    Matrix B = new DenseMatrix(new double[]{0.5, 0}, 2, 1); 
     195 
     196                    Matrix FX = v.t().multiply(A).multiply(v); 
     197                    FX = FX.scaled(-1); 
     198                    FX = FX.add(v.t().multiply(B)); 
     199 
     200                    double fx = FX.get(1, 1); 
     201                    fx += 0.75; 
     202 
     203                    return fx; 
     204                } 
     205 
     206                @Override 
     207                public int dimensionOfDomain() { 
     208                    return 4; 
     209                } 
     210 
     211                @Override 
     212                public int dimensionOfRange() { 
     213                    return 1; 
     214                } 
     215            }, 
     216            new RealScalarFunction() { 
     217                @Override 
     218                public Double evaluate(Vector x) { 
     219                    double x3 = x.get(3); 
     220                    double x4 = x.get(4); 
     221 
     222                    Matrix v = new DenseMatrix(new double[]{x3, x4}, 2, 1); 
     223 
     224                    Matrix A = new DenseMatrix(new double[][]{ 
     225                        {5, 3}, 
     226                        {3, 5} 
     227                    }); 
     228                    Matrix B = new DenseMatrix(new double[]{11. / 2, 13. / 2}, 2, 1); 
     229 
     230                    Matrix FX = v.t().multiply(A).multiply(v); 
     231                    FX = FX.scaled(-1. / 8); 
     232                    FX = FX.add(v.t().multiply(B)); 
     233 
     234                    double fx = FX.get(1, 1); 
     235                    fx += -35. / 2; 
     236 
     237                    return fx; 
     238                } 
     239 
     240                @Override 
     241                public int dimensionOfDomain() { 
     242                    return 4; 
     243                } 
     244 
     245                @Override 
     246                public int dimensionOfRange() { 
     247                    return 1; 
     248                } 
     249            }); 
     250 
     251        SQPActiveSetOnlyInequalityConstraintMinimizer instance 
     252            = new SQPActiveSetOnlyInequalityConstraintMinimizer(1e-7, 300); 
    253253        IterativeMinimizer<Vector> minimizer = instance.solve(f, greater); 
    254254        Vector x = minimizer.search(new DenseVector(1., 0.5, 2., 3.), new DenseVector(1., 1.)); 
    … …  
    294294 
    295295        EqualityConstraints equal = new GeneralEqualityConstraints( 
    296                 new RealScalarFunction() { 
    297                     @Override 
    298                     public Double evaluate(Vector x) { 
    299                         double x1 = x.get(1); 
    300                         double x2 = x.get(2); 
    301                         double x3 = x.get(3); 
    302  
    303                         double fx = pow(x1, 4.); 
    304                         fx += pow(x2, 4.); 
    305                         fx += pow(x3, 4.); 
    306                         fx -= 25.; 
    307  
    308                         return fx; 
    309                     } 
    310  
    311                     @Override 
    312                     public int dimensionOfDomain() { 
    313                         return 3; 
    314                     } 
    315  
    316                     @Override 
    317                     public int dimensionOfRange() { 
    318                         return 1; 
    319                     } 
    320                 }, 
    321                 new RealScalarFunction() { 
    322                     @Override 
    323                     public Double evaluate(Vector x) { 
    324                         double x1 = x.get(1); 
    325                         double x2 = x.get(2); 
    326                         double x3 = x.get(3); 
    327  
    328                         double fx = 8. * pow(x1, 2.); 
    329                         fx += 14. * pow(x2, 2.); 
    330                         fx += 7. * pow(x3, 2.); 
    331                         fx -= 56.; 
    332  
    333                         return fx; 
    334                     } 
    335  
    336                     @Override 
    337                     public int dimensionOfDomain() { 
    338                         return 3; 
    339                     } 
    340  
    341                     @Override 
    342                     public int dimensionOfRange() { 
    343                         return 1; 
    344                     } 
    345                 }); 
    346  
    347         SQPActiveSetSolverForOnlyEqualityConstraint1 instance = 
    348                 new SQPActiveSetSolverForOnlyEqualityConstraint1( 
    349                 new SQPActiveSetSolverForOnlyEqualityConstraint1.VariationFactory() { 
     296            new RealScalarFunction() { 
     297                @Override 
     298                public Double evaluate(Vector x) { 
     299                    double x1 = x.get(1); 
     300                    double x2 = x.get(2); 
     301                    double x3 = x.get(3); 
     302 
     303                    double fx = pow(x1, 4.); 
     304                    fx += pow(x2, 4.); 
     305                    fx += pow(x3, 4.); 
     306                    fx -= 25.; 
     307 
     308                    return fx; 
     309                } 
     310 
     311                @Override 
     312                public int dimensionOfDomain() { 
     313                    return 3; 
     314                } 
     315 
     316                @Override 
     317                public int dimensionOfRange() { 
     318                    return 1; 
     319                } 
     320            }, 
     321            new RealScalarFunction() { 
     322                @Override 
     323                public Double evaluate(Vector x) { 
     324                    double x1 = x.get(1); 
     325                    double x2 = x.get(2); 
     326                    double x3 = x.get(3); 
     327 
     328                    double fx = 8. * pow(x1, 2.); 
     329                    fx += 14. * pow(x2, 2.); 
     330                    fx += 7. * pow(x3, 2.); 
     331                    fx -= 56.; 
     332 
     333                    return fx; 
     334                } 
     335 
     336                @Override 
     337                public int dimensionOfDomain() { 
     338                    return 3; 
     339                } 
     340 
     341                @Override 
     342                public int dimensionOfRange() { 
     343                    return 1; 
     344                } 
     345            }); 
     346 
     347        SQPActiveSetOnlyEqualityConstraint1Minimizer instance 
     348            = new SQPActiveSetOnlyEqualityConstraint1Minimizer( 
     349                new SQPActiveSetOnlyEqualityConstraint1Minimizer.VariationFactory() { 
    350350                    @Override 
    351351                    public SQPASEVariation newVariation( 
    352                             RealScalarFunction f, EqualityConstraints equal) { 
    353                         SQPASEVariation2 impl = new SQPASEVariation2(100., 0.01, 10); 
    354                         impl.set(f, equal); 
    355                         return impl; 
    356                     } 
     352                        RealScalarFunction f, EqualityConstraints equal) { 
     353                            SQPASEVariation2 impl = new SQPASEVariation2(100., 0.01, 10); 
     354                            impl.set(f, equal); 
     355                            return impl; 
     356                        } 
    357357                }, 
    358358                1e-10, 
  • Examples/src/main/java/com/numericalmethod/suanshu/examples/StochasticIntegral.java

    r55 r200  
    7070    public static void main(String[] args) { 
    7171        System.out.println("This class demonstrates how to numerically compute stochastic " 
    72                            + "integrals in Java using SuanShu."); 
     72            + "integrals in Java using SuanShu."); 
    7373        B2dB1_0010(); 
    7474        B2dB1_0020(); 
    … …  
    155155        Integral I = new IntegralDB(B2); 
    156156 
    157         Expectation E = new Expectation(I, 
    158                                         T_0, T_1, // [0, 1] 
    159                                         N_T, // discretization 
    160                                         N_SIMS); // number of simulations 
     157        IntegralExpectation E = new IntegralExpectation(I, 
     158                                                        T_0, T_1, // [0, 1] 
     159                                                        N_T, // discretization 
     160                                                        N_SIMS); // number of simulations 
    161161 
    162162        /** 
    … …  
    202202        Integral I = new IntegralDt(B1B2); 
    203203 
    204         Expectation E = new Expectation(I, 
    205                                         T_0, T_1, // [0, 1] 
    206                                         N_T, // discretization 
    207                                         N_SIMS); // number of simulations 
     204        IntegralExpectation E = new IntegralExpectation(I, 
     205                                                        T_0, T_1, // [0, 1] 
     206                                                        N_T, // discretization 
     207                                                        N_SIMS); // number of simulations 
    208208 
    209209        System.out.printf("the mean is %f%n", E.mean()); 
Note: See TracChangeset for help on using the changeset viewer.