2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 Программирование числ. метода: а может не в Maple..
Сообщение19.09.2006, 15:55 
Заслуженный участник
Аватара пользователя


03/03/06
648
Господа

Необходимо было реализовать числ. метод --- проекции градиента. Не буду вдаваться в суть задачи, она здесь не причем. Решил воспользоваться Maple. Причина была одна --- легко производить мат. операции, скажем находить вектор-градиент. Однако, столкнулся с рядом проблем, но о них не буду. Вопрос мой в следующем: если кто-нибудь пробывал реализовывать подобные алгоритмы в языках программирования, скажем в Pascal, просьба поделиться опытом, как например, находить тот же вектор-градиент(не в ручную же считать частные производные) и. т.п.

Хотя здесь, наверняка, идеальный вариант использовать MatLab.

 Профиль  
                  
 
 Re: Программирование числ. метода: а может не в Maple..
Сообщение19.09.2006, 20:47 
Заслуженный участник


15/05/05
3445
USA
reader_st писал(а):
...просьба поделиться опытом, как например, находить тот же вектор-градиент(не в ручную же считать частные производные) и. т.п.

В некотором смысле именно "вручную".
Для методов с градиентами Вы должны написать две функции:
- для вычисления значения функции в точке: $y = f(\vec x)$
- для вычисления значения градиента в точке: $\vec g = \nabla f(\vec x)$
Желательно вычислять градиент аналитически. Например, запрограммировать формулы, полученные в Maple. Если это невозможно, приходится считать градиент численными методами. Хотя IMHO тогда уж лучше попробовать методы без градиентов.

Посмотрите примеры реализации на C и Fortran:
Задача минимизации функции многих переменных с ограничениями

 Профиль  
                  
 
 
Сообщение19.09.2006, 21:42 


13/07/06
68
Именно вручную. Однако, есть задачи, когда точность значения градиента важна не на всех этапах, как например поиск минимума, и можно применить переменный шаг, и задачи, связанные с дальнейшим интегрированием значений. В этом случае есть специальные методы для уменьшения влияния ошибок, которые накапливаются при продолжительном суммировании неточных занчений. Вариант с использованием математических пакетов сработает лучше, если вид функции, от которой берётся градиент, известен в аналитическом виде. В этом случае часть расчётов при помощи пакета можно сделать символьно, возможно с дальнейшей автогенерацией расчётной программы, реализующей численный метод. Если же рассчётное время ожидается большим, программа, реализующая численный метод, может работать быстрее, чем математический пакет, хоть и потребует большего времени для написания.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group