Matlab abs функция
Стандартные функции Matlab
Все операции в Matlab ориентированы прежде всего на работу с матрицами, но могут выть использованы при работе с векторами и скалярными переменными.
Элементарные функции Matlab. К ним относятся следующие функции:
sin(x) sinh(x) asin(x) asinh(x)
cos(x) cosh(x) acos(x) acosh(x)
tan(x) tanh(x) atan(x) atan2(x,y) atanh(x)
cot(x) coth(x) acot(x) acoth(x)
exp(x) log(x) log10(x) log2(x) pow2(x) sqrt(x)
Функции комплексного аргумента:
abs(z) – модуль комплексного числа; angle(z) – аргумент;
complex(x, y) – формирование комплексного числа x+y*i;
conj(z) – возвращает комплексно-сопряженное (по отношению к z) число;
real(z) – возвращает действительную часть; imag(z) – мнимую часть.
Функции округления и нецелочисленного деления:
fix(x) – округление в сторону к нулю, floor(x) – к –¥, ceil(x) – к +¥,
round(x) – до ближайшего целого;
mod(x, y) – остаток от деления x/y с учетом знака,
rem(x, y) – то же, без учета знака;
sign(x) – знак числа (+1/–1).
Элементарные функции, как и всякие другие, имеют один результат (массив). Элементарные функции могут быть использованы с одинаковым синтаксисом как для чисел, так и для массивов.
Пример 1. Разный тип параметров
» x=-8; X=[5 -1 -2]; A=[1 2 -3; -5 6 7]; z=3-4i;
Различают матричные и поэлементные арифметические операции.
+ – уточнение знака (унарная), сложение;
– – изменение знака (унарная), вычитание;
Поскольку математический смысл операций матричного и поэлементного сложения и вычитания идентичен:
C = A ± B означает
синтаксис матричных и поэлементных операций сложения и вычитания одинаков, в них используются одни и те же символы операций.
* – скалярное матричное умножение;
^ – матричное возведение в степень;
.^ – поэлементное возведение в степень;
– матричное деление слева;
/ – матричное деление справа;
.’ – несопряженное транспонирование (унарная).
Все арифметические операции, за исключением указанных, являются бинарными.
В операциях +, –, .*, ./ и .^ либо оба операнда должны иметь одинаковую размерность, либо один из операндов должен быть скалярной величиной.
» A=[1 2 3; 4 5 6]; B=[7 8 9; 3 2 1];
7.0000 4.0000 3.0000
0.7500 0.4000 0.1667
0.7000 0.8000 0.9000
0.3000 0.2000 0.1000
Для операции * (матричное произведение) матрица-сомножитель2 должна иметь столько строк, сколько столбцов имеет матрица-сомножитель1:
![]() |
Inner matrix dimensions must agree.
Операции транспонирования ‘ и .’ для матриц с действительными коэффициентами абсолютно равнозначны:
Для комплексных чисел и матриц с комплексными коэффициентами операция ‘ дает транспонированную сопряженную матрицу, а операция .’ – транспонированную несопряженную:
» Ac=[1+2i 1+3i 1+4i; 2+3i 2+4i 2+5i];
1.0000 — 2.0000i 2.0000 — 3.0000i
1.0000 — 3.0000i 2.0000 — 4.0000i
1.0000 — 4.0000i 2.0000 — 5.0000i
1.0000 + 2.0000i 2.0000 + 3.0000i
1.0000 + 3.0000i 2.0000 + 4.0000i
1.0000 + 4.0000i 2.0000 + 5.0000i
Операция ^ (матричное возведение в степень) выполняется только для квадратных матриц, и означает умножение матрицы саму на себя заданное число раз (второй операнд обязательно скаляр):
-0.9100 — 3.5442i 0.4163 + 1.6212i
0.6244 + 2.4318i -0.2856 — 1.1124i
генерирует обратную матрицу D -1 .
Операция X/Y эквивалентна X*Y -1 , операция XY – операции X -1 *Y.
Последняя операция широко используется при решении систем линейных уравнений вида
Действительно, представив систему уравнений в матричной форме:
и умножив обе части последнего уравнения на A -1 слева, получим:
A -1 * A * X = A -1 * B,
откуда решение системы уравнений:
Пример. Решить систему уравнений
Решение сводится к набору в интерактивном режиме следующих команд:
Проверку вычисления корней можно выполнить следующим образом:
| – логическое «или» (0|0 – 0, 1|0 – 1, 0|1 – 1, 1|1 – 1);
xor – логическое исключающее «или» (0xor0 – 0, 0xor1 – 1, 1xor0 – 1, 1xor1 – 0);
Если логические операции (а также логические функции) выполняются над действительными числами, то ложью считают число нуль, а истиной – все числа, не равные нулю.
Операции отношения (сравнения)
> – больше; >= – больше или равно; 1
» A=[1 8 3; 6 2 5]; B=[4 3 1; 2 6 8];
» A d 0 , 10 dk ]. Шаг по показателю степени hd= . Отношение двух соседних элементов есть величина постоянная
=10 hd .
10 100 1000 10000
1.0000 2.0000 3.0000 4.0000
zeros – матрица, состоящая из нулей; ones – матрица, состоящая из единиц;
rand – матрица, состоящая из случ. чисел с равномерным распределением;
randn – матрица, состоящая из случ. Чисел с нормальным распределением.
zeros(n) – формирует квадратную матрицу n´n, состоящую из нулей;
zeros(m, n) – формирует матрицу m´n, состоящую из нулей;
(zeros(1, n) – вектор-строка; zeros(m, 1) – вектор-столбец)
zeros(size(A)) – формирует матрицу, состоящую из нулей, той же размерности, что и матрица A.
Формат обращения к функциям ones, rand и randn аналогичный.
Разницу между функциями rand и randn можно показать графически:
» xr=rand(1,100); xrs=sort(xr); bar(xrs)
» yr=randn(1,100); yrs=sort(yr); bar(yrs)
eye(n) – формирует единичную диагональную матрицу n´n.
diag(B) (B – двухмерная матрица) – выделяет главную диагональ матрицы B и помещает ее в вектор-столбец;
diag(x) (x – вектор) – формирует диагональную матрицу, используя вектор x в качестве главной диагонали.
» A=[1 2 3; 4 5 6; 7 8 9];
Манипуляции с матрицами
tril (A) – формирует треугольную матрицу как нижнюю часть от матрицы A;
triu(A) – формирует треугольную матрицу как верхнюю часть от матрицы А.
» A=[1 2 3; 4 5 6; 7 8 9];
lu(A) – разложение Холецкого – заменяет квадратную матрицу A скалярным произведением двух треугольных матриц L и U методом Гаусса:
» A=[1 2 3; 4 5 6; 7 8 9];
0.5714 0.5000 1.0000
7.0000 8.0000 9.0000
inv(A) – возвращает матрицу A -1 , обратную заданной квадратной матрице A;
det(A) – возвращает определитель квадратной матрицы A.
fliplr(A) – поворот матрицы A на 180° в горизонтальном направлении;
flipud(A) – поворот матрицы A на 180° в вертикальном направлении;
rot90(A) – поворот матрицы A на 90° против часовой стрелки;
rot90(A, k) – поворот матрицы A на k*90° против часовой стрелки (k – целое число).
Манипуляции с векторами
cross(x, y) – векторное произведение векторов x и y в трехмерном пространстве;
cross(A, B, dim) – векторное произведение многомерных массивов A и B по размерности dim;
dot(x, y) – скалярное произведение векторов x и y;
dot(A, B, dim) – скал. произведение многомерных массивов A и B по размерности dim.
Длины векторов x и y, а также длина матриц A и B по размерности dim должны быть равны 3.
Базовые операции анализа
Пусть a,b,c – числа, х,у,z – векторы, А,В,C – матрицы.
c=max(a, b) – возвращает максимальное из двух чисел a и b (при комплексных аргументах по умолчанию сравниваются модули):
z=max(x, y) – вектор той же размерности, что x и y, составленный из максимальных элементов векторов;
C=max(A, B) – матрица той же размерности, что и , составленная из максимальных элементов матриц.
xmax=max(x) – максимальный элемент вектора x;
[xmax, imax]=max(x) – дополнительно записывает адрес максимального элемента в числовую переменную imax (если максимальных элементов несколько, возвращается адрес первого из них);
amax=max(A) – возвращает вектор-строку amax из максимальных элементов столбцов матрицы А;
[amax, imax]=max(A) – дополнительно формируется вектор-строка imax, составленный из номеров строк, в которых расположены максимальные элементы столбцов.
» a=1; b=2; x=[1 3 2]; y=[2 1 3]; A=[1 2 3; 4 5 6]; B=[3 2 1; 6 5 4];
Основные математические функции MatLab
MatLab содержит в себе все распространенные математические функции, которые доступны по их имени при реализации алгоритмов. Например, функция sqrt() позволяет вычислять квадрат числа и может быть использована в программе следующим образом:
x = 2;
y = 4;
d = sqrt(x^2+y^2); %вычисление евклидового расстояния
Аналогичным образом вызываются и все другие математические функции, представленные в табл. 1.2.
Таблица 1.2. Основные математические функции 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) | арккосинус |
atan(x) | арктангенс |
pi | число пи |
round(x) | округление до ближайшего целого |
fix(x) | усечение дробной части числа |
floor(x) | округление до меньшего целого |
ceil(x) | округление до большего целого |
mod(x) | остаток от деления с учётом знака |
sign(x) | знак числа |
factor(x) | разложение числа на простые множители |
isprime(x) | истинно, если число простое |
rand | генерация псевдослучайного числа с равномерным законом распределения |
randn | генерация псевдослучайного числа с нормальным законом распределения |
abs(x) | вычисление модуля числа |
Почти все элементарные функции допускают вычисления и с комплексными аргументами. Например:
res = sin(2+3i)*atan(4i)/(1 — 6i); % res = -1.8009 — 1.9190i
Ниже показан пример задания вектора с именем a, и содержащий значения 1, 2, 3, 4:
a = [1 2 3 4]; % вектор-строка
Для доступа к тому или иному элементу вектора используется следующая конструкция языка:
disp( a(1) ); % отображение значения 1-го элемента вектора
disp( a(2) ); % отображение значения 2-го элемента вектора
disp( a(3) ); % отображение значения 3-го элемента вектора
disp( a(4) ); % отображение значения 4-го элемента вектора
т.е. нужно указать имя вектора и в круглых скобках написать номер индекса элемента, с которым предполагается работать. Например, для изменения значения 2-го элемента массива на 10 достаточно записать
a(2) = 10; % изменение значения 2-го элемента на 10
Часто возникает необходимость определения общего числа элементов в векторе, т.е. определения его размера. Это можно сделать, воспользовавшись функцией length() следующим образом:
N = length(a); % (N=4) число элементов массива а
Если требуется задать вектор-столбец, то это можно сделать так
a = [1; 2; 3; 4]; % вектор-столбец
b = [1 2 3 4]’; % вектор-столбец
при этом доступ к элементам векторов осуществляется также как и для векторов-строк.
Следует отметить, что векторы можно составлять не только из отдельных чисел или переменных, но и из векторов. Например, следующий фрагмент программы показывает, как можно создавать один вектор на основе другого:
a = [1 2 3 4]; % начальный вектор a = [1 2 3 4]
b = [a 5 6]; % второй вектор b = [1 2 3 4 5 6]
Здесь вектор b состоит из шести элементов и создан на основе вектора а. Используя этот прием, можно осуществлять увеличение размера векторов в процессе работы программы:
a = [a 5]; % увеличение вектора а на один элемент
Недостатком описанного способа задания (инициализации) векторов является сложность определения векторов больших размеров, состоящих, например, из 100 или 1000 элементов. Чтобы решить данную задачу, в MatLab существуют функции инициализации векторов нулями, единицами или случайными значениями:
a1 = zeros(1, 100); % вектор-строка, 100 элементов с
% нулевыми значениями
a2 = zeros(100, 1); % вектор-столбец, 100 элементов с
% нулевыми значениями
a3 = ones(1, 1000); % вектор-строка, 1000 элементов с
% единичными значениями
a4 = ones(1000, 1); % вектор-столбец, 1000 элементов с
% единичными значениями
a5 = rand(1000, 1); % вектор-столбец, 1000 элементов со
% случайными значениями
Матрицы в MatLab задаются аналогично векторам с той лишь разницей, что указываются обе размерности. Приведем пример инициализации единичной матрицы размером 3х3:
E = [1 0 0; 0 1 0; 0 01]; % единичная матрица 3х3
E = [1 0 0
0 1 0
0 0 1]; % единичная матрица 3х3
Аналогичным образом можно задавать любые другие матрицы, а также использовать приведенные выше функции zeros(), ones() и rand(), например:
A1 = zeros(10,10); % нулевая матрица 10х10 элементов
A2 = zeros(10); % нулевая матрица 10х10 элементов
A3 = ones(5); % матрица 5х5, состоящая из единиц
A4 = rand(100); % матрица 100х100, из случайных чисел
Для доступа к элементам матрицы применяется такой же синтаксис как и для векторов, но с указанием строки и столбца где находится требуемый элемент:
A = [1 2 3;4 5 6;7 8 9]; % матрица 3х3
disp( A(2,1) ); % вывод на экран элемента, стоящего во
% второй строке первого столбца, т.е. 4
disp( A(1,2) ); % вывод на экран элемента, стоящего в
% первой строке второго столбца, т.е. 2
Также возможны операции выделения указанной части матрицы, например:
B1 = A(:,1); % B1 = [1; 4; 7] – выделение первого столбца
B2 = A(2,:); % B2 = [1 2 3] – выделение первой строки
B3 = A(1:2,2:3); % B3 = [2 3; 5 6] – выделение первых двух
% строк и 2-го и 3-го столбцов матрицы А.
Размерность любой матрицы или вектора в MatLab можно определить с помощью функции size(), которая возвращает число строк и столбцов переменной, указанной в качестве аргумента:
a = 5; % переменная а
A = [1 2 3]; % вектор-строка
B = [1 2 3; 4 5 6]; % матрица 2х3
size(a) % 1х1
size(A) % 1х3
size(B) % 2х3
Не нашли то, что искали? Воспользуйтесь поиском:
Лучшие изречения: На стипендию можно купить что-нибудь, но не больше. 9478 — | 7515 —
или читать все.
Арифметические операторы и функции MATLAB
Help specfun
Выделение подматрицы с 2-й по 5-ю строки и с 3-го по 5-й столбец
Транспонирование вектора
Транспонирование не квадратной матрицы
Транспонирование квадратной матрицы
Выделить 1,2,3 столбцы, строки переставить в указанном порядке
Переставить строки в указанном порядке
Переставить столбцы в указанном порядке
M(5)
Переприсваивание элемента M(2,2)
Действия со строками и столбцами
По формуле.
Функция eye(n), eye(m,n) возвращает единичную матрицу nxn или mxn
Hist(Y,100)
Plot(X,Y)
M %вывод на экран
%2 способ
Matr=[1:7;11:17;21:27;31:37]
%3 способ
функция magic(n) задает магическую матрицу nxn все ее элементы не превышают n^2;
суммы всех элементов столбцов, строк, диагонали равны 34 (для n=4);
M1=magic(4)
%4 способ
функции создания массивов со случайными элементами rand: rand(n) rand(m,n)генерируют матрицу (nxn)или(mxn) с элементами, распределенными по равномерному закону в промежутке (0,1);
YR=rand(4,3)
проверить равномерность распределения случайных чисел можно, построив большое число точек со случайными координатами;
X=rand(1000,1);
Y=rand(1000,1);
функция randn(n), randn(mxn) генерируют матрицу nxn (mxn) с элементами, распределенными по нормальному закону с мат. Ожиданием = 0 и ср. кв. отклонением = 1;
YN=randn(4,3)
для проверки распределения построим гистограмму;
Y=randn(1000,1);
строится гистограмма из 100 столбцов для 1000 случайных чисел с нормальным законом распределения;
Y1=randn(4,3)*10 %все элементы умножаются на 10;
a=3; b=20; %интервал [a;b]
Y2=rand(4,3)*(b-a)+a
%генерируется матрица (4×3)с числами в интервале [20;3];
%5 способ
t=eye(3)
t2=eye(4,3)
%6 способ
функция ones(n), ones(m,n) возвращает матрицу nxn или mxn, все элементы которой единицы;
H=ones(3,4)
%7 способ
функция zeros(n), zeros(m,n) возвращает матрицу nxn или mxn, все элементы которой нули;
D=zeros(3,2)
%8 способ
M1=magic(4)
M(2,2)=10
Выражение M(i) дает доступ к элементам матрицы, развернутым в один столбец
A=[ -5 3 -2 -9 -1; 0 -1 2 4 3;2 3 7 6 2;1 5 -4 3 -4; 2 6 -5 -8 3]
B=A(:,[4,1,2,5,3])
B=A([2,5,1,4,3],:)
B=A([2,5,1,4,3],1:3)
M=[1 2 3 4;4 5 6 7;7 8 9 1;2 4 6 8]
MT=M’
M2=[1 2 3 4;4 5 6 7;7 8 9 1]
MT2=M2′
N=[1 4 3 6]
NT=N’
%выделение подматрицы:
B=magic(6)
B(1:2,:) %первые две строки, все столбцы;
B(1:2,:)=0 %обнулить первые две строки
Выделение столбцов со 2-го по 5-й, 6 строк:
C1=B(:,2:5)
C2=B(2:5,3:5)
Выделение подматрицы с 1-й по 3-ю строки и с 2-го по последний столбец;
C3=B(1:3,2:end)
%Удаление столбцов и строк матрицы
B=magic(5)
B(:,2)=[] %Удалим 2-й столбец
B(2,:)=[] %Удалим 2-ю строку
Помощь:
help elfun – вывести список всех элементарных математических функций.
help elmat – вывод более сложных математических и матричных функций.
Таблица 1. Арифметические операции
Название Оператор | Синтаксис |
Плюс + | М1+М2 |
Унарный плюс + | +М |
Минус — | М1-М2 |
Унарный минус — | -М |
Матричное умножение * | М1*М2 |
Поэлементное умножение массивов .* | А1*А2 |
Возведение матрицы в степень ^ | М1^х |
Поэлементное возведение массива в степень .^ | А1.^х |
Обратное (справа налево) деление матриц | M1M2 |
Деление матриц слева направо / | М1/М2 |
Поэлементное деление массивов справа налево . | А1.А2 |
Поэлементное деление массивов слева направо ./ | А1./А2 |
Транспонирование матрицы A’ |
Система MATLAB работает как с действительными, так и с комплексными числами.
Таблица 2. Элементарные алгебраические функции
Функция | Описание |
abs(x), | Вычисление абсолютного значения действительного числа x. |
sqrt(x) | Вычисление квадратного корня |
round(x) | Округление до целого. |
fix(x) | Округление до ближайшего целого в сторону нуля. |
floor(x) | Округляет до меньшего целого |
ceil(x) | Округляет до большого целого |
rem(x, y) | Вычисление остатка от деления x на y. |
exp(x) | Вычисление е в степени x. |
log(x) | Вычисление натурального логарифма числа x. |
log10(x) | Вычисление десятичного логарифма числа x. |
factorial(x) | Вычисляет факториал числа х |
pow2(x) | Возводит двойку в степень х |
pi | Выдает число пи |
lcm(x,y,z) gcd(x,y,z) | наименьшее общее кратное, наибольший общий делитель |
Функция | Описание |
abs(x), | Вычисление абсолютного значения действительного числа x. |
sqrt(x) | Вычисление квадратного корня |
round(x) | Округление до целого. |
fix(x) | Округление до ближайшего целого в сторону нуля. |
floor(x) | Округляет до меньшего целого |
ceil(x) | Округляет до большого целого |
mod(x,y) | остаток от деления нацело с учетом знака |
rem(x, y) | Вычисление остатка от деления x на y. |
exp(x) | Вычисление е в степени x. |
log(x) | Вычисление натурального логарифма числа x. |
log2(x) | Вычисление логарифма по основанию 2 |
log10(x) | Вычисление логарифма по основанию 10 |
factorial(x) | Вычисляет факториал числа х |
pow2(x) | Возводит двойку в степень х |
pi | Выдает число пи |
lcm(x,y,z) gcd(x,y,z) | наименьшее общее кратное, наибольший общий делитель |
MATLAB предоставляет возможности для вычисления следующих тригонометрических и обратных тригонометрических функций переменной x (табл.3).
Таблица 3. Тригонометрическиe функции
Функция | Описание |
sin(x) | Вычисление синуса |
cos(x) | Вычисление косинуса |
tan(x) | Вычисление тангенса |
asin(x) | Вычисление арксинуса |
acos(x) | Вычисление арккосинуса |
atan(x) | Вычисление арктангенса |
atan2(y, x) | Вычисление арктангенса по координатам точки |
ПРИМЕРЫ:
Дата добавления: 2014-11-18 ; Просмотров: 1749 ; Нарушение авторских прав?
Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет
Справочные материалы по встроенным функциям MATLAB
Как организовать дистанционное обучение во время карантина?
Помогает проект «Инфоурок»
Для более детального описания функций, рекомендуем пользоваться системой помощи пакета MATLAB. Для вызова справки в командном окне пакета наберите: >>help имя функции .
Таблица 1. Описание математических операций
правое поэлементное деление
левое поэлементное деление
правое матричное деление
левое матричное деление
поэлементное возведение в степень
матричное возведение в степень
меньше или равно
больше или равно
ссылка по индексу
присваивание по индексу
Таблица 2. Обозначения системных переменных MATLAB
мнимая единица ( )
число (3.14159265)
погрешность для операций над числами с плавающей точкой (по умолчанию 2 -52 )
минимальное значение вещественного числа (2 -1022 )
максимальное значение вещественного числа (2 -1023 )
бесконечность ( )
неопределенность (например, )
переменная, хранящая результат последней операции
Таблица 3. Функции комплексных переменных
абсолютное значение комплексного числа
мнимая часть комплексного числа
действительная часть комплексного числа
аргумент комплексного числа
«истина», если число действительное
Таблица 4. Стандартные функции вещественного аргумента
отбрасывание дробной части числа
округление до меньшего целого
округление до большего целого
остаток от деления x на y без учета знака
остаток от деления x на y с учетом знака
разложение числа x на простые множители
преобразование декартовых координат в сферические
преобразование декартовых координат в полярные
преобразование полярных координат в декартовы
наибольший общий делитель
наименьшее общее кратное
обобщенная функция Лежандра
логарифм по основанию 2
возведение числа 2 в степень n
представление числа в виде рациональной дроби
формирование списка простых чисел
вычисляет число перестановок
вычисляет количество сочетаний из n пo k
Бесплатный
Дистанционный конкурс «Стоп коронавирус»
- Бексейтова Айнур БолатбековнаНаписать 278 26.02.2017
Номер материала: ДБ-228436
Добавляйте авторские материалы и получите призы от Инфоурок
Еженедельный призовой фонд 100 000 Р
- 26.02.2017 1491
- 26.02.2017 1284
- 26.02.2017 209
- 26.02.2017 218
- 26.02.2017 1149
- 26.02.2017 180
Не нашли то что искали?
Вам будут интересны эти курсы:
Все материалы, размещенные на сайте, созданы авторами сайта либо размещены пользователями сайта и представлены на сайте исключительно для ознакомления. Авторские права на материалы принадлежат их законным авторам. Частичное или полное копирование материалов сайта без письменного разрешения администрации сайта запрещено! Мнение редакции может не совпадать с точкой зрения авторов.
Ответственность за разрешение любых спорных моментов, касающихся самих материалов и их содержания, берут на себя пользователи, разместившие материал на сайте. Однако редакция сайта готова оказать всяческую поддержку в решении любых вопросов связанных с работой и содержанием сайта. Если Вы заметили, что на данном сайте незаконно используются материалы, сообщите об этом администрации сайта через форму обратной связи.