Поиск всех решений системы уравнений в прямоугольной области
смотря что известно про F и G, гладкие кроме множества разрыва? Почему сетка 150, наверно ты что-то про них знаешь, или от фонаря?
На это все уходит _10 минут_,тк функции F, G вычисляются через интегрирование злых дифуров.Не совсем ясно, медленно решается система или медленно вычисляются функции F, G?
Может, стоит оптимизировать не решалку а вычислялку?
Просто 150x150 сетка, как мне кажется, довольно быстро обрабатывается.
x', y' заданы, интегрируем до тех пор пока x', y' снова не примут заданного значения, получаем новые x, y. Собсно F выдает х, G - у.
Дифур с разрывной правой частью, доказать что F, G - гладкие почти всюду можно (тк суть дифура - механическая задача, правая часть - кулоновская функция трения).
Сетка 150х150 появилась как результат эксперимента, на меньшей сетке пропадают решения.
Да, проблема в том, что F, G очень медленно вычисляются.
За совет - спасибо. Увеличу порядок в Рунге-Кутте с 4 до 8 =)
Но сама идея искать решения делением отрезка пополам не сильно привлекательна,
Сам интегратор Рунге-Кутта какого порядка пофиг имхо, только надо чтобы он плясал не от начальной точки (угла твоей сетки а от текущего найденного приближения к корню решаемого уравнения, только надо чтобы мог интегрировать и вперёд и назад.
Пример у меня есть в ноуте с поясниловкой в pdf, только он не с собой сейчас
Были бы подробности системы решаемой может более что-то содержательное сказал. Только я завтра с форума свалю на некоторое время, насколько это срочно у тебя...
За программу заранее благодарю.
Если интересно то вот система:
x1'' = -x1 + x2
x2'' = x1 - x2 - F
F:
(1) при x2' < v F = 1,
(2) при x2' > v F = -1,
(3) при x2' = v F= -x1 + x2
...................................
_______|....................
............. |....................
-------v- |------------->x2'
............. |___________
..............|.....................
...................................
при -x1 + x2 = С переходим в (1)
при -x1 + x2 = -С переходим в (2 с известно
Собственно интегрируем до тех пор пока не наступят условия х2' = v, x2' = x1 + C
Оставить комментарий
uaha1979
Есть уравнения: x - F(x, y) = 0, y - G(x, y) = 0. И есть прямоугольная область D, нужно найти все решения в этой области.множество точек разрыва функций F, G меры ноль, разрыв - неустранимый первого рода.
Я делаю так:
1. Ищу решения первого уравнения
2. Ищу решения второго уравнения
3. Пересекаем полученные множества.
Реализация:
1. вводим сетку на D, 150х150 -> считаем значение первого уравнения в узлах сетки-> ищу отрезки с разными знаками на концах -> методом деления отрезка пополам нахожу ноль -> соединяю два ближних ноля отрезком -> получаем кривую.
2. Аналогично и в этом шаге
3. Пересекаем две кривые
4. Радуемся
На это все уходит _10 минут_,тк функции F, G вычисляются через интегрирование злых дифуров.
Какие методы получше есть?
Можно ссылки или где почитать
Заранее спасибо.