- •Основные понятия Matlab
- •ВЫЧИСЛЕНИЯ
- •Особенности ввода команд и данных
- •Элементы данных в ML
- •Переменные в ML
- •Выражения
- •ОПЕРАЦИИ
- •Простейшие арифметические операции (АО)
- •Операции отношения
- •Логические операции
- •Приоритет элементарных операций в ML
- •Основные математические функции MatLab
- •Ввод и вывод информации. Операторы ввода/вывода
- •<имя переменной>= input(<текст>)
- •Для этого используют несколько способов.
- •disp(strcat('x=', num2str(x)))
- •y=sprintf('x=%3.1f ', x)
- •%[флаг][ширина поля вывода][точность] тип (спецификатор) формата
- •x=<значение>; y=<значение>; z=<значение>;
- •>> sprintf('x=%4.2f; y=%5.3f; z=%d;',x,y,z)
- •Условный оператор
- •МНОЖЕСТВЕННЫЙ ВЫБОР
- •Определенные циклы
- •Неопределенные циклы
- •ЗАДАНИЕ И ОБРАБОТКА ВЕКТОРОВ И МАТРИЦ
- •Способы задания векторов
- •<имя пер.>=[<значение1> <значение2> ….<значениеN>]
- •<имя пер.>=<нач. значение>:<шаг>:<конечное значение>
- •linspace (<нач. значение>,<кон. значение>,<кол. значений>)
- •Задание матриц
- •Операции
- •Операции над векторами – то же самое
- •Поэлементные операции
- •ОСОБЫЕ МАТРИЦЫ
- •Матрица случайных чисел:
- •Автоматическое заполнение матриц. Формирование матрицы блоками
- •>> X=[eye(4), 3*ones(4); 5*ones(4),9*eye(4)]
- •Дополнительно из задач
- •Применение функций обработки данных к векторам и матрицам
- •>> help datafun
- •Функции для векторов
- •Для матриц
- •Сумма элементов в столбцах матрицы:
- •Сумма элементов в строках матрицы:
- •Сумма элементов вектора:
- •Получение из матрицы вектора
- •Произведение элементов матрицы по столбцам:
- •Произведение элементов матрицы по строкам:
- •Максимальное значение в каждом столбце:
- •Максимальное значение в каждой строке:
- •Максимум во всей матрице
- •Наименьшее значение:
- •Среднее значение
- •Среднее арифметическое в столбцах. Результат – вектор-строка из средних арифметических в каждом столбце:
- •В строках
- •Сортировка.
- •по убыванию:
- •по убыванию
- •’’Зеркальное’’ отображение матрицы относительно вертикальной оси:
- •’’Зеркальное’’ отображение матрицы относительно горизонтальной оси:
- •Примеры использования
- •среднего и суммы:
- •Для матрицы:
- •Найти наибольшее значение среди элементов <8
- •Для матрицы
- •Сумму элементов побочной диагонали
- •Сумму элементов главной диагонали
- •Нормы матрицы
- •>> max_stolb=max(sum(abs(В)))
- •Найти среднее арифметическое в каждом столбце
- •Пр. Удалить максимальный элемент в векторе
- •Пр. Вставить значение 100 в вектор после элемента с номером k=3
- •Пр. В матрице поменять местами столбцы с минимальным и максимальным элементами.
- •[m_min,jmin]=min(min(b));
- •[m_max,jmax]=max(max(b));
- •buf=b(:, jmin);
- •Пр. Поменять порядок следования элементов в векторе
- •Еще полезные функции all, any и find и их использование
- •Для вектора
- •Получить индексы элементов, равных 2
- •Графика ML
- •Построение простейших графиков функций одной переменной Графики параметрических и кусочно-заданных функций
- •Plot(x, y, ‘<тип маркера, обозначение цвета и тип линий>’)
- •Отображение нескольких кривых на одном графике (в одних осях)
- •hold off
- •Вывод нескольких графиков в одном графическом окне
- •subplot(m, n, p),
- •Изменение масштаба графика
- •Диаграммы
- •Трехмерные графики
- •Т=-2:0.01:2; % задали вектор значений аргумента
- •Построение поверхности в 3-мерном пространстве
- •% Поверхность z=f(x,y)
- •Решение типовых математических задач
- •Файлы функций
- •function [рез.1, рез.2…рез.N] = <имя функции> (пар.1, пар.2,…пар.N)
- •[y1, y2,…,yn]=<имя функции>(<список вх. факт. параметров>)
- •<имя функции>(<список входных фактических параметров>)
- •function <имя функции> (пар.1, пар.2,…пар.n)
- •Отличия файла-функции от скрипт-файла
- •Примеры
- •function y=mysin(x)
- •Пример функции с 3 выходными параметрами
- •Использование функций для задач вычислительной математики
- •Построение графика функций
- •Действия с полиномами (многочленами)
- •Решение системы линейных уравнений.
- •Численное интегрирование
- •[i, n]=quadl (fun, a, b, tol, trace),
- •Решение уравнений
- •Нахождение минимума функции на заданном отрезке
- •Функция eval
- •Файл меню
- •while k~=6
- •Символьные вычисления в ML
- •Преобразование символьных выражений
- •Построение графиков символьных функций
- •Решение уравнений и систем
- •Решение дифференциальных уравнений и систем
- •Вычисление пределов
- •Определение производной
- •Вычисление интеграла
= |
2 |
1 |
3 |
|
|
6 |
5 |
4 |
9 |
8 |
7 |
Разворот матрицы на 90°
Эта функция разворачивает матрицу на 90° против часовой стрелки:
>> |
|
|
rot90(A) |
|
|
ans = |
|
|
3 |
6 |
9 |
2 |
5 |
8 |
1 |
4 |
7 |
’’Зеркальное’’ отображение матрицы относительно вертикальной оси:
>>
fliplr(A)
3 2 1 ans =
6 5 4
9 8 7
’’Зеркальное’’ отображение матрицы относительно горизонтальной оси:
>>
flipud(A)
ans =
7 |
8 |
9 |
4 |
5 |
6 |
1 |
2 |
3 |
Примеры использования
При обработке векторов удобно использовать возможность выборки из
вектора значений, отвечающим некоторому условию.
Например,
получить все отрицательные значения вектора.
>>X=[3 -4 5 -6 3 9 -5];
>>Y = X(X<0) % Рез-т – массив, в скобках – условие отбора
55
эл-тов Y =
-4 -6 -5
Сформировать массив из значений вектора из диапазона n, m.
>>X(X>=n && X <=m)
А теперь посмотрим, как применить такую конструкцию для нахождения
среднего и суммы:
>> sum(X(X<0))
ans =
-15
Если записать
>> sum(X<0)
будет найдено количество положительных значений в
векторе ans=
4
Для матрицы:
>>sum(А(А<6)) – суммы по столбцам эл-тов матрицы <6
>>sum(А<6) – количество эл-тов матрицы <6 в каждом столбце
>>sum(А<6, 2) – количество эл-тов матрицы <6 в каждой строке
>>N=[1 -2 -4;5 9 -1; 3 5
7] N = |
|
|
|
|
|
|
|
|
|
|
|
1 |
-2 |
-4 |
|||
|
|
|
|
|
|
5 |
9 |
-1 |
|
||
|
|
|
|
|
|
3 |
5 |
7 |
|
|
>> sum(N<0) % Будет найдено количество отрицательных значений в
каждом столбце
ans = |
|
|
0 |
1 |
2 |
>> sum(N<0,2) % Будет найдено количество отрицательных значений в каждой строке
56
ans =
2
1
0
>> mean(X(X<0))
ans =
-5
Сумма элементов, не принадлежащих диапазону
>> sum(X(X<=n || X >=m))
Найти наибольшее значение среди элементов <8
>> max(X(X<8))
a
n
s
=
5
Для матрицы
>> В=[1 2 3; -4 8 -3; 9 -1 -
2] В = |
|
|
1 |
2 |
3 |
-4 |
8 |
-3 |
9 |
-1 |
-2 |
Получить все элементы матрицы > p
>> p=6; В(В>p)
ans = % вектор значений в порядке следования по столбцам 9
8
Среднее значение всех положительных элементов матрицы
>> mean(В(В>0))
ans =
4.6000
57
Сумму элементов побочной диагонали
<<sum(diag(fliplr(В)))
Сумму элементов главной диагонали
<<sum(diag((В)))
Нормы матрицы
Сформируем матрицу заполнением случайными числами:
>> В=round(10*rand(4))-8*ones(4)
В |
|
|
|
|
-7 |
0 |
- |
= |
|
|
6 |
1 |
|
|
|
2 |
-5 |
- |
- |
|
|
6 |
5 |
- |
0 |
1 |
- |
3 |
|
|
2 |
- |
-5 |
- |
- |
75 3
Вматематике норма матрицы может быть вычислена по разным формулам:
>> sum( |
abs(В |
)) |
% |
сумма модулей |
в столбцах |
ans =
13 17 12 16
>> max_stolb=max(sum(abs(В)))
max_st olb = 17
Найдем наибольшую сумму модулей элементов в строках
n
матрицы
max_ 2 max | bij |
ij 1
>>sum(abs(В),2) % сумма модулей в строках
a
n
58