2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 краевая задача для ОДУ
Сообщение02.10.2009, 16:53 
решаю краевую задачу для системы нелинейных ОДУ из 6 уравнений.причем три граничных условия заданы на одном конце интервала,а три других на другом.то есть по сути надо применить метод пристрелки для поиска начальных условий для трех переменных,для которых условия заданы на другом конце.но поскольку программист из меня еще тот,то я тупо в цикле перебираю с мелким шагом все три начальных условия,чтобы в конце получилось то,что надо.естественно,программа считает очень долго.и,к сожалению, до истины так и не доходит,и найти те самые начальные значения мне не удается.если у вас есть какие-то мысли по этому вопросу,подскажите как оптимизировать этот процесс.или если у кого есть готовые программы.ну не обязательно для 6 уравнений,для трех например уже неплохо...вобщем,помогите,чем можете...пожалуйста...шеф уже косится...неделю маюсь :D

 
 
 
 Re: краевая задача для ОДУ
Сообщение02.10.2009, 17:09 
Я не знаю, как принято решать это в приличном обществе. Но могу порекомендовать. Напишите процедуру, которая произвольные граничные условия на левом конце пересчитывает в граничные значения на правом. И потом функцию (обращающуюся к этой процедуре), вычисляющую "невязку", т.е. отклонение рассчитанных граничных условий от требуемых (например и лучше всего -- сумму квадратов отклонений по всем координатам).

А потом как-нибудь эту функцию минимизируйте (на решении она должна быть равна нулю); скажем, методом какого-нибудь спуска.

Не знаю, насколько это оптимально, но существенно проще -- точно ничего быть не может.

 
 
 
 Re: краевая задача для ОДУ
Сообщение03.10.2009, 20:34 
ewert в сообщении #248478 писал(а):
скажем, методом какого-нибудь спуска.
Нас учили такие вещи методом Ньютона делать. Если повезет - работает быстро (дает хорошую точность за несколько итераций), хотя, конечно, бывают неприятности, иногда надо поиграться с модифицированием. Надеюсь, с обращением матрицы 6x6 справитесь?

 
 
 
 Re: краевая задача для ОДУ
Сообщение04.10.2009, 13:50 
AD в сообщении #248795 писал(а):
Нас учили такие вещи методом Ньютона делать. Если повезет -

Чтобы повезло -- нужен какой-нибудь грубый метод локализации. Вот, например, градиентного спуска.

 
 
 [ Сообщений: 4 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group