Дослідження якісних особливостей динаміки математичних моделей нелінійних неавтономних систем

Ю. А. Бичків, С. В. Щербаков

Дослідження якісних особливостей динаміки математичних моделей нелінійних неавтономних систем з допомогою власних чисел функціональної матриці Якобі

Постановка завдання
Завдання дослідження якісних особливостей динаміки математичних моделей нелінійних неавтономних систем з зосередженими параметрами надзвичайно актуальна. Розвиток теорії нелінійних явищ та отримані прикладні результати породжують різноманіття методів рішення цієї задачі [1-3].
У загальному випадку динаміку математичних моделей систем виділеного класу (надалі «систем») описує таке звичайне нелінійне інтегро-диференціальне рівняння з нестаціонарними коефіцієнтами:
$A(D)x(t)=G(D)f(t)+H(x,f,t) \qquad (1)$
де $D$ – оператор узагальненого диференціювання по незалежній змінній $t$; $A(D)$ – квадратна, близько $Lx$, матриця з поліноміальними від $D$ і $D^{-1}$ елементами, де $D^{-1}$ — оператор інтегрування за змінною верхньою межею $t$;
G(D) –прямокутна матриця розміром $L\_x\times L\_f$, з поліноміальними від $D$ і $D^{-1}$ елементами; $x(t)$ і $f(t)$ – матриці-стовпці координат системи (шуканих рішень) і зовнішніх впливів на неї відповідно; $H(x,f,t)$ – матриця-стовпець з рядками у вигляді сум творів, співмножники яких — нестаціонарні коефіцієнти, а також класичні похідні будь-якого порядку і інтеграли будь кратності, починаючи з нульових, від шуканих рішень і зовнішніх впливів, в довільних дробово-раціональних ступенях.

Читати далі →

Рівняння теплопровідності в tensorflow

Привіт, Хабр! Деякий час тому захопився глибоким навчанням і став потихеньку вивчати tensorflow. Поки копався в tensorflow згадав про свою курсову з паралельного програмування, яку робив в тому році на 4 курсі університету. Завдання там формулювалося так:

Лінійна початково-крайова задача для двовимірного рівняння теплопровідності:

\frac{\partial u}{\partial t} = \sum \limits_{\alpha=1}^{2} \frac{\partial}{\partial x_\alpha} \left (k_\alpha \frac{\partial u}{\partial x_\alpha} \right ) -u, \quad x_\alpha \in [0,1] \quad (\alpha=1,2), \ t>0;
k_\alpha =
\begin{cases}
50, (x_1, x_2) \in \Delta ABC\\
1, (x_1, x_2) \notin \Delta ABC
\end{cases}
(\alpha = 1,2), \ A(0.2,0.5), \ B(0.7,0.2), \ C(0.5,0.8);
u(x_1, x_2, 0) = 0,\ u(0,x_2,t) = 1 - e^{-\omega t},\ u(1, x_2, t) = 0,
u(x_1,0,t) = 1 - e^{-\omega t},\ u(0, x_2, t) = 0,\ \omega = 20.
Хоча правильніше було б назвати це рівнянням дифузії.

Завдання тоді вимагалося вирішити методом кінцевих різниць за неявною схемою, використовуючи MPI для розпаралелювання і метод спряжених градієнтів.

Я не фахівець у чисельних методах, поки не фахівець в tensorflow, але досвід у мене вже з'явився. І я загорівся бажанням спробувати обчислювати урматы на фреймворку для глибокого навчання. Метод спряжених градієнтів реалізовувати другий раз вже не цікаво, зате цікаво подивитися як з обчисленням впорається tensorflow і які труднощі при цьому виникнуть. Цей пост про те, що з цього вийшло.

Чисельний алгоритм

Читати далі →

Програмування методу кінцевих різниць

виписувати Вручну коефіцієнти СЛАР і вводити їх в програму — не найефективніший спосіб програмування методу кінцевих різниць, тому що для кожної нової варіації постановки задачі потрібно писати нову програму. Логічніше розробити загальний солвер для більш широкого класу задач, що спростить програмування і тестування. Тестування алгоритмів МКР утруднене, так як точне рішення невідомо, але загальний солвер можна протестувати на завданнях з заданим точним рішенням.
Автором розроблено солвер Joker FDM для рішення 1 — і 2-мірних задач спряження для еліптичних рівнянь методом кінцевих різниць.
Читати далі →

Хаос всередині судоку

Багато хто з вас напевно знайомі з такою головоломкою, як судоку. Можливо, навіть реалізовували програму для автоматичного рішення. На хабре тема судоку обговорювалася вже безліч разів, і, як показує практика, практично будь-який спосіб автоматичного знаходження відповіді в підсумку зводиться до спрямованого перебору. І це цілком природно, адже навіть ручні рішення дотримуються тих же принципів. Але що, якщо вчинити інакше?
У даній статті я розгляну один дуже цікавий метод, запропонований у 2012 році, заснований на строго математичному підході. Програмна реалізація додається.


Читати далі →

Космос кличе: потрібен математик-фахівець в області чисельного розв'язку стохастичних диференціальних рівнянь

Олександр 4110 Шаенко (екс-інженер Даурия Аероспейс, нині ватажок проекту краудсорсингового супутника «Маяк») та Степан Тезюничев пишуть відкритий софт для моделювання теплового режиму супутників.

Репозиторій тут.



До цього, Саша писав дісер — «Метод розв'язання задачі променевого теплообміну без матриці кутових коефіцієнтів» (диссертация автореферат). Код тут. (він на VB.NET гальмівний, але працює і навіть є документація)

Космоинженеры використовують метод Монте-Карло і до них раптом дійшло, судячи з усього, система диференціальних рівнянь є стохастичною, раз їх частина виходить методом випадкових випробувань.

Хлопці хочуть написати алгоритм, який вирішував би систему дифуров як можна швидше, і тому їм потрібна консультація математика-фахівця в області чисельного розв'язку стохастичних диференціальних рівнянь.

Основну складність хлопці начебто вирішили, побудувавши масивно-паралельний алгоритм розрахунку ходу випромінювання з методом Монте-Карло на CUDA. Тепер вони хочуть використовувати для інтегрування своєї системи, а вона великої розмірності, близько 100 тис. невідомих, і жорстка, відповідний метод інтегрування за часом. Звичайні явні методи вимагають занадто дрібного кроку по часу, а неявні вимагають багато разів обчислювати праву частину, що ресурсозатратно.

Тому і потрібно знайти або побудувати такий метод інтегрування, який підходив би для такого поєднання вимог і дозволяв б вважати швидко.

Читати далі →

Про обмеження застосовності метрики Мінковського в цифровій обробці даних

Якось давним-давно я натрапив на ось статті на хабре, в якій народ пише як все круто і як добре працює метрика Мінковського. Час минав та минав, а я все хотів і хотів. Нарешті знайшлась завдання до якої я захотів застосувати це чудо, і ось що вийшло:

image

Читати далі →

Метод кінцевих елементів на прикладі рівняння Пуассона

У даній статті мені хотілося б викласти реалізацію методу кінцевих елементів на прикладі рівняння Пуассона. Розглянемо задачу:

image
з однорідним крайовим умовою

image
де
image
image
image

Потрібно знайти функцію , вирішальну задане рівняння.

Читати далі →

Як не варто обчислювати матричну експоненту

Пост написаний під впливом поста користувача pchelintsev_an.

У цій статті я постараюся розповісти, з якими обчислювальними труднощами можна зіткнутися, якщо піти за «наївному» шляхи обчислення матричної експоненти. Стаття може бути корисна тим, хто хотів би познайомитися з обчислювальної математики. Експерименти проводилися з використанням системи GNU Octave.

Читати далі →

Гарантії отримання коректного результату при розрахунку динамічних систем

Прочитавши статтю «Динамічна система Лоренца і обчислювальний експеримент» , перевірив розрахунки за допомогою аналітично-чисельного методу [1].
 
Результати розрахунку на фазовій площині z (x):
 
 
І y (x):
 
 
Здається, що криві замкнуті, але давайте розглянемо результат детальніше.
 
Читати далі →

Дуальні числа в бізнесі або як оцінити чутливість рішення до зміни початкових умов

  За застосування в бізнесі уявних величин вже дали премію . Тепер цікаво небудь поиметь з дуальних .
Дуальне число — це розширення поля дійсних чисел (або будь-якого іншого, наприклад комплексних) виду a + εb , де a і b — числа з вихідного поля. При цьому покладається, що ε ε = 0 .
Виявляється, у таких дивних чисел є практичне застосування.
 
Основним корисним властивістю дуальних чисел є
 f (a + εb) = f (a) + εf '(a) b .
Коли у нас є формула для f (x) , отримати похідну f '(x) праці не складе. Але часто f (x) доступно тільки у вигляді алгоритму — наприклад як рішення спеціальним чином складеної системи лінійних рівнянь. Запустивши алгоритм з вихідними даними, в які додана ε ми отримаємо результат і значення похідної по одному з параметрів.
 
Читати далі →