Hi, As an aside, these linear constraints can only be used if the relaxation dispersion gradients are calculated. These gradients are not present for the relaxation exponential curve-fitting as it is not necessary. For model-free analysis, both the gradients and Hessians have been calculated and are coded into python functions. At the start, the relaxation dispersion may not need parameter constraints but the gradient may be very useful for better optimisation. With no gradients, only the simplex optimisation algorithm can be used. So in the future if you'd like the gradients, you need to calculate the first partial derivatives of the chi-squared equation/relaxation dispersion equation for each parameter and code these as separate functions.
Regards, Edward On Tue, Jan 13, 2009 at 4:13 AM, <[email protected]> wrote: > Author: semor > Date: Tue Jan 13 04:13:54 2009 > New Revision: 8428 > > URL: http://svn.gna.org/viewcvs/relax?rev=8428&view=rev > Log: > Converted the function linear_constraints() for relaxation dispersion needs. > > > Modified: > branches/relax_disp/specific_fns/relax_disp.py > > Modified: branches/relax_disp/specific_fns/relax_disp.py > URL: > http://svn.gna.org/viewcvs/relax/branches/relax_disp/specific_fns/relax_disp.py?rev=8428&r1=8427&r2=8428&view=diff > ============================================================================== > --- branches/relax_disp/specific_fns/relax_disp.py (original) > +++ branches/relax_disp/specific_fns/relax_disp.py Tue Jan 13 04:13:54 2009 > @@ -725,27 +725,34 @@ > Standard notation > ================= > > - The relaxation rate constraints are:: > - > - Rx >= 0 > - > - The intensity constraints are:: > - > - I0 >= 0 > - Iinf >= 0 > + The different constraints are:: > + > + R2 >= 0 > + Rex >= 0 > + kex >= 0 > + > + R2A >= 0 > + kA >= 0 > + dw >= 0 > > > Matrix notation > =============== > > - In the notation A.x >= b, where A is an matrix of coefficients, x is > an array of parameter > + In the notation A.x >= b, where A is a matrix of coefficients, x is > an array of parameter > values, and b is a vector of scalars, these inequality constraints > are:: > > - | 1 0 0 | | Rx | | 0 | > + | 1 0 0 | | R2 | | 0 | > | | | | | | > - | 1 0 0 | . | I0 | >= | 0 | > + | 1 0 0 | . | Rex | | 0 | > | | | | | | > - | 1 0 0 | | Iinf | | 0 | > + | 1 0 0 | | kex | | 0 | > + | | | | >= | | > + | 1 0 0 | | R2A | | 0 | > + | | | | | | > + | 1 0 0 | | kA | | 0 | > + | | | | | | > + | 1 0 0 | | dw | | 0 | > > > @keyword spin: The spin data container. > @@ -764,17 +771,25 @@ > > # Loop over the parameters. > for k in xrange(len(spin.params)): > - # Relaxation rate. > - if spin.params[k] == 'Rx': > - # Rx >= 0. > + # Relaxation rates and Rex. > + if search('^R', spin.params[k]): > + # R2, Rex, R2A >= 0. > A.append(zero_array * 0.0) > A[j][i] = 1.0 > b.append(0.0) > j = j + 1 > > - # Intensity parameter. > - elif search('^I', spin.params[k]): > - # I0, Iinf >= 0. > + # Exchange rates. > + elif search('^k', spin.params[k]): > + # kex, kA >= 0. > + A.append(zero_array * 0.0) > + A[j][i] = 1.0 > + b.append(0.0) > + j = j + 1 > + > + # Chemical exchange difference. > + elif spin.params[k] == 'dw': > + # dw >= 0. > A.append(zero_array * 0.0) > A[j][i] = 1.0 > b.append(0.0) > > > _______________________________________________ > relax (http://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 > _______________________________________________ relax (http://nmr-relax.com) This is the relax-devel 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-devel

