- •Программное обеспечение управления качеством и базы и банки данных matlab
- •Matlab в роли суперкалькулятора
- •Основные арифметичесике операторы
- •Специальные символы
- •Начальное значение:шаг:конечное значение
- •Форматы чисел
- •Перестановки элементов матриц
- •Cуммирование элементов
- •Решение систем линейных уравнений
- •Численное интегрирование
- •Объединение массивов
- •Нахождение средних, срединных значений массива и стандартных отклонний
- •Вычисление коэффициентов корреляции
- •Вычисление матрицы ковариации
- •Основы программирования
- •Условный оператор
- •Циклы типа for…end
- •Графики в логарифмическом и полулогарифмическом масштабе
- •Столбцовые диаграммы
- •Построение гистограммы
- •Графики с зонами погрешностей
- •Графики в полярной системе координат
- •Контурные графики
- •Создание массивов данных для трехмерной графики
- •Сетчатые 3d-графики с окраской и с проекциями
- •Построение поверхности с окраской и проекциями
- •Построение освещенной поверхности
- •Трехмерные контурные графики
- •Ввод текста в любое место графика
- •Вывод пояснений
- •Управление свойствами осей графиков
Форматы чисел
По умолчанию MATLAB выдает числовые результаты в нормализованной форме с четырьмя цифрами после десятичной точки и одной до нее. Многих такая форма представления не всегда устраивает. Поэтому при работе с числовыми данными можно задавать различные форматы представления чисел. Для установки формата представления чисел используется команда format name, где name – имя формата. Для числовых данных name может быть сообщением:
short – короткое представление в фиксированном формате (5 знаков);
short е – короткое представление в экспоненциальном формате (5 знаков мантиссы и 3 знака порядка);
long – длинное представление в фиксированном формате (15 знаков):
long е – длинное представление в экспоненциальном формате (15 знаков мантиссы и 3 знака порядка):
bank – представление для денежных единиц:
rational – представление в виде дроби.
Задание формата сказывается только на форме вывода чисел. Вычисления все равно проис-ходят в формате двойной точности, а ввод чисел возможен в любом удобном для пользователя виде.
Для иллюстрации различных форматов рассмотрим вектор, содержащий два элемента-числа x=[4/3 1.2345е-6].
В различных форматах их представления будут иметь вид:
format short |
1.3333 |
0.0000 |
format short e |
1.3333Е+000 |
1.2345Е-006 |
format long |
1.333333333333338 |
0.000001234500000 |
format long e |
1.333333333333338Е+000 |
1.234500000000000Е-006 |
format bank |
1.33 |
0.00 |
format rational |
4/3 |
1/810045 |
Открытие нового файла и вызов старого
Для редактирования и отладки m-файлов (файлы с программами MATLAB запоминиют-ся с расширением m) MATLAB имеет встренный современный редактор, интерфейс которого выполнен в лучших традициях Windows приложений.
Открыть окно редактора m-файлов можно при помощи кнопки New File на панели инст-рументов программы, либо выбрав одноименную команду из системного меню File.
По умолчанию файлу дается имя untitled (безымянный), которое впоследствии (при запи-си файла) можно изменить на другое, отражающее тему задачи. В редакторе можно редактиро-вать несколько m-файлов, и каждый из них будет находится в своем окне редактирования, хотя активным может быть только одно окно, расположенное поверх других.
Для загрузки в редактор ранее созданых файлов служит команда и кнопка Open.
Запустить файл на выполнение можно набрав его имя (без расширения) в командном окне, либо нажав кнопку Run на панели инструментов открытого файла.
Формирование векторов и матриц
Для вычислений с матрицами при использовании обычных языков программирования типа Бейсик или Паскаль требуется составление специальных программ. MATLAB – система, специально предназначенная для проведения сложных вычислений с векторами, матрицами и массивами. При этом она по умолчанию предполагает, что каждая заданная переменная – это вектор или матрица. Все определяется конкретным значением переменной. Например, если за-дано х=1, то это значит, что Х есть вектор с единственым элементом, имеющим значение 1.
Особенности задания векторов и матриц
Если надо задать вектор, из например, трех элементов, то их значения следует перечис-лить в квадратных скобках, разделяя пробелами. Так, например, присваивание
>> V=[1 2 3]
V=
1 2 3
задает вектор V, имеющий три элемента, со значениями 1, 2 и 3.
Задание матрицы требует указания нескольких строк. Для различения строк использует-ся точка с запятой (;). Так, ввод
>> M=[1 2 3; 4 5 6; 7 8 9]
задает квадратную матрицу
M=
1 2 3
4 5 6
7 8 9
Возможен ввод элементов матриц и векторов в виде арифметических выражений, содер-жащих любые доступные системе функции, например
>> V=[2+2/(3+4) exp(5) sqrt(10)];
>> V
V=
2.2857 148.4132 3/1623
Для указания отдельного элемента вектора или матрицы используется выражение вида V(i) или М(i,j). Например, если задать для матрицы
M=
1 2 3
4 5 6
7 8 9
>> M(2,2), то результат будет равен 5
Если нужно присвоить элементу М(i,j) новое значение х, следует записать
>> M(2,2)=10
Тогда матрица М примет вид
M=
1 2 3
4 10 6
7 8 9
Выражение M(i,j) с одним индексом дает доступ к элементам матрицы, развернутым в один столбец. Такая матрица образуется из исходной, если подряд выписывать ее столбцы
>> M(2) ans= 4 |
>> M(8) ans= 6 |
>> M(9) ans= 9 |
>> M(5)=100;
>> M
M=
1 2 3
4 100 6
7 8 9
Запись М(:) позволит представить все элементы матрицы в один столбец.
Возможно задание векторов и матриц с комплексными элементами, например,
>> i=sqrt(-1);
>> CM=[1 2; 3 4]+i*[5 6; 7 8] или >> CM=[1+5*i 2+6*i; 3+7*i 4+8*i]
Это создает матрицу
CM=
1.0000+5.0000i 2.0000+6.0000i
3.0000+7.0000i 4.0000+8.0000i
Наряду с операциями над отдельными элементами матриц и векторов система позволяет производить операции умножения, деления и возведения в степень над всеми элементами, то есть над массивами. Для этого перед знаком операции ставится точка. Например, оператор * оз-начает умножение для векторов или матриц, а оператор .* – почленное умножение всех эле-ментов массива. Так, если М – матрица, то М.*2 даст матрицу, все элементы которой умножены на скаляр – число 2. Впрочем, для умножения матрицы на скаляр оба выражения – М*2 и М.*2 – оказываются равноценными.
Имеется также ряд особых функций для задания векторов и матриц. Например, функция magic(n) задает магическую матрицу размером nхn, у которой сумма всех столбцов, всех строк и даже диагоналей равна одному и тому же числу
>> M= magic(4)
M =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
л а б о р а т о р н а я р а б о т а № 2
Задайте последовательность чисел от 0 до 10 с шагом 2 и обозначьте ее буквой А.
Вычислите квадратный корень каждого элемента последовательности.
Получите новую последовательность В путем деления каждого элемента последовательности А на число 3.
Округлите элементы массива до ближайшего к нулю целого числа.
Округлите элементы массива В до ближайшего меньшего или равного элементу В целого числа.
Округлите элементы массива В до ближайшего большего или равного элементу В целого числа.
Выведите на экран элементы последовательности В в длинном представлении в экспоненциальном формате.
Выведите на экран элементы последовательности В в в дробном формате.
Вернитесь к представлению чисел в коротком фиксированном формате
При помощи специальной команды меню File откройте m-файл.
Задайте вектор-строку N, состоящий из 5 элементов.
Задайте вектор-столбец С, состоящий из 5 произвольных элементов.
Перемножьте N и С.
Запустите файл на выполнение при помощи соответствующей кнопки.
Вновь откройте файл для редактирования.
В файле введите матрицу D размером 5х5, состоящую из произвольных чисел.
Получите магическую матрицу М.
Сложите эти две матрицы.
Запустите файл на выполнение из командной строки.
Проведите редактирование файла таким образом, чтобы на экран выводился только поледний результат.
Л е к ц и я № 5, 6
Операции с
векторами и матрицами
Объединение малых матриц в большую
Описанный ранее способ задания матриц позволяет выполнять операцию конкатенации – объединения малых матриц в большую. Например, создадим сначала магическую матрицу раз-мером 3х3.
>>A=magic(3)
A=
8 1 6
3 5 7
4 9 2
Теперь можно построить матрицу, содержащую четыре матрицы
>> B=[ A A+16; A+32 A+16]
B =
8 1 6 24 17 22
3 5 7 19 21 23
4 9 2 20 25 18
40 33 38 24 17 22
35 37 39 19 21 23
36 41 34 20 25 18
Полученная матрица имеет уже размер 6х6. Однако, магической она уже не будет.
Удаление столбцов и строк матриц
При формировании матриц и выполнения ряда матричных операций возникает необходи-мость удаления отдельных столбцов и строк матрицы. Для этого используются пустые квадрат-ные скобки [ ]. Проделаем это над матрицей М
>> М=[1 2 3; 4 5 6; 7 8 9]
M =
1 2 3
4 5 6
7 8 9
Удалим второй столбец, используя оператор : (двоеточие)
>>M(:, 2)=[]
M =
1 3
4 6
7 9
А теперь, используя оператор : (двоеточие), удалим вторую строку
>>M(2,:)=[]
M =
1 3
7 9
Cоздание матриц с заданными свойствами
Для создания единичной матрицы (по диагонали такой матрицы расположены единицы, а остальные элементы – нули) служит функция eye:
eye(n) – возвращает единичнцю матрицу размером n x n;
eye(m, n) или eye([m. n]) – возвращает матрицу размером m x n с единицами по диаго-нали и нулями в остальных ячейках;
eye(size(A)) – возвращает единичную матрицу того же размера, что и А;
Пример использования функции eye:
>> t=eye(4,5)
t =
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
Для создания матриц, все элементы которых – единицы, используется функция ones:
ones(n) – возвращает матрицу размером n x n, все элементы которой – единицы;
ones(m, n) или ones([m.n]) – возвращает матрицу размером m x n, состоящую из единиц;
ones(size(A)) – возвращает массив единиц такой же размерности, что и А.
Например,
>> S=ones(3, 4)
S =
1 1 1 1
1 1 1 1
1 1 1 1
Иногда нужны матрицы, все элементы которых – нули. Следующая функция обеспечи-вает создание таких матриц:
zeros(n) – матрица n x n, содержащая нули;
zeros(m, n) или zeros([m.n]) – матрица m x n, состоящая из нулей;
zeros(size(A)) – массив того же размера содержащий нули, что и А.
Например,
>> D=zeros(3,2)
D =
0 0
0 0
0 0
Cвойства матриц сильно зависят от их диагональных элементов. Следующая функция MATLAB позволяет создавать специальные типы матриц с заданными диагональными элементами.
X=diag(v, k) – для вектора v, состоящего из n компонентов, возвращает квадратную матрицу Х порядка n+abc(k) с элементами v на k-той диагонали, при k=0 – это главная диагональ, при k>0 – одна из верхних диагоналей, при k<0 – одна из нижних диагона-лей. Остальные элементы матрицы – нули;
X=diag(v) помещает вектор v на главную диагональ (то же, что и предыдущем случае при k=0);
v=diag(X, k) для матрицы Х возвращает вектор-столбец, состоящий из элементов k-той диагонали матрицы Х;
v=diag(X) возвращает главную диагональ матрицы Х (то же, что и предыдущем случае при k=0).
Примеры:
>> v=[2, 3]
v =
2 3
>>x=diag(v, 2)
x =
0 0 2 0
0 0 0 3
0 0 0 0
0 0 0 0
>>x=[2, 5, 45, 6; 3, 5, 4, 9; 7, 9, 4, 8; 5, 66, 45, 2]
x =
2 5 45 6
3 5 4 9
7 9 4 8
5 66 45 2
>>v=diag(x, 0)
v =
2
5
4
2
