Опубликован: 12.03.2015 | Уровень: для всех | Доступ: платный | ВУЗ: Компания ALT Linux
Лекция 5:

Задачи линейной алгебры

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

5.1 Ввод и формирование векторов и матриц

Векторы и матрицы в Octave задаются путём ввода их элементов. Элементы вектора-строки отделяют пробелами или запятыми, а всю конструкцию заключают в квадратные скобки:

	
>>> a =[2 -3 5 6 -1 0 7 -9]
a = 2 -3 5 6 -1 0 7 -9
>>> b =[ -1,0,1]
b = -1 0 1

Вектор-столбец можно задать, если элементы отделять друг от друга точкой с запятой:

	
>>> c=[-pi; -pi / 2; 0; pi / 2; pi ]
c =
-3.14159
-1.57080
0.00000
1.57080
3.14159

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

	
>>> a( 1 )
ans = 2
>>> b( 3 )
ans = 1
>>> c( 5 )
ans = 3.1416

Ввод элементов матрицы также осуществляется в квадратных скобках, при этом элементы строки отделяются друг от друга пробелом или запятой, а строки разделяются между собой точкой с запятой:

	
>>> Matr=[0 1 2 3; 4 5 6 7 ]
Matr =
0 1 2 3
4 5 6 7

Обратиться к элементу матрицы можно указав после имени матрицы, в круглых скобках, через запятую, номер строки и номер столбца, на пересечении которых элемент расположен:

	
>>> Matr ( 2, 3 )
ans = 6
>>> Matr ( 1, 1 )
ans = 0
>>> Matr ( 1, 1 )=pi; Matr ( 2, 4 )= _pi;
>>> Matr
Matr =
3.1416 1.0000 2.0000 3.0000
4.0000 5.0000 6.0000 -3.1416

Матрицы и векторы можно формировать, составляя их из ранее заданных матриц и векторов:

	
>>> a=[-3 0 2 ]; b=[3 2 -1]; c =[5 -2 0 ];
>>> M=[a b c ] % Горизонтальная конкатенация векторов–строк
M = -3 0 2 3 2 -1 5 -2 0 % результат — вектор–строка
>>> N=[a; b; c ] % Вертикальная конкатенация векторов–строк,
% результат — матрица
N =
	-3  0  2
	 3  2 -1
	 5 -2  0
>>> Matrica =[N N N] % Горизонтальная конкатенация матриц
Matrica =
	-3  0  2 -3  0  2 -3  0  2
	 3  2 -1  3  2 -1  3  2 -1
	 5 -2  0  5 -2  0  5 -2  0
>>> Tablica =[M;M;M] % Вертикальная конкатенация матриц
Tablica =
	-3 0 2 3 2 -1 5 -2 0
	-3 0 2 3 2 -1 5 -2 0
	-3 0 2 3 2 -1 5 -2 0

Важную роль при работе с матрицами играет знак двоеточия ":". Примеры с подробными комментариями приведены в листинге 5.1.

	
>>> Tabl =[ -1.2 3.4 0.8; 0.9 -0.1 1.1; 7.6 -4.5 5.6; 9.0 1.3 -8.5]
Tabl =
	-1.20000 3.40000 0.80000
	0.90000 -0.10000 1.10000
	7.60000 -4.50000 5.60000
	9.00000 1.30000 -8.50000
>>> Tabl( :, 3 ) % Выделить из матрицы 3-й столбец
ans =
	0.80000
	1.10000
	5.60000
	-8.50000
>>> Tabl( 1, : ) % Выделить из матрицы 1-ю строку
ans = -1.20000 3.40000 0.80000
>>> Matr=Tabl( 2 : 3, 1 : 2 ) % Выделить из матрицы подматрицу
Matr =
0.90000 -0.10000
7.60000 -4.50000
% Вставить подматрицу в правый нижний угол исходной матрицы
>>> Tabl( 3 : 4, 2 : 3 )=Matr
Tabl =
	-1.20000 3.40000  0.80000
	0.90000  -0.10000 1.10000
	7.60000  0.90000  -0.10000
	9.00000  7.60000  -4.50000
>>> Tabl( :, 2 ) = [ ] % Удалить из матрицы 2-й столбец
Tabl =
	-1.20000 0.80000
	0.90000  1.10000
	7.60000  -0.10000
	9.00000  -4.50000
>>> Tabl( 2, : ) = [ ] % Удалить из матрицы 2-ю строку
Tabl =
	-1.20000 0.80000
	7.60000 -0.10000
	9.00000 -4.50000
>>> Matr % Представить матрицу в виде вектора–столбца
Matr =
	0.90000 -0.10000
	7.60000 -4.50000
>>> Vector=Matr ( : )
Vector =
	0.90000
	7.60000
	-0.10000
	-4.50000
>>> V=Vector( 1 : 3 ) % Выделить из вектора элементы со 1-го по 3-й
V =
	0.90000
	7.60000
	-0.10000
>>> V( 2 ) = [ ] % Удалить из массива 2-й элемент
V =
	0.90000
	-0.10000
Листинг 5.1. Пример использования знака двоеточия ":"
Алексей Игнатьев
Алексей Игнатьев

Возможна ли разработка приложения на Octave с GUI?

Евгений Ветчанин
Евгений Ветчанин

Добрый день. Я самостоятельно изучил курс "Введение в Octave" и хочу получить сертификат. Что нужно сднлать для этого? Нужно ли записаться на персональное обучение с тьютором или достаточно перевести деньги?

Владимир Мельников
Владимир Мельников
Россия, г. Омск
анна тихонова
анна тихонова
Россия