From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 31317 invoked by alias); 22 Mar 2010 14:49:11 -0000 Received: (qmail 31309 invoked by uid 22791); 22 Mar 2010 14:49:10 -0000 X-SWARE-Spam-Status: No, hits=-0.2 required=5.0 tests=AWL,BAYES_20,SARE_MILLIONSOF X-Spam-Check-By: sourceware.org Received: from mx4.oit.ohio.edu (HELO mx4.oit.ohio.edu) (132.235.250.54) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 22 Mar 2010 14:49:06 +0000 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApsEAHYgp0uE6wiX/2dsb2JhbACcF64XDoQRiFuEfQSDOg Received: from oak3a.cats.ohiou.edu (HELO oak.cats.ohiou.edu) ([132.235.8.151]) by smtpout4.oit.ohio.edu with ESMTP; 22 Mar 2010 10:49:04 -0400 Received: from bubbles.hooperlab (crab-lab.zool.ohiou.edu [132.235.227.198]) (authenticated bits=0) by oak.cats.ohiou.edu (8.13.1/8.13.1) with ESMTP id o2MEmhqQ1958299 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Mon, 22 Mar 2010 10:48:44 -0400 (EDT) Message-ID: <4BA78346.5060303@ohiou.edu> Date: Mon, 22 Mar 2010 14:49:00 -0000 From: "Kevin H. Hobbs" User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.8) Gecko/20100301 Fedora/3.0.3-1.fc11 Thunderbird/3.0.3 MIME-Version: 1.0 To: Tuomo Keskitalo CC: gsl-discuss@sourceware.org, help-gsl@gnu.org Subject: Re: ODE IV Control and Variable Scale References: <4BA2707F.50105@ohiou.edu> <4BA51F85.4070305@iki.fi> In-Reply-To: <4BA51F85.4070305@iki.fi> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="------------enig7C272BE9A66D0AFCC622539F" Mailing-List: contact gsl-discuss-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gsl-discuss-owner@sourceware.org X-SW-Source: 2010-q1/txt/msg00064.txt.bz2 This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enig7C272BE9A66D0AFCC622539F Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 2501 On 03/20/2010 03:18 PM, Tuomo Keskitalo wrote: > Hi, >=20 > about ODE solver error tolerances: you _never_ want to set eps_rel to > zero. It would mean that you allow no error for the ODE solver, which is > something no numerical method can give you. The ODE example program sets eps_rel to 0.0. >=20 > As an example: gsl_odeiv_control_y_new (1e-12, 1e-8) means that if the > absolute value of a variable drops below 1e-12, you don't really care of > it's value any more (it is essentially zero for you).=20 Right now I'm setting eps_abs to something like 1.0e-3. As far as I can tell from the documentation there's nothing special about a variable value of 0.0 when eps_rel is 0.0. 1.0e-3 is the same as 0.0 and 100 + 1.0e-3 is the same as 100. I want a constant error across the range of the variables. eps_rel =3D 1e-8 > means that you want at least 7 decimals of each variable to be accurate > on each ODE solver step. If you need to control the level of error with > more detail, then you can use a_y, a_dydt and scale_abs. The trouble I have with these parameters is they depend on 0.0 being a special value, but in my model there is nothing special about 0.0 for most of the variables. Voltage is the major example. Membrane voltage ranges from the reversal potential for potassium E_K =3D -80 mV to the reversal potential of sodium E_Na =3D 50 mV. The values of membrane voltage where the various membrane currents turn on and off are the critical values, but there are many of them and they are spread across the voltage range. >=20 > A practical way to choose tolerances is to make a test and compare > results calculated with "strict" and "loose" eps_abs and eps_rel (order > of magnitude difference between strict and loose). If you get nearly > same values as result, you are probably safe to use your loose > tolerances. Of course, this depends on your problem, so be sure to test > it with your final computation case again. We have a whole graduate student devoted to this testing right now. >=20 > If you are not interested in optimizing the performance, I'd suggest you > simply try to use control_y_new and see how it works for you. >=20 We are very much interested in performance since we're trying to evaluate millions of models per day. It appears that by using gsl_odeiv_control_scaled_new with scales proportional to the range of each variable, eps_rel =3D 0.0, a_y =3D 0.0, and a_dydt =3D 0.0 we can relax eps_abs and evaluate more models with greater accuracy. --------------enig7C272BE9A66D0AFCC622539F Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" Content-length: 252 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org/ iD8DBQFLp4NLqBtEuW+gRPERAm15AJ49s6qiwC2cWzx3xjm6glY9T4sJBwCePMtP w791lMotTKutApIciELZB14= =ThSb -----END PGP SIGNATURE----- --------------enig7C272BE9A66D0AFCC622539F--