Вывод в специальных форматах
Вывод в формате LaTeX
Maple 7 имеет ряд средств для общения с другими программами. Часть из них, в основном относящаяся к обмену через файлы, уже была описана. Однако Maple 7 способна генерировать коды для прямого их включения в такие программы, причем не только математические.
Для подготовки математических статей и книг широкое распространение получили редакторы ТеХ и LaTeX. Для подготовки выражений или файлов в их формате служит функция:
latex(expr.filename)
Параметр filename не обязателен, если достаточно получить нужное выражение в ячейке вывода Maple 7:
> latex(a*x^2+b*x+c): а{х}^{2}+bх+с > latex(diff(xAn.x$2)); {\frac {{х}^{n}{n}^{2}}{{х}^{2}}{\frас {{х}^{n}n}{{х}^{2}}}
Генерация кодов на языке Фортран
Язык Фортран вот уже многие десятилетия используется для программирования вычислительных задач. Накоплены обширные библиотеки решения таких задач на Фортране. Почитателей этого языка Maple 7 порадует тем, что она позволяет готовить коды для программ на Фортране. Для этого вначале надо загрузить библиотечную функцию:
> with(codegen.fortran); [fortran ]
После этого может использоваться функция fortran:
fortran(expr.filename=str.optimized)
Два последних параметра не обязательны при выводе выражения ехрr в форме, присущей языку Фортран:
> fortran(a*x*2+b*x+c); t0 = a*x**2+b*x+c > fortran(diff(x"n,x$2)); t0 = x**n*n**2/x**2-x**n*n/x**2
Параметр optimize позволяет генерировать оптимизированные коды:
> fortran(a*x*2+b*x+c.optimized); t1 = x**2 t4 = a*tl+b*x+c
При этом вычислительный процесс строится так, чтобы минимизировать число арифметических операций.
Генерация кодов на языке С
Язык С (Си) также широко используется для решения вычислительных задач. Достаточно отметить, что сама система Maple 7 создана на языке С.
Для генерации кодов на языке С вначале надо подключить соответствующую функцию:
> with(codegen.C); [С]
Затем можно использовать функцию С:
С(ехрr.folename=str.optimized)
Эта функция используется по аналогии с функцией fortran, что и показывают приведенные ниже примеры:
> C(d1ff(x4>,x$2)); t0 = pow(x,1.0*b)*b*b/(x*x)-pow(x,1.0*b)*b/(x*x); > C(diff(xAb,x$2),optimized); t1 = pow(x,1.0*b); t2 = b*b; t4 = x*x; t5 = 1/t4; t9 = t1*t2*t5-tl*b*t5;
Обширные возможности преобразования выражений в различные формы предоставляет функция convert. А функция interface позволяет управлять выводом. К сожалению, объем книги не позволяет рассмотреть все многочисленные варианты применения этих функций.