Author: bugman
Date: Fri Aug 29 18:05:20 2014
New Revision: 25446

URL: http://svn.gna.org/viewcvs/relax?rev=25446&view=rev
Log:
Added a script and log file for calculating the numerical Jacobian for an 
exponential curve.

This uses the data at 
http://thread.gmane.org/gmane.science.nmr.relax.devel/6807/focus=6840 and
calculates the Jacobian using the numdifftools.Jacobian object construct and 
obtain the matrix, both
at the minimum and at a point away from the minimum.  The values will be used 
to construct a unit
test to check the C module implementation.


Added:
    trunk/test_suite/shared_data/curve_fitting/numeric_gradient/jacobian.py
      - copied, changed from r25445, 
trunk/test_suite/shared_data/curve_fitting/numeric_gradient/Hessian.py

Copied: trunk/test_suite/shared_data/curve_fitting/numeric_gradient/jacobian.py 
(from r25445, 
trunk/test_suite/shared_data/curve_fitting/numeric_gradient/Hessian.py)
URL: 
http://svn.gna.org/viewcvs/relax/trunk/test_suite/shared_data/curve_fitting/numeric_gradient/jacobian.py?p2=trunk/test_suite/shared_data/curve_fitting/numeric_gradient/jacobian.py&p1=trunk/test_suite/shared_data/curve_fitting/numeric_gradient/Hessian.py&r1=25445&r2=25446&rev=25446&view=diff
==============================================================================
--- trunk/test_suite/shared_data/curve_fitting/numeric_gradient/Hessian.py      
(original)
+++ trunk/test_suite/shared_data/curve_fitting/numeric_gradient/jacobian.py     
Fri Aug 29 18:05:20 2014
@@ -3,11 +3,11 @@
 # Python module imports.
 from math import exp
 from numpy import array, float64
-from numdifftools import Hessian
+from numdifftools import Jacobian
 
 
 def func(params):
-    """Calculate the chi-squared value."""
+    """Back-calculate the intensities."""
 
     global times, I, errors
 
@@ -19,13 +19,8 @@
     for i in range(len(times)):
         back_calc.append(I0 * exp(-R*times[i]))
 
-    # The chi2.
-    chi2 = 0.0
-    for i in range(len(times)):
-        chi2 += (I[i] - back_calc[i])**2 / errors[i]**2
-
-    # Return the value.
-    return chi2
+    # Return the back-calculated intensities.
+    return array(back_calc)
 
 
 # The real parameters.
@@ -41,17 +36,17 @@
 # The intensity errors.
 errors = [10.0, 10.0, 10.0, 10.0, 10.0]
 
-# Set up the Hessian function.
-d2func = Hessian(func)
+# Set up the Jacobian function.
+jacobian = Jacobian(func)
 
-# The numeric Hessian at the minimum.
+# The numeric Jacobian at the minimum.
 print("\n\nOn-minimum:\n")
-hess = d2func([R, I0])
-print("The Hessian at %s is:\n%s" % ([R, I0], hess))
+matrix = jacobian([R, I0])
+print("The Jacobian at %s is:\n%s" % ([R, I0], matrix))
 
-# The numeric Hessian off the minimum.
+# The numeric Jacobian off the minimum.
 print("\n\nOff-minimum:\n")
 R = 2.0
 I0 = 500.0
-hess = d2func([R, I0])
-print("The Hessian at %s is:\n%s" % ([R, I0], hess))
+matrix = jacobian([R, I0])
+print("The Jacobian at %s is:\n%s" % ([R, I0], matrix))


_______________________________________________
relax (http://www.nmr-relax.com)

This is the relax-commits mailing list
[email protected]

To unsubscribe from this list, get a password
reminder, or change your subscription options,
visit the list information page at
https://mail.gna.org/listinfo/relax-commits

Reply via email to