Имеется система диф. уравнений обычного вида: dx[i]/dt = F(t, x[1]..x[N])
Решаю систему методом Эйлера: x[i](n+1) = x[i](n) + dx[i]
Есть проблема: величина x в процессе интегрирования может изменяться на 10 порядков. Подобрать правильный временной шаг тут очень сложно.
Я хотел бы заменить x на log x, но не знаю, как модифицировать метод Эйлера. Кто-нибудь сталкивался с такой проблемой? Есть какие-нибудь специальные методы интегрирования для таких случаев?
Извините, если это выходит за рамки форума, не нашёл ничего более подходящего.
Здравствуйте, andrey_nado, Вы писали:
_>Добрый день!
_>Имеется система диф. уравнений обычного вида: dx[i]/dt = F(t, x[1]..x[N]) _>Решаю систему методом Эйлера: x[i](n+1) = x[i](n) + dx[i] _>Есть проблема: величина x в процессе интегрирования может изменяться на 10 порядков. Подобрать правильный временной шаг тут очень сложно.
_>Я хотел бы заменить x на log x, но не знаю, как модифицировать метод Эйлера. Кто-нибудь сталкивался с такой проблемой? Есть какие-нибудь специальные методы интегрирования для таких случаев?
Что тут модифицировать, делаете замену переменной в уравнении типа x[i] = e^y[i], получаете новую систему относительно y, и решаете ее методом Эйлера. Если вам это поможет.
Re[2]: Диф. ур-ы: замена переменной на её логарифм
Здравствуйте, AndreyM16, Вы писали:
AM>Что тут модифицировать, делаете замену переменной в уравнении типа x[i] = e^y[i], получаете новую систему относительно y, и решаете ее методом Эйлера.