среда, 19 июля 2017 г.

Maxima. Сохранение сессии

Maxima предоставляет ряд функций для сохранения как всей текущей сессии, так и отдельный выражений. Есть возможность даже использовать форматы TeX и Fortran, но мы рассмотрим только основные варианты, предназначенные для работы в самой системе Maxima.

Самым простым вариантом являются функции

   writefile(имя_файла)
   appendfile(имя_файла)

Они записывают в указанный файл всё, что отображается на экране в интерактивном режиме, т.е. выполняют логирование. Разница между данными функциями заключается в том, что первая создаёт новый файл (или переписывает старый), а вторая - дописывает данные в уже существующий (или создаёт новый). Запись начинается с того момента, как одна из этих функций была вызвана, т.е. если вы планируете сохранить все свои действия и полученные результаты, выполните writefile() в самом начале работы. Закрыть файл и закончить запись можно с помощью функции 

   closefile()

Следует иметь ввиду, что полученный файл предназначен исключительно для сохранения истории действий и не может быть использован для повторной загрузки выражений в Maxima.

Функция

   stringout(имя_файла,...)

наоборот предназначена для сохранения выражений в формате, пригодном для дальнейшей обработки. Полученные с её помощью файлы могут быть загружены с помощью 

   batch(имя_файла)
   demo(имя_файла)

Особенность demo() заключается в том, что эта функция предназначена для демонстрации и после каждой вычисленной строки ожидает подтверждение пользователя для продолжения расчётов. Также можно использовать функцию

   batchload(имя_файла)

которая загружает и вычисляет все выражения без вывода результатов на экран и присваивания номеров меток.

Функция stringout() имеет несколько вариантов вызова:

   stringout(имя_файла, выражение1, выражение2, выражение3, ...)

- записывает в файл указанные выражения, причём в случае переменной будет сохранено только значение, без имени. Здесь можно также указывать имена меток, т.е. '%i14' или '%o22'.
   stringout(имя_файла, [m,n]) 

 - сохранение строк ввода с m по n включительно.

   stringout(имя_файла, input)

- сохранение всех строк ввода текущей сессии.

   stringout(имя_файла, functions)

- сохранение всех функций, определённых пользователем.

   stringout(имя_файла, values)

- сохранение всех переменных, заданных пользователем, в виде 'имя:значение'.

Похожий синтаксис имеет функция

   save(имя_файла, ...)

однако, она сохраняет данные в формате Lisp. Это позволяет ускорить загрузку и вычисление, т.к. у Maxima отпадает необходимость в парсинге. Загрузить Lisp-файлы можно с помощью функции

   load(имя_файла)

P.S. Чтобы получить справку о какой-либо функции, введите

   ? имя_функции

Комментариев нет:

Отправить комментарий