
- •Основные понятия 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
- •Преобразование символьных выражений
- •Построение графиков символьных функций
- •Решение уравнений и систем
- •Решение дифференциальных уравнений и систем
- •Вычисление пределов
- •Определение производной
- •Вычисление интеграла

ОПЕРАЦИИ
С числовыми данными в ML можно выполнять обычные арифметические операции и вычислять значения функций.
Простейшие арифметические операции (АО)
На текущий момент не учитываем матричные операции.
К арифметическим операциям в ML относятся: cложение (+), вычитание (-), умножение (*), деление (/), возведение в степень (^) (это не все операции). Приоритеты АО:
возведение в степень;
умножение, деление;
сложение, вычитание.
Все арифметические операции являются “матричными” и осуществляются по
правилам линейной алгебры. |
|
Вычислить: |
|
>> |
60/20+3^2*10 |
ans |
= |
93 |
|
|
Операции отношения |
К операциям отношения в ML относятся: равно (= =), не равно (~ =), меньше (<), меньше или равно (<=), больше (>), больше или равно (>=).
Операции отношения используются для сравнения двух операндов (пока рассматриваем только числа). Результатом операции отношения может быть соответственно число 1- «истина» или 0 - «ложь».
>>x=1; |
|
>> |
y=8; |
>> |
x>y |
ans |
= |
0 |
|
|
Логические операции |
В ML существует возможность построения логических выражений с помощью логических операторов и логических операций. Логические операции предназначены для выполнения поэлементных логических операций над векторами и матрицами одинаковых размеров. К логическим операциям относятся логическое И (&), логическое ИЛИ (|), логическое НЕ ( ).
Как и в операциях отношения, результатом логических операций являются значения 0 (ложь) или 1 (истина).
Вместо логических операций можно пользоваться логическими операторами
8

(функциями) and, or, not соответственно. Логические операторы определены над матрицами одинаковой размерности и выполняются над каждым из элементов. Используя логические операции И, ИЛИ, НЕ, можно создавать разнообразные составные условия. Например, можно сделать проверку, что переменная x попадает в диапазон от -5 до 5, но не принадлежит диапазону от 0 до 1. 11
>>x=1;
>> x >= -5 & x <= 5 & (x < 0 | x > 1) ans =
0
>>x = -3;
>> x >= -5 & x <= 5 & (x < 0 | x > 1) ans =
1
В составном условии использованы круглые скобки. Дело в том, что приоритет операции И выше приоритета операции ИЛИ, и если бы не было круглых скобок, то порядок действий в выражении был бы другой. Выражение выглядело бы так: x >= -5 и x <= 5 и x < 0 или x > 1. Сначала выполнится операция И, затем ИЛИ. Очевидно, что получился бы другой результат.
Круглые скобки в выражении используются для изменения порядка выполнения операций.
Приоритет элементарных операций в ML
Пока перечислим приоритеты операций над числовыми данными. Приоритет операций определяет порядок действий в выражении. Его можно изменять с помощью круглых скобок. Далее представлены операции в порядке убывания приоритета:
1)логическая операция НЕ ( );
2)возведение в степень( ^);
3)унарный плюс (+), унарный минус (-);
4)умножение и деление( *, /);
5)сложение и вычитание (+, -);
6)операции отношения (, <=, >=, ==, =);
7)логическая операция И (&);
8)логическая операция ИЛИ (|).
Основные математические функции MatLab
ML существует большое количество элементарных математических функций для
выполнения |
действий |
с |
числами: |
тригонометрические, |
степенные, |
логарифмические, экспоненциальные и функции округления. Каждая функция
обладает именем и списком аргументов, которые задаются в круглых скобках и,
если их несколько, перечисляются через запятую.
9

Существуют встроенные тригонометрические и гиперболические функции: sin(x), cos(x), tan(x), cot(x), asin(x), acos(x), atan(x), acot(x), sinh(x) и т.д. Аргументы этих функций (в следующих версиях, начиная с версии 7.0) могут задаваться в радианах и градусах. У функций в градусной мере после названия добавляется буква d. sin(x) – аргумент в радианах, а sind(x) – аргумент в градусах.
Некоторые часто используемые математические функции:
exp(x) –экспонента числа x;
log(x) – натуральный логарифм;
log10(x) – десятичный логарифм;
sqrt(x) – квадратный корень;
abs(x) – абсолютное значение x;
mod(x, y) – остаток от целочисленного деления с учетом знака;
rem(x, y) – остаток от целочисленного деления без учета знака;
real(z) – вещественная часть комплексного числа;
imag(z) – мнимая часть комплексного числа;
round(x) – округление до ближайшего целого.
Более полный список основных математических функций MatLab:
sqrt(x) |
вычисление квадратного корня |
exp(x) |
возведение в степень числа e |
pow2(x) |
возведение в степень числа 2 |
log(x) |
вычисление натурального логарифма |
log10(x) |
вычисление десятичного логарифма |
log2(x) |
вычисление логарифма по основанию 2 |
sin(x) |
синус угла x, заданного в радианах |
cos(x) |
косинус угла x, заданного в радианах |
tan(x) |
тангенс угла x, заданного в радианах |
cot(x) |
котангенс угла x, заданного в радианах |
asin(x) |
арксинус |
acos(x) |
арккосинус |
|
|
10

atan(x) |
арктангенс |
pi |
число пи |
round(x) |
округление до ближайшего целого |
fix(x) |
усечение дробной части числа |
floor(x) |
округление до меньшего целого |
ceil(x) |
округление до большего целого |
mod(x,y) |
остаток от деления с учётом знака |
sign(x) |
знак числа |
factor(x) |
разложение числа на простые множители |
isprime(x) |
истинно, если число простое |
rand |
генерация псевдослучайного числа с рав- |
|
номерным законом распределения |
randn |
генерация псевдослучайного числа с нор- |
|
мальным законом распределения |
|
|
abs(x) |
вычисление модуля числа |
С использованием вышеупомянутых функций, записать и сосчитать значение арифметического выражения:
3cos 2 x3 sin(x )
Вычислить: res= 3 .106 ln/ y/ e x 1
2x
Составление арифметического выражения лучше всего начинать с расстановки основных скобок выражения. Причем открытую скобку следует сразу закрывать и продолжать набор формулы внутри скобок. В этом случае число открывающих скобок будет равно числу закрывающих, и вероятность ошибки будет минимальной.
Если в выражении многократно встречаются одинаковые фрагменты, то их целесообразно вычислять 1 раз и результат помещать в отдельные переменные.
Это позволяет избежать одинаковых вычислений и тем самым оптимизирует вычисления.
x=0.5;
y=1;
res=(3*cos(x^3)^2-sin(x-pi/3))/(log(abs(y))+exp (sqrt (x+1))/(2*x))*1E6 res =
11