<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.linuxformat.ru/wiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://wiki.linuxformat.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dev-random</id>
		<title>Linuxformat - Вклад участника [ru]</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.linuxformat.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dev-random"/>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:Contributions/Dev-random"/>
		<updated>2026-05-13T17:26:55Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.19.20+dfsg-0+deb7u3</generator>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Img_81_96_6.png</id>
		<title>Файл:Img 81 96 6.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Img_81_96_6.png"/>
				<updated>2008-09-26T14:47:25Z</updated>
		
		<summary type="html">&lt;p&gt;Dev-random: загружена новая версия «Изображение:Img 81 96 6.png»: Полная версия от t.t, взята с сайта maxima&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dev-random</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Img_81_96_5.png</id>
		<title>Файл:Img 81 96 5.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Img_81_96_5.png"/>
				<updated>2008-09-26T14:42:46Z</updated>
		
		<summary type="html">&lt;p&gt;Dev-random: загружена новая версия «Изображение:Img 81 96 5.png»: Полная версия от t.t, взята с сайта maxima&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dev-random</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Img_81_96_4.png</id>
		<title>Файл:Img 81 96 4.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Img_81_96_4.png"/>
				<updated>2008-09-26T14:39:23Z</updated>
		
		<summary type="html">&lt;p&gt;Dev-random: загружена новая версия «Изображение:Img 81 96 4.png»: Полная версия от t.t, взята с сайта maxima&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dev-random</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Img_81_96_3.png</id>
		<title>Файл:Img 81 96 3.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Img_81_96_3.png"/>
				<updated>2008-09-26T14:32:41Z</updated>
		
		<summary type="html">&lt;p&gt;Dev-random: загружена новая версия «Изображение:Img 81 96 3.png»: Полная версия от t.t, взята с сайта maxima&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dev-random</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Img_81_96_2.png</id>
		<title>Файл:Img 81 96 2.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Img_81_96_2.png"/>
				<updated>2008-09-26T14:26:26Z</updated>
		
		<summary type="html">&lt;p&gt;Dev-random: загружена новая версия «Изображение:Img 81 96 2.png»: Полная версия от t.t, взята с сайта maxima&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dev-random</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Img_81_96_1.png</id>
		<title>Файл:Img 81 96 1.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Img_81_96_1.png"/>
				<updated>2008-09-26T14:20:11Z</updated>
		
		<summary type="html">&lt;p&gt;Dev-random: загружена новая версия «Изображение:Img 81 96 1.png»: Полная версия от t.t, взята с сайта maxima&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dev-random</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Img_81_95_3.png</id>
		<title>Файл:Img 81 95 3.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Img_81_95_3.png"/>
				<updated>2008-09-26T14:18:07Z</updated>
		
		<summary type="html">&lt;p&gt;Dev-random: загружена новая версия «Изображение:Img 81 95 3.png»: Полная версия от t.t, взята с сайта maxima&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dev-random</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Img_81_94_3.png</id>
		<title>Файл:Img 81 94 3.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Img_81_94_3.png"/>
				<updated>2008-09-26T14:11:32Z</updated>
		
		<summary type="html">&lt;p&gt;Dev-random: загружена новая версия «Изображение:Img 81 94 3.png»: Полная версия от t.t, взята с сайта maxima&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dev-random</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Img_81_94_5.png</id>
		<title>Файл:Img 81 94 5.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Img_81_94_5.png"/>
				<updated>2008-09-26T13:59:44Z</updated>
		
		<summary type="html">&lt;p&gt;Dev-random: загружена новая версия «Изображение:Img 81 94 5.png»: Полная версия от t.t, взята с сайта maxima&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dev-random</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Img_81_94_4.png</id>
		<title>Файл:Img 81 94 4.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Img_81_94_4.png"/>
				<updated>2008-09-26T13:56:01Z</updated>
		
		<summary type="html">&lt;p&gt;Dev-random: загружена новая версия «Изображение:Img 81 94 4.png»: Полная версия от t.t, взята с сайта maxima&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dev-random</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Img_81_93_1.png</id>
		<title>Файл:Img 81 93 1.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Img_81_93_1.png"/>
				<updated>2008-09-26T13:50:35Z</updated>
		
		<summary type="html">&lt;p&gt;Dev-random: загружена новая версия «Изображение:Img 81 93 1.png»: Полная версия от t.t, взята с сайта maxima&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dev-random</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF81:Maxima</id>
		<title>LXF81:Maxima</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF81:Maxima"/>
				<updated>2008-09-26T13:47:14Z</updated>
		
		<summary type="html">&lt;p&gt;Dev-random: /* Пару слов о программе */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Цикл/Maxima}}&lt;br /&gt;
&lt;br /&gt;
==Maxima – максимум свободы символьных вычислений==&lt;br /&gt;
''часть 1 На носу вступительные экзамены? Спрятанный под партой КПК с Linux может оказаться куда полезнее самой изощренной шпаргалки! Впрочем, он может сослужить добрую службу и принимающей стороне, а также всем, кому приходится много считать. Как? Спросите у '''Тихона Тарнавского'''!''&lt;br /&gt;
&lt;br /&gt;
===Максима в науке и образовании===&lt;br /&gt;
Среди математического ПО для аналитических (символьных)&lt;br /&gt;
вычислений наиболее широко известно коммерческое (Maple,&lt;br /&gt;
Mathematica); это очень мощный инструмент для ученого или преподавателя, аспиранта или студента, позволяющий автоматизировать&lt;br /&gt;
наиболее рутинную и требующую повышенного внимания часть работы,&lt;br /&gt;
оперирующий при этом аналитической записью данных, т.е. фактически&lt;br /&gt;
математическими формулами. Такую программу можно назвать средой&lt;br /&gt;
программирования, с той разницей, что в качестве элементов языка&lt;br /&gt;
программирования выступают привычные человеку математические&lt;br /&gt;
обозначения.&lt;br /&gt;
&lt;br /&gt;
Программа, которая стала темой статьи, работает на тех же принципах и предоставляет похожий функционал; самое радикальное ее отличие – то, что она не является ни коммерческой, ни закрытой. Другими&lt;br /&gt;
словами, речь идет о свободной программе. На самом деле использование свободного ПО более естественно для фундаментальной науки,&lt;br /&gt;
нежели коммерческого, так как модель, которая используется в свободном ПО – это модель открытости и общедоступности всех наработок.&lt;br /&gt;
Очевидно, эти же свойства присущи и результатам научной деятельности. Используя такую схожесть подходов, можно фактически рассматривать расширения функционала свободных программ или дополнительные библиотеки, которые могут создаваться для своих нужд в&lt;br /&gt;
процессе научных исследований, как неотъемлемую часть результатов&lt;br /&gt;
таких исследований. И эти результаты могут использоваться и распространяться на усмотрение пользователя без оглядки на ограничения,&lt;br /&gt;
налагаемые лицензиями исходного ПО. В случае же коммерческого ПО,&lt;br /&gt;
которое находится в собственности его производителя, такого рода свободы значительно ограничены, начиная от невозможности свободно (и&lt;br /&gt;
законно) передавать само такое ПО вместе с наработками и вплоть до&lt;br /&gt;
возможных патентных исков от компании-разработчика ПО в случае распространения самодельных дополнительных библиотек к нему.&lt;br /&gt;
&lt;br /&gt;
С другой стороны, основное направление, кроме научных разработок, где такие программы востребованы – это высшее образование; а&lt;br /&gt;
использование для учебных нужд именно свободного ПО – это реальная возможность и для вуза, и для студентов и преподавателей иметь в&lt;br /&gt;
своем распоряжении легальные копии такого ПО без больших, и даже&lt;br /&gt;
сколь-нибудь существенных, денежных затрат.&lt;br /&gt;
&lt;br /&gt;
Эта статья открывает цикл, посвященный свободной программе&lt;br /&gt;
аналитических вычислений Maxima. Этим циклом я постараюсь дать&lt;br /&gt;
вам наиболее полное впечатление о программе: он будет посвящен как&lt;br /&gt;
принципам и основам работы с Maxima, так и описанию более широких&lt;br /&gt;
ее возможностей и практическим примерам.&lt;br /&gt;
===Пару слов о программе===&lt;br /&gt;
На данный момент Maxima выпускается под две платформы: Unix-совместимые системы, т.е. Linux и *BSD, и MS Windows. Я, конечно же, буду&lt;br /&gt;
вести речь о Linux-версии.&lt;br /&gt;
&lt;br /&gt;
Сама по себе Maxima – консольная программа, и все математические&lt;br /&gt;
формулы отрисовывает обычными текстовыми символами. В этом есть&lt;br /&gt;
как минимум два плюса. С одной стороны, саму Maxima можно использовать как ядро, надстраивая поверх нее графические интерфейсы на любой&lt;br /&gt;
вкус. Их на сегодняшний день существует немало; в этот раз я остановлюсь на двух самых популярных (см. врезку) – и наиболее наглядных и&lt;br /&gt;
удобных в работе, а об остальных поговорим в следующих выпусках; они&lt;br /&gt;
тоже по-своему интересны, хотя более специфичны.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|center|&lt;br /&gt;
|Заголовок=Графические интерфейсы к Максиме&lt;br /&gt;
|Содержание=&lt;br /&gt;
С точки зрения ознакомления с самой Maxima наибольший интерес&lt;br /&gt;
представляют два интерфейса.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Img_81_93_4.jpg|200px|left|thumb|Рисунок 1. wxMaxima.]]&lt;br /&gt;
Первый – это отдельная самостоятельная графическая программа по&lt;br /&gt;
имени wxMaxima (рис. 1). Она, как и сама Maxima, помимо Linux/*BSD&lt;br /&gt;
существует еще и в версии для MS Windows. В wxMaxima вы вводите&lt;br /&gt;
формулы в текстовом виде, а вывод Максимы отображается графически, привычными математическими символами. Кроме того, большой&lt;br /&gt;
упор здесь сделан на удобство ввода: командная строка отделена от окна&lt;br /&gt;
ввода-вывода, а дополнительные кнопки и система меню позволяют&lt;br /&gt;
вводить команды не только в текстовом, но и в диалоговом режиме. Так&lt;br /&gt;
называемое «автодополнение» в командной строке на самом деле с&lt;br /&gt;
таковым имеет лишь то сходство, что вызывается клавишей «Tab». Ведет&lt;br /&gt;
же оно себя, к сожалению, всего лишь как умная история команд, т.е.&lt;br /&gt;
вызывает ту команду из уже введенных в этой сессии, которая начинается с заданных в командной строке символов, но не дополняет до имен&lt;br /&gt;
команд и их параметров. Таким образом, этот интерфейс наиболее удобен в том случае, когда вам нужно много вычислять и видеть результаты&lt;br /&gt;
на экране; и еще, возможно, в том случае, если вы не очень любите&lt;br /&gt;
вводить все команды с клавиатуры. Кроме того, wxMaxima предоставляет удобный интерфейс к документации по системе; хотя, так как документация поставляется в формате html, вместо этого можно использовать обычный браузер.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Img_81_93_5.jpg|200px|right|thumb|Рисунок 2.Maxima-сессия в редакторе TeXmacs.]]&lt;br /&gt;
Второй достаточно интересный интерфейс к Maxima – это дополнительный режим в редакторе TeXmacs. Хотя этот редактор имеет общее&lt;br /&gt;
историческое прошлое с широко известным Emacs, что явствует из&lt;br /&gt;
названия, но практического сходства между ними мало. TeXmacs разрабатывается для визуального редактирования текстов научной тематики,&lt;br /&gt;
при котором вы видите на экране редактируемый текст практически в&lt;br /&gt;
том же виде, в котором он будет распечатан. В частности, он имеет так&lt;br /&gt;
называемый математический режим ввода, очень удобный для работы с&lt;br /&gt;
самыми разнообразными формулами, и умеет импортировать/экспортировать текст в LaTeX и XML/HTML. Именно возможностями по работе с&lt;br /&gt;
формулами пользуется Maxima, вызванная из TeXmacs’а. Фактически,&lt;br /&gt;
формулы отображаются в привычной математической нотации, но при&lt;br /&gt;
этом их можно редактировать и копировать в другие документы наподобие обыкновенного текста. Maxima-сессия вызывается из меню:&lt;br /&gt;
«Вставить–&amp;gt;Сессия–&amp;gt;Maxima», при этом появляется дополнительное&lt;br /&gt;
меню с командами Максимы. После запуска сессии можно уже внутри&lt;br /&gt;
нее перейти в математический режим ввода (меню режимов ввода вызывается первой кнопкой на панели ввода) и при вводе также использовать&lt;br /&gt;
элементы математической нотации (рис. 2). Этот интерфейс будет&lt;br /&gt;
наиболее удобен тем, кто хочет использовать результаты вычислений в&lt;br /&gt;
своих текстах и любит редактировать их в визуальном режиме.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
С другой стороны, сама по себе, без каких-либо интерфейсных надстроек, Maxima нетребовательна к железу и может работать на таких&lt;br /&gt;
компьютерах, которые сейчас и за компьютеры уже никто не считает (это&lt;br /&gt;
может оказаться актуальным, к примеру, для вуза или научной лаборатории, у которых денег на обновление парка машин скорее всего нет, а&lt;br /&gt;
потребность в ПО для символьных вычислений возникнуть может).&lt;br /&gt;
&lt;br /&gt;
Имена функций и переменных в Максиме чувствительны к регистру,&lt;br /&gt;
то есть прописные и строчные буквы в них различаются. Это не будет в&lt;br /&gt;
новинку любому, кто уже имел дело с POSIX-совместимыми системами&lt;br /&gt;
или с такими языками программирования, как, скажем, C или Perl. Удобно&lt;br /&gt;
это и с точки зрения математика, для которого тоже привычно, что заглавными и строчными буквами могут обозначаться разные объекты (например, множества и их элементы, соответственно).&lt;br /&gt;
&lt;br /&gt;
Для того, чтобы начать работать с программой, вам понадобится&lt;br /&gt;
пакет Maxima; если в стандартных репозитариях вашего дистрибутива&lt;br /&gt;
его не окажется, то взять его можно на сайте проекта, адрес которого&lt;br /&gt;
приведен во врезке.&lt;br /&gt;
&lt;br /&gt;
Принципы работы с программой не зависят от того, какой интерфейс&lt;br /&gt;
к ней вы выберете, поэтому я постараюсь максимально абстрагироваться&lt;br /&gt;
от конкретного интерфейса, ограничиваясь лишь небольшими комментариями в тех случаях, когда они ведут себя по-разному.&lt;br /&gt;
&lt;br /&gt;
На данный момент последняя версия программы – 5.9.3, именно&lt;br /&gt;
о ней я и буду говорить; если в вашем дистрибутиве пока присутствует&lt;br /&gt;
более старая версия, вы в принципе можете использовать ее: и актуальная&lt;br /&gt;
еще несколько месяцев назад 5.9.2, и вышедшая в конце прошлого года&lt;br /&gt;
5.9.1 не имеют с нынешней принципиальных различий.&lt;br /&gt;
&lt;br /&gt;
===Приступаем к работе===&lt;br /&gt;
После запуска Maxima-сессии мы видим перед собой такие строки:&lt;br /&gt;
 Maxima restarted.&lt;br /&gt;
 (%i1)&lt;br /&gt;
&lt;br /&gt;
Первая – это сообщение о том, что ядро Максимы только что запустилось (вместо нее, в зависимости от версии и конкретной сборки, может&lt;br /&gt;
выводиться краткая информация о программе); вторая – приглашение&lt;br /&gt;
к вводу первой команды. Команда в Максиме – это любая комбинация&lt;br /&gt;
математических выражений и встроенных функций, завершенная, в&lt;br /&gt;
простейшем случае, точкой с запятой. После ввода команды и нажатия&lt;br /&gt;
«Enter» Maxima выведет результат и будет ожидать следующей команды:&lt;br /&gt;
[[Изображение:Img_81_93_1.png|center]]&lt;br /&gt;
&lt;br /&gt;
Для арифметических действий используются традиционные обозначения: –, +, *, /; ** или ^ для возведения в степень, sqrt() для квадратного корня.&lt;br /&gt;
&lt;br /&gt;
Далее я часто буду пользоваться для наглядности упомянутым во&lt;br /&gt;
врезке математическим режимом ввода редактора TeXmacs. К примеру,&lt;br /&gt;
приведенный выше код выглядел бы так:&lt;br /&gt;
[[Изображение:Img_81_93_2.png|center]]&lt;br /&gt;
&lt;br /&gt;
Если для каких-то обозначений будет неочевидно, как записать их в&lt;br /&gt;
строку, я буду пояснять это по ходу изложения.&lt;br /&gt;
Как видите, каждая ячейка имеет свою метку; эта метка – заключенное в скобки имя ячейки. Ячейки ввода именуются как %i с номером (i&lt;br /&gt;
от input – ввод), ячейки вывода – как %o с соответствующим номером&lt;br /&gt;
(o от output – вывод). Со знака % начинаются все встроенные служебные имена: чтобы, с одной стороны сделать их достаточно короткими и&lt;br /&gt;
удобными в использовании, а с другой – избежать возможных накладок с пользовательскими именами, которые тоже часто удобно делать&lt;br /&gt;
короткими. Благодаря такому единообразию вам не придется запоминать, как часто бывает в других системах, какие из таких коротких и&lt;br /&gt;
удобных имен зарезервированы программой, а какие вы можете использовать для своих нужд. К примеру, внутренними именами %e и %pi&lt;br /&gt;
обозначены общеизвестные математические постоянные; а через %c с&lt;br /&gt;
номером обозначаются константы, используемые при интегрировании,&lt;br /&gt;
для которых использование буквы «c» традиционно в математике.&lt;br /&gt;
&lt;br /&gt;
При вводе мы можем обращаться к любой из предыдущих ячеек&lt;br /&gt;
по ее имени, подставляя его в любые выражения. Кроме того последняя ячейка вывода обозначается через %, а последняя ячейка ввода – через _. Это позволяет обращаться к последнему результату, не&lt;br /&gt;
отвлекаясь на то, каков его номер.&lt;br /&gt;
[[Изображение:Img_81_93_3.png|center]]&lt;br /&gt;
&lt;br /&gt;
Здесь %+47/59 – то же самое, что %o1+47/59.&lt;br /&gt;
&lt;br /&gt;
Вывод результата вычисления не всегда нужен на экране; его можно заглушить, завершив команду символом $ вместо ;. Заглушенный&lt;br /&gt;
результат при этом все равно вычисляется; как видите, в этом примере&lt;br /&gt;
ячейки %o1 и %o2 доступны, хотя и не показаны (к ячейке %o2 обращение идет через символ %, смысл которого расшифрован выше):&lt;br /&gt;
[[Изображение:Img_81_94_2.png|center]]&lt;br /&gt;
&lt;br /&gt;
Каждую следующую команду не обязательно писать с новой&lt;br /&gt;
строки; если ввести несколько команд в одну строчку, каждой из них&lt;br /&gt;
все равно будет соответствовать свое имя ячейки. К примеру, здесь в&lt;br /&gt;
строке после метки %i1 введены ячейки от %i1 до %i4; в ячейке %i3&lt;br /&gt;
используются %i1 и %i2 (обозначенная как _ – предыдущий ввод):&lt;br /&gt;
[[Изображение:Img_81_94_3.png|center]]&lt;br /&gt;
&lt;br /&gt;
В wxMaxima и TeXmacs последнюю или единственную команду в&lt;br /&gt;
строке можно не снабжать завершающим символом – это сработает так&lt;br /&gt;
же, как если бы она была завершена ; , т.е. вывод заглушен не будет. В&lt;br /&gt;
дальнейших примерах я часто буду опускать ; . Если вы выберете другой&lt;br /&gt;
интерфейс, не забывайте ее добавлять.&lt;br /&gt;
&lt;br /&gt;
Помимо использования имен ячеек, мы, естественно, можем и сами&lt;br /&gt;
давать имена любым выражениям. По-другому можно сказать, что мы&lt;br /&gt;
присваиваем значения переменным, с той разницей, что в виде значения такой переменной может выступать любое математическое выражение. Делается это с помощью двоеточия – знак равенства оставлен&lt;br /&gt;
уравнениям, которые, учитывая общий математический контекст записи,&lt;br /&gt;
проще и привычнее так читаются. И к тому же, так как основной конек&lt;br /&gt;
Максимы – символьная запись и аналитические вычисления, уравнения&lt;br /&gt;
достаточно часто используются. Например:&lt;br /&gt;
[[Изображение:Img_81_94_4.png|center]]&lt;br /&gt;
&lt;br /&gt;
В каком-то смысле двоеточие даже нагляднее в таком контексте, чем&lt;br /&gt;
знак равенства: это можно понимать так, что мы задаем некое обозначение, а затем через двоеточие расшифровываем, что именно оно обозначает. После того, как выражение поименовано, мы в любой момент можем&lt;br /&gt;
вызвать его по имени:&lt;br /&gt;
[[Изображение:Img_81_94_5.png|center]]&lt;br /&gt;
&lt;br /&gt;
Любое имя можно очистить от присвоенного ему выражения функцией kill(), и освободить занимаемую этим выражением память. Для&lt;br /&gt;
этого нужно просто набрать kill(name), где name – имя уничтожаемого&lt;br /&gt;
выражения; причем это может быть как имя, назначенное вами, так и&lt;br /&gt;
любая ячейка ввода или вывода. Точно так же можно очистить разом всю&lt;br /&gt;
память и освободить все имена, введя kill(all). В этом случае очистятся&lt;br /&gt;
в том числе и все ячейки ввода-вывода, и их нумерация опять начнется&lt;br /&gt;
с единицы. В дальнейшем, если по контексту будет иметься в виду логическое продолжение предыдущих строк ввода-вывода, я буду продолжать&lt;br /&gt;
нумерацию (этим приемом я уже воспользовался выше). Когда же новый&lt;br /&gt;
«сеанс» будет никак не связан с предыдущим, буду начинать нумерацию&lt;br /&gt;
заново; это будет косвенным указанием сделать «kill(all)», если вы будете набирать примеры в Maxima, так как имена переменных и ячеек в таких&lt;br /&gt;
«сеансах» могут повторяться.&lt;br /&gt;
===Доступ к документации Максимы===&lt;br /&gt;
В примерах выше мы воспользовались двумя встроенными функциями. Как нетрудно догадаться из контекста, solve – это функция решения уравнения, а diff – функция дифференцирования. Практически&lt;br /&gt;
весь функционал Maxima реализован через такие встроенные функции. Функция в Maxima может иметь переменное число аргументов.&lt;br /&gt;
Например, функция solve, которую мы использовали с одним аргументом, чаще вызывается с двумя аргументами. Первый задает уравнение&lt;br /&gt;
или функцию, чьи корни надо найти; второй – переменную, относительно которой нужно решать уравнение:&lt;br /&gt;
[[Изображение:Img_81_95_1.png|center]]&lt;br /&gt;
&lt;br /&gt;
Если формула, задающая решаемое уравнение, содержит только&lt;br /&gt;
один символ, как в предыдущем примере, то второй аргумент можно&lt;br /&gt;
опустить, так как выбор, относительно чего нужно решать уравнение, все&lt;br /&gt;
равно однозначен.&lt;br /&gt;
&lt;br /&gt;
Вторая функция из наших новых знакомых – diff – также может принимать один аргумент; в этом случае она находит дифференциал заданного выражения:&lt;br /&gt;
[[Изображение:Img_81_95_2.png|center]]&lt;br /&gt;
&lt;br /&gt;
Через del(x) и del(y) здесь обозначены дифференциалы соответствующих символов.&lt;br /&gt;
&lt;br /&gt;
Для каждой встроенной функции есть описание в документации по&lt;br /&gt;
Maxima. Оно содержит сведения о том, какие аргументы и в каких вариантах принимает функция, а также описание ее действия в разных случаях&lt;br /&gt;
и конкретные примеры применения. Но, конечно, искать описание каждой&lt;br /&gt;
нужной функции в html-документации или info-страницах не всегда удобно, тем более, что нужна эта информация, как правило, прямо в процессе&lt;br /&gt;
работы. Поэтому в Maxima есть специальная функция – describe(), –&lt;br /&gt;
которая выдает информацию из документации по конкретным словам.&lt;br /&gt;
Более того, специально для удобства получения справочной информации&lt;br /&gt;
существует сокращенная версия вызова этой функции: ? name вместо&lt;br /&gt;
describe(name). Здесь ? – это имя оператора, и аргумент нужно отделять от него пробелом (выражение ?name используется для вызова функции Lisp с именем name). Функция describe и оператор ? выдают список тех разделов помощи и имен функций, которые содержат заданный&lt;br /&gt;
текст, после чего предлагают ввести номер того раздела или описания той&lt;br /&gt;
функции, которые вы хотите посмотреть:&lt;br /&gt;
[[Изображение:Img_81_95_3.png|center]]&lt;br /&gt;
&lt;br /&gt;
Когда вы выберете раздел, будет выдано его содержимое:&lt;br /&gt;
[[Изображение:Img_81_96_1.png|center]]&lt;br /&gt;
&lt;br /&gt;
Если для слова, которое вы ввели после ? или describe, найдено&lt;br /&gt;
единственное совпадение, его описание будет показано сразу.&lt;br /&gt;
&lt;br /&gt;
Кроме справки, по многим функциям Maxima есть примеры их&lt;br /&gt;
использования. Пример можно загрузить функцией example(). Вызов&lt;br /&gt;
этой функции без аргумента отобразит список всех имен доступных примеров; вызов вида example(name) загрузит в текущую сессию и выполнит указанный файл примера:&lt;br /&gt;
[[Изображение:Img_81_96_2.png|center]]&lt;br /&gt;
&lt;br /&gt;
===Основные принципы===&lt;br /&gt;
{{Врезка&lt;br /&gt;
|Заголовок=Адреса в интернете&lt;br /&gt;
|Содержание=&lt;br /&gt;
* Сайт проекта Maxima: http://maxima.sourceforge.net/&lt;br /&gt;
* Сайт wxMaxima: http://wxmaxima.sourceforge.net/&lt;br /&gt;
* Сайт редактора TeXmacs: http://www.texmacs.org/&lt;br /&gt;
* Web-интерфейс к Максиме: http://www.et.byu.edu/~koj/maxima.html&lt;br /&gt;
|Ширина=200px}}&lt;br /&gt;
То, что Максима написана на Lisp, человеку, знакомому с этим языком,&lt;br /&gt;
становится понятно уже в начале работы с программой. Действительно,&lt;br /&gt;
в Максиме четко прослеживается «лисповский» принцип работы с данными, который оказывается очень кстати в контексте символьной математики и аналитических вычислений. Дело в том, что в Lisp, по большому счету, нет разделения на объекты и данные: имена переменных&lt;br /&gt;
и выражения могут использоваться практически в одном и том же контексте. В Maxima же это свойство развито еще сильнее: фактически, мы&lt;br /&gt;
можем использовать любой символ вне зависимости от того, присвоено&lt;br /&gt;
ли ему какое-то выражение. По умолчанию символ, связанный с любым&lt;br /&gt;
выражением, будет представлять это выражение; символ, не связанный&lt;br /&gt;
ни с чем, будет представлять самого себя, трактуемого опять-таки как&lt;br /&gt;
выражение. Поясним на примере:&lt;br /&gt;
[[Изображение:Img_81_96_3.png|center]]&lt;br /&gt;
&lt;br /&gt;
Из этого следует, в частности, что в выражение автоматически подставляется значение входящего в него символа только в том случае, если&lt;br /&gt;
это значение было приписано символу до определения выражения:&lt;br /&gt;
[[Изображение:Img_81_96_4.png|center]]&lt;br /&gt;
&lt;br /&gt;
Если некоторый символ уже имеет какое-то значение, можем ли мы&lt;br /&gt;
использовать в выражении сам этот символ, а не его значение? Конечно.&lt;br /&gt;
Сделать это можно с помощью знака апострофа – введенный перед&lt;br /&gt;
любым символом или выражением, он предотвращает его вычисление:&lt;br /&gt;
[[Изображение:Img_81_96_5.png|center]]&lt;br /&gt;
&lt;br /&gt;
Результат выражения %i12 был бы аналогичен и в том случае, если&lt;br /&gt;
бы b и y не имели на тот момент никаких значений; таким образом, мы&lt;br /&gt;
можем смело блокировать вычисление символа, даже не запоминая (или&lt;br /&gt;
не зная), присвоены ли им вообще какие-то выражения.&lt;br /&gt;
&lt;br /&gt;
Точно так же можно поступить с любой встроенной функцией, если&lt;br /&gt;
мы хотим не выполнить ее, а использовать в своем математическом контексте. Например, уже упомянутая функция дифференцирования может&lt;br /&gt;
пригодиться нам для обозначения производной в дифференциальном&lt;br /&gt;
уравнении; в этом случае, конечно, вычислять ее не надо:&lt;br /&gt;
[[Изображение:Img_81_96_6.png|center]]&lt;br /&gt;
&lt;br /&gt;
Благодаря описанным особенностям работа в Максиме, с одной&lt;br /&gt;
стороны, становится во многом похожей на традиционную «ручную»&lt;br /&gt;
работу с математическими формулами, что практически сводит на нет&lt;br /&gt;
психологический барьер в начале работы с программой. С другой стороны, даже на этом начальном этапе вы фактически избавлены от&lt;br /&gt;
наиболее рутинной ручной работы,&lt;br /&gt;
вроде отслеживания текущих значений символов, и можете полностью сосредоточиться на самой&lt;br /&gt;
задаче.&lt;br /&gt;
&lt;br /&gt;
Конечно, блокировка вычислений – это не единственный способ влиять на то, как Максима&lt;br /&gt;
будет вычислять то или иное выражение; этим процессом можно управлять довольно гибко.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|center|&lt;br /&gt;
|Заголовок=Живая математика&lt;br /&gt;
|Содержание=&lt;br /&gt;
О существовании так называемых «живых CD-дистрибутивов» (LiveCD)&lt;br /&gt;
Linux, способных загружаться и работать прямо с компакт-диска, слышали в наше время почти все. Один из самых популярных среди этой братии – дистрибутив Knoppix, основанный на Debian, – в особом представлении тоже, я думаю, не нуждается. А вот среди специализированных&lt;br /&gt;
LiveCD-дистрибутивов, основанных уже на Knoppix’е (которых последнее&lt;br /&gt;
время тоже, признаться, развелось немало) мне попался один очень&lt;br /&gt;
интересный экземпляр, узнать о котором можно разве что случайно. А&lt;br /&gt;
дистрибутив этот действительно интересен, потому как предоставляет&lt;br /&gt;
возможность познакомиться «живьем», без установки, с многочисленными и разнообразными программами весьма полезного и в то же время&lt;br /&gt;
не слишком широко известного профиля – компьютерной математикой.&lt;br /&gt;
Называется он – соответственно своей профессии – Knoppix-math.&lt;br /&gt;
&lt;br /&gt;
Основан этот дистрибутив, если говорить точно, не на самом&lt;br /&gt;
Knoppix’е, а на Knoppix-ja, т.е. его японском варианте. Не бойтесь, японский язык учить не придется – английский вариант интерфейса также&lt;br /&gt;
присутствует (хотя не исключено, что именно происхождение виной&lt;br /&gt;
малой популярности дистрибутива в Европе).&lt;br /&gt;
&lt;br /&gt;
Самую свежую на данный момент англоязычную информацию о&lt;br /&gt;
дистрибутиве можно найти по этому адресу:&lt;br /&gt;
http://geom.math.metro-u.ac.jp/wiki/index.php?KNOPPIX/Math/English&lt;br /&gt;
&lt;br /&gt;
В частности, в разделе Download есть ссылки на пять зеркал,&lt;br /&gt;
содержащих образы компакт-дисков. Качать советую последнюю&lt;br /&gt;
японскую версию – английская уже порядком устарела, а англоязычный интерфейс, как я уже говорил, и в японской присутствует. Для&lt;br /&gt;
того, чтобы его выбрать, всего лишь надо ввести при загрузке knoppix&lt;br /&gt;
lang=en или, чтобы получить в списке доступных раскладок клавиатуры русскую, knoppix lang=ru (интерфейс при этом также будет английский). Последняя версия выпущена в феврале этого года и основана&lt;br /&gt;
на Knoppix 4.0.2. Прямые ссылки на образ диска и его контрольную&lt;br /&gt;
сумму на одном из зеркал:&lt;br /&gt;
* ftp://fun.sci.fukuoka-u.ac.jp/pub/knoppix/knoppix_v4.0.2-math-20060217-ja.iso&lt;br /&gt;
* ftp://fun.sci.fukuoka-u.ac.jp/pub/knoppix/knoppix_v4.0.2-math-20060217-ja.iso.md5&lt;br /&gt;
&lt;br /&gt;
Диск содержит более тридцати математических программ, среди&lt;br /&gt;
которых такие известные, как Maxima, GNUplot, Octave, Yorick, GNU R,&lt;br /&gt;
TeXmacs. Кроме того, присутствуют и языки программирования Python,&lt;br /&gt;
Ruby и Tcl/tk; и, конечно же, TeX.&lt;br /&gt;
&lt;br /&gt;
Помимо ПО математического профиля, есть на диске и программы общего назначения: OpenOffice.org, Kate и KWrite; xpdf, Kuickshow и&lt;br /&gt;
ImageMagic; Mozilla Firefox и Konqueror. Т.е. все для полноценного рабочего места. И все это может работать в обрамлении любого из традиционной уже для Knoppix’а тройки: KDE, IceWM и Fluxbox.&lt;br /&gt;
&lt;br /&gt;
Возможно, вы захотите воспользоваться этим LiveCD, чтобы познакомиться с программой символьных вычислений Maxima, цикл статей&lt;br /&gt;
о которой начинается в этом номере, и каким-либо графическим интерфейсом к ней – многие из них тоже доступны на диске.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|center|&lt;br /&gt;
|Заголовок=Что такое символьные вычисления&lt;br /&gt;
|Содержание=&lt;br /&gt;
Так как в этом цикле статей речь пойдет о математической программе для символьных вычислений,&lt;br /&gt;
для начала пару слов о том, что из себя представляют эти самые символьные или, как их еще называют, аналитические вычисления, в отличие от численных расчетов. Компьютеры, как известно, оперируют с числами (целыми и с плавающей запятой).&lt;br /&gt;
К примеру, решения уравнения можно получить как&lt;br /&gt;
-0.41421356 и 2.41421356, а 3x=1 – как 0.33333333.&lt;br /&gt;
А ведь хотелось бы увидеть не приближенную цифровую запись, а точную величину, т.е. в первом&lt;br /&gt;
случае и во втором. С этого простейшего примера и&lt;br /&gt;
начинается разница между численными и символьными вычислениями. Но кроме этого, есть еще&lt;br /&gt;
задачи, которые вообще невозможно решить численно. Например, параметрические уравнения, где в&lt;br /&gt;
виде решения нужно выразить неизвестное через&lt;br /&gt;
параметр; или нахождение производной от функции; да практически любую достаточно общую&lt;br /&gt;
задачу можно решить только в символьном виде.&lt;br /&gt;
Поэтому неудивительно, что и для такого класса&lt;br /&gt;
задач появились компьютерные программы, оперирующие уже не только числами, а почти любыми&lt;br /&gt;
математическими объектами, от векторов до тензоров, от функций до интегро-дифференциальных&lt;br /&gt;
уравнений и т.д.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|center|&lt;br /&gt;
|Заголовок=Немного истории&lt;br /&gt;
|Содержание=&lt;br /&gt;
История проекта, известного ныне под именем&lt;br /&gt;
Maxima, началась еще в конце 60-х годов в легендарном MIT (Massachusetts Institute of Technology –&lt;br /&gt;
Массачусетский Технологический Институт), когда&lt;br /&gt;
в рамках существовавшего в те годы большого проекта MAC началась работа над программой символьных вычислений, которая получила имя Macsyma (от&lt;br /&gt;
MAC SYmbolic MAnipulation). Архитектура системы&lt;br /&gt;
была разработана к июлю 1968 г., непосредственно&lt;br /&gt;
программирование началось в июле 1969. В качестве&lt;br /&gt;
языка для разработки системы был выбран Lisp,&lt;br /&gt;
и история показала, насколько это был правильный выбор: из существующих в то время языков&lt;br /&gt;
программирования он единственный продолжает&lt;br /&gt;
развиваться и сейчас – спустя почти полвека после&lt;br /&gt;
старта проекта. Принципы, положенные в основу&lt;br /&gt;
проекта, позднее были заимствованы наиболее&lt;br /&gt;
активно развивающимися ныне коммерческими&lt;br /&gt;
программами – Mathematica и Maple; таким образом,&lt;br /&gt;
Macsyma фактически стала родоначальником всего&lt;br /&gt;
направления программ символьной математики.&lt;br /&gt;
Естественно, Macsyma была закрытым коммерческим проектом; его финансировали государственные&lt;br /&gt;
и частные организации, среди которых были вошедшее в историю ARPA (Advanced Research Projects&lt;br /&gt;
Agency; помните ARPAnet – предок интернета?),&lt;br /&gt;
Энергетический и Оборонный Департаменты США&lt;br /&gt;
(Departments of Energy &amp;amp; Defence, DOE and DOD).&lt;br /&gt;
Проект активно развивался, а организации, контролирующие его, менялись не раз, как это всегда&lt;br /&gt;
бывает с долгоживущими закрытыми проектами. В&lt;br /&gt;
1982 году профессор Уильям Шелтер (William&lt;br /&gt;
Schelter) начал разрабатывать свою версию на основе этого же кода, под названием Maxima. В 1998&lt;br /&gt;
году Шелтеру удалось получить от DOE права на&lt;br /&gt;
публикацию кода по лицензии GPL. Первоначальный&lt;br /&gt;
проект Macsyma прекратил свое существование&lt;br /&gt;
в 1999 году. Уильям Шелтер продолжал заниматься&lt;br /&gt;
разработкой Maxima вплоть до своей смерти в 2001&lt;br /&gt;
году. Но, что характерно для открытого ПО, проект&lt;br /&gt;
не умер вместе со своим автором и куратором.&lt;br /&gt;
Сейчас проект продолжает активно развиваться, и&lt;br /&gt;
участие в нем является лучшей визитной карточкой&lt;br /&gt;
для математиков и программистов всего мира.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|center|&lt;br /&gt;
|Заголовок=Решение проблемы с запуском из-под TeXmacs&lt;br /&gt;
|Содержание=&lt;br /&gt;
Если у вас возникли проблемы с запуском Maxima-&lt;br /&gt;
сессии из TeXmacs, обратите внимание на то, кто у вас&lt;br /&gt;
в системе выступает под именем /bin/sh. Дело в том,&lt;br /&gt;
что инициализация всех разнообразных сессий реализована в TeXmacs’е через shell-скрипты, вызываемые именно с помощью /bin/sh. И в скрипте, отвечающем за сессию Maxima, используется возможность,&lt;br /&gt;
которая не стандартизирована как обязательная для&lt;br /&gt;
/bin/sh, но присутствует в его эмуляции bash.&lt;br /&gt;
Другими словами, если у вас /bin/sh является не&lt;br /&gt;
ссылкой на /bin/bash, а чем-то другим, то именно это&lt;br /&gt;
может послужить причиной невозможности открыть&lt;br /&gt;
Maxima-сессию (к примеру, в Debian и основанных на&lt;br /&gt;
нем дистрибутивах кроме bash ссылку /bin/sh на&lt;br /&gt;
себя может захотеть поставить еще и более легкий&lt;br /&gt;
dash; в этом случае восстановить статус-кво можно с&lt;br /&gt;
помощью dpkg-reconfigure dash). Если сделать /bin/sh ссылкой на /bin/bash не представляется возможным, можете попробовать поменять #!/bin/sh на #!/bin/bash в файле /usr/lib/texmacs/TeXmacs/bin/maxima_detect. Я написал об этой проблеме разработчикам TeXmacs, но еще не получил никакой их&lt;br /&gt;
реакции, так что не могу пока сказать, будет ли&lt;br /&gt;
исправлена эта недоработка в ближайших версиях.&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Dev-random</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Img_81_93_5.jpg</id>
		<title>Файл:Img 81 93 5.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Img_81_93_5.jpg"/>
				<updated>2008-09-26T13:45:15Z</updated>
		
		<summary type="html">&lt;p&gt;Dev-random: Полный вариант от t.t, взят с сайта maxima&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Полный вариант от t.t, взят с сайта maxima&lt;/div&gt;</summary>
		<author><name>Dev-random</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF81:Maxima</id>
		<title>LXF81:Maxima</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF81:Maxima"/>
				<updated>2008-09-26T13:42:33Z</updated>
		
		<summary type="html">&lt;p&gt;Dev-random: /* Пару слов о программе */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Цикл/Maxima}}&lt;br /&gt;
&lt;br /&gt;
==Maxima – максимум свободы символьных вычислений==&lt;br /&gt;
''часть 1 На носу вступительные экзамены? Спрятанный под партой КПК с Linux может оказаться куда полезнее самой изощренной шпаргалки! Впрочем, он может сослужить добрую службу и принимающей стороне, а также всем, кому приходится много считать. Как? Спросите у '''Тихона Тарнавского'''!''&lt;br /&gt;
&lt;br /&gt;
===Максима в науке и образовании===&lt;br /&gt;
Среди математического ПО для аналитических (символьных)&lt;br /&gt;
вычислений наиболее широко известно коммерческое (Maple,&lt;br /&gt;
Mathematica); это очень мощный инструмент для ученого или преподавателя, аспиранта или студента, позволяющий автоматизировать&lt;br /&gt;
наиболее рутинную и требующую повышенного внимания часть работы,&lt;br /&gt;
оперирующий при этом аналитической записью данных, т.е. фактически&lt;br /&gt;
математическими формулами. Такую программу можно назвать средой&lt;br /&gt;
программирования, с той разницей, что в качестве элементов языка&lt;br /&gt;
программирования выступают привычные человеку математические&lt;br /&gt;
обозначения.&lt;br /&gt;
&lt;br /&gt;
Программа, которая стала темой статьи, работает на тех же принципах и предоставляет похожий функционал; самое радикальное ее отличие – то, что она не является ни коммерческой, ни закрытой. Другими&lt;br /&gt;
словами, речь идет о свободной программе. На самом деле использование свободного ПО более естественно для фундаментальной науки,&lt;br /&gt;
нежели коммерческого, так как модель, которая используется в свободном ПО – это модель открытости и общедоступности всех наработок.&lt;br /&gt;
Очевидно, эти же свойства присущи и результатам научной деятельности. Используя такую схожесть подходов, можно фактически рассматривать расширения функционала свободных программ или дополнительные библиотеки, которые могут создаваться для своих нужд в&lt;br /&gt;
процессе научных исследований, как неотъемлемую часть результатов&lt;br /&gt;
таких исследований. И эти результаты могут использоваться и распространяться на усмотрение пользователя без оглядки на ограничения,&lt;br /&gt;
налагаемые лицензиями исходного ПО. В случае же коммерческого ПО,&lt;br /&gt;
которое находится в собственности его производителя, такого рода свободы значительно ограничены, начиная от невозможности свободно (и&lt;br /&gt;
законно) передавать само такое ПО вместе с наработками и вплоть до&lt;br /&gt;
возможных патентных исков от компании-разработчика ПО в случае распространения самодельных дополнительных библиотек к нему.&lt;br /&gt;
&lt;br /&gt;
С другой стороны, основное направление, кроме научных разработок, где такие программы востребованы – это высшее образование; а&lt;br /&gt;
использование для учебных нужд именно свободного ПО – это реальная возможность и для вуза, и для студентов и преподавателей иметь в&lt;br /&gt;
своем распоряжении легальные копии такого ПО без больших, и даже&lt;br /&gt;
сколь-нибудь существенных, денежных затрат.&lt;br /&gt;
&lt;br /&gt;
Эта статья открывает цикл, посвященный свободной программе&lt;br /&gt;
аналитических вычислений Maxima. Этим циклом я постараюсь дать&lt;br /&gt;
вам наиболее полное впечатление о программе: он будет посвящен как&lt;br /&gt;
принципам и основам работы с Maxima, так и описанию более широких&lt;br /&gt;
ее возможностей и практическим примерам.&lt;br /&gt;
===Пару слов о программе===&lt;br /&gt;
На данный момент Maxima выпускается под две платформы: Unix-совместимые системы, т.е. Linux и *BSD, и MS Windows. Я, конечно же, буду&lt;br /&gt;
вести речь о Linux-версии.&lt;br /&gt;
&lt;br /&gt;
Сама по себе Maxima – консольная программа, и все математические&lt;br /&gt;
формулы отрисовывает обычными текстовыми символами. В этом есть&lt;br /&gt;
как минимум два плюса. С одной стороны, саму Maxima можно использовать как ядро, надстраивая поверх нее графические интерфейсы на любой&lt;br /&gt;
вкус. Их на сегодняшний день существует немало; в этот раз я остановлюсь на двух самых популярных (см. врезку) – и наиболее наглядных и&lt;br /&gt;
удобных в работе, а об остальных поговорим в следующих выпусках; они&lt;br /&gt;
тоже по-своему интересны, хотя более специфичны.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|center|&lt;br /&gt;
|Заголовок=Графические интерфейсы к Максиме&lt;br /&gt;
|Содержание=&lt;br /&gt;
С точки зрения ознакомления с самой Maxima наибольший интерес&lt;br /&gt;
представляют два интерфейса.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Img_81_93_4.jpg|200px|left|thumb|Рисунок 1. wxMaxima.]]&lt;br /&gt;
Первый – это отдельная самостоятельная графическая программа по&lt;br /&gt;
имени wxMaxima (рис. 1). Она, как и сама Maxima, помимо Linux/*BSD&lt;br /&gt;
существует еще и в версии для MS Windows. В wxMaxima вы вводите&lt;br /&gt;
формулы в текстовом виде, а вывод Максимы отображается графически, привычными математическими символами. Кроме того, большой&lt;br /&gt;
упор здесь сделан на удобство ввода: командная строка отделена от окна&lt;br /&gt;
ввода-вывода, а дополнительные кнопки и система меню позволяют&lt;br /&gt;
вводить команды не только в текстовом, но и в диалоговом режиме. Так&lt;br /&gt;
называемое «автодополнение» в командной строке на самом деле с&lt;br /&gt;
таковым имеет лишь то сходство, что вызывается клавишей «Tab». Ведет&lt;br /&gt;
же оно себя, к сожалению, всего лишь как умная история команд, т.е.&lt;br /&gt;
вызывает ту команду из уже введенных в этой сессии, которая начинается с заданных в командной строке символов, но не дополняет до имен&lt;br /&gt;
команд и их параметров. Таким образом, этот интерфейс наиболее удобен в том случае, когда вам нужно много вычислять и видеть результаты&lt;br /&gt;
на экране; и еще, возможно, в том случае, если вы не очень любите&lt;br /&gt;
вводить все команды с клавиатуры. Кроме того, wxMaxima предоставляет удобный интерфейс к документации по системе; хотя, так как документация поставляется в формате html, вместо этого можно использовать обычный браузер.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Img_81_93_5.png|200px|right|thumb|Рисунок 2.Maxima-сессия в редакторе TeXmacs.]]&lt;br /&gt;
Второй достаточно интересный интерфейс к Maxima – это дополнительный режим в редакторе TeXmacs. Хотя этот редактор имеет общее&lt;br /&gt;
историческое прошлое с широко известным Emacs, что явствует из&lt;br /&gt;
названия, но практического сходства между ними мало. TeXmacs разрабатывается для визуального редактирования текстов научной тематики,&lt;br /&gt;
при котором вы видите на экране редактируемый текст практически в&lt;br /&gt;
том же виде, в котором он будет распечатан. В частности, он имеет так&lt;br /&gt;
называемый математический режим ввода, очень удобный для работы с&lt;br /&gt;
самыми разнообразными формулами, и умеет импортировать/экспортировать текст в LaTeX и XML/HTML. Именно возможностями по работе с&lt;br /&gt;
формулами пользуется Maxima, вызванная из TeXmacs’а. Фактически,&lt;br /&gt;
формулы отображаются в привычной математической нотации, но при&lt;br /&gt;
этом их можно редактировать и копировать в другие документы наподобие обыкновенного текста. Maxima-сессия вызывается из меню:&lt;br /&gt;
«Вставить–&amp;gt;Сессия–&amp;gt;Maxima», при этом появляется дополнительное&lt;br /&gt;
меню с командами Максимы. После запуска сессии можно уже внутри&lt;br /&gt;
нее перейти в математический режим ввода (меню режимов ввода вызывается первой кнопкой на панели ввода) и при вводе также использовать&lt;br /&gt;
элементы математической нотации (рис. 2). Этот интерфейс будет&lt;br /&gt;
наиболее удобен тем, кто хочет использовать результаты вычислений в&lt;br /&gt;
своих текстах и любит редактировать их в визуальном режиме.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
С другой стороны, сама по себе, без каких-либо интерфейсных надстроек, Maxima нетребовательна к железу и может работать на таких&lt;br /&gt;
компьютерах, которые сейчас и за компьютеры уже никто не считает (это&lt;br /&gt;
может оказаться актуальным, к примеру, для вуза или научной лаборатории, у которых денег на обновление парка машин скорее всего нет, а&lt;br /&gt;
потребность в ПО для символьных вычислений возникнуть может).&lt;br /&gt;
&lt;br /&gt;
Имена функций и переменных в Максиме чувствительны к регистру,&lt;br /&gt;
то есть прописные и строчные буквы в них различаются. Это не будет в&lt;br /&gt;
новинку любому, кто уже имел дело с POSIX-совместимыми системами&lt;br /&gt;
или с такими языками программирования, как, скажем, C или Perl. Удобно&lt;br /&gt;
это и с точки зрения математика, для которого тоже привычно, что заглавными и строчными буквами могут обозначаться разные объекты (например, множества и их элементы, соответственно).&lt;br /&gt;
&lt;br /&gt;
Для того, чтобы начать работать с программой, вам понадобится&lt;br /&gt;
пакет Maxima; если в стандартных репозитариях вашего дистрибутива&lt;br /&gt;
его не окажется, то взять его можно на сайте проекта, адрес которого&lt;br /&gt;
приведен во врезке.&lt;br /&gt;
&lt;br /&gt;
Принципы работы с программой не зависят от того, какой интерфейс&lt;br /&gt;
к ней вы выберете, поэтому я постараюсь максимально абстрагироваться&lt;br /&gt;
от конкретного интерфейса, ограничиваясь лишь небольшими комментариями в тех случаях, когда они ведут себя по-разному.&lt;br /&gt;
&lt;br /&gt;
На данный момент последняя версия программы – 5.9.3, именно&lt;br /&gt;
о ней я и буду говорить; если в вашем дистрибутиве пока присутствует&lt;br /&gt;
более старая версия, вы в принципе можете использовать ее: и актуальная&lt;br /&gt;
еще несколько месяцев назад 5.9.2, и вышедшая в конце прошлого года&lt;br /&gt;
5.9.1 не имеют с нынешней принципиальных различий.&lt;br /&gt;
&lt;br /&gt;
===Приступаем к работе===&lt;br /&gt;
После запуска Maxima-сессии мы видим перед собой такие строки:&lt;br /&gt;
 Maxima restarted.&lt;br /&gt;
 (%i1)&lt;br /&gt;
&lt;br /&gt;
Первая – это сообщение о том, что ядро Максимы только что запустилось (вместо нее, в зависимости от версии и конкретной сборки, может&lt;br /&gt;
выводиться краткая информация о программе); вторая – приглашение&lt;br /&gt;
к вводу первой команды. Команда в Максиме – это любая комбинация&lt;br /&gt;
математических выражений и встроенных функций, завершенная, в&lt;br /&gt;
простейшем случае, точкой с запятой. После ввода команды и нажатия&lt;br /&gt;
«Enter» Maxima выведет результат и будет ожидать следующей команды:&lt;br /&gt;
[[Изображение:Img_81_93_1.png|center]]&lt;br /&gt;
&lt;br /&gt;
Для арифметических действий используются традиционные обозначения: –, +, *, /; ** или ^ для возведения в степень, sqrt() для квадратного корня.&lt;br /&gt;
&lt;br /&gt;
Далее я часто буду пользоваться для наглядности упомянутым во&lt;br /&gt;
врезке математическим режимом ввода редактора TeXmacs. К примеру,&lt;br /&gt;
приведенный выше код выглядел бы так:&lt;br /&gt;
[[Изображение:Img_81_93_2.png|center]]&lt;br /&gt;
&lt;br /&gt;
Если для каких-то обозначений будет неочевидно, как записать их в&lt;br /&gt;
строку, я буду пояснять это по ходу изложения.&lt;br /&gt;
Как видите, каждая ячейка имеет свою метку; эта метка – заключенное в скобки имя ячейки. Ячейки ввода именуются как %i с номером (i&lt;br /&gt;
от input – ввод), ячейки вывода – как %o с соответствующим номером&lt;br /&gt;
(o от output – вывод). Со знака % начинаются все встроенные служебные имена: чтобы, с одной стороны сделать их достаточно короткими и&lt;br /&gt;
удобными в использовании, а с другой – избежать возможных накладок с пользовательскими именами, которые тоже часто удобно делать&lt;br /&gt;
короткими. Благодаря такому единообразию вам не придется запоминать, как часто бывает в других системах, какие из таких коротких и&lt;br /&gt;
удобных имен зарезервированы программой, а какие вы можете использовать для своих нужд. К примеру, внутренними именами %e и %pi&lt;br /&gt;
обозначены общеизвестные математические постоянные; а через %c с&lt;br /&gt;
номером обозначаются константы, используемые при интегрировании,&lt;br /&gt;
для которых использование буквы «c» традиционно в математике.&lt;br /&gt;
&lt;br /&gt;
При вводе мы можем обращаться к любой из предыдущих ячеек&lt;br /&gt;
по ее имени, подставляя его в любые выражения. Кроме того последняя ячейка вывода обозначается через %, а последняя ячейка ввода – через _. Это позволяет обращаться к последнему результату, не&lt;br /&gt;
отвлекаясь на то, каков его номер.&lt;br /&gt;
[[Изображение:Img_81_93_3.png|center]]&lt;br /&gt;
&lt;br /&gt;
Здесь %+47/59 – то же самое, что %o1+47/59.&lt;br /&gt;
&lt;br /&gt;
Вывод результата вычисления не всегда нужен на экране; его можно заглушить, завершив команду символом $ вместо ;. Заглушенный&lt;br /&gt;
результат при этом все равно вычисляется; как видите, в этом примере&lt;br /&gt;
ячейки %o1 и %o2 доступны, хотя и не показаны (к ячейке %o2 обращение идет через символ %, смысл которого расшифрован выше):&lt;br /&gt;
[[Изображение:Img_81_94_2.png|center]]&lt;br /&gt;
&lt;br /&gt;
Каждую следующую команду не обязательно писать с новой&lt;br /&gt;
строки; если ввести несколько команд в одну строчку, каждой из них&lt;br /&gt;
все равно будет соответствовать свое имя ячейки. К примеру, здесь в&lt;br /&gt;
строке после метки %i1 введены ячейки от %i1 до %i4; в ячейке %i3&lt;br /&gt;
используются %i1 и %i2 (обозначенная как _ – предыдущий ввод):&lt;br /&gt;
[[Изображение:Img_81_94_3.png|center]]&lt;br /&gt;
&lt;br /&gt;
В wxMaxima и TeXmacs последнюю или единственную команду в&lt;br /&gt;
строке можно не снабжать завершающим символом – это сработает так&lt;br /&gt;
же, как если бы она была завершена ; , т.е. вывод заглушен не будет. В&lt;br /&gt;
дальнейших примерах я часто буду опускать ; . Если вы выберете другой&lt;br /&gt;
интерфейс, не забывайте ее добавлять.&lt;br /&gt;
&lt;br /&gt;
Помимо использования имен ячеек, мы, естественно, можем и сами&lt;br /&gt;
давать имена любым выражениям. По-другому можно сказать, что мы&lt;br /&gt;
присваиваем значения переменным, с той разницей, что в виде значения такой переменной может выступать любое математическое выражение. Делается это с помощью двоеточия – знак равенства оставлен&lt;br /&gt;
уравнениям, которые, учитывая общий математический контекст записи,&lt;br /&gt;
проще и привычнее так читаются. И к тому же, так как основной конек&lt;br /&gt;
Максимы – символьная запись и аналитические вычисления, уравнения&lt;br /&gt;
достаточно часто используются. Например:&lt;br /&gt;
[[Изображение:Img_81_94_4.png|center]]&lt;br /&gt;
&lt;br /&gt;
В каком-то смысле двоеточие даже нагляднее в таком контексте, чем&lt;br /&gt;
знак равенства: это можно понимать так, что мы задаем некое обозначение, а затем через двоеточие расшифровываем, что именно оно обозначает. После того, как выражение поименовано, мы в любой момент можем&lt;br /&gt;
вызвать его по имени:&lt;br /&gt;
[[Изображение:Img_81_94_5.png|center]]&lt;br /&gt;
&lt;br /&gt;
Любое имя можно очистить от присвоенного ему выражения функцией kill(), и освободить занимаемую этим выражением память. Для&lt;br /&gt;
этого нужно просто набрать kill(name), где name – имя уничтожаемого&lt;br /&gt;
выражения; причем это может быть как имя, назначенное вами, так и&lt;br /&gt;
любая ячейка ввода или вывода. Точно так же можно очистить разом всю&lt;br /&gt;
память и освободить все имена, введя kill(all). В этом случае очистятся&lt;br /&gt;
в том числе и все ячейки ввода-вывода, и их нумерация опять начнется&lt;br /&gt;
с единицы. В дальнейшем, если по контексту будет иметься в виду логическое продолжение предыдущих строк ввода-вывода, я буду продолжать&lt;br /&gt;
нумерацию (этим приемом я уже воспользовался выше). Когда же новый&lt;br /&gt;
«сеанс» будет никак не связан с предыдущим, буду начинать нумерацию&lt;br /&gt;
заново; это будет косвенным указанием сделать «kill(all)», если вы будете набирать примеры в Maxima, так как имена переменных и ячеек в таких&lt;br /&gt;
«сеансах» могут повторяться.&lt;br /&gt;
===Доступ к документации Максимы===&lt;br /&gt;
В примерах выше мы воспользовались двумя встроенными функциями. Как нетрудно догадаться из контекста, solve – это функция решения уравнения, а diff – функция дифференцирования. Практически&lt;br /&gt;
весь функционал Maxima реализован через такие встроенные функции. Функция в Maxima может иметь переменное число аргументов.&lt;br /&gt;
Например, функция solve, которую мы использовали с одним аргументом, чаще вызывается с двумя аргументами. Первый задает уравнение&lt;br /&gt;
или функцию, чьи корни надо найти; второй – переменную, относительно которой нужно решать уравнение:&lt;br /&gt;
[[Изображение:Img_81_95_1.png|center]]&lt;br /&gt;
&lt;br /&gt;
Если формула, задающая решаемое уравнение, содержит только&lt;br /&gt;
один символ, как в предыдущем примере, то второй аргумент можно&lt;br /&gt;
опустить, так как выбор, относительно чего нужно решать уравнение, все&lt;br /&gt;
равно однозначен.&lt;br /&gt;
&lt;br /&gt;
Вторая функция из наших новых знакомых – diff – также может принимать один аргумент; в этом случае она находит дифференциал заданного выражения:&lt;br /&gt;
[[Изображение:Img_81_95_2.png|center]]&lt;br /&gt;
&lt;br /&gt;
Через del(x) и del(y) здесь обозначены дифференциалы соответствующих символов.&lt;br /&gt;
&lt;br /&gt;
Для каждой встроенной функции есть описание в документации по&lt;br /&gt;
Maxima. Оно содержит сведения о том, какие аргументы и в каких вариантах принимает функция, а также описание ее действия в разных случаях&lt;br /&gt;
и конкретные примеры применения. Но, конечно, искать описание каждой&lt;br /&gt;
нужной функции в html-документации или info-страницах не всегда удобно, тем более, что нужна эта информация, как правило, прямо в процессе&lt;br /&gt;
работы. Поэтому в Maxima есть специальная функция – describe(), –&lt;br /&gt;
которая выдает информацию из документации по конкретным словам.&lt;br /&gt;
Более того, специально для удобства получения справочной информации&lt;br /&gt;
существует сокращенная версия вызова этой функции: ? name вместо&lt;br /&gt;
describe(name). Здесь ? – это имя оператора, и аргумент нужно отделять от него пробелом (выражение ?name используется для вызова функции Lisp с именем name). Функция describe и оператор ? выдают список тех разделов помощи и имен функций, которые содержат заданный&lt;br /&gt;
текст, после чего предлагают ввести номер того раздела или описания той&lt;br /&gt;
функции, которые вы хотите посмотреть:&lt;br /&gt;
[[Изображение:Img_81_95_3.png|center]]&lt;br /&gt;
&lt;br /&gt;
Когда вы выберете раздел, будет выдано его содержимое:&lt;br /&gt;
[[Изображение:Img_81_96_1.png|center]]&lt;br /&gt;
&lt;br /&gt;
Если для слова, которое вы ввели после ? или describe, найдено&lt;br /&gt;
единственное совпадение, его описание будет показано сразу.&lt;br /&gt;
&lt;br /&gt;
Кроме справки, по многим функциям Maxima есть примеры их&lt;br /&gt;
использования. Пример можно загрузить функцией example(). Вызов&lt;br /&gt;
этой функции без аргумента отобразит список всех имен доступных примеров; вызов вида example(name) загрузит в текущую сессию и выполнит указанный файл примера:&lt;br /&gt;
[[Изображение:Img_81_96_2.png|center]]&lt;br /&gt;
&lt;br /&gt;
===Основные принципы===&lt;br /&gt;
{{Врезка&lt;br /&gt;
|Заголовок=Адреса в интернете&lt;br /&gt;
|Содержание=&lt;br /&gt;
* Сайт проекта Maxima: http://maxima.sourceforge.net/&lt;br /&gt;
* Сайт wxMaxima: http://wxmaxima.sourceforge.net/&lt;br /&gt;
* Сайт редактора TeXmacs: http://www.texmacs.org/&lt;br /&gt;
* Web-интерфейс к Максиме: http://www.et.byu.edu/~koj/maxima.html&lt;br /&gt;
|Ширина=200px}}&lt;br /&gt;
То, что Максима написана на Lisp, человеку, знакомому с этим языком,&lt;br /&gt;
становится понятно уже в начале работы с программой. Действительно,&lt;br /&gt;
в Максиме четко прослеживается «лисповский» принцип работы с данными, который оказывается очень кстати в контексте символьной математики и аналитических вычислений. Дело в том, что в Lisp, по большому счету, нет разделения на объекты и данные: имена переменных&lt;br /&gt;
и выражения могут использоваться практически в одном и том же контексте. В Maxima же это свойство развито еще сильнее: фактически, мы&lt;br /&gt;
можем использовать любой символ вне зависимости от того, присвоено&lt;br /&gt;
ли ему какое-то выражение. По умолчанию символ, связанный с любым&lt;br /&gt;
выражением, будет представлять это выражение; символ, не связанный&lt;br /&gt;
ни с чем, будет представлять самого себя, трактуемого опять-таки как&lt;br /&gt;
выражение. Поясним на примере:&lt;br /&gt;
[[Изображение:Img_81_96_3.png|center]]&lt;br /&gt;
&lt;br /&gt;
Из этого следует, в частности, что в выражение автоматически подставляется значение входящего в него символа только в том случае, если&lt;br /&gt;
это значение было приписано символу до определения выражения:&lt;br /&gt;
[[Изображение:Img_81_96_4.png|center]]&lt;br /&gt;
&lt;br /&gt;
Если некоторый символ уже имеет какое-то значение, можем ли мы&lt;br /&gt;
использовать в выражении сам этот символ, а не его значение? Конечно.&lt;br /&gt;
Сделать это можно с помощью знака апострофа – введенный перед&lt;br /&gt;
любым символом или выражением, он предотвращает его вычисление:&lt;br /&gt;
[[Изображение:Img_81_96_5.png|center]]&lt;br /&gt;
&lt;br /&gt;
Результат выражения %i12 был бы аналогичен и в том случае, если&lt;br /&gt;
бы b и y не имели на тот момент никаких значений; таким образом, мы&lt;br /&gt;
можем смело блокировать вычисление символа, даже не запоминая (или&lt;br /&gt;
не зная), присвоены ли им вообще какие-то выражения.&lt;br /&gt;
&lt;br /&gt;
Точно так же можно поступить с любой встроенной функцией, если&lt;br /&gt;
мы хотим не выполнить ее, а использовать в своем математическом контексте. Например, уже упомянутая функция дифференцирования может&lt;br /&gt;
пригодиться нам для обозначения производной в дифференциальном&lt;br /&gt;
уравнении; в этом случае, конечно, вычислять ее не надо:&lt;br /&gt;
[[Изображение:Img_81_96_6.png|center]]&lt;br /&gt;
&lt;br /&gt;
Благодаря описанным особенностям работа в Максиме, с одной&lt;br /&gt;
стороны, становится во многом похожей на традиционную «ручную»&lt;br /&gt;
работу с математическими формулами, что практически сводит на нет&lt;br /&gt;
психологический барьер в начале работы с программой. С другой стороны, даже на этом начальном этапе вы фактически избавлены от&lt;br /&gt;
наиболее рутинной ручной работы,&lt;br /&gt;
вроде отслеживания текущих значений символов, и можете полностью сосредоточиться на самой&lt;br /&gt;
задаче.&lt;br /&gt;
&lt;br /&gt;
Конечно, блокировка вычислений – это не единственный способ влиять на то, как Максима&lt;br /&gt;
будет вычислять то или иное выражение; этим процессом можно управлять довольно гибко.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|center|&lt;br /&gt;
|Заголовок=Живая математика&lt;br /&gt;
|Содержание=&lt;br /&gt;
О существовании так называемых «живых CD-дистрибутивов» (LiveCD)&lt;br /&gt;
Linux, способных загружаться и работать прямо с компакт-диска, слышали в наше время почти все. Один из самых популярных среди этой братии – дистрибутив Knoppix, основанный на Debian, – в особом представлении тоже, я думаю, не нуждается. А вот среди специализированных&lt;br /&gt;
LiveCD-дистрибутивов, основанных уже на Knoppix’е (которых последнее&lt;br /&gt;
время тоже, признаться, развелось немало) мне попался один очень&lt;br /&gt;
интересный экземпляр, узнать о котором можно разве что случайно. А&lt;br /&gt;
дистрибутив этот действительно интересен, потому как предоставляет&lt;br /&gt;
возможность познакомиться «живьем», без установки, с многочисленными и разнообразными программами весьма полезного и в то же время&lt;br /&gt;
не слишком широко известного профиля – компьютерной математикой.&lt;br /&gt;
Называется он – соответственно своей профессии – Knoppix-math.&lt;br /&gt;
&lt;br /&gt;
Основан этот дистрибутив, если говорить точно, не на самом&lt;br /&gt;
Knoppix’е, а на Knoppix-ja, т.е. его японском варианте. Не бойтесь, японский язык учить не придется – английский вариант интерфейса также&lt;br /&gt;
присутствует (хотя не исключено, что именно происхождение виной&lt;br /&gt;
малой популярности дистрибутива в Европе).&lt;br /&gt;
&lt;br /&gt;
Самую свежую на данный момент англоязычную информацию о&lt;br /&gt;
дистрибутиве можно найти по этому адресу:&lt;br /&gt;
http://geom.math.metro-u.ac.jp/wiki/index.php?KNOPPIX/Math/English&lt;br /&gt;
&lt;br /&gt;
В частности, в разделе Download есть ссылки на пять зеркал,&lt;br /&gt;
содержащих образы компакт-дисков. Качать советую последнюю&lt;br /&gt;
японскую версию – английская уже порядком устарела, а англоязычный интерфейс, как я уже говорил, и в японской присутствует. Для&lt;br /&gt;
того, чтобы его выбрать, всего лишь надо ввести при загрузке knoppix&lt;br /&gt;
lang=en или, чтобы получить в списке доступных раскладок клавиатуры русскую, knoppix lang=ru (интерфейс при этом также будет английский). Последняя версия выпущена в феврале этого года и основана&lt;br /&gt;
на Knoppix 4.0.2. Прямые ссылки на образ диска и его контрольную&lt;br /&gt;
сумму на одном из зеркал:&lt;br /&gt;
* ftp://fun.sci.fukuoka-u.ac.jp/pub/knoppix/knoppix_v4.0.2-math-20060217-ja.iso&lt;br /&gt;
* ftp://fun.sci.fukuoka-u.ac.jp/pub/knoppix/knoppix_v4.0.2-math-20060217-ja.iso.md5&lt;br /&gt;
&lt;br /&gt;
Диск содержит более тридцати математических программ, среди&lt;br /&gt;
которых такие известные, как Maxima, GNUplot, Octave, Yorick, GNU R,&lt;br /&gt;
TeXmacs. Кроме того, присутствуют и языки программирования Python,&lt;br /&gt;
Ruby и Tcl/tk; и, конечно же, TeX.&lt;br /&gt;
&lt;br /&gt;
Помимо ПО математического профиля, есть на диске и программы общего назначения: OpenOffice.org, Kate и KWrite; xpdf, Kuickshow и&lt;br /&gt;
ImageMagic; Mozilla Firefox и Konqueror. Т.е. все для полноценного рабочего места. И все это может работать в обрамлении любого из традиционной уже для Knoppix’а тройки: KDE, IceWM и Fluxbox.&lt;br /&gt;
&lt;br /&gt;
Возможно, вы захотите воспользоваться этим LiveCD, чтобы познакомиться с программой символьных вычислений Maxima, цикл статей&lt;br /&gt;
о которой начинается в этом номере, и каким-либо графическим интерфейсом к ней – многие из них тоже доступны на диске.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|center|&lt;br /&gt;
|Заголовок=Что такое символьные вычисления&lt;br /&gt;
|Содержание=&lt;br /&gt;
Так как в этом цикле статей речь пойдет о математической программе для символьных вычислений,&lt;br /&gt;
для начала пару слов о том, что из себя представляют эти самые символьные или, как их еще называют, аналитические вычисления, в отличие от численных расчетов. Компьютеры, как известно, оперируют с числами (целыми и с плавающей запятой).&lt;br /&gt;
К примеру, решения уравнения можно получить как&lt;br /&gt;
-0.41421356 и 2.41421356, а 3x=1 – как 0.33333333.&lt;br /&gt;
А ведь хотелось бы увидеть не приближенную цифровую запись, а точную величину, т.е. в первом&lt;br /&gt;
случае и во втором. С этого простейшего примера и&lt;br /&gt;
начинается разница между численными и символьными вычислениями. Но кроме этого, есть еще&lt;br /&gt;
задачи, которые вообще невозможно решить численно. Например, параметрические уравнения, где в&lt;br /&gt;
виде решения нужно выразить неизвестное через&lt;br /&gt;
параметр; или нахождение производной от функции; да практически любую достаточно общую&lt;br /&gt;
задачу можно решить только в символьном виде.&lt;br /&gt;
Поэтому неудивительно, что и для такого класса&lt;br /&gt;
задач появились компьютерные программы, оперирующие уже не только числами, а почти любыми&lt;br /&gt;
математическими объектами, от векторов до тензоров, от функций до интегро-дифференциальных&lt;br /&gt;
уравнений и т.д.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|center|&lt;br /&gt;
|Заголовок=Немного истории&lt;br /&gt;
|Содержание=&lt;br /&gt;
История проекта, известного ныне под именем&lt;br /&gt;
Maxima, началась еще в конце 60-х годов в легендарном MIT (Massachusetts Institute of Technology –&lt;br /&gt;
Массачусетский Технологический Институт), когда&lt;br /&gt;
в рамках существовавшего в те годы большого проекта MAC началась работа над программой символьных вычислений, которая получила имя Macsyma (от&lt;br /&gt;
MAC SYmbolic MAnipulation). Архитектура системы&lt;br /&gt;
была разработана к июлю 1968 г., непосредственно&lt;br /&gt;
программирование началось в июле 1969. В качестве&lt;br /&gt;
языка для разработки системы был выбран Lisp,&lt;br /&gt;
и история показала, насколько это был правильный выбор: из существующих в то время языков&lt;br /&gt;
программирования он единственный продолжает&lt;br /&gt;
развиваться и сейчас – спустя почти полвека после&lt;br /&gt;
старта проекта. Принципы, положенные в основу&lt;br /&gt;
проекта, позднее были заимствованы наиболее&lt;br /&gt;
активно развивающимися ныне коммерческими&lt;br /&gt;
программами – Mathematica и Maple; таким образом,&lt;br /&gt;
Macsyma фактически стала родоначальником всего&lt;br /&gt;
направления программ символьной математики.&lt;br /&gt;
Естественно, Macsyma была закрытым коммерческим проектом; его финансировали государственные&lt;br /&gt;
и частные организации, среди которых были вошедшее в историю ARPA (Advanced Research Projects&lt;br /&gt;
Agency; помните ARPAnet – предок интернета?),&lt;br /&gt;
Энергетический и Оборонный Департаменты США&lt;br /&gt;
(Departments of Energy &amp;amp; Defence, DOE and DOD).&lt;br /&gt;
Проект активно развивался, а организации, контролирующие его, менялись не раз, как это всегда&lt;br /&gt;
бывает с долгоживущими закрытыми проектами. В&lt;br /&gt;
1982 году профессор Уильям Шелтер (William&lt;br /&gt;
Schelter) начал разрабатывать свою версию на основе этого же кода, под названием Maxima. В 1998&lt;br /&gt;
году Шелтеру удалось получить от DOE права на&lt;br /&gt;
публикацию кода по лицензии GPL. Первоначальный&lt;br /&gt;
проект Macsyma прекратил свое существование&lt;br /&gt;
в 1999 году. Уильям Шелтер продолжал заниматься&lt;br /&gt;
разработкой Maxima вплоть до своей смерти в 2001&lt;br /&gt;
году. Но, что характерно для открытого ПО, проект&lt;br /&gt;
не умер вместе со своим автором и куратором.&lt;br /&gt;
Сейчас проект продолжает активно развиваться, и&lt;br /&gt;
участие в нем является лучшей визитной карточкой&lt;br /&gt;
для математиков и программистов всего мира.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|center|&lt;br /&gt;
|Заголовок=Решение проблемы с запуском из-под TeXmacs&lt;br /&gt;
|Содержание=&lt;br /&gt;
Если у вас возникли проблемы с запуском Maxima-&lt;br /&gt;
сессии из TeXmacs, обратите внимание на то, кто у вас&lt;br /&gt;
в системе выступает под именем /bin/sh. Дело в том,&lt;br /&gt;
что инициализация всех разнообразных сессий реализована в TeXmacs’е через shell-скрипты, вызываемые именно с помощью /bin/sh. И в скрипте, отвечающем за сессию Maxima, используется возможность,&lt;br /&gt;
которая не стандартизирована как обязательная для&lt;br /&gt;
/bin/sh, но присутствует в его эмуляции bash.&lt;br /&gt;
Другими словами, если у вас /bin/sh является не&lt;br /&gt;
ссылкой на /bin/bash, а чем-то другим, то именно это&lt;br /&gt;
может послужить причиной невозможности открыть&lt;br /&gt;
Maxima-сессию (к примеру, в Debian и основанных на&lt;br /&gt;
нем дистрибутивах кроме bash ссылку /bin/sh на&lt;br /&gt;
себя может захотеть поставить еще и более легкий&lt;br /&gt;
dash; в этом случае восстановить статус-кво можно с&lt;br /&gt;
помощью dpkg-reconfigure dash). Если сделать /bin/sh ссылкой на /bin/bash не представляется возможным, можете попробовать поменять #!/bin/sh на #!/bin/bash в файле /usr/lib/texmacs/TeXmacs/bin/maxima_detect. Я написал об этой проблеме разработчикам TeXmacs, но еще не получил никакой их&lt;br /&gt;
реакции, так что не могу пока сказать, будет ли&lt;br /&gt;
исправлена эта недоработка в ближайших версиях.&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Dev-random</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Img_81_93_4.jpg</id>
		<title>Файл:Img 81 93 4.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Img_81_93_4.jpg"/>
				<updated>2008-09-26T13:41:02Z</updated>
		
		<summary type="html">&lt;p&gt;Dev-random: Полный вариант от t.t, взят с сайта maxima&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Полный вариант от t.t, взят с сайта maxima&lt;/div&gt;</summary>
		<author><name>Dev-random</name></author>	</entry>

	</feed>