Кодирование числового метода runge kutta 4 в scilab для решения системы уравнений в модели крессмана, описывающей активность нейрональной мембраны

У меня есть двадцать уравнений, с которыми я работал от Hodgkin Huxley model до cressman model, и я хотел бы проанализировать модель, которую я получил с помощью числовых методов.

Я математик и плохо разбираюсь в кодировании, поэтому, если бы кто-нибудь мог помочь мне закодировать эти уравнения с помощью scilab, используя runge kutta IV method, я был бы очень благодарен.

В ответ я могу поделиться своей работой с нейронами activiy, если вам интересно.

С Уважением.


person Morgann Roelandt    schedule 25.05.2017    source источник
comment
Почему вы не хотите использовать встроенный решатель ODE ode в scilab? RK4 с фиксированным шагом, хотя и неплохой, почти всегда неоптимален по сравнению с решателями с адаптивным размером шага.   -  person Lutz Lehmann    schedule 25.05.2017
comment
спасибо, чувак, это было быстро.   -  person Morgann Roelandt    schedule 25.05.2017
comment
Однако мой английский не очень хорош, и мне трудно понять, что вы имели в виду под фиксированным шагом RK4, хотя и неплохо.   -  person Morgann Roelandt    schedule 25.05.2017
comment
Изучая численные методы, вы начинаете с методов Эйлера и второго порядка с фиксированным размером шага. Их легко анализировать, но они плохи по своим численным результатам. При фиксированном размере шага в большинстве случаев лучшим с точки зрения точности является RK4. Однако встроенные методы с адаптивным размером шага требуют меньше, а иногда и гораздо меньше усилий для достижения той же точности.   -  person Lutz Lehmann    schedule 25.05.2017
comment
Вы бы порекомендовали мне попробовать другой численный метод для модели cressman, над которой я работаю? Легко ли реализовать этот метод, например, в Scilab-коде?   -  person Morgann Roelandt    schedule 25.05.2017
comment
В любом случае, позвольте мне поблагодарить вас за ответ. Я ценю усилия.   -  person Morgann Roelandt    schedule 25.05.2017


Ответы (1)


Вы можете использовать без программирования что-либо, кроме пользовательской функции ODE, прямо из коробки,

y = ode(y0, t0, times, rtol, atol, odefunc)

где (t0,y0) - начальные точки, times список раз, когда образцы решения сообщаются в y, а function dydt = odefunc(t, y) - функция, реализующая производные.

Поскольку за этим стоит проверенный и надежный алгоритм, вы можете предположить, что фактические числовые ошибки значимым образом связаны с допусками rtol, atol.

Примеры см. Во встроенной документации и интерактивных примерах, таких как Решение ODE в Scilab, Использование Scilab для решения и построения дифференциальных уравнений

person Lutz Lehmann    schedule 25.05.2017
comment
Благодарю за помощь. Я не проверял предоставленные вами ссылки (оооочень много работы), но я благодарю вас за вашу поддержку. Это очень полезно. - person Morgann Roelandt; 26.05.2017