Maple 9.5/10 в математике, физике и образовании - Владимир Дьяконов
Шрифт:
Интервал:
Закладка:
writedata(F,A,float,proc(f,х)fprintf(f,`CMPLX(%g,%g)`,Re(x),Im(x)) end);
Необязательный указатель APPEND используется, если данные должны дописываться в уже созданный файл.
2.7.3. Считывание данных из файлов
Считывание данных из файла filename обеспечивает функция readdata:
readdata(fileID, n)
readdata(fileID, format, n)
readdata(fileID, format)
Здесь n — целое положительное число, задающее число считываемых столбцов.
Ниже представлены примеры этих операций (файл rdata):
> data:=array([[1,2,3],[4,5,6],[7,8,9]]);
> writedata(`С:\mydata.txt`, data);
> restart;
>
data> data:=readdata(`С:\mydata.txt`, 3);
data := [[1., 2., 3.], [4., 5., 6.], [7., 8., 9.]]Maple имеет также типичные файловые операции:
writeto — запись в файл;
appendto — добавление к файлу;
open — открытие файла;
close — закрытие файла;
write — запись в открытый файл;
save — запись выражений в файл;
read — считывание из файла.
Их реализация, однако, зависит от платформы, на которой установлена система, и от ее настройки.
2.7.4. Запись и считывание m-файлов
Основным способом записи различных объектов в файлы и считывания их из них является применение команд save и read применительно к файлам формата .m. Это наглядно иллюстрирует рис. 2.16.
Рис. 2.16. Примеры работы с m-файлом
На этом рисунке вначале задано три объекта у, F и р представляющие собой обычную переменную с заданным значением, функцию, представляющую значение интеграла и графический объект. Эти объекты записываются командой save в файл с именем myvals.m. Затем командой restart все определения объектов уничтожаются, поэтому вывод у, F и р просто повторяет имена этих неопределенных переменных.
В заключении командой read выполняется считывание объектов из файла myvals.m. Теперь вывод объектов дает их полное представление — для у и F в виде выражений, а для р в виде графика. Рисунок 2.16 дает наглядное представление о возможностях применения m-файлов.
2.7.5. Запись в файлы графических объектов
Графические объекты могут быть записаны в файлы своих собственных форматов, например, таких как GIF, BMP, JPG и др. Удобнее всего для этого использовать контекстное меню правой клавиши мыши, показанное на рис. 2.16 в правой части графика. Команда Export As… открывает окно с перечнем возможных форматов графических файлов. После выбора нужного формата появляется стандартное окно сохранения файлов, в котором можно задать нужное имя файла и завершить операцию сохранения графического объекта в файле. В Maple предусмотрена возможность в формате GIF записывать рисунки с анимацией изображения.
2.8. Вывод в специальных форматах
2.8.1. Вывод в формате LaTeX
Maple 9.5 имеет ряд средств для общения с другими программами. Часть из них, в основном относящаяся к обмену через файлы, уже была описана выше и в Главе 1. Однако система Maple 9.5 способна генерировать коды для прямого их включения в такие программы, причем не только математические. В ряде случаев вывод в специальных форматах полезен для оценки возможностей осуществления тех или иных вычислений или просто записи их в той или иной форме.
Для подготовки математических статей и книг широкое распространение получили редакторы ТеХ и LaTeX. Для подготовки выражений или файлов в формате LaТеХ служит функция
latex(expr,filename)
Параметр filename не обязателен, если достаточно получить нужное выражение в ячейке вывода Maple 9.5 (файл fformat):
> latex(а*х^2+b*х+с);
а{х}^{2}+bх+с
>
{frac {{х}^{n}{n}^{2}}{{х}^(2}}}-{frac {{х)^{n}n}{{х}^{2}}}
2.8.2. Вывод на языке Фортран
Язык Фортран вот уже многие десятилетия используется для программирования вычислительных задач. Накоплены обширные библиотеки решения таких задач на Фортране. Почитателей этого языка Maple 9.5 порадует тем, что он позволяет готовить коды для программ на Фортране. Для этого вначале надо загрузить библиотечную функцию:
> with(codegen,fortran);
[fortran]После этого может использоваться функция fortran:
fortran(expr,filename=str,optimized)
Два последних параметра не обязательны при выводе выражения expr в форме, присущей языку Фортран:
> fortran(а*х^2+b*х+с);
t0 = а*х**2+b*х+с
> fortran(diff(х^n,х$2));
t0 = x**n*n**2/x**2-x**n*n/x**2
Параметр optimize позволяет генерировать оптимизированные коды:
> fortran(а*х^2+b*х+с,optimized);
t1 = х**2
t4 = a*t1+b*x+c
При этом вычислительный процесс строится так, чтобы минимизировать число арифметических операций.
2.8.3. Вывод на языке С
Язык С (Си) также широко используется для решения вычислительных задач. Достаточно отметить, что сама система Maple 9.5/10 создана на языке С. Для вывода на языке С вначале надо подключить соответствующую функцию:
> with(codegen, С);
[C]Затем можно использовать функцию С:
С(expr,folename=str,optimized)
Например:
> С(diff(х^b, х$2)) ;
t0 = pow(х,1.0*b)*b*b/(х*х)-pow(х,1.0*b)*b/(х*х);
> С(diff(х^b,х$2),optimized);
t1 = pow(x,1.0*b); t2 = b*b; t4 = x*x; t5 = 1/t4;
t9 = t1*t2*t5-t1*b*t5;
Обширные возможности преобразования выражений в различные формы представляет функция convert. А функция interface позволяет управлять выводом.
Глава 3
Работа с математическими выражениями и функциями
Центральным понятием математики являются математические выражения, которые представляют собой конструкции, созданные с помощью констант, переменных, операторов и функций. В этой главе описана практика работы с выражениями, вычисляемыми с помощью встроенных в Maple 9.5/10 операторов и функций — как элементарных, так и специальных.
3.1. Работа с операторами
3.1.1. Операторы и операнды
Операторы являются специальными знаками, которые используются в записях математических выражений для указания того, какие виды операций должны в них выполняться. Наиболее распространенными, и одинаковыми во всех системах компьютерной математики, являются арифметические операторы + (сложения), — (вычитания), * (умножения), / (деления) и возведения в степень ^. К операторам относятся круглые ( ), квадратные [ ] и фигурные {} скобки, разделительная точка, запятая, двоеточие, точка с запятой и др. Операторы применяются совместно с данными, которые они используют и которые именуются операндами.
Операнды, используемые совместно с операторами, могут быть числами, константами, переменными и математическими выражениями. К примеру, в выражении (2+3)+5 операторами являются знаки + и скобки ( ), а операндами — константы 2 и 3 для первого оператора сложения и выражение (2 + 3) и константа 5 для второго оператора сложения. Аналогично в выражении (а+b)–с операндами будут переменные a, b и с.
Следует отметить, что в математических выражениях операторы имеют общепринятый приоритет, то есть порядок выполнения операторов в сложном выражении. Низшим приоритетом обладают операторы сложения и вычитания. Более высокий приоритет у операторов умножения, деления, затем возведения в степень, выполнения логических операций и так далее. Для изменения приоритета операций в математических выражениях используются круглые скобки. Выражения в скобках выполняются в первую очередь вне зависимости от приоритета входящих в них операций. Степень вложения скобок во всех современных математических системах не ограничивается.
Понятие приоритета облегчает однозначную интерпретацию математических выражений. К примеру, в выражении 2+3*5 вначале будет вычислено 3*5, а затем к результату прибавится 2. В итоге будет вычислено значение 17. А в выражении (2+3)*5 вначале будет вычислено выражение в скобках (2+3), затем оно будет умножено на 5, так что результат будет 25. Таким образом скобки позволяют менять приоритет операций. Степень вложения скобок в современных системах компьютерной математики не ограничена. Однако иногда применение лишних скобок может повлиять на выбор правил вычисления выражений, например при вычислении степеней.
3.1.2. Виды операторов
Формально операторы представлены своими идентификаторами в виде специальных математических знаков, слов и иных имен. Операторы, как это вытекает из их названия, обеспечивают определенные операции над данными, представленными операндами. Имеется пять основных типов операторов:
• binary — бинарные операторы (двумя операндами);
• unary — унарные операторы (с одним операндом);
• nullary — нуль-арные операторы (без операнда — это одна, две и три пары кавычек);