|
2 / 2 / 0
Регистрация: 19.01.2016
Сообщений: 229
|
|||||||||||
Решение системы дифуров. (Тема со звёздочкой)11.10.2017, 16:49. Показов 1070. Ответов 6
Метки нет (Все метки)
Добрый день.
Требуется решить систему ОДЕ. Классическое решение простое. Допустим у меня есть система из четырёх уравнений, пишем их в один файл с названием ODEsystem.m:
Но есть одно большое НО. В данном случае четыре уравнения записаны в массив одной переменной dy, что очень плохо. Данный подход не работает когда требуется подсчитать взаимодействие нескольких систем, каждая из которых описывается системой нескольких уравнений. У меня допустим есть нода, (узел), она описывается четырьмя переменными: V, m, n, h. Когда нода одна, я могу это всё описать как dy(1), dy(2), dy(3), dy(4). Но когда нод несколько мне нужно записать каждую переменную отдельно с её индексом: V(i), m(i), n(i), h(i). Вопрос такой: как это корректно прописать для MATLAB? К сообщению приложен PDF документ, решать мы будем систему уравнений Ходжкина-Хаксли, где один нейрон описывается четырьмя уравнениями, но таких нейронов N штук, и связаны они разностной схемой: sum (V_j - V_i). Рассматривать будем на нижнем урезанном примере, что бы лучше разобраться в синтаксисе записи. ODEsolver.pdf У кого есть мысли, как это прописать, пожалуйста, подскажите.
0
|
|||||||||||
| 11.10.2017, 16:49 | |
|
Ответы с готовыми решениями:
6
Решение системы дифуров.
|
|
3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
|
||||||
| 12.10.2017, 07:56 | ||||||
|
Запуская солвер ode45, Вы по сути сразу определяете число дифф. уравнений которые будете решать. Это число определяется по числу элементов в векторе начальных условий ( initial_states ).
Во время работы солвера изменить число уравнений нельзя, поэтому солвер запускается с максимальным количеством уравнений, или если необходимо изменить число решаемых уравнений останавливают этот запуск солвера, готовят данные для следующего этапа, и запускают солвер для продолжения решения. По поводу функции ODEsystem, Вам никто не запрещает из нее обращаться к другим функциям и организовывать в ней циклические вычисления. Основное условие, чтобы в заданный момент времени t, и известных величинах параметров у, Вы определили к моменту завершения функции величины всех производных dy. Гибкость обработки может быть построена путем определения числа уравнений внутри функции следующим образом:
1
|
||||||
|
2 / 2 / 0
Регистрация: 19.01.2016
Сообщений: 229
|
|||||||||||
| 12.10.2017, 08:55 [ТС] | |||||||||||
|
Спасибо за комментарий. Нет, на ходу я не буду менять число уравнений. Как делать динамически и задавать уравнения в цикле прямо в функции ODEsystem я разобрался, но такое решение покажу позже.
Пока текущие результаты показываю. Принудительно введены уравнения для двух нейронов. Файл: ODEsystemSolver.m
0
|
|||||||||||
|
3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
|
||||||
| 12.10.2017, 12:10 | ||||||
|
Вот вариант оформления Ваших уравнений
1
|
||||||
|
2 / 2 / 0
Регистрация: 19.01.2016
Сообщений: 229
|
|
| 12.10.2017, 12:48 [ТС] | |
|
Спасибо! Я только в отдельном for каждое уравнение генерировал. Пока вы не забыли тему про нейроны, нужно в первом уравнении хвост вот такой сделать sum_j^N ( g_syn * V(i) / (1 + exp(V(j)) / k_syn) ). Где V - это первые переменные в каждой подсистеме: y(0), y(5), y(9) и т.д.
Или лучше проще для понимания хвост сделать: g_syn * sum_j^N ( V(j) - V(i) )
0
|
|
|
3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
|
|
| 12.10.2017, 13:09 | |
|
У меня Ваших уравнений нет, поэтому то что вы пишете мне не понятно.
Прошлый раз я увидел одинаковость в группах по 4 уравнения, и отличия вынес как особенности в переменную YY
0
|
|
|
2 / 2 / 0
Регистрация: 19.01.2016
Сообщений: 229
|
||||||||||||||||
| 12.10.2017, 13:49 [ТС] | ||||||||||||||||
|
А теперь делаем еще круче. Для V_j делаем биологическое запаздывание в 7 миллисекунд. Т.е. для V_j берется значение из прошлого со сдвигом V_j(t - t_lag), где t_lag = 0.007.
Такая система дифуров уже не является однородной (ODE), а переходит в класс Delay Differential Equations (DDE). Что бы решить её воспользуемся функцией DDE в MATLAB: https://www.mathworks.com/help... dde23.html https://www.mathworks.com/help... elays.html Теперь у нас три нейрона взаимодействуют друг с другом. Файл с данными о задержками при t < 0: DDEhistory.m
0
|
||||||||||||||||
| 12.10.2017, 13:49 | |
|
Помогаю со студенческими работами здесь
7
Решение дифуров Решение дифуров в MathCAD имеет ли система дифуров периодическое решение? не могу написать цикл для системы дифуров Системы дифуров, какой метод решения лучше? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Сочетание глобально распределённой вычислительной мощности и инновационных. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|