<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://camokathomelab.servebeer.com/mediawiki/index.php?action=history&amp;feed=atom&amp;title=GNU_Octave</id>
	<title>GNU Octave - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://camokathomelab.servebeer.com/mediawiki/index.php?action=history&amp;feed=atom&amp;title=GNU_Octave"/>
	<link rel="alternate" type="text/html" href="https://camokathomelab.servebeer.com/mediawiki/index.php?title=GNU_Octave&amp;action=history"/>
	<updated>2026-07-16T16:57:29Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://camokathomelab.servebeer.com/mediawiki/index.php?title=GNU_Octave&amp;diff=24704&amp;oldid=prev</id>
		<title>imported&gt;Alex NB OT: унификация языковых шаблонов</title>
		<link rel="alternate" type="text/html" href="https://camokathomelab.servebeer.com/mediawiki/index.php?title=GNU_Octave&amp;diff=24704&amp;oldid=prev"/>
		<updated>2025-11-15T11:09:21Z</updated>

		<summary type="html">&lt;p&gt;унификация языковых шаблонов&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Значения|Octave}}&lt;br /&gt;
{{карточка программы&lt;br /&gt;
| name = GNU Octave&lt;br /&gt;
| logo = Gnu-octave-logo.svg&lt;br /&gt;
| screenshot = Octave GUI 3 8.jpg&lt;br /&gt;
| caption = GNU Octave 3.8.0, запущенная с GUI&lt;br /&gt;
| developer = John W. Eaton&lt;br /&gt;
| released = 1988&lt;br /&gt;
| programming_language = &amp;#039;&amp;#039;[[C++]]&amp;#039;&amp;#039;&lt;br /&gt;
| operating_system = &amp;#039;&amp;#039;[[Linux]]&amp;#039;&amp;#039;, &amp;#039;&amp;#039;[[UNIX]]&amp;#039;&amp;#039;, &amp;#039;&amp;#039;[[Cygwin]]&amp;#039;&amp;#039;, &amp;#039;&amp;#039;[[Windows]]&amp;#039;&amp;#039;, &amp;#039;&amp;#039;[[Android]]&amp;#039;&amp;#039;&amp;lt;ref&amp;gt;{{cite web|url=https://play.google.com/store/apps/details?id=com.octave&amp;amp;feature=search_result#?t=W251bGwsMSwxLDEsImNvbS5vY3RhdmUiXQ|title=Octave – Android Apps auf Google Play|access-date=2013-02-18|archive-date=2014-03-09|archive-url=https://web.archive.org/web/20140309090055/https://play.google.com/store/apps/details?id=com.octave&amp;amp;feature=search_result#?t=W251bGwsMSwxLDEsImNvbS5vY3RhdmUiXQ|url-status=live}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
| genre = [[математическое программное обеспечение]]&lt;br /&gt;
| license = &amp;#039;&amp;#039;[[GNU General Public License]]&amp;#039;&amp;#039;&lt;br /&gt;
| website = http://www.gnu.org/software/octave/&lt;br /&gt;
}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;GNU Octave&amp;#039;&amp;#039;&amp;#039; — [[Свободное программное обеспечение|свободная]] программная система для математических вычислений&amp;lt;ref&amp;gt;{{Cite web |url=http://www.gnu.org/software/octave/ |title=Octave&amp;lt;!-- Заголовок добавлен ботом --&amp;gt; |access-date=2009-08-24 |archive-date=2017-11-22 |archive-url=https://web.archive.org/web/20171122020500/http://www.gnu.org/software/octave/ |url-status=live }}&amp;lt;/ref&amp;gt;, использующая совместимый с &amp;#039;&amp;#039;[[MATLAB]]&amp;#039;&amp;#039; язык высокого уровня&amp;lt;ref&amp;gt;{{Cite web |url=http://www.gnu.org/software/octave/about.html |title=About Octave |access-date=2011-01-22 |archive-date=2021-01-25 |archive-url=https://web.archive.org/web/20210125212427/http://www.gnu.org/software/octave/about.html |url-status=live }}&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Предоставляет интерактивный командный интерфейс для решения линейных и нелинейных математических задач, а также проведения других численных экспериментов. Кроме того, Octave можно использовать для пакетной обработки. Язык Octave оперирует арифметикой вещественных и комплексных скаляров, векторов и матриц, имеет расширения для решения линейных алгебраических задач, нахождения корней систем нелинейных алгебраических уравнений, работы с полиномами, решения различных дифференциальных уравнений, интегрирования систем дифференциальных и дифференциально-алгебраических уравнений первого порядка, интегрирования функций на конечных и бесконечных интервалах. Этот список можно легко расширить, используя язык Octave (или используя динамически загружаемые модули, созданные на [[Си (язык программирования)|Си]], [[C++]], [[Фортран]]е и других).&lt;br /&gt;
&lt;br /&gt;
Система написана на [[C++]] с использованием [[Стандартная библиотека шаблонов|стандартной библиотеки шаблонов]]. Для запуска сценариев используется встроенный интерпретатор. Для создания и отображения графиков можно использовать на выбор [[gnuplot]], встроенный модуль на основе [[FLTK]], или {{iw|Grace (построитель графиков)|Grace|en|Grace (plotting tool)}}.&lt;br /&gt;
&lt;br /&gt;
Название дано в честь профессора [[Химическая технология|химического машиностроения]] [[Левеншпиль, Октав|Октава Левеншпиля]].&lt;br /&gt;
&lt;br /&gt;
== Язык Octave ==&lt;br /&gt;
Система оснащена собственным интерпретируемым языком с Matlab-подобным синтаксисом, при этом поддерживает большинство основных функций стандартной библиотеки Си, а также основные команды и системные вызовы Unix. С другой стороны, он не поддерживает передачу аргументов по ссылке (особенность дизайна).&lt;br /&gt;
&lt;br /&gt;
== Некоторые возможности ==&lt;br /&gt;
[[Интерфейс командной строки]] построен с использованием библиотеки [[GNU Readline]], что даёт доступ к таким обычным возможностям последней, как [[автодополнение]] по клавише {{клавиша|TAB}}, история команд и инкрементальный поиск по ней ({{клавиша|Ctrl|R}}, {{клавиша|Ctrl|S}}), возможность переопределения клавиш, и так далее. Графический интерфейс до версии 3.8.0 был представлен дополнениями (графики он мог выводить и без них).&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Octave Forge&amp;#039;&amp;#039;&amp;lt;ref&amp;gt;{{Cite web |url=https://octave.sourceforge.io/ |title=Octave Forge |access-date=2018-02-27 |archive-date=2018-02-28 |archive-url=https://web.archive.org/web/20180228041338/https://octave.sourceforge.io/ |url-status=live }}&amp;lt;/ref&amp;gt; — менеджер пакетов-расширений для системы Octave.&lt;br /&gt;
&lt;br /&gt;
Выражения Octave можно вычислять из программ на C++. Для этого в C++ подключается специальная библиотека octave/oct.h. К примеру, фрагмент кода для вычисления &amp;lt;code&amp;gt;rand([9000,1])&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;octave/oct.h&amp;gt;&lt;br /&gt;
…&lt;br /&gt;
ColumnVector NumRands(2);&lt;br /&gt;
NumRands(0) = 9000;&lt;br /&gt;
NumRands(1) = 1;&lt;br /&gt;
octave_value_list f_arg, f_ret;&lt;br /&gt;
f_arg(0) = octave_value(NumRands);&lt;br /&gt;
f_ret = feval(&amp;quot;rand&amp;quot;,f_arg,1);&lt;br /&gt;
Matrix unis(f_ret(0).matrix_value());&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Параллельные вычисления ==&lt;br /&gt;
В системе имеются средства для организации распределённых вычислений с использованием библиотек bcMPI, MPI Toolbox for Octave (MPITB), octave-parallel_mpi и parallel (ранее octave-parallel), предназначенные для кластерных систем, и модуль parcellfun библиотеки general для обеспечения параллельных вычислений в масштабе «одной машины» (на многоядерных и массово-параллельных системах). Первые три библиотеки обеспечивают интерфейс к наличной инсталляции библиотеки [[Message Passing Interface|MPI]] и, насколько возможно, транслируют в Octave (bcMPI — и в MATLAB) синтаксис подмножества вызовов MPI. Соответственно в этих случаях вычисления распределены лишь настолько, насколько это подготовлено программистом, и обеспечиваются в пределах возможностей системной инсталляции MPI. Библиотека parallel, напротив, не требует наличия среды типа [[Message Passing Interface|MPI]] или [[PVM]], а обеспечивает распределённость с помощью внутренних средств пакета Octave.&lt;br /&gt;
&lt;br /&gt;
== Совместимость с MATLAB ==&lt;br /&gt;
Octave был написан с учётом совместимости с MATLAB и реализует многие его возможности, в том числе:&lt;br /&gt;
* матрицы в качестве основных типов данных;&lt;br /&gt;
* встроенная поддержка комплексных чисел;&lt;br /&gt;
* мощные встроенные математические функции и большие библиотеки функций;&lt;br /&gt;
* расширяемость, благодаря возможности создания пользовательских функций.&lt;br /&gt;
&lt;br /&gt;
Но есть и некоторые отличия:&lt;br /&gt;
* комментарии могут начинаться как с символа #, так и с символа &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt;;&lt;br /&gt;
* поддерживаются C++-подобные операторы &amp;lt;code&amp;gt;++&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;--&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;+=&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;*=&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;/=&amp;lt;/code&amp;gt;;&lt;br /&gt;
* элементы могут быть адресованы без создания новой переменной, например &amp;lt;code&amp;gt;[1:10](3)&amp;lt;/code&amp;gt;;&lt;br /&gt;
* данные строкового типа могут быть заданы как символом «&amp;quot;», так и символом «&amp;#039;».&lt;br /&gt;
&lt;br /&gt;
В конце 1990-х годов (2-я серия выпусков) производительность Octave существенно уступала по производительности MATLAB&amp;lt;ref name=&amp;quot;eddelbuettel&amp;quot;&amp;gt;Eddelbuettel…&amp;lt;/ref&amp;gt;; однако к концу 2000-х годов (3-я серия выпусков) производительности этих пакетов «почти сравнялись», а остающуюся разницу относят наличию в составе MATLAB [[JIT]]-компилятора, которого нет в Octave&amp;lt;ref name=chaves+&amp;gt;Chaves et al. …&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Литература ==&lt;br /&gt;
* GNU Octave Manual Version 3 / J.W. Eaton, D. Bateman, S. Hauberg. Network Theory Limited, 2008. 568 p.&lt;br /&gt;
* Е. Р. Алексеев, О. В. Чеснокова «Введение в Octave для инженеров и математиков» {{М.}}: ALT Linux, 2012. — 368 с.: ил. [http://www.altlinux.org/images/0/07/OctaveBook.pdf Учебник Octave на русском]&lt;br /&gt;
* Eddelbüttel, D. Bank of Montreal, Toronto, Canada. Econometrics with Octave / D. Eddelbüttel [Electronic resource]. — Mode of access : http://dirk.eddelbuettel.com/papers/octave.pdf. - Date of access : 15.03.2010.&lt;br /&gt;
* Octave and Python: High-Level Scripting Languages Productivity and Performance Evaluation / J.C. Chaves [et. al.] [Electronic resource]. — Mode of access : https://web.archive.org/web/20120520234335/http://www.osc.edu/research/cse/projects/octave_python.pdf. - Date of access : 15.03.2010.&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
{{викиучебник|GNU Octave}}&lt;br /&gt;
{{Навигация|Тема=Диаграммы GNU Octave}}&lt;br /&gt;
* [http://www.gnu.org/software/octave/ Официальная страница]{{ref|en}}&lt;br /&gt;
* [http://mydebianblog.blogspot.com/2010/10/matlab-gnuoctave.html Тестирование быстродействия MATLAB и GNU/Octave]{{ref|ru}}, 2010 г.&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
{{примечания}}&lt;br /&gt;
&lt;br /&gt;
{{GNU}}&lt;br /&gt;
{{FOSS}}&lt;br /&gt;
{{Математическое ПО}}&lt;br /&gt;
&lt;br /&gt;
[[Категория:Программное обеспечение проекта GNU|Octave]]&lt;br /&gt;
[[Категория:Свободное математическое программное обеспечение]]&lt;br /&gt;
[[Категория:Предметно-ориентированные языки программирования]]&lt;br /&gt;
[[Категория:Программное обеспечение для Windows]]&lt;br /&gt;
[[Категория:Программное обеспечение для Linux]]&lt;br /&gt;
[[Категория:Свободное программное обеспечение, написанное на C++]]&lt;br /&gt;
[[Категория:Приложения, использующие Qt]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Alex NB OT</name></author>
	</entry>
</feed>