2014 dxdy logo

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

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




 
 Maple vs Mathematica
Сообщение24.10.2014, 07:24 
Скажите, могут ли оба пакета преобразовывать свои формулы в язык C или C++ ? Нет ли каких-то ограничений, что некоторые функции нельзя конвертировать ? Есть ли у когото опыт преобразования формул в код с последующей компиляцией DLL файла - нет ли каких-то сложностей, все ли полноценно компилируется ? Что по вашему лучше - Maple или Wolfram Mathematica ?

 
 
 
 Re: Maple vs Mathematica
Сообщение24.10.2014, 07:40 
qweras в сообщении #922480 писал(а):
Скажите, могут ли оба пакета преобразовывать свои формулы в язык C или C++ ? Нет ли каких-то ограничений, что некоторые функции нельзя конвертировать ?

Могут. Есть. Более того, преобразовываются только всякие арифметические операции, стандартные функции и простейшие конструкции вроде циклов. Остальные функции переписываются как есть. Код для какой-нибудь функци Бесселя или команды сотировки массива создан не будет, команда в месте с аргументами просто перепечатается в текст.

 
 
 
 Re: Maple vs Mathematica
Сообщение24.10.2014, 07:56 
Vince Diesel

И это относится к обоим пакетам ? У меня складывается мнение, что Мэпл может преобразовывать больше чем Математика, так ли это ? И как вывести весь функционал в С или другой язык, а не только простейшие функции ? Про вывод в С простейших функций - вы пробовали и в Мэпле и в Математике ?

 
 
 
 Re: Maple vs Mathematica
Сообщение24.10.2014, 08:19 
Да, пробовал в обеих программах.
qweras в сообщении #922485 писал(а):
У меня складывается мнение, что Мэпл может преобразовывать больше чем Математика, так ли это ?
Не знаю.
qweras в сообщении #922485 писал(а):
И как вывести весь функционал в С или другой язык, а не только простейшие функции ?
Думаю, никак. Там же сложные алгоритмы, которые не раскрываются. И переписывать весь код для команд высокого уровня, который учитывает массу всяких возможностей, опций, разных типов аргументов и т.п. разработчикам незачем. И где бы преобразователь брал этот код? В комплекте поставки нет неоткомпилированных исходников на Си :-)

 
 
 
 Re: Maple vs Mathematica
Сообщение24.10.2014, 08:44 
Vince Diesel

http://www.maplesoft.com/support/help/M ... th=codegen пример где вродебы генерируется нормальный С код из функции gradient. Откомпилированные исходники тут не причем. Похоже, есть алгоритм, как все упростить до элементарных функций и получить С код.

 
 
 
 Re: Maple vs Mathematica
Сообщение24.10.2014, 09:00 
Попробовал преобразовать команду сортировки:
Код:
> with(CodeGeneration);
C(Sort(a), resultname = "b");
Выдает
Код:
Warning, the function names {Sort} are not recognized in the target language
b = Sort(a);

 
 
 
 Re: Maple vs Mathematica
Сообщение24.10.2014, 09:10 
Vince Diesel

Поэтому, думаю, нужно как-то упростить. Ошибка выдается что язык C (target language) не поддерживает команду Sort. Я пока разбираюсь с чисто математическими функциями.

 
 
 
 Re: Maple vs Mathematica
Сообщение24.10.2014, 09:21 
Упростить что? Таки не думаю, что есть способ заствить мэйпл расписать сортировку пузырьком или еще как. Возможно, для ограниченного числа простых комманд (судя по примеру, связанных с вычислительными вещами) что-то сделано. А остальное нет. Там же вагон команд для работы с массивами, группами и т.д. Какой еще у разработчиков может быть путь, чтобы расписать на си поиск по графу или разложение числа на множители, кроме как вставить собственный код?

 
 
 
 Re: Maple vs Mathematica
Сообщение24.10.2014, 09:40 
Vince Diesel


Я пока не увидел, что сделать это нельзя. Ищу решение. Есть еще интересная функция codegen . Не использование функций которые интересны пользователям, являются ерундой, поэтому, если есть генерация C кода, она должна распространяться на все команды, без подобных функций софт не будет кому-либо нужен, т.к. вы адресуете решение проблеммы сразу к программированию на C. Это как программисту C# предлагать на ассемблер перейти - т.е. полная ерунда.

 
 
 
 Re: Maple vs Mathematica
Сообщение24.10.2014, 11:14 
Еще вопрос - как вставить новую строку в документ или в worksheet в Maple ? Нажимаю Enter, получаю переход на ранее созданную строку (строка не вставляется между строк).

 
 
 
 Re: Maple vs Mathematica
Сообщение24.10.2014, 12:03 
Аватара пользователя
qweras

Там вверху, на панели инструментов есть значек [>. Может он подойдет.

 
 
 
 Re: Maple vs Mathematica
Сообщение24.10.2014, 12:21 
Vova_Gidro

Точно.

Цитата:
with(codegen)

with(MTM)

Y := fourier(X)

*****Y := (2*I)*Pi*Dirac(1, w)

C(Y)

t0 = (2.0*sqrt(-1.0))*0.3141592653589793E1*Dirac(1.0,w);



Как еще сильнее упростить, что-бы представить Dirac в виде элементарных функций (циклов, ветвлений и т.п.) и сгенерировать нормальный код ? Может быть еще какой-то способ по созданию внешних (которые могут работать без установки Maple) приложений в Maple ?

 
 
 
 Re: Maple vs Mathematica
Сообщение24.10.2014, 14:17 
Если вставить формулу, например, преобразования Фурье, решить ее, и попробовать сгенерировать С код, получится или нет ? Может быть кто-то пробовал ?

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


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