Учебно-Технологический_Практикум_УТС.Б_1
.pdfЗадание матрицы требует указания различных строк. Для различения строк используется знак ; (точка с запятой). Этот же знак (или знак запятой) в конце ввода предотвращает вывод матрицы или вектора на экран дисплея. Так, ввод
М=[1 2 3; 4 5 6; 7 8 9];
задает квадратную матрицу, которую можно вывести:
>>М
М=
1 2 3
4 5 6
7 8 9
Возможен ввод элементов матриц и векторов в виде арифметических выражений, содержащих любые доступные системе функции, например:
>>V= [2+2/(3+4) ехр(5) sqrt(10)];
>>V
V=
2.2857 148.4132 3.1623
Дня указания отдельного элемента вектора или матрицы используются выражения вида V(i) или M(i;j). Например, если задать
>> М(2;2) ans =
5
то результат будет равен 5. Если нужно присвоить элементу M(t;j) новое значение х, следует использовать выражение
M(i;j)=x
Например, если элементу М(2;2) надо присвоить значение 10, следует записать
>> М(2;2)=10
Выражение M(i) с одним индексом дает доступ к элементам матрицы, развернутым в один столбец. Такая матрица образуется из исходной, если подряд выписать ее столбцы. Следующий пример поясняет такой доступ к элементам матрицы М:
>>M=[1 3 4 5; 6 7 8 9];
>>M(1)
ans = 1
>> M(2) ans =
21
6
>>M(3) ans =
3
>>M(8) ans =
9
Возможно задание векторов и матриц с комплексными элементами,
например:
>>i=sqrt(-1);
>>CM = [1 2; 3 4] + i*[5 6; 7 8] CM =
1.0000 + 5.0000i 2.0000 + 6.0000i
3.0000 + 7.0000i 4.0000 + 8.0000i
Наряду с операциями над матрицами и векторами система
позволяет производить операции умножения, деления и возведения в степень сразу над всеми элементами этих структур. Для этого перед операцией ставится знак точка. Например, знак * означает знак умножения для векторов или матриц, а знак .* — умножение всех элементов массива. Так, если М — матрица, то М.*2 даст матрицу,
все элементы которой умножены на скаляр — число 2.
1.9.2 Изменение структур
Объединение малых матриц в большую
Система MATLAB позволяет выполнять операцию конкатенации - объединения матриц. Например, создадим вначале магическую матрицу размера 3х3:
>>A=magic(3) A =
8 1 6
3 5 7
4 9 2
Теперь можно построить матрицу, содержащую четыре матрицы:
>>В=[A A+16; A+32 A+16]
В =
8 1 6 24 17 22
3 5 7 19 21 23
4 9 2 20 25 18
40 33 38 24 17 22
22
35 37 39 19 21 23
36 41 34 20 25 18
Полученная матрица имеет уже размер 6х6. Вычислим сумму ее столбцов:
>> sum(B)
128 126 126 128 126 128
Для вычисления суммы строк используем команду:
>> sum(B') ans=
78 78 78 174 174 174
Здесь запись В' означает транспонирование матрицы В- замена строк - столбцами.
Удаление столбцов и строк матриц
Для формирования матриц и выполнения ряда матричных операций возникает необходимость удаления отдельных столбцов и строк матрицы. Для этого используются пустые квадратные скобки [ ]. Проделаем это над матрицей М:
M = 1 2 3 4 5 6 7 8 9
>>M(:,1) %Показать все элементы 1-го столбца ans =
1
4
7
>>M(:,1)=[] % Все элементы 1-го столбца - убрать M =% Результат - осталось два столбца.
2 3
5 6
8 9
1.10 ВИЗУАЛИЗАЦИЯ ВЫЧИСЛЕНИЙ
В режиме прямых вычислений доступны практически все возможности системы, например, построение графиков различных функций, дающих наглядное представление об их поведении в диапазоне изме-
23
нения аргумента. При этом графики строятся в отдельных масштабируемых и перемещаемых окнах.
Рассмотрим пример — построение графика синусоиды в диапазоне изменения аргумента х от 0 до 10 с шагом 0.1. Для построения графика достаточно вначале задать вектор х=0:0.1:10, а затем использовать функцию построения графиков plot(sin(x)) – Рис. 3.
Рис. 3 График синусоиды Для построения графиков нескольких функций одной командой
используется другая форма оператора plot plot(a1,f1,a2,f2,a3,f3„..),
где а1, а2, аЗ — аргументы функций , fl, f2,f3,- — имена функций, графики которых строятся в одном окне.
Построим в одном окне графики функций sin(x), cos(x) и sin(x)/x – Рис. 4.
24
Рис. 4. Построение нескольких графиков в одном графическом окне MATLAB
Графические средства системы MATLAB будут более подробно рассмотрены в последующих лабораторных работах.
1.11 СОХРАНЕНИЕ И ЗАГРУЗКА ДАННЫХ СЕССИИ
Сохранение рабочей области сессии — команда save
Переменные и определения новых функций в системе MATLAB хранятся в особой области памяти, именуемой рабочей областью. MATLAB позволяет сохранить значения всех переменных и определений в сессии, т.е. рабочей области, в виде бинарных файлов с расширением .mat. Для этого служит команда save, которая может использоваться в ряде синтаксических форм:
save fname — записывается рабочая область всех переменных в файле бинарного формата с именем fname и расширением .mat,
25
save fname X — записывает только значение переменной X. save fname X Y Z —- записывает значения переменных X, Y и Z.
После параметров команды save можно указать ключи, уточняющие формат записи файлов:
-mat — двоичный МАТ—формат, используемый по умолчанию. -ascii — ASCII формат единичной точности (8 цифр).
-ascli -double—ASCII формат (двойной точности— 16 цифр). -ascii -double -tabs — формат с разделителем и метками табуляции. -V4 — запись MAT—файла в стандарте версии MATLAB 4.*,
-V6 — запись MAT—файла в стандарте версии MATLAB 6.*, -append — добавление в существующий МАТ-файл.
Кроме операторной формы, возможно задание записи в формате функции, например:
save(fname';var1';var2')
причем в этом случае имена файлов и переменных задаются строковыми константами.
Загрузка рабочей области сессии — команда load
Для загрузки рабочей области ранее проведенной сессии (если она была сохранена) можно использовать команду load.
load fname ... — загрузка ранее сохраненных в файле fhame.mat определений со спецификациями на месте многоточия, подобными описанным для команды save (включая ключ -mat для загрузки файлов с расширением .mat обычного бинарного формата, используемого по умолчанию).
load('fname',...) — загрузка файла fname в форме функции.
Если команда (или функция) load используется в ходе проведения сессии, то произойдет замена значений текущих переменных теми значениями, которые были сохранены в считываемом МАТ-файле.
Для задания имен загружаемых файлов может использоваться знак *, означающий загрузку всех файлов с определенными признаками. Например, save demo*.mat означает загрузку всех файлов с началом имени demo, например: demol, dcmo2, demoa, demob и так далее. Име-
на загружаемых файлов можно формировать с помощью операций над строковыми выражениями.
1.12 ЗАВЕРШЕНИЕ РАБОТЫ С СИСТЕМОЙ
Для завершения работы с системой можно использовать команды quit, exit или комбинацию клавиш Ctrl и Z. Если необходимо сохра-
26
нить значения всех переменных (векторов, матриц) системы, то перед этим следует дать команду save нужной формы. Команда load после загрузки системы считывает значения этих переменных и позволяет начать работу с системой с того момента, когда она была прервана.
2. ПРАКТИЧЕСКАЯ ЧАСТЬ
1.Выполните задания 1-6, определенные в теоретической части лабораторной работы
2.Выполните в соответствии с данным преподавателем вариантом ниже перечисленные действия в режиме прямых вычислений
MATLAB:
Работа в режиме прямых вычислений:
1.Вычислите значения выражения в заданном интервале с заданным шагом.
2.Сформируйте векторы X - значений аргумента и вектора Y - значений выражения.
3.Постройте график функции Y(X)
Вариант Выражение Y |
|
|
|
|
|
|
|
Интервал X |
Шаг X |
||
1 |
|
sin(1.3 * * x) |
|
|
|
|
|
|
|
x [0,2] |
x 0.025 |
|
|
tg(2.75 * x) |
|
||||||||
|
|
|
|
|
|
|
|||||
|
|
ln(3.4 * x) |
th(2.75 * x) |
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
sin(1.3 * * x) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
tg(2.75 * x) |
|
|
|
|
||
|
|
ln(3.4 * x) |
|
|
th(2.75 * x) |
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
2
3
|
sin(2.3 * * x) |
|
|
ctg (2.75 * x) |
|
||
|
ln(3.4 * x) |
|
th(2.75 |
* x) |
|
||
|
|
|
|
||||
|
sin(2.3 * * x) |
|
|
ctg (2.75 * x) |
|
||
|
ln(3.4 * x) |
|
th(2.75 |
* x) |
|
||
|
|
|
|
||||
|
sin(2.3 * * x) |
|
|
|
|
|
|
|
|
|
tg(2.75 |
* x) |
|
||
|
ln(3.4 * x) |
|
cth(2.75 * x) |
|
|||
|
|
|
|
||||
|
|
|
|
|
|
||
|
sin(1.3 * * x) |
|
|
|
|
|
|
|
|
|
tg(2.75 * x) |
|
|
||
|
ln(3.4 * x) |
cth(2.75 * x) |
|
||||
|
|
|
x [1,3]
x [1,4]
x 0.025
x 0.02
27
4
5
6
7
8
9
|
sin(1.3 * * x) |
|
|
tg(2.75 * x) |
|
|
|
ln(3.4 * x) |
|
th(2.75 * x) |
|
|
|
|
|
|
|
|
||
|
sin(1.3 * * x) |
|
|
tg(2.75 * x) |
|
|
|
ln(3.4 * x) |
|
th(2.75 * x) |
|
|
|
|
|
|
|
|
||
|
sin(3.3 * * x) |
|
|
ctg (2.75 * x) |
|
|
|
ln(3.4 * x) |
|
th(2.75 * x) |
|
|
|
|
|
|
|
|
||
|
sin(3.3 * * x) |
|
|
ctg (2.75 * x) |
|
|
|
ln(3.4 * x) |
|
th(2.75 * x) |
|
|
|
|
|
|
|
|
||
|
sin(4.3 * * x) |
|
|
tg(2.75 * x) |
|
|
|
ln(3.4 * x) |
|
cth(2.75 * x) |
|
|
|
|
|
|
|
|
||
|
sin(4.3 * * x) |
|
|
tg(2.75 * x) |
|
|
|
ln(3.4 * x) |
|
cth(2.75 * x) |
|
|
|
|
|
|
|
|
||
|
sin(5.3 * * x) |
|
|
tg(2.75 * x) |
|
|
|
ln(3.4 * x) |
|
th(2.75 * x) |
|
|
|
|
|
|
|
|
||
|
sin(5.3 * * x) |
|
|
tg(2.75 * x) |
|
|
|
ln(3.4 * x) |
|
th(2.75 * x) |
|
|
|
|
|
|
|
|
||
|
sin(6.3 * * x) |
|
|
ctg (2.75 * x) |
|
|
|
ln(3.4 * x) |
|
cth(2.75 * x) |
|
|
|
|
|
|
|
|
||
|
sin(6.3 * * x) |
|
|
ctg (2.75 * x) |
|
|
|
ln(3.4 * x) |
|
cth(2.75 * x) |
|
|
|
|
|
|
|
|
||
|
sin(6.3 * * x) |
|
|
|
|
|
|
|
|
ctg (2.75 * x) |
|
|
|
|
ln(3.4 * x) |
th(2.75 * x) |
|
|
||
|
|
|
|
|
||
|
|
|
|
|
|
|
|
sin(6.3 * * x) |
|
|
|
|
|
|
|
|
ctg (2.75 * x) |
|
|
|
|
ln(3.4 * x) |
|
th(2.75 * x) |
|
|
|
|
|
|
|
|
x [1,5]
x [1,6]
x [1,6]
x [1,4]
x [1,6]
x [0,2]
x 0.02
x 0.025`
x 0.125`
x 0.025`
x 0.02
x 0.02
28
10
11
12
sin(8.3 * * x) |
|
tg(3.75 * x) |
|
ln(3.4 * x) |
cth(2.75 * x) |
||
|
|||
sin(8.3 * * x) |
|
tg(3.75 * x) |
|
ln(3.4 * x) |
cth(2.75 * x) |
||
|
|||
sin(3.3 * * x) |
|
tg(2.75 * x) |
|
ln(6.4 * x) |
th(2.75 * x) |
||
|
|||
sin(3.3 * * x) |
|
tg(2.75 * x) |
|
ln(6.4 * x) |
th(2.75 * x) |
||
|
|||
sin(5.5 * * x) |
|
ctg (2.75 * x) |
|
ln(6.4 * x) |
cth(2.75 * x) |
||
|
|||
sin(5.5 * * x) |
|
ctg (2.75 * x) |
|
ln(6.4 * x) |
cth(2.75 * x) |
||
|
x [1,6]
x [1,5]
x [0,2]
x 0.01
x 0.025`
x 0.125`
3. КОНТРОЛЬНЫЕ ВОПРОСЫ
Файловая система MATLAB
Запуск MATLAB и исполнение команды MATLABrc
Команды управления командным окном
Режим прямых вычислений MATLAB
Векторно-матричные операции в режиме прямых вычислений
Математические выражения MATLAB
Константы и системные переменные
Текстовые комментарии
Переменные MATLAB
Уничтожение определений переменных
Операторы и функции MATLAB
Применение оператора : (двоеточие)
Форматы чисел — команда format
Основы работы с векторами и матрицами
Изменение структур
Визуализация вычислений
Сохранение и загрузка данных сессии
29
СОДЕРЖАНИЕ
1.ТЕОРЕТИЧЕСКАЯ ЧАСТЬ………………………………………3
1.1ОБЩИЕ СВЕДЕНИЯ О ПАКЕТЕ MATLAB………...…..…3
1.2ФАЙЛОВАЯ И СПРАВОЧНАЯ СИСТЕМА MATLAB..….8
1.3ЗАПУСК MATLAB И ИСПОЛНЕНИЕ КОМАНДЫ
MATLABRC…………………………………………………9
1.4ОПЕРАЦИИ СТРОЧНОГО РЕДАКТИРОВАНИЯ……….10
1.5КОМАНДЫ УПРАВЛЕНИЯ ОКНОМ CLC, HOME,
ИECHO……………………………………………………...11
1.6РЕЖИМ ПРЯМЫХ ВЫЧИСЛЕНИЙ MATLAB…………..12
1.7ВЕКТОРНО-МАТРИЧНЫЕ ОПЕРАЦИИ В РЕЖИМЕ ПРЯМЫХ ВЫЧИСЛЕНИЙ………………………………..13
1.7.1ДЕЙСТВИЯ НАД ВЕКТОРАМИ В MATLAB…13
1.7.2ДЕЙСТВИЯ НАД МАТРИЦАМИ В MATLAB..13
1.8МАТЕМАТИЧЕСКИЕ ВЫРАЖЕНИЯ MATLAB………..14
1.8.1ЧИСЛОВЫЕ ДЕЙСТВИТЕЛЬНЫЕ
ИКОМПЛЕКСНЫЕ КОНСТАНТЫ…………...14
1.8.2КОНСТАНТЫ И СИСТЕМНЫЕ
ПЕРЕМЕННЫЕ…………………………………..14
1.8.3УНИЧТОЖЕНИЕ ОПРЕДЕЛЕНИЙ ПЕРЕМЕННЫХ – КОМАНДА CLEAR………...16
1.8.4ОПЕРАТОРЫ И ФУНКЦИИ MATLAB………...17
1.8.5ОПЕРАТОР : (ДВОЕТОЧИЕ)…………………...19
1.9ОСНОВЫ РАБОТЫ С ВЕКТОРАМИ И МАТРИЦАМИ...20
1.9.1ЗАДАНИЕ СТУКТУР…………………………....20
1.9.2ИЗМЕНЕНИЕ СТУКТУР………………………..22
1.10ВИЗУАЛИЗАЦИЯ ВЫЧИСЛЕНИЙ……………………...23
1.11СОХРАНЕНИЕ И ЗАГРУЗКА ДАННЫХ СЕССИИ…....25
1.12ЗАВЕРШЕНИЕ РАБОТЫ С СИСТЕМОЙ……………....26
2.ПРАКТИЧЕСКАЯ ЧАСТЬ…………………………….………….27
3.КОНТРОЛЬНЫЕ ВОПРОСЫ………………………………….....29
30