Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Введение в Octave

Покупка
Артикул: 825625.01.99
Доступ онлайн
1 000 ₽
В корзину
Курс посвящен свободно распространяемому пакету Octave. Описан встроенный язык пакета, подробно рассмотрены графические возможности пакета. Подробно рассмотрено решение различных инженерных и математических задач. Особое внимание уделено операциям с матрицами, решению нелинейных уравнений и систем, дифференцированию и интегрированию, решению дифференциальных уравнений, оптимизационным задачам и обработке экспериментальных данных (интерполяции и аппроксимации. Наряду со встроенным языком пакета описана среда QtOctave.
Алексеев, Е. Р. Введение в Octave : краткий учебный курс / Е. Р. Алексеев, О. В. Чеснокова. - Москва : ИНТУИТ, 2016. - 358 с. - Текст : электронный. - URL: https://znanium.ru/catalog/product/2138304 (дата обращения: 22.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Е.Р. Алексеев
О. В. Чеснокова





Введение в Octave














СгИНТУИТ
  / НАЦИОНАЛЬНЫЙ ОТКРЫТЫЙ УНИВЕРСИТЕТ

С.ИНТУ ИТ

    У НАЦИОНАЛЬНЫЙ ОТКРЫТЫЙ УНИВЕРСИТЕТ


Введение в Octave 2-е издание, исправленное Алексеев Е.Р.
Чеснокова О.В.



Национальный Открытый Университет “ИНТУИТ”
2016


2

Введение в Octave/ Е.Р. Алексеев, О.В. Чеснокова - М.: Национальный Открытый Университет “ИНТУИТ”, 2016
Курс посвящен свободно распространяемому пакету Octave.
Описан встроенный язык пакета, подробно рассмотрены графические возможности пакета. Подробно рассмотрено решение различных инженерных и математических задач. Особое внимание уделено операциям с матрицами, решению нелинейных уравнений и систем, дифференцированию и интегрированию, решению дифференциальных уравнений, оптимизационным задачам и обработке экспериментальных данных (интерполяции и аппроксимации. Наряду со встроенным языком пакета описана среда QtOctave.
(c) ООО “ИНТУИТ.РУ”, 2015-2016
(c) Алексеев Е.Р., Чеснокова О.В., 2015-2016

3

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




Краткое описание курса и процесса установки GNU 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


4

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


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


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


Файл Правка Вид Терминал Справка OCtave-3.2.3:2> а=[1 2 3;4 5 б;В 7 9] а =

   1    2  3
   4    5  6
   8    7  9

octave-3.2.3:3> inverse(a) ans =

  -6.33333 -0.33333    6.33333
  -1.33333    1.66667 -0.66667
   1.33333 -1.00000    0.33333

octave-3.2.3:4> a*ans ans ■

   1.00000+00    -2.2204016   1.6653016
  -2.2204е-1б    1.00000+96  3.33070-16
  -4.44690-16   -4.44090’16  1.00000+00

octave’3.2.3:5> _


Рис. 1.1. Окно интерпретатора Octave


Файл Правка Вид Терминал ^правка
octave-3.2.3:5> а=[1 2 3; 4 5 6;7 8 9] % Эго определение матрицы а а =

   1   2  3
   4   5  6
   7   В  9

octave-3.2.3:5> Ь=[11 21 35; 41 25 16:17 83 93]; % Это определение матрицы b
octave-3.2.3:7> с=а*Ь Умножение матриц с =

144 329  346 
351 7S7  77S 
558 1094 1219

octave-3.2.3:8> [

Рис. 1.2. Использование символов “;” и “%” в Octave


результаты работы выводятся на экран (рис. 1.2). Текст в строке после символа


5

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


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


    3 *xi + 5 • ха — 7* асз = 11
    3 *   — 4 * х₃ + 33 * х₃ = 25
    22 # zi — 11 * la Н- 17 * :гз = 22


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


 1. Терминальный режим. В этом режиме в окно интерпретатора последовательно вводятся отдельные команды.
 2. Программный режим. В этом режиме создаётся текстовый файл с расширением .m, в котором хранятся последовательно выполняемые команды Octave. Затем этот текстовый файл (программа на языке Octave) запускается на выполнение в среде Octave.


Для решения СЛАУ в окне интерпретатора Octave последовательно введём следующие команды:

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


 Листинг 1.1. Решение СЛАУ примера 1.1

Рис. 1.3. Программа для решения примера 1.1

6

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

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

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


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

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


Файл Правка Вид Терминал ^правка


   3   5-7
   3   -4 33
   22 -11 17



    11
    25
    22



   1.56361
   2.55742
   0.92542

ans =

   11.000
   25.see
   22.000






Рис. 1.4. Окно терминала после запуска программы prim1_1

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

Пример 1.2. Решить квадратное уравнение . - ■   .  ".


7

Напомним читателю, что корни квадратного уравнения определяют по формулам
 .' । ,L :', где дискриминант D вычисляется по формуле .¹                 |... .

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

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

 Листинг 1.2. Решение квадратного уравнения (пример 1.2).


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


 cd ’/home/evgeniy’ prim1_2


Рис. 1.5. Графики функций y = sin(x), z = cos(x)

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


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


8

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. Построить графики функций ■.          и .         на интервале _т _т


Для вычисления значения в Octave есть встроенная функция без параметров ■.
Для построения графика функций ..         .• ■ и . ■. в окне интерпретатора Octave
надо ввести следующие команды:

x=-2*pi():0.02:2*pi();
y=sin(x);
z=cos(x);
plot(x,y,x,z)
Листинг 1.3. Построение графиков функций из примера 1.3.

Результатом работы команд будет графическое окно с графиками двух функций ..  -11 г • ■ и . . .■ . (см. рис. 1.5).
Как видно из простейших примеров, у Octave достаточно широкие возможности, а по синтаксису он близок к Matlab.

9

Рис. 1.6. Окно Octave Workshop

10

Доступ онлайн
1 000 ₽
В корзину