MCPcopy Create free account
hub / github.com/abess-team/abess / testNistRat43

Function testNistRat43

python/include/unsupported/test/NonLinearOptimization.cpp:1688–1739  ·  view source on GitHub ↗

http://www.itl.nist.gov/div898/strd/nls/data/ratkowsky3.shtml

Source from the content-addressed store, hash-verified

1686
1687// http://www.itl.nist.gov/div898/strd/nls/data/ratkowsky3.shtml
1688void testNistRat43(void)
1689{
1690 const int n=4;
1691 int info;
1692
1693 VectorXd x(n);
1694
1695 /*
1696 * First try
1697 */
1698 x<< 100., 10., 1., 1.;
1699 // do the computation
1700 rat43_functor functor;
1701 LevenbergMarquardt<rat43_functor> lm(functor);
1702 lm.parameters.ftol = 1.E6*NumTraits<double>::epsilon();
1703 lm.parameters.xtol = 1.E6*NumTraits<double>::epsilon();
1704 info = lm.minimize(x);
1705
1706 // check return value
1707 VERIFY_IS_EQUAL(info, 1);
1708 VERIFY_IS_EQUAL(lm.nfev, 27);
1709 VERIFY_IS_EQUAL(lm.njev, 20);
1710 // check norm^2
1711 VERIFY_IS_APPROX(lm.fvec.squaredNorm(), 8.7864049080E+03);
1712 // check x
1713 VERIFY_IS_APPROX(x[0], 6.9964151270E+02);
1714 VERIFY_IS_APPROX(x[1], 5.2771253025E+00);
1715 VERIFY_IS_APPROX(x[2], 7.5962938329E-01);
1716 VERIFY_IS_APPROX(x[3], 1.2792483859E+00);
1717
1718 /*
1719 * Second try
1720 */
1721 x<< 700., 5., 0.75, 1.3;
1722 // do the computation
1723 lm.resetParameters();
1724 lm.parameters.ftol = 1.E5*NumTraits<double>::epsilon();
1725 lm.parameters.xtol = 1.E5*NumTraits<double>::epsilon();
1726 info = lm.minimize(x);
1727
1728 // check return value
1729 VERIFY_IS_EQUAL(info, 1);
1730 VERIFY_IS_EQUAL(lm.nfev, 9);
1731 VERIFY_IS_EQUAL(lm.njev, 8);
1732 // check norm^2
1733 VERIFY_IS_APPROX(lm.fvec.squaredNorm(), 8.7864049080E+03);
1734 // check x
1735 VERIFY_IS_APPROX(x[0], 6.9964151270E+02);
1736 VERIFY_IS_APPROX(x[1], 5.2771253025E+00);
1737 VERIFY_IS_APPROX(x[2], 7.5962938329E-01);
1738 VERIFY_IS_APPROX(x[3], 1.2792483859E+00);
1739}
1740
1741
1742

Callers 1

Calls 3

minimizeMethod · 0.45
squaredNormMethod · 0.45
resetParametersMethod · 0.45

Tested by

no test coverage detected