2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 Maple vs Mathematica
Сообщение24.10.2014, 07:24 


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

 Профиль  
                  
 
 Re: Maple vs Mathematica
Сообщение24.10.2014, 07:40 
Заслуженный участник


25/02/11
1797
qweras в сообщении #922480 писал(а):
Скажите, могут ли оба пакета преобразовывать свои формулы в язык C или C++ ? Нет ли каких-то ограничений, что некоторые функции нельзя конвертировать ?

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

 Профиль  
                  
 
 Re: Maple vs Mathematica
Сообщение24.10.2014, 07:56 


15/08/14
42
Vince Diesel

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

 Профиль  
                  
 
 Re: Maple vs Mathematica
Сообщение24.10.2014, 08:19 
Заслуженный участник


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

 Профиль  
                  
 
 Re: Maple vs Mathematica
Сообщение24.10.2014, 08:44 


15/08/14
42
Vince Diesel

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

 Профиль  
                  
 
 Re: Maple vs Mathematica
Сообщение24.10.2014, 09:00 
Заслуженный участник


25/02/11
1797
Попробовал преобразовать команду сортировки:
Код:
> 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 


15/08/14
42
Vince Diesel

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

 Профиль  
                  
 
 Re: Maple vs Mathematica
Сообщение24.10.2014, 09:21 
Заслуженный участник


25/02/11
1797
Упростить что? Таки не думаю, что есть способ заствить мэйпл расписать сортировку пузырьком или еще как. Возможно, для ограниченного числа простых комманд (судя по примеру, связанных с вычислительными вещами) что-то сделано. А остальное нет. Там же вагон команд для работы с массивами, группами и т.д. Какой еще у разработчиков может быть путь, чтобы расписать на си поиск по графу или разложение числа на множители, кроме как вставить собственный код?

 Профиль  
                  
 
 Re: Maple vs Mathematica
Сообщение24.10.2014, 09:40 


15/08/14
42
Vince Diesel


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

 Профиль  
                  
 
 Re: Maple vs Mathematica
Сообщение24.10.2014, 11:14 


15/08/14
42
Еще вопрос - как вставить новую строку в документ или в worksheet в Maple ? Нажимаю Enter, получаю переход на ранее созданную строку (строка не вставляется между строк).

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


06/08/09
127
Украина
qweras

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

 Профиль  
                  
 
 Re: Maple vs Mathematica
Сообщение24.10.2014, 12:21 


15/08/14
42
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 


15/08/14
42
Если вставить формулу, например, преобразования Фурье, решить ее, и попробовать сгенерировать С код, получится или нет ? Может быть кто-то пробовал ?

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

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



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

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


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

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