Основные математические функции MatLab
В ML существует большое количество элементарных математических функций для выполнения действий с числами: тригонометрические, степенные, логарифмические, экспоненциальные и функции округления. Каждая функция обладает именем и списком аргументов, которые задаются в круглых скобках и, если их несколько, перечисляются через запятую.
Существуют встроенные тригонометрические и гиперболические функции: 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) | арккосинус |
atan(x) | арктангенс |
pi | число пи |
round(x) | округление до ближайшего целого |
fix(x) | усечение дробной части числа |
floor(x) | округление до меньшего целого |
ceil(x) | округление до большего целого |
mod(x,y) | остаток от деления с учётом знака |
sign(x) | знак числа |
factor(x) | разложение числа на простые множители |
isprime(x) | истинно, если число простое |
rand | генерация псевдослучайного числа с равномерным законом распределения |
randn | генерация псевдослучайного числа с нормальным законом распределения |
abs(x) | вычисление модуля числа |
С использованием вышеупомянутых функций, записать и сосчитать значение арифметического выражения:
Вычислить: res=
Составление арифметического выражения лучше всего начинать с расстановки основных скобок выражения. Причем открытую скобку следует сразу закрывать и продолжать набор формулы внутри скобок. В этом случае число открывающих скобок будет равно числу закрывающих, и вероятность ошибки будет минимальной.
Если в выражении многократно встречаются одинаковые фрагменты, то их целесообразно вычислять 1 раз и результат помещать в отдельные переменные. Это позволяет избежать одинаковых вычислений и тем самым оптимизирует вычисления.
res=(3*cos(x^3)^2-sin(x-pi/3))/(log(abs(y))+exp (sqrt (x+1))/(2*x))*1E6
Для эффективной работы с большими наборами данных или при необходимости многократных вычислений рассмотренных средств недостаточно. В ML существует возможность записать последовательность команд в файл, сохранить его, дать ему имя и выполнить, набрав в командной строке имя файла. Это можно сделать во встроенном редакторе системы. Такие файлы называются файлами-сценариями или скрипт-файлами. При сохранении они автоматически получают расширение системы – m.
Файлы-программы (их называют скриптами или сценариями) являются самым простым типом m-файлов. Script-файл состоит из последовательности команд, не содержит заголовка, а также входных и выходных параметров. Все объекты, используемые внутри script-файла, считаются глобальными. Если в рабочем пространстве есть данные, то внутри script-файла их можно использовать, а по окончании его выполнения использовать данные, созданные с его помощью. Такие файлы используются для автоматизации выполнения большого набора инструкций. Их текст набирают в окне встроенного редактора ML.
Для выполнения файла-программы достаточно в командной строке указать имя этого скрипта. Перед запуском программы на выполнение необходимо установить нужный каталог в качестве текущего. Запуск файла на выполнение можно осуществить двумя способами: из окна редактора и из командного окна.
Для запуска программы на выполнение из окна редактора надо выбрать пункт меню Debug, Run или нажать функциональную клавишу F5, или выбрать соответствующую пиктограмму на панели инструментов. Выполнить программу, уже сохраненную на диске, можно из командного окна ML, просто набрав имя файла без расширения.
Дата добавления: 2016-04-02 ; просмотров: 5525 ; ЗАКАЗАТЬ НАПИСАНИЕ РАБОТЫ
Документация
Синтаксис
Описание
Если вы хотите, чтобы отрицательные и комплексные числа возвратили сообщения об ошибке, а не возвратили комплексные результаты, использовать reallog вместо этого.
Примеры
Натуральный логарифм отрицательного числа
Входные параметры
X — Входной массив
скаляр | вектор | матрица | многомерный массив
Входной массив, заданный как скалярный, векторный, матричный или многомерный массив.
Типы данных: single | double
Поддержка комплексного числа: Да
Выходные аргументы
Y — Значения логарифма
скаляр | вектор | матрица | многомерный массив
Значения логарифма, возвращенные как скаляр, вектор, матрица или многомерный массив.
Расширенные возможности
«Высокие» массивы
Осуществление вычислений с массивами, которые содержат больше строк, чем помещается в памяти.
Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.
Указания и ограничения по применению:
Генерация кода графического процессора
Сгенерируйте код CUDA® для NVIDIA® графические процессоры с помощью GPU Coder™.
Указания и ограничения по применению:
Эта функция полностью поддерживает основанные на потоке среды. Для получения дополнительной информации смотрите функции MATLAB Запуска в Основанной на потоке Среде.
Массивы графического процессора
Ускорьте код путем работы графического процессора (GPU) с помощью Parallel Computing Toolbox™.
Указания и ограничения по применению:
Распределенные массивы
Большие массивы раздела через объединенную память о вашем кластере с помощью Parallel Computing Toolbox™.
Смотрите также
Открытый пример
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
Документация MATLAB
Поддержка
© 1994-2021 The MathWorks, Inc.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.
Основные математические функции MatLab
MatLab содержит в себе все распространенные математические функции, которые доступны по их имени при реализации алгоритмов. Например, функция sqrt() позволяет вычислять квадрат числа и может быть использована в программе следующим образом:
Аналогичным образом вызываются и все другие математические функции, представленные в табл. 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) | вычисление модуля числа |
Почти все элементарные функции допускают вычисления и с комплексными аргументами. Например:
Ниже показан пример задания вектора с именем 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
Документация
Функции
exp | Экспоненциал |
expm1 | Вычислите exp (x)-1 точно для маленьких значений x |
log | Натуральный логарифм |
log10 | Десятичный логарифм (базируются 10), |
log1p | Вычисление log(1+x) точно для маленьких значений x |
log2 | Основывайте 2 логарифма и рассечение числа с плавающей запятой |
nextpow2 | Экспонента следующей более высокой степени 2 |
nthroot | Действительный энный корень вещественных чисел |
pow2 | Основывайте 2 возведения в степень и масштабирование чисел с плавающей запятой |
reallog | Натуральный логарифм для неотрицательных действительных массивов |
realpow | Степень массивов для действительно-единственного выхода |
realsqrt | Квадратный корень для неотрицательных действительных массивов |
sqrt | Квадратный корень |
Эта тема показывает, как вычислить матричные степени и экспоненциалы с помощью множества методов.
Этот пример показывает интересный графический подход для обнаружения, больше ли e^pi pi^e.
Документация MATLAB
Поддержка
© 1994-2021 The MathWorks, Inc.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.
Документация
Десятичный логарифм (базируются 10),
Синтаксис
Описание
Примеры
Вычисление скалярных значений десятичного логарифма
Исследуйте несколько значений основы 10 функций логарифма.
Вычислите десятичный логарифм 1.
Вычислите десятичный логарифм 10.
Вычислите десятичный логарифм 100.
Вычислите десятичный логарифм 0.
Десятичный логарифм с действительным знаком
Десятичный логарифм с комплексным знаком
Вычислите комплексную основу 10 логарифмов l o g 1 0 ( X + i Y ) на сетке. Используйте 1i для улучшенной скорости и робастности с комплексной арифметикой.
Входные параметры
X — Входной массив
скаляр | вектор | матрица | многомерный массив
Входной массив, заданный как скалярный, векторный, матричный или многомерный массив.
Типы данных: single | double
Поддержка комплексного числа: Да
Расширенные возможности
«Высокие» массивы
Осуществление вычислений с массивами, которые содержат больше строк, чем помещается в памяти.
Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.
Генерация кода графического процессора
Сгенерируйте код CUDA® для NVIDIA® графические процессоры с помощью GPU Coder™.
Эта функция полностью поддерживает основанные на потоке среды. Для получения дополнительной информации смотрите функции MATLAB Запуска в Основанной на потоке Среде.
Массивы графического процессора
Ускорьте код путем работы графического процессора (GPU) с помощью Parallel Computing Toolbox™.
Указания и ограничения по применению:
Распределенные массивы
Большие массивы раздела через объединенную память о вашем кластере с помощью Parallel Computing Toolbox™.
Смотрите также
Открытый пример
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
Документация MATLAB
Поддержка
© 1994-2021 The MathWorks, Inc.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.