X-Message-Number: 26197 From: Date: Thu, 19 May 2005 01:47:55 EDT Subject: Uploading technology (2.iv.1) Solving differential equations. Uploading technology (2.iv.1) Solving differential equations. From what I have published up to now on that subject, it seems clear that modeling realistic neurons ask for a lot of maths, mostly in the form of differential equations or some extended form of them, such the Langevin's formalism, adding a random function. My objective here is not to present a mathematical course on differential equation, but simply to give a taste of the thing and show a path to solve the problem. The first remark, I can do is that a differential equation use some derivative, the archetype of the mathematical continuity. This seems a big problem for computers, because they work only with discrete numbers and don't know such concepts as limits and so on. When a mathematician want to solve a differential equation, the first task is to put it in a form suitable for mathematical processing and then use known analytic solutions to find an answer. This is in the most case a set of integration, another continuous process badly adapted to computers. Computer scientists have develloped a purely numerical tool kit to solve that problem, this is the difference equations. There is a simple example : Assume as a starting point that there is a space coordinate x. The time derivative, dx/dt is the rate of change of x with time, this is the common speed. The second derivative, d^2 x / dt^2 is the acceleration. Solving the differential equation dx/dt from time t1 to time t2 is simply thaking the speed integral between time t1 and t2. The answer is the distance a traveler has moved in the duration t2-t1. Now, if t2 is near t1, it could be assumed that the speed is a constant, so the distance is simply (speed) x (t2-t1). Doing that for many small time intervals and taking the sum of each such computation give a good approximate value of the answer. The differential equation has been turned into a difference equation with only algebric operations, something a computer can do efficiently. So the motto is : Turn differential equations into difference ones and program them on a computer. This is the way to go with computers, but some other electronics device may use another strategy. Before looking at that, I'll give a brief glimpse at how differential equations are sorted out. The most basic one is the single ordinary differential equation (ODE) of rank one. ODE have derivative of only a single variable, for example the time t. The speed dx/dt = u is the simplest possible illustration. Next comes the velocity : Taking the same example as above, three space dimensions, x, y and z are taken into account. There is then one equation for each space dimension, the ODE turns into a system of 3 linked ODE. What about acceleration ? Because there is a second derivative, this is a second order ODE. There are order 3, and more ODE, the interesting fact is that all of them can be converted into a system of order one ODE. Then come into play the partial derivative differential equations or PDE. A PDE will have mixed derivatives between two or more variables, for example distance x and time t. The simplest derivative of that kind looks as : d^2()/dxdt where:() is the room for the quantity to be derived. As an example, assume some product A is diffusing from some channels in a membrane starting at time t0. The concentration [A] will be a function of the distance x to the membrane and the time t. As for ODE, there are systems of linked PDE and higher orders PDE. Even for the simplest PDE there are three kind of them: The elliptics, the parabolics and the hyperbolics. Elliptics equations describe equilibrium states, parabolic ones deal with phenomenons such diffusion as in the example above and hyperbolics solve waves or periodical problems. Most, if not all problems in neuron modeling are of the diffusion kind and so use parabolic equations. In the same way that an order n ODE can be converted into a set of order one ODE, one order n PDE can be turned into a set of order one PDE. Even more : An order one PDE can be turned into a set of ODE. Pushing the process at the limit, everything can be converted into a set of order one ODE. Mathematicians don't like this, because what was initialy a small set of high order PDE with many symetries, become a long listing of endless equations no one can understant. Computer scientist don't like it anymore, because programming it would be very long, tedious and very hard to debug. But uploading is not science, it is about technology and there is no point to understand what a set of equation is doing. What is interesting in that strategy is that it can be fully automated given the right components. Assume the starting point is the 7-dimensional Rose-Hindmarsh PDE system for example. The equation set with initial and boundary conditions can be simply typed in a software package such Mathematica. This software will then use the above steps to get a very long list of very complex order one ordinary differential equations. In the next step, these equations will be solved in analytical form, giving a very long list of integrals. These will be copied in the TRAC software, it will generates the TRAC cell configuration able to solve the problem. A single cell TRAC can compute an integral in a single clock step, or one microsecond. The Rose-Hindmarsh equations may translate into something as 70 to 80 integrals to solve simultaneously, a mathematical horror. A four chips TRAC board would do the job in one clock step, each chip having 20 cells. If the objective is to produce a tabulated list of one million different dendrite segments, the computation could be done in one second. Even a supercomputer using the difference equation way would take many hours and programming it would take a large team working for some months. Here, everything can be done by a single person on a personal computer. Yvan Bozzonetti. Content-Type: text/html; charset="US-ASCII" [ AUTOMATICALLY SKIPPING HTML ENCODING! ] Rate This Message: http://www.cryonet.org/cgi-bin/rate.cgi?msg=26197