Введение в Octave

Общие сведения, установка

Разбить на страницы
Показывать лекцию целиком

Введение

Курс посвящен GNU Octave — одной из самых интересных прикладных программ для решения инженерных и математических задач.

GNU Octave — это свободный интерпретирующий язык для проведения математических вычислений. По возможностям и качеству реализации интерпретатора язык Octave можно сравнивать с проприетарной программой MATLAB, причём синтаксис обоих языков очень схож.

Существуют версии языка для различных дистрибутивов GNU Linux (ALT Linux, Debian, Ubuntu, Mandriva и др.) и для ОС Windows. На наш взгляд, GNU Octave больше ориентирован на работу в Linux. Работа в ОС Windows возможна, но пользователю Windows надо быть готовым работать с простым текстовым редактором и командной строкой.

Когда авторы начинали знакомиться с GNU Octave, основной проблемой было отсутствие хорошего русскоязычного введения в этот язык. Наша книга является попыткой восполнить этот пробел. Поэтому большое внимание было уделено самому языку (глава 3), операциям с матрицами (глава 5) и графическим возможностям пакета (глава 4).

Наш многолетний опыт преподавания информационных дисциплин в Донецком национальном техническом университете говорит нам о том, что студенту и инженеру наряду с описанием функций, предназначенных для решения той или иной задачи, не лишним будет напомнить и математическую постановку решаемой задачи, а зачастую и численные методы решения задачи. Именно поэтому в ряде глав приведены не только описания функций, но и описаны численные методы решения задач.

Что касается графических оболочек, таких как qtOctave, Xoctave и Kalculus, нами принято решение кратко описать наиболее стабильную из них, qtOctave, а основное внимание в книге уделить собственно языку. Мы считаем, что GNU Octave — это в первую очередь мощный интерпретирующий язык. Зная его, пользователь сможет работать с любой графической оболочкой.

Авторы выражают благодарность компании ALT Linux за многолетнее сотрудничество и возможность издать очередную книгу.

Авторы заинтересованы в общении с читателями. Мы ждём ваши замечания и отзывы по адресам EAlekseev@gmail.com и chesn_o@list.ru.

Донецк, апрель 2012

1.1 Принципы работы с интерпретатором

Octave — высокоуровневый интерпретируемый язык программирования, предназначенный для решения задач вычислительной математики. В состав пакета входит интерактивный командный интерфейс (интерпретатор Octave). Интерпретатор Octave запускается из терминала ОС Linux или из его порта в Windows. После запуска Octave пользователь видит окно интерпретатора (рис. 1.1).

В окне интерпретатора пользователь может вводить как отдельные команды языка Octave, так и группы команд, объединяемые в программы. Если строка заканчивается символом ";", результаты на экран не выводятся. Если же в конце строки символ ";" отсутствует,

(рис 1.1) Окно интерпретатора Octave (рис 1.2) Использование символов ";" и "%" в Octave

результаты работы выводятся на экран (рис. 1.2). Текст в строке после символа $$\%$$(процент) является комментарием и интерпретатором не обрабатывается (рис. 1.2). (Строки комментариев авторы книги будут использовать для пояснения функций и текстов программ.) Рассмотрим несколько несложных примеров.

Пример 1.1. Решить систему линейных алгебраических уравнений (СЛАУ)

$$ \left\{ \begin{array}{l} 3*x_{1}+5*x_{2}-7*x_{3}=11\\ 3*x_{1}-4*x_{2}+33*x_{3}=25\\ 22*x_{1}-11*x_{2}+17*x_{3}=22\\ \end{array} \right. $$

Возможны два варианта решения любой задачи в Octave:

  • Терминальный режим. В этом режиме в окно интерпретатора последовательно вводятся отдельные команды.
  • Программный режим. В этом режиме создаётся текстовый файл с расширением .m, в котором хранятся последовательно выполняемые команды Octave. Затем этот текстовый файл (программа на языке Octave) запускается на выполнение в среде Octave.
  • Для решения СЛАУ в окне интерпретатора Octave последовательно введём следующие команды:

    % Определение матрицы коэффициентов системы линейных уравнений.
    A=[3 5 -7; 3 -4 33; 22 -11 17];
    b=[11; 25; 22]; % Вектор правых частей СЛАУ.
    x=A^(-1)*b % Решение системы методом обратной матрицы.
    x=
    	1.56361
    	2.55742
    	0.92542
    octave -3.2.3:27 > A*x % Проверка.
    ans =
    	11.000
    	25.000
    	22.000
    
    (рис 1.3) Программа для решения примера 1.1

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

    Теперь рассмотрим, как решить эту же задачу в программном режиме. Вызовем любой текстовый редактор. (Именно текстовый редактор! Не путайте с текстовыми процессорами типа Microsoft Word или OpenOffice.org/LibreOffice Writer.) Например gedit, в окне которого последовательно введём следующие команды:

    A=[3 5 -7; 3 -4 33; 22 -11 17]
    b =[11; 25; 22]
    x=A^(-1)*b
    A*x
    

    Сохраним введённые команды в виде файла с расширением .m, например, /home/evgeniy/prim1_1.m (рис. 1.3). Теперь эту программу необходимо запустить на выполнение из интерпретатора. Для этого в окне интерпретатора введём команды:

    cd ’/home/evgeniy’% Переход в каталог, где хранится программа.
    prim1_1 % Запуск программы.
    
    (рис 1.4) Окно терминала после запуска программы prim1_1

    Окно интерпретатора примет вид, представленный на рис. 1.4. Просмотрев результаты работы программы, нажмите $$q$$ для возвращения в режим ввода команд терминала.

    Пример 1.2. Решить квадратное уравнение $$ax^2+bx+c=0$$.

    Напомним читателю, что корни квадратного уравнения определяют по формулам $$x_{1,2}=\frac{-b\pm\sqrt{D}}{2a}$$, где дискриминант D вычисляется по формуле $$D=b^2-4ac$$.

    В Octave, как и в большинстве математических пакетов, все математические функции определены сразу как для действительных, так и для комплексных чисел, поэтому нет необходимости в тексте программы проверять знак D. Текст программы решения задачи из примера 1.2 приведён в листинге 1.2.

    a=input(’a=’); % Ввод значения переменной a.
    b=input(’b=’); % Ввод значения переменной b.
    c=input(’c=’); % Ввод значения переменной c.
    d=b^2-4*a*c; % Вычисление значения дискриминанта.
    x1=(-b+sqrt(d))/2/a % Вычисление значения x1.
    x2=(-b-sqrt(d))/2/a % Вычисление значения x2.
    

    Для запуска программы на выполнения в окне интерпретатора введём текст:

    cd ’/home/evgeniy’
    prim1_2
    
    (рис 1.5) Графики функций y = sin(x), z = cos(x)

    Здесь /home/evgeniy — имя папки, где хранится программа, prim1_2.m — имя файла в папке /home/evgeniy, где хранится листинг 1.2.

    Далее пользователь должен ввести значение переменных $$a, b$$ и $$c$$, после чего появятся результаты работы программы:

    	
    octave -3.2.3:5 > prim1_2
    a=2
    b=1
    c=1
    x1 = -0.25000 + 0.66144i
    x2 = -0.25000 - 0.66144i
    

    Пример 1.3. Построить графики функций $$y = sin(x)$$ и $$z = cos(x)$$ на интервале $$[-2\pi;2\pi]$$.

    Для вычисления значения $$\pi$$ в Octave есть встроенная функция без параметров $$pi()$$. Для построения графика функций $$y = sin(x)$$ и $$z=\cos(x)$$ в окне интерпретатора Octave надо ввести следующие команды:

    x=-2*pi():0.02:2*pi();
    y=sin(x);
    z=cos(x);
    plot(x,y,x,z)
    

    Результатом работы команд будет графическое окно с графиками двух функций $$y = \sin(x)$$ и $$z=\cos(x)$$ (см. рис. 1.5).

    Как видно из простейших примеров, у Octave достаточно широкие возможности, а по синтаксису он близок к Matlab.

    (рис 1.6) Окно Octave Workshop (рис 1.7) кно QtOctave

    Однако для практического использования Octave интерпретатор не совсем удобен, поэтому были разработаны профессиональные графические оболочки для работы с Octave:

  • Octave workshop (рис. 1.6) — графическая оболочка для работы в ОС Windows.
  • QtOctave (рис. 1.7) — графическая оболочка для работы в OC Linux (портирована в ОС Windows в виде portable версии).
  • Рассмотрим процесс установки Octave и графических оболочек на персональный компьютер.

    (рис 1.8) Установка Octave. Выбор папки для установки.

    1.2 Установка Octave

    1.2.1 Установка Octave в Windows

    Установка Octave в ОС Windows проходит стандартным образом. Необходимо с официального сайта http://www.gnu.org/software/octave/ скачать версию программы для Windows и установить её.

    На первом этапе нужно выбрать папку для установки программы (рис. 1.8). На следующем — определить, правильно ли выбрана платформа (параметр — ATLAS Libraries), под которую будет оптимизирована программа Octave (рис. 1.9), и на этом же этапе — выбрать пакеты расширений (параметр Octave Forge), которые будут установлены вместе с программой (рис. 1.10).

    В результате будет установлен текстовый редактор Notepad++, интерпретатор Octave, пакеты расширений и англоязычная документация по Octave. Принципы работы с интерпретатором описаны ранее.

    Существует и графическая оболочка (среда) для работы с Octave — Octave Workshop (рис. 1.6). Программу можно скачать с официального сайта http://sourceforge.net/projects/octaveworkshop/

    (рис 1.9) Установка Octave. Выбор архитектуры процессора. (рис 1.10) Установка Octave. Выбор пакетов расширений. (рис 1.11) Окно QtOctave под управлением ОС Windows.

    Её установка проходит стандартным для Windows способом. В состав программы Octave Workshop входит графическая оболочка, сам интерпретатор Octave и некоторые пакеты расширений.

    Наиболее мощной графической оболочкой для работы с Octave является программа QtOctave, которая разработана для ОС Linux. Она портирована в ОС Windows в виде portableверсии, которую можно скачать по адресу http://portableapps.com/node/14720(https://forja.rediris.es/frs/download.php/433/qtoctave0.6. 8_octave2.9.15_Portable_win32.zip)

    Программу нужно разархивировать и запустить файл qtoctave.exe. Окно QtOctave в ОС Windows представлено на рис. 1.11.

    1.2.2 Установка Octave в Linux

    Математический пакет Octave разрабатывался для ОС Linux и поэтому именно в ОС Linux, пользователь получит возможность полноценно работать с Octave и использовать все возможности пакета.

    Установка в современных дистрибутивах Linux осуществляется стандартным образом, например, через менеджер пакетов Synaptic (рис. 1.12).

    (рис 1.12) Окно менеджера пакетов Synaptic

    В менеджере пакетов Synaptic нужно щёлкнуть по кнопке Найти, и в строке поиска ввести: octave. В результате поиска пользователю будет предложен список, в котором нужно выбрать:

  • qtoctave — графическая оболочка для работы с Octave;
  • octave3.2 — интерпретатор Octave;
  • octave3.0-doc — документация по Octave на английском языке в формате PDF;
  • octave3.0-htmldoc — документация по Octave на английском языке в формате HTML;
  • необходимые пользователю пакеты расширений, например, octave-linear-algebra, octave-optim и многие другие Номера версий 0.6.8, 3.0, 3.2 в именах файлов или именах пакетов являлись текущими на момент написания книги. Когда книга выйдет, номера могут быть другими. .
  • Установка начнётся после щелчка по кнопке Применить. Время установки зависит от количества выбранных пакетов и скорости сетевого соединения. После установки в группе программ Программирование и Наука появятся ярлыки программ GNU Octave (интерпретатор Octave) и QtOctave (графическая оболочка Octave).

    1.3 Графическая оболочка QtOctave

    После запуска QtOctave на экране появляется основное окно приложения (рис. 1.13). Это окно содержит меню, панель инструментов и рабочую область Octave Terminal. Окно может иметь другой внешний вид, в зависимости от предпочтений пользователя.

    (рис 1.13) Окно QtOctave (рис 1.14) Выполнение элементарной команды

    Признаком того, что система готова к работе, является наличие знака приглашения >>>. Ввод команд осуществляется с клавиатуры в командной строке Command line. Нажатие клавиши Enter заставляет систему выполнить команду и вывести результат, что проиллюстрировано на рис. 1.14

    Понятно, что все выполняемые команды не могут одновременно находиться в поле зрения пользователя. Поэтому просмотреть информацию, которая покинула видимую часть окна, можно с помощью полос прокрутки и клавиш Page Up и Page Down.

    Клавиши $$\uparrow$$ и $$\downarrow$$ позволяют вернуть в командную строку ранее введённые команды или другую входную информацию, так как вся эта информация сохраняется в специальной области памяти. Так, если в пустой активной командной строке нажать клавишу $$\uparrow$$, в ней появится последняя вводимая команда. Повторное нажатие вызовет предпоследнюю команду, и так далее. Клавиша $$\downarrow$$ выводит команды в обратном порядке.

    (рис 1.15) Примеры вывода результатов вычислении

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

    В командной строке действуют элементарные приёмы редактирования:

  • $$\to$$— перемещение курсора вправо на один символ;
  • $$\gets$$— перемещение курсора влево на один символ;
  • Home — перемещение курсора в начало строки;
  • Del — удаление символа после курсора;
  • Backspace — удаление символа перед курсором.
  • Кроме того, существуют особенности ввода команд. Если команда заканчивается точкой с запятой (;), то результат её действия не отображается в рабочей области. В противном случае, при отсутствии знака ";", результат действия команды сразу же выводится в рабочую область (рис. 1.15).

    Работа в среде QtOctave может осуществляться в так называемом программном режиме. В этом случае в командной строке указывается имя программы, составленной из управляющих команд и функций Octave и имеющей расширение .m. Это достаточно удобный режим, так как он позволяет сохранить разработанный вычислительный алгоритм в виде файла и повторять его при других исходных данных и в других сеансах работы.

    (рис 1.16) Выбор файла для выполнения в Octave

    Выполнить команды Octave, хранящиеся в файле с расширением .m, позволяет команда главного меню File $$\to$$ Run an Octave Script. Эта команда продублирована кнопкой в панели инструментов и открывает окно диалога, представленное на рис. 1.16.

    Смена текущей директории осуществляется командой File $$\to$$ Change Directory. Команда также открывает диалоговое окно, предназначенное для выбора нового каталога.

    Выход из программы выполняет команда File $$\to$$ Quit.

    Очистить рабочую область от введённых ранее команд можно, обратившись к пункту меню View $$\to$$ Clear terminal. Команда продублирована кнопкой в виде ластика на панели инструментов.

    Команда View $$\to$$ Dock Tools $$\to$$ Variable List открывает окно, показанное на рис. 1.17. Здесь пользователю доступны значения всех переменных, вычисленные в течение текущей сессии. Они сохраняются в специально зарезервированной области памяти и при желании, определения всех переменных и функций, входящих в текущую сессию, можно сохранить на диске в виде файла.

    Окно, представленное на рис. 1.18, содержит список выполненных команд и открывается командой View $$\to$$ Dock Tools $$\to$$ Command List.

    Выполнить поиск, просмотр, открытие файлов и каталогов, осуществить смену текущей директории, установить путь к файлу и так далее можно в окне, показанном на рис. 1.19. Это окно появится, если выполнить команду View $$\to$$ Dock Tools $$\to$$ Navigator.

    Текстовый редактор в QtOctave вызывает команда View $$\to$$ Dock Tools $$\to$$ Editor.

    Ввод текста в окно редактора осуществляется по правилам, принятым для команд Octave. Рис. 1.20 содержит пример ввода команд для решения биквадратного уравнения $$2x^4-9x^2+4=0$$. Нетрудно заметить, что точка с запятой ";" ставится после тех команд, которые не требуют вывода значений.

    (рис 1.17) Список переменных, определённых в процессе работы (рис 1.18) Список выполненных команд

    Для сохранения введённой информации необходимо выполнить команду File $$\to$$ Save из главного меню редактора. Если информация сохраняется впервые, появится окно Save file As....

    Выполнить команды, набранные в текстовом редакторе, может команда меню редактора Run $$\to$$ Run. Кроме того, как было сказано выше, можно набрать имя созданного в текстовом редакторе файла в командной строке и нажать ENTER.

    Все эти действия приведут к появлению в рабочей области результатов вычислений, что видно на рис. 1.20.

    (рис 1.19) Смена каталога (рис 1.20) Пример работы в текстовом редакторе

    Отметим, что текстовый редактор имеет возможность работы с множеством окон и обладает принятыми для текстовых редакторов приёмами редактирования, подробно останавливаться на которых мы не будем.

    Для выхода из режима редактирования можно просто закрыть окно или использовать команду File $$\to$$ Close. Ранее созданный файл открывает команда главного меню редактора File $$\to$$ Open.

    Окна, представленные на рис. 1.17,рис. 1.18,рис. 1.19,рис. 1.20, обладают общим свойством. Команды View $$\to$$ Show inside of main window и View $$\to$$ Show outside of main window позволяют выводить окна внутри основного окна QtOctave (рис. 1.7) и за его пределами соответственно.

    Управлять положением окон в среде QtOctave можно командой View $$\to$$ Windows Layout. А команда View $$\to$$ Show позволяет отображать или удалять кнопки на панели инструментов.

    Далее представлено краткое описание других пунктов главного меню QtOctave:

  • Analysis — решение некоторых задач матанализа (интегрирование и решение обыкновенных дифференциальных уравнений);
  • Data — работа с матрицами (ввод, форматированный ввод, ввод из файла, запись в файл);
  • Equations — решение линейных и нелинейных уравнений;
  • Matrix — действия над матрицами (сложение, вычитание, умножение, транспонирование, инвертирование, вычисление определителя);
  • Plot — работа с графикой (построение двумерных и трёхмерных графиков, форматирование графической области, запись графического изображения в файл);
  • Statistics — вычисление некоторых статистических функций;
  • Config — настройка конфигурации системы, установка пакетов расширений;
  • Help — справочная информация.
  • Страницы:

    Введение

    Курс посвящен GNU Octave — одной из самых интересных прикладных программ для решения инженерных и математических задач.

    GNU Octave — это свободный интерпретирующий язык для проведения математических вычислений. По возможностям и качеству реализации интерпретатора язык Octave можно сравнивать с проприетарной программой MATLAB, причём синтаксис обоих языков очень схож.

    Существуют версии языка для различных дистрибутивов GNU Linux (ALT Linux, Debian, Ubuntu, Mandriva и др.) и для ОС Windows. На наш взгляд, GNU Octave больше ориентирован на работу в Linux. Работа в ОС Windows возможна, но пользователю Windows надо быть готовым работать с простым текстовым редактором и командной строкой.

    Когда авторы начинали знакомиться с GNU Octave, основной проблемой было отсутствие хорошего русскоязычного введения в этот язык. Наша книга является попыткой восполнить этот пробел. Поэтому большое внимание было уделено самому языку (глава 3), операциям с матрицами (глава 5) и графическим возможностям пакета (глава 4).

    Наш многолетний опыт преподавания информационных дисциплин в Донецком национальном техническом университете говорит нам о том, что студенту и инженеру наряду с описанием функций, предназначенных для решения той или иной задачи, не лишним будет напомнить и математическую постановку решаемой задачи, а зачастую и численные методы решения задачи. Именно поэтому в ряде глав приведены не только описания функций, но и описаны численные методы решения задач.

    Что касается графических оболочек, таких как qtOctave, Xoctave и Kalculus, нами принято решение кратко описать наиболее стабильную из них, qtOctave, а основное внимание в книге уделить собственно языку. Мы считаем, что GNU Octave — это в первую очередь мощный интерпретирующий язык. Зная его, пользователь сможет работать с любой графической оболочкой.

    Авторы выражают благодарность компании ALT Linux за многолетнее сотрудничество и возможность издать очередную книгу.

    Авторы заинтересованы в общении с читателями. Мы ждём ваши замечания и отзывы по адресам EAlekseev@gmail.com и chesn_o@list.ru.

    Донецк, апрель 2012

    1.1 Принципы работы с интерпретатором

    Octave — высокоуровневый интерпретируемый язык программирования, предназначенный для решения задач вычислительной математики. В состав пакета входит интерактивный командный интерфейс (интерпретатор Octave). Интерпретатор Octave запускается из терминала ОС Linux или из его порта в Windows. После запуска Octave пользователь видит окно интерпретатора (рис. 1.1).

    В окне интерпретатора пользователь может вводить как отдельные команды языка Octave, так и группы команд, объединяемые в программы. Если строка заканчивается символом ";", результаты на экран не выводятся. Если же в конце строки символ ";" отсутствует,

    (рис 1.1) Окно интерпретатора Octave (рис 1.2) Использование символов ";" и "%" в Octave

    результаты работы выводятся на экран (рис. 1.2). Текст в строке после символа $$\%$$(процент) является комментарием и интерпретатором не обрабатывается (рис. 1.2). (Строки комментариев авторы книги будут использовать для пояснения функций и текстов программ.) Рассмотрим несколько несложных примеров.

    Пример 1.1. Решить систему линейных алгебраических уравнений (СЛАУ)

    $$ \left\{ \begin{array}{l} 3*x_{1}+5*x_{2}-7*x_{3}=11\\ 3*x_{1}-4*x_{2}+33*x_{3}=25\\ 22*x_{1}-11*x_{2}+17*x_{3}=22\\ \end{array} \right. $$

    Возможны два варианта решения любой задачи в Octave:

  • Терминальный режим. В этом режиме в окно интерпретатора последовательно вводятся отдельные команды.
  • Программный режим. В этом режиме создаётся текстовый файл с расширением .m, в котором хранятся последовательно выполняемые команды Octave. Затем этот текстовый файл (программа на языке Octave) запускается на выполнение в среде Octave.
  • Для решения СЛАУ в окне интерпретатора Octave последовательно введём следующие команды:

    % Определение матрицы коэффициентов системы линейных уравнений.
    A=[3 5 -7; 3 -4 33; 22 -11 17];
    b=[11; 25; 22]; % Вектор правых частей СЛАУ.
    x=A^(-1)*b % Решение системы методом обратной матрицы.
    x=
    	1.56361
    	2.55742
    	0.92542
    octave -3.2.3:27 > A*x % Проверка.
    ans =
    	11.000
    	25.000
    	22.000
    
    (рис 1.3) Программа для решения примера 1.1

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

    Теперь рассмотрим, как решить эту же задачу в программном режиме. Вызовем любой текстовый редактор. (Именно текстовый редактор! Не путайте с текстовыми процессорами типа Microsoft Word или OpenOffice.org/LibreOffice Writer.) Например gedit, в окне которого последовательно введём следующие команды:

    A=[3 5 -7; 3 -4 33; 22 -11 17]
    b =[11; 25; 22]
    x=A^(-1)*b
    A*x
    

    Сохраним введённые команды в виде файла с расширением .m, например, /home/evgeniy/prim1_1.m (рис. 1.3). Теперь эту программу необходимо запустить на выполнение из интерпретатора. Для этого в окне интерпретатора введём команды:

    cd ’/home/evgeniy’% Переход в каталог, где хранится программа.
    prim1_1 % Запуск программы.
    
    (рис 1.4) Окно терминала после запуска программы prim1_1

    Окно интерпретатора примет вид, представленный на рис. 1.4. Просмотрев результаты работы программы, нажмите $$q$$ для возвращения в режим ввода команд терминала.

    Пример 1.2. Решить квадратное уравнение $$ax^2+bx+c=0$$.

    Напомним читателю, что корни квадратного уравнения определяют по формулам $$x_{1,2}=\frac{-b\pm\sqrt{D}}{2a}$$, где дискриминант D вычисляется по формуле $$D=b^2-4ac$$.

    В Octave, как и в большинстве математических пакетов, все математические функции определены сразу как для действительных, так и для комплексных чисел, поэтому нет необходимости в тексте программы проверять знак D. Текст программы решения задачи из примера 1.2 приведён в листинге 1.2.

    a=input(’a=’); % Ввод значения переменной a.
    b=input(’b=’); % Ввод значения переменной b.
    c=input(’c=’); % Ввод значения переменной c.
    d=b^2-4*a*c; % Вычисление значения дискриминанта.
    x1=(-b+sqrt(d))/2/a % Вычисление значения x1.
    x2=(-b-sqrt(d))/2/a % Вычисление значения x2.
    

    Для запуска программы на выполнения в окне интерпретатора введём текст:

    cd ’/home/evgeniy’
    prim1_2
    
    (рис 1.5) Графики функций y = sin(x), z = cos(x)

    Здесь /home/evgeniy — имя папки, где хранится программа, prim1_2.m — имя файла в папке /home/evgeniy, где хранится листинг 1.2.

    Далее пользователь должен ввести значение переменных $$a, b$$ и $$c$$, после чего появятся результаты работы программы:

    	
    octave -3.2.3:5 > prim1_2
    a=2
    b=1
    c=1
    x1 = -0.25000 + 0.66144i
    x2 = -0.25000 - 0.66144i
    

    Пример 1.3. Построить графики функций $$y = sin(x)$$ и $$z = cos(x)$$ на интервале $$[-2\pi;2\pi]$$.

    Для вычисления значения $$\pi$$ в Octave есть встроенная функция без параметров $$pi()$$. Для построения графика функций $$y = sin(x)$$ и $$z=\cos(x)$$ в окне интерпретатора Octave надо ввести следующие команды:

    x=-2*pi():0.02:2*pi();
    y=sin(x);
    z=cos(x);
    plot(x,y,x,z)
    

    Результатом работы команд будет графическое окно с графиками двух функций $$y = \sin(x)$$ и $$z=\cos(x)$$ (см. рис. 1.5).

    Как видно из простейших примеров, у Octave достаточно широкие возможности, а по синтаксису он близок к Matlab.

    (рис 1.6) Окно Octave Workshop (рис 1.7) кно QtOctave

    Однако для практического использования Octave интерпретатор не совсем удобен, поэтому были разработаны профессиональные графические оболочки для работы с Octave:

  • Octave workshop (рис. 1.6) — графическая оболочка для работы в ОС Windows.
  • QtOctave (рис. 1.7) — графическая оболочка для работы в OC Linux (портирована в ОС Windows в виде portable версии).
  • Рассмотрим процесс установки Octave и графических оболочек на персональный компьютер.

    (рис 1.8) Установка Octave. Выбор папки для установки.

    1.2 Установка Octave

    1.2.1 Установка Octave в Windows

    Установка Octave в ОС Windows проходит стандартным образом. Необходимо с официального сайта http://www.gnu.org/software/octave/ скачать версию программы для Windows и установить её.

    На первом этапе нужно выбрать папку для установки программы (рис. 1.8). На следующем — определить, правильно ли выбрана платформа (параметр — ATLAS Libraries), под которую будет оптимизирована программа Octave (рис. 1.9), и на этом же этапе — выбрать пакеты расширений (параметр Octave Forge), которые будут установлены вместе с программой (рис. 1.10).

    В результате будет установлен текстовый редактор Notepad++, интерпретатор Octave, пакеты расширений и англоязычная документация по Octave. Принципы работы с интерпретатором описаны ранее.

    Существует и графическая оболочка (среда) для работы с Octave — Octave Workshop (рис. 1.6). Программу можно скачать с официального сайта http://sourceforge.net/projects/octaveworkshop/

    (рис 1.9) Установка Octave. Выбор архитектуры процессора. (рис 1.10) Установка Octave. Выбор пакетов расширений. (рис 1.11) Окно QtOctave под управлением ОС Windows.

    Её установка проходит стандартным для Windows способом. В состав программы Octave Workshop входит графическая оболочка, сам интерпретатор Octave и некоторые пакеты расширений.

    Наиболее мощной графической оболочкой для работы с Octave является программа QtOctave, которая разработана для ОС Linux. Она портирована в ОС Windows в виде portableверсии, которую можно скачать по адресу http://portableapps.com/node/14720(https://forja.rediris.es/frs/download.php/433/qtoctave0.6. 8_octave2.9.15_Portable_win32.zip)

    Программу нужно разархивировать и запустить файл qtoctave.exe. Окно QtOctave в ОС Windows представлено на рис. 1.11.

    1.2.2 Установка Octave в Linux

    Математический пакет Octave разрабатывался для ОС Linux и поэтому именно в ОС Linux, пользователь получит возможность полноценно работать с Octave и использовать все возможности пакета.

    Установка в современных дистрибутивах Linux осуществляется стандартным образом, например, через менеджер пакетов Synaptic (рис. 1.12).

    (рис 1.12) Окно менеджера пакетов Synaptic

    В менеджере пакетов Synaptic нужно щёлкнуть по кнопке Найти, и в строке поиска ввести: octave. В результате поиска пользователю будет предложен список, в котором нужно выбрать:

  • qtoctave — графическая оболочка для работы с Octave;
  • octave3.2 — интерпретатор Octave;
  • octave3.0-doc — документация по Octave на английском языке в формате PDF;
  • octave3.0-htmldoc — документация по Octave на английском языке в формате HTML;
  • необходимые пользователю пакеты расширений, например, octave-linear-algebra, octave-optim и многие другие Номера версий 0.6.8, 3.0, 3.2 в именах файлов или именах пакетов являлись текущими на момент написания книги. Когда книга выйдет, номера могут быть другими. .
  • Установка начнётся после щелчка по кнопке Применить. Время установки зависит от количества выбранных пакетов и скорости сетевого соединения. После установки в группе программ Программирование и Наука появятся ярлыки программ GNU Octave (интерпретатор Octave) и QtOctave (графическая оболочка Octave).

    1.3 Графическая оболочка QtOctave

    После запуска QtOctave на экране появляется основное окно приложения (рис. 1.13). Это окно содержит меню, панель инструментов и рабочую область Octave Terminal. Окно может иметь другой внешний вид, в зависимости от предпочтений пользователя.

    (рис 1.13) Окно QtOctave (рис 1.14) Выполнение элементарной команды

    Признаком того, что система готова к работе, является наличие знака приглашения >>>. Ввод команд осуществляется с клавиатуры в командной строке Command line. Нажатие клавиши Enter заставляет систему выполнить команду и вывести результат, что проиллюстрировано на рис. 1.14

    Понятно, что все выполняемые команды не могут одновременно находиться в поле зрения пользователя. Поэтому просмотреть информацию, которая покинула видимую часть окна, можно с помощью полос прокрутки и клавиш Page Up и Page Down.

    Клавиши $$\uparrow$$ и $$\downarrow$$ позволяют вернуть в командную строку ранее введённые команды или другую входную информацию, так как вся эта информация сохраняется в специальной области памяти. Так, если в пустой активной командной строке нажать клавишу $$\uparrow$$, в ней появится последняя вводимая команда. Повторное нажатие вызовет предпоследнюю команду, и так далее. Клавиша $$\downarrow$$ выводит команды в обратном порядке.

    (рис 1.15) Примеры вывода результатов вычислении

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

    В командной строке действуют элементарные приёмы редактирования:

  • $$\to$$— перемещение курсора вправо на один символ;
  • $$\gets$$— перемещение курсора влево на один символ;
  • Home — перемещение курсора в начало строки;
  • Del — удаление символа после курсора;
  • Backspace — удаление символа перед курсором.
  • Кроме того, существуют особенности ввода команд. Если команда заканчивается точкой с запятой (;), то результат её действия не отображается в рабочей области. В противном случае, при отсутствии знака ";", результат действия команды сразу же выводится в рабочую область (рис. 1.15).

    Работа в среде QtOctave может осуществляться в так называемом программном режиме. В этом случае в командной строке указывается имя программы, составленной из управляющих команд и функций Octave и имеющей расширение .m. Это достаточно удобный режим, так как он позволяет сохранить разработанный вычислительный алгоритм в виде файла и повторять его при других исходных данных и в других сеансах работы.

    (рис 1.16) Выбор файла для выполнения в Octave

    Выполнить команды Octave, хранящиеся в файле с расширением .m, позволяет команда главного меню File $$\to$$ Run an Octave Script. Эта команда продублирована кнопкой в панели инструментов и открывает окно диалога, представленное на рис. 1.16.

    Смена текущей директории осуществляется командой File $$\to$$ Change Directory. Команда также открывает диалоговое окно, предназначенное для выбора нового каталога.

    Выход из программы выполняет команда File $$\to$$ Quit.

    Очистить рабочую область от введённых ранее команд можно, обратившись к пункту меню View $$\to$$ Clear terminal. Команда продублирована кнопкой в виде ластика на панели инструментов.

    Команда View $$\to$$ Dock Tools $$\to$$ Variable List открывает окно, показанное на рис. 1.17. Здесь пользователю доступны значения всех переменных, вычисленные в течение текущей сессии. Они сохраняются в специально зарезервированной области памяти и при желании, определения всех переменных и функций, входящих в текущую сессию, можно сохранить на диске в виде файла.

    Окно, представленное на рис. 1.18, содержит список выполненных команд и открывается командой View $$\to$$ Dock Tools $$\to$$ Command List.

    Выполнить поиск, просмотр, открытие файлов и каталогов, осуществить смену текущей директории, установить путь к файлу и так далее можно в окне, показанном на рис. 1.19. Это окно появится, если выполнить команду View $$\to$$ Dock Tools $$\to$$ Navigator.

    Текстовый редактор в QtOctave вызывает команда View $$\to$$ Dock Tools $$\to$$ Editor.

    Ввод текста в окно редактора осуществляется по правилам, принятым для команд Octave. Рис. 1.20 содержит пример ввода команд для решения биквадратного уравнения $$2x^4-9x^2+4=0$$. Нетрудно заметить, что точка с запятой ";" ставится после тех команд, которые не требуют вывода значений.

    (рис 1.17) Список переменных, определённых в процессе работы (рис 1.18) Список выполненных команд

    Для сохранения введённой информации необходимо выполнить команду File $$\to$$ Save из главного меню редактора. Если информация сохраняется впервые, появится окно Save file As....

    Выполнить команды, набранные в текстовом редакторе, может команда меню редактора Run $$\to$$ Run. Кроме того, как было сказано выше, можно набрать имя созданного в текстовом редакторе файла в командной строке и нажать ENTER.

    Все эти действия приведут к появлению в рабочей области результатов вычислений, что видно на рис. 1.20.

    (рис 1.19) Смена каталога (рис 1.20) Пример работы в текстовом редакторе

    Отметим, что текстовый редактор имеет возможность работы с множеством окон и обладает принятыми для текстовых редакторов приёмами редактирования, подробно останавливаться на которых мы не будем.

    Для выхода из режима редактирования можно просто закрыть окно или использовать команду File $$\to$$ Close. Ранее созданный файл открывает команда главного меню редактора File $$\to$$ Open.

    Окна, представленные на рис. 1.17,рис. 1.18,рис. 1.19,рис. 1.20, обладают общим свойством. Команды View $$\to$$ Show inside of main window и View $$\to$$ Show outside of main window позволяют выводить окна внутри основного окна QtOctave (рис. 1.7) и за его пределами соответственно.

    Управлять положением окон в среде QtOctave можно командой View $$\to$$ Windows Layout. А команда View $$\to$$ Show позволяет отображать или удалять кнопки на панели инструментов.

    Далее представлено краткое описание других пунктов главного меню QtOctave:

  • Analysis — решение некоторых задач матанализа (интегрирование и решение обыкновенных дифференциальных уравнений);
  • Data — работа с матрицами (ввод, форматированный ввод, ввод из файла, запись в файл);
  • Equations — решение линейных и нелинейных уравнений;
  • Matrix — действия над матрицами (сложение, вычитание, умножение, транспонирование, инвертирование, вычисление определителя);
  • Plot — работа с графикой (построение двумерных и трёхмерных графиков, форматирование графической области, запись графического изображения в файл);
  • Statistics — вычисление некоторых статистических функций;
  • Config — настройка конфигурации системы, установка пакетов расширений;
  • Help — справочная информация.
  • Вернуться к учебному плану