Re: Control Function With NDsolve

*To*: mathgroup at smc.vnet.net*Subject*: [mg19438] Re: Control Function With NDsolve*From*: Eckhard Hennig <hennig at itwm.uni-kl.de>*Date*: Wed, 25 Aug 1999 01:25:11 -0400*Organization*: ITWM*References*: <7p5dm5$127@smc.vnet.net> <7pl53k$c74@smc.vnet.net> <7pt5n3$n3l$2@dragonfly.wolfram.com>*Sender*: owner-wri-mathgroup at wolfram.com

Allan Hayes schrieb in Nachricht <7pt5n3$n3l$2 at dragonfly.wolfram.com>... >Ekhardt, > >A version ot your solution. I have added two print commands to show where >the switching occurs. One problem is that the accuracy of the switching is >dependent on the step sizes. > >f[y_Real] := Which[ > y >= ymax && fval == 1, Print[y]; fval = 0, > y <= ymin && fval == 0, Print[y]; fval = 1, > True, fval > ] > > >ymax = 0.9; ymin = 0.1; a = 1; b = 1; > >eqs = {y'[t] == a*f[y[t]] - b*y[t], y[0] == 0}; > >fval = 1; NDSolve[eqs, y[t], {t, 0, 15}]; > >0.903906 >0.0810061 >0.913014 >0.0807329 >0.912961 >0.0807266 >0.90911 Allan, indeed, I quietly ignored this problem because solving it efficiently would require an analog/digital event synchronization mechanism as used in mixed-mode system simulators such as Saber by Analogy, Inc. Event synchronization requires support for time rollback, which is not possible with built-in Mathematica functionality. Newsgroup readers with a deeper interest in this subject should take a look at US Patent No. 4,985,860. This document describes in detail a class of algorithms for solving the synchronization problem in mixed-mode simulators efficiently. For convenience, a direct link to the abstract of the patent is given below. To read the full text, click on the button "Full Text" in the header of the web page. http://patents.uspto.gov/cgi-bin/ifetch4?ENG+PATBIB-ALL+0+960845+0+3+5555+OF +1+1+1+PN%2f4%2c985%2c860 Best regards, Eckhard ----------------------------------------------------------- Dipl.-Ing. Eckhard Hennig mailto:hennig at itwm.uni-kl.de Institut fuer Techno- und Wirtschaftsmathematik e.V. (ITWM) Erwin-Schroedinger-Strasse, 67663 Kaiserslautern, Germany Voice: +49-(0)631-205-3126 Fax: +49-(0)631-205-4139 http://www.itwm.uni-kl.de/as/employees/hennig.html ITWM - Makers of Analog Insydes for Mathematica http://www.itwm.uni-kl.de/as/products/ai -----------------------------------------------------------