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, Супермодераторы



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

Сейчас этот форум просматривают: Andrei P


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

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