Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Упрощение символьных математических выражений, в современных математических редакторах 
:(
    Опции темы
ksili
Дата 22.12.2008, 11:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

Репутация: 2
Всего: 17



Каким образом они это делают? 
Маткад например. В нём есть функция (или оператор) simplify. Применяешь его  и иногда ему удается действительно упростить выражение. Правда редко. Так вот мне интересно, какие методы они используют для этого.


--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
maxdiver
Дата 22.12.2008, 12:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 29.1.2008
Где: Саратов

Репутация: 16
Всего: 18



Я не знаю, какие методы именно в маткаде используются, но вообще в теории примерно так (вроде недавно была похожая тема, я как раз тогда какую-то книжку проглядел по диагонали): строится дерево разбора выражения, ну и сначала, понятно, к нему можно применить некоторые упрощения, основанные на стандартных арифметических правилах (удаление константных подвыражений, типа 2+2), а вот дальше уже начинается недетерминированное шаманство - пытаемся, например, раскрыть скобку, и применить к получившемуся выражению рекурсивно этот же алгоритм, или там как-нибудь обнаруживаем сумму квадратов a^2+2ab+b^2 и сворачиваем её, и т.д.

Вообще, насколько я понял, мало-мальски чёткого алгоритма здесь не существует. Может, конечно, я чересчур "диагонально" проглядел книгу smile
PM MAIL WWW ICQ   Вверх
ksili
Дата 22.12.2008, 12:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

Репутация: 2
Всего: 17



Про приведение подобных более-менее как-то понятно. Меня интересуют более сложные случаи.
Например для тригонометрических наворотов. Типа sin(x)/cos(x) -> tg(x).

Не помнишь как книжка называлась?




--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
maxdiver
Дата 22.12.2008, 15:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 29.1.2008
Где: Саратов

Репутация: 16
Всего: 18



По запросу "simplification of algebraic expressions algorithms" кое-что находится (на acm'е и springer'е немало), вот например какая-то обзорная статья:
http://www.cecm.sfu.ca/CAG/Projects/nsercOPG04.pdf

А книжка называлась - что-то про multiterm rewriting.
PM MAIL WWW ICQ   Вверх
maxdiver
Дата 1.1.2009, 21:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 29.1.2008
Где: Саратов

Репутация: 16
Всего: 18



Просматривал сегодня книгу "Символьный C++" (Тан, Стиб, Харди), в ней несколько страниц уделено упрощению выражений (стр. 283-286), можешь посмотреть. Там тоже в принципе элементарный алгоритм, но утверждают, что на практике упрощает хорошо.
PM MAIL WWW ICQ   Вверх
ksili
Дата 3.1.2009, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

Репутация: 2
Всего: 17



Спасибо за информацию. Если найду книгу, обязательно гляну. Даже название уже заинтриговало.


--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
Dims
Дата 9.1.2009, 22:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: 1
Всего: 11



Я думаю, что перебором: применяются поочерёдно различные правила, по какой-то шкале оценивается сложность выражения и она минимизируется.
PM MAIL   Вверх
Фантом
Дата 9.1.2009, 22:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вы это прекратите!
***


Профиль
Группа: Участник Клуба
Сообщений: 1516
Регистрация: 23.3.2008

Репутация: 2
Всего: 49



Есть такая (уже довольно старая) книжка: Ж.-Л.Лорьер, "Системы искусственного интеллекта"), ее легко найти. Почитайте, там очень неплохо изложены основные принципы работы подобных систем.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0634 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.