2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 Симсвольные вычисления
Сообщение07.02.2007, 17:38 


23/11/06
4
Есть вообще чётко описанные алгоритмы символьных вычислений.
Как можно написать прогу, которая, например, символьно вычисляет производную от какой-то функции и т.п. как в том же MathCade?

 Профиль  
                  
 
 
Сообщение07.02.2007, 19:51 
Аватара пользователя


09/05/06
115
Такие алгоримы есть. Не сказал бы, что можно вполне чётко и определённо описать алгоритмы символьных вычислений, скорее можно говорить о наборе символьных процедур, которые при искусном интерактивном использовании приводят к нужному для математика результату.
Есть переведённая на русский книжка "Символьная алгебра на С++". Примерно 2001 года выпуска. Поищите в инетмагазинах, вполне возможно, что ещё продаётся. К книжке прилагаются примеры, которые можно закачать с сайта. Я когда-то пробовал разбираться, вроде бы что-то получалось. Только в книге нет описания интерпретатора -- это отдельная "история", т.к. нужно осмысленно подходить к выбору символьного языка (словаря).
Mathcad сам по себе не имеет символьного движка, это в него MapleV R4 встроен (библиотека mkernel.dll). Чтобы написать свой символьный пакет, нужно разработать специализированный символьный интерпретатор, небольшую основную библиотеку низкоуровневых функций, а потом уже, на их основе описать символьные процедуры. И всё это нужно делать на объектом С -- примеры в книжке мне лично понравились, хоть их и нужно компилировать кажлый раз.
Никакой другой литературы по этому поводу на русском лично я не видел. Скоре всего нужно искать статьи в зарубежных электронных изданиях или очень старых книгах, где бесплатно описывались эксперименты с символьными движками. Свободно распространяемого кода с символьными преобразованиями не встречал. Никто не будет раздавать просто так "мучения" над которыми корпели десятилетиями. Это относится и к Maple, и к Derive и к Mathcematica, ну и к MuPAD. Mathcad, как я уже говорил, пользуется Maple'овким ядром.

 Профиль  
                  
 
 
Сообщение07.02.2007, 23:49 
Заслуженный участник
Аватара пользователя


17/10/05
3709
:evil:
Поищите символьные вычисления на этом форуме. Они уже всплывали.

Помимо литературы, по крайней мере один пакет распространяется с исходными текстами — Reduce (RAND Corp.). По-моему, было что-то и на Sourceforge.

Цитата:
REDUCE is the second-oldest computer algebra system (the first was MACSYMA, developed at MIT). REDUCE was developed in the early 1970s by Professor Anthony Hearn at the University of Utah Physics (and later, Computer Science) Department. Its original application was algebra problems in high-energy physics and quantum mechanics. REDUCE provides both symbolic computation and high-precision integer and floating-point arithmetic.

In the 1980s, REDUCE development moved to the RAND Corporation in San Diego, CA, and later to the Konrad-Zuse Zentrum in Berlin, Germany, then to Universität Köln in Germany, and finally, back to the RAND Corporation, where it has its own Web site managed by its original author.

Like MACSYMA, REDUCE is implemented in Lisp, but in a dialect called Portable Standard Lisp (PSL) that was developed at the University of Utah.

PSL is unusual in the Lisp world in also having a more-readable (for most non-Lisp programmers) Algol-like representation, RLISP, and it is that form which is used in the REDUCE implementation. There are about 263,000 lines of RLISP code underneath REDUCE.

 Профиль  
                  
 
 Maxima
Сообщение07.02.2007, 23:52 


22/06/05
164
uni писал(а):
Свободно распространяемого кода с символьными преобразованиями не встречал.

Есть Maxima. Правда, мне показалось, что Maple мощнее. Любопытное историческое замечание на сайте Максимы:
Цитата:
Maxima is a descendant of Macsyma, the legendary computer algebra system developed in the late 1960s at the Massachusetts Institute of Technology. It is the only system based on that effort still publicly available and with an active user community, thanks to its open source nature. Macsyma was revolutionary in its day, and many later systems, such as Maple and Mathematica, were inspired by it.

 Профиль  
                  
 
 Re: Maxima
Сообщение12.02.2007, 11:14 
Заслуженный участник


14/12/06
881
uni писал(а):
Свободно распространяемого кода с символьными преобразованиями не встречал.

Вот библиотечка на C++:
http://www.ginac.de/
На её основе написана по крайней мере одна CAS (не помню какая именно, но к ней есть сессия на TeXmacs).

Помоему, исходный код GiNaC -- это очень хороший материал для желающих освоить C++ и символьные вычисления.

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

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



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

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


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

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