Как задать натуральный логарифм в matlab

GeekBrains

Основные математические функции 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) вычисление модуля числа

Почти все элементарные функции допускают вычисления и с комплексными аргументами. Например:

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

Натуральный логарифм matlab

MatLab содержит в себе все распространенные математические функции, которые доступны по их имени при реализации алгоритмов. Например, функция sqrt() позволяет вычислять квадрат числа и может быть использована в программе следующим образом:

x = 2;
y = 4;
d = sqrt(x^2+y^2); %вычисление евклидового расстояния

Аналогичным образом вызываются и все другие математические функции, представленные в табл. 1.2.

Таблица 1.2. Основные математические функции MatLab

Почти все элементарные функции допускают вычисления и с комплексными аргументами. Например:

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

Основные математические функции 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:

С использованием вышеупомянутых функций, записать и сосчитать значение арифметического выражения:

Составление арифметического выражения лучше всего начинать с расстановки основных скобок выражения. Причем открытую скобку следует сразу закрывать и продолжать набор формулы внутри скобок. В этом случае число открывающих скобок будет равно числу закрывающих, и вероятность ошибки будет минимальной.

Если в выражении многократно встречаются одинаковые фрагменты, то их целесообразно вычислять 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 ; просмотров: 1602 ; ЗАКАЗАТЬ НАПИСАНИЕ РАБОТЫ

Натуральный логарифм matlab

Элементарные математические функции

В системе MATLAB присутствуют все основные элементарные функции: степенные, показательные, тригонометрические и обратные к ним. Любая функция характеризуется своим именем, списком входных аргументов (перечисляются через запятую и стоят внутри круглых скобок, следующих за именем функции) и вычисляемым (выходным) значением.

Сначала рассмотрим логическую функцию xor , дополняющую ранее рассмотренный набор логических операций. Эта функция имеет два входных аргумента и вычисляет над ними операцию «исключающее ИЛИ», которая вырабатывает единицу («истину») только в случае, когда один из числовых аргументов истинен (не равен нулю), а другой ложен (равен нулю). Например,

а если оба аргумента «истинны » или оба «ложны», то эта функция вырабатывает нуль:

Помимо операции возведения в степень, реализуемой с помощью знака ^ , есть ещё функция извлечения квадратного корня sqrt , функция exp для возведения в степень числа e , функция pow2 для возведения в степень числа 2 . Также присутствуют обратные к ним функции: log — натуральный логарифм, log10 — логарифм по сонованию10, log2 — логарифм по сонованию 2. В системе MATLAB можно быстро получить справочную информацию по любой элементорной функции, выполнив команду

Тригонометрические функции представлены весьма полно: sin , cos , tan (тангенс), cot (котангенс), asin (арктангенс), acos (арккосинус), atan (арктангенс), acot (арккотангенс). Имеются также и менее употребительные функции типа секанса, косеканса и т. д., а также гиперболические функции (являются комбинацией экспонент).

Для примера, вычислим выражение 2 * asin(1) , включающее вычисление функции asin , и получим следующий результат:

соответствующий числу ¶ . В системе MATLAB для числа ¶ есть специальное обозначение pi .

Упомянем ещё функции, связанные с целочисленной арифметикой. Например, функции округления: round (округление до ближайшего целого), fix (усечение дробной части числа), floor (округление до меньшего целого), ceil (округление до большего целого).

Кроме того, есть ещё функции mod (остаток от деления с учётом знака), rem (остаток в смысле модульной арифметики), sign (знак числа), factor (разложение числа на простые множители), isprime (истинно, если число простое), primes (формирование списка простых чисел), rat (приближение числа в виде рациональной дроби), lcm (наименьшее общее кратное), gcd (наибольший общий делитель).

Функции mod и rem дают одинаковый результат для положительных аргументов. В частности,

Но для операций с аргументами разных знаков они вырабатывают разные значения:

В общем случае эти функции связаны с функциями округления следующим образом:

И, наконец, есть функции, вычисляющие некоторые стандартные результаты из комбинаторики: функция perms вычисляет число перестановок, а функция nchoosek — число сочетаний. Например, число сочетаний из 10 по 3 легко находится вызовом функции:

Многие из перечисленных функций имеют область определения, отличную от множества всех действительных чисел R. В случаях, когда для функции задаётся недопустимое значение аргумента, или совершается попытка выполнить недопустимую операцию, мы получаем предупреждающее сообщение, например

Warning: Divide by zero.

при попытке деления на нуль. А в качестве результата выводится

где Inf символизирует бесконечность. Тот же результат получается при попытке вычислить логарифм от нуля.

Однако, чаще всего, при задании аргумента, выходящего за область определения функции действительного переменного (например, отрицательный аргумент для квадратного корня) система MATLAB автоматически выходит в область комплексных чисел, и вычисляет значение аналогичной комплексной функции.

Арифметические операторы и функции 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]

M2=[1 2 3 4;4 5 6 7;7 8 9 1]

MT2=M2′

N=[1 4 3 6]

%выделение подматрицы:

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. Арифметические операции

Справочные материалы по встроенным функциям MATLAB

Как организовать дистанционное обучение во время карантина?

Помогает проект «Инфоурок»

Для более детального описания функций, рекомендуем пользоваться системой помощи пакета MATLAB. Для вызова справки в командном окне пакета наберите: >>help имя функции .

Таблица 1. Описание математических операций

правое поэлементное деление

левое поэлементное деление

правое матричное деление

левое матричное деление

поэлементное возведение в степень

матричное возведение в степень

больше или равно

ссылка по индексу

присваивание по индексу

Таблица 2. Обозначения системных переменных MATLAB

погрешность для операций над числами с плавающей точкой (по умолчанию 2 -52 )

минимальное значение вещественного числа (2 -1022 )

максимальное значение вещественного числа (2 -1023 )

переменная, хранящая результат последней операции

Таблица 3. Функции комплексных переменных

абсолютное значение комплексного числа

мнимая часть комплексного числа

действительная часть комплексного числа

аргумент комплексного числа

«истина», если число действительное

Таблица 4. Стандартные функции вещественного аргумента

отбрасывание дробной части числа

округление до меньшего целого

округление до большего целого

остаток от деления x на y без учета знака

остаток от деления x на y с учетом знака

разложение числа x на простые множители

преобразование декартовых координат в сферические

преобразование декартовых координат в полярные

преобразование полярных координат в декартовы

наибольший общий делитель

наименьшее общее кратное

обобщенная функция Лежандра

логарифм по основанию 2

возведение числа 2 в степень n

представление числа в виде рациональной дроби

формирование списка простых чисел

вычисляет число перестановок

вычисляет количество сочетаний из n пo k

Выберите книгу со скидкой:

Математика. Экспресс-справочник для подготовки к ЕГЭ

350 руб. 107.00 руб.

ОГЭ. Математика. Большой сборник тематических заданий для подготовки к основному государственному экзамену

350 руб. 171.00 руб.

Для детского сада. Математика. Средняя группа

350 руб. 144.00 руб.

Математика. Сложение и вычитание. Уровень 3 Kumon

350 руб. 464.00 руб.

ЕГЭ. Математика. Большой сборник тематических заданий для подготовки к единому государственному экзамену. Базовый уровень

350 руб. 181.00 руб.

Математика. Вычитание. Уровень 2 Kumon

350 руб. 464.00 руб.

Математика. Дроби. Уровень 4 Kumon

350 руб. 464.00 руб.

Повтори летом! Математика. Полезные и увлекательные задания. 1 класс

350 руб. 87.00 руб.

Альбом по подготовке к школе. Математика

350 руб. 272.00 руб.

Для детского сада. Математика. Старшая группа

350 руб. 144.00 руб.

Для детского сада. Математика. Подготов. группа

350 руб. 144.00 руб.

GeekBrains

Для детского сада. Математика. Младшая группа

350 руб. 144.00 руб.

БОЛЕЕ 58 000 КНИГ И ШИРОКИЙ ВЫБОР КАНЦТОВАРОВ! ИНФОЛАВКА

Инфолавка — книжный магазин для педагогов и родителей от проекта «Инфоурок»

Бесплатный
Дистанционный конкурс «Стоп коронавирус»

  • Бексейтова Айнур Болатбековна
  • Написать
  • 279
  • 26.02.2017

Номер материала: ДБ-228436

Добавляйте авторские материалы и получите призы от Инфоурок

Еженедельный призовой фонд 100 000 Р

  • 26.02.2017
  • 1494
  • 26.02.2017
  • 1287
  • 26.02.2017
  • 210
  • 26.02.2017
  • 218
  • 26.02.2017
  • 1154
  • 26.02.2017
  • 180

Не нашли то что искали?

Вам будут интересны эти курсы:

Все материалы, размещенные на сайте, созданы авторами сайта либо размещены пользователями сайта и представлены на сайте исключительно для ознакомления. Авторские права на материалы принадлежат их законным авторам. Частичное или полное копирование материалов сайта без письменного разрешения администрации сайта запрещено! Мнение редакции может не совпадать с точкой зрения авторов.

Ответственность за разрешение любых спорных моментов, касающихся самих материалов и их содержания, берут на себя пользователи, разместившие материал на сайте. Однако редакция сайта готова оказать всяческую поддержку в решении любых вопросов связанных с работой и содержанием сайта. Если Вы заметили, что на данном сайте незаконно используются материалы, сообщите об этом администрации сайта через форму обратной связи.

Справочник по MATLAB — Математические функции (В.Г.Потемкин)

Информация в данной статье относится к релизам программы MATLAB ранее 2016 года, и поэтому может содержать устаревшую информацию в связи с изменением функционала инструментов. С более актуальной информацией вы можете ознакомиться в разделе документация MATLAB на русском языке.

В системе MATLAB имеется обширная библиотека математических функций. Каждой функции соответствует определенное имя. Функция ставит в соответствие значениям своих аргументов значение результата.

Аргументы функции всегда указываются в круглых скобках после имени функции и, если их больше одного, разделяются запятыми. В качестве аргументов могут использоваться другие функции и любые выражения языка MATLAB (при условии соответствия типов аргументов).

Элементарная математическая функция — это, как правило, функция от одной переменной, и в этом случае устанавливается соответствие между массивами значений аргумента и результата.

Аргумент указывается в круглых скобках после имени функции. Имя переменной, которой присваивается значение функции, располагается слева от знака равенства. Если имя присваиваемой переменной не указано, значение функции присваивается служебной переменной ans.

Тип результата вычисления математической функции всегда совпадает с типом ее аргумента. Например, если аргументом функции является вектор-столбец, то значением этой функции также будет вектор-столбец.

Рассмотрим встроенные математические функции системы MATLAB, которые применяются к числам, скалярным переменным и к массивам (поэлементно).

Базовые функции

Трансцендентные функции

Тригонометрические функции

Преобразования системы координат

Специальные функции

Базовые функции

ABS — абсолютное значение

Для массива действительных чисел X функция Y = abs(X) возвращает массив Y абсолютных значений элементов X.

Для массива комплексных чисел Z функция Y = abs(Z) возвращает массив Y модулей комплексных элементов Z.

Для строковой переменной S функция Y = abs(S) возвращает вместо символов, включая пробелы, их ASCII-коды.

Примеры:

abs(-5)
ans = 5
abs(3 + 4i)
ans = 5
ascii = abs(‘3 + 4I’)
ascii = 51 32 43 32 52 73
setstr(ascii)
ans = 3 + 4I

ANGLE — аргумент комплексного числа

Для массивов комплексных чисел Z функция P = abs(Z) возвращает массив значений аргументов для элементов Z. Значение аргумента измеряется в радианах и находится в пределах от — p до p .

Пример:

Для комплексного числа z = x + iy = re i j его модуль r и аргумент j вычисляются следующим образом:

r = abs(z)
phi = angle(z),

выполняет обратное преобразование.

Для вычисления аргумента комплексного числа используется следующее соотношение:

angle(z) = atan2(imag(z), real(z))

REAL, IMAG — действительная и мнимая части комплексного числа

X = real(Z)
Y = real(Z)

Для массивов комплексных чисел Z функция X = real(Z) возвращает массив действительных, а Y = real(Z) — мнимых частей элементов Z.

CONJ — операция комплексного сопряжения

Для массивов комплексных чисел Z функция V = conj(Z) возвращает массив комплексно-сопряженных значений для элементов Z.

SIGN — вычисление знака числа

Для массивов действительных чисел X функция S = sign(X) возвращает массив S тех же размеров, в котором на месте положительного числа стоит 1, на месте нулевого — 0, на месте отрицательного — (-1).

Для массивов комплексных чисел Z функция S = sign(Z) возвращает массив комплексных чисел S = Z ./abs(Z), модуль которых равен единице.

CEIL, FIX, FLOOR, ROUND — функции округления

Y = ceil(X)
Y = fix(X)
Y = floor(X)
Y = round(X)

Для массивов действительных чисел X:

  • функция Y = ceil(X) возвращает значения, округленные до ближайшего целого >=X;
  • функция Y = fix(X) возвращает значения с усечением дробной части числа;
  • функция Y = floor(X) возвращает значения, округленные до ближайшего целого<= X;
  • функция Y = round(X) возвращает значения, округленные до ближайшего целого.

Для массивов комплексных чисел Z эти функции применяются одновременно к действительной и мнимой частям.

Примеры:

Задан одномерный массив действительных чисел

x = [-1.9 -0.2 3.4 5.6 7.0];

ceil(x) ans = -1 0 4 6 7 fix(x) ans = -1 0 3 5 7
floor(x) ans = -2 -1 3 5 7 round(x) ans = -2 0 3 6 7

REM — функция остатка

Для действительных чисел x и y функция rem(x, y) вычисляет остаток от деления x на y или, в других обозначениях, функцию x(mod y) = x — y*n, где n = fix(x/y) — ближайшее целое.

Для массивов чисел эта функция применяется поэлементно.

GCD — наибольший общий делитель

g = gcd(m, n)
[g, c, d] = gcd(m, n)

Функция g = gcd(m, n) вычисляет наибольший общий делитель двух целых чисел m и n. Принято, что gcd(0, 0) = 0.

Функция [g, c, d] = gcd(m, n) кроме наибольшего общего делителя вычисляет два множителя c и d, таких, что выполняется соотношение g = = m*c + n*d.

Для массивов чисел эту функцию применять нельзя.

= b
error(‘Входные аргументы должны быть целыми числами.’)
end
u = [1 0 abs(a)];
v = [0 1 abs(b)];
while v(3)
q = floor( u(3) / v(3) );
t = u — v*q;
u = v;
v = t;
end
c = u(1) * sign(a);
d = u(2) * sign(b);
g = u(3);

Пример:

[g, c, d] = gcd(45, 36);
[g c d] ans = 9 1 -1

LCM — наименьшее общее кратное

Функция g = lcm(m, n) вычисляет наименьшее общее кратное двух целых чисел m и n.

Для массивов чисел эту функцию применять нельзя.

= b | a < 1 | b < 1
error(‘Входные аргументы должны быть целыми числами.’)
end
c = a*b/gcd(a,b);

Пример:

g = lcm(45, 36)
g = 180

RAT, RATS — представление результата в виде рационального числа или цепной дроби

[N, D] = rat(X) rat(X) S = rats(X)
[N, D] = rat(X, tol) rat(X, tol) S = rats(X, tol)

Несмотря на то что все числа с плавающей точкой представлены в ком-пьютере в виде рациональных чисел, иногда целесообразно представить число в виде отношения двух относительно небольших целых чисел. Такое представление на основе цепных дробей и реализуется с использованием вышеперечисленных функций.

Функция [N, D] = rat(X) определяет для входа x два таких целых числа n и d, при которых выполняется условие n/d — x <= 1e-6*abs(x).

Функция [N, D] = rat(X, tol) позволяет указать точность приближения tol, отличную от 1e-6.

Функции rat(X) и rat(X, tol) позволяют вывести на экран результат в виде цепной дроби.

Если в качестве входа задан массив чисел X, то результатом операций будут массивы соответствующего размера.

Функция S = rats(X, k) использует функцию rat(X), чтобы вывести на экран результат в виде простой дроби
s = [sprintf([‘%’ num2str(fix(k/2)), n) ‘/’ sprintf([‘%-‘ num2str(fix(k/2)) ‘.0f’], d)],
точность аппроксимации для которой составляет tol = 10^(-fix(k/2)) * abs(x).

Для функции S = rats(X) точность аппроксимации принимается по умолчанию равной 1e-6* abs(x), что соответствует значению k = 13.

Функция format rat равносильна функции rats.

Функция rat(X) аппроксимирует каждый элемент массива X цепной дробью следующего вид:

Величины dk получены последовательным выделением целой части с последующим обращением дробной части. Точность аппроксимации возрастает по степенному закону с ростом числа членов. Самая медленная сходимость наблюдается при рациональной аппроксимации числа x = sqrt(2). Погрешность аппроксимации с учетом k членов составляет 2.68 * (0.173)^k, так что учет каждого последующего члена увеличивает точность менее чем на одну десятичную цифру, так что для достижения максимальной точности в арифметике с плавающей точкой требуется 21 член.

Примеры:

Рассмотрим аппроксимацию числа p в виде цепной дроби и рационального числа

rat(pi)
ans = 3 + 1/(7 + 1/(16))
rat(pi, 1e-12)
ans = 3 + 1/(7 + 1/(16 + 1/(-294 + 1/(3 + 1/(-4 + 1/(5))))))
[n,d]=rat(pi);
[n d]
ans = 355 113
[n, d]=rat(pi, 1e-12);
[n d]
ans = 5419351 1725033
s = rats(pi)
s = 355/113
s = rats(pi, 26)
s = 5419351/1725033

Трансцендентные функции

SQRT — квадратный корень

Функция V = sqrt(Z) вычисляет квадратные корни элементов массива Z. Для отрицательных и комплексных значений результат является комплексным числом.

Пример:

0+ 1.4142i
0+ 1.0000i
0
1.0000
1.4142
Name Size Bytes Class
w 5×1 80 double array (complex)

Grand total is 5 elements using 80 bytes
Общее число элементов 5, используют 80 байтов.

Сопутствующие функции: EXP, LOG, SQRTM.

EXP — экспоненциальная функция

Функция V = exp(Z) вычисляет экспоненты значений элементов массива Z. Для комплексных значений z = x + iy справедлива формула Эйлера

e z = e x (cos(y) + i sin(y)).

Вычисление экспоненты от матрицы реализовано с помощью специальной функции expm.

Сопутствующие функции: LOG, LOG2, LOG10, EXPM.

LOG — функция натурального логарифма

Функция V = log(Z) вычисляет натуральный логарифм значений элементов массива Z. Для комплексных значений z = x + iy справедлива формула

ln(z) = ln(abs(z)) + i atan2(y, x).

Вычисление функции натурального логарифма от матрицы реализовано с помощью специальной функции logm.

Пример:

Одна из возможностей вычисления значения числа p — это вычислить log(-1):

log(-1)
ans = 0 +3.141592653589793e+000i

Сопутствующие функции: EXP, LOG2, LOG10, LOGM.

POW2 — экспонента по основанию 2

V = pow2(Z)
X = pow2([M, P])

Функция V = pow2(Z) вычисляет массив степеней 2.^Z.

Функция X = pow2([M, P]) для действительных массивов M и P вычисляет массив X = M.*(2.^P).

Пример:

Для компьютеров с IEEE-арифметикой, в которых определены объекты eps, realmax и realmin, функция x = pow2([m, p]) вычисляет следующие величины:

m p x
1/2 1 1
pi/4 2 pi
-3/4 2 -3
1/2 -51 eps
1-eps/2 1024 realmax
1/2 -1021 realmin

NEXTPOW2 — ближайшая степень по основанию 2

p = nextpow2(n)
p = nextpow2(x)

Функция p = nextpow2(n) возвращает такой показатель степени p, что 2^p >= n.

Функция p = nextpow2(x) для одномерного массива x возвращает значение nextpow2(length(x)). Эта операция широко применяется при вычислении быстрого преобразования Фурье.

Пример:

Для любого целого числа n в диапазоне от 513 до 1024 функция nextpow2(n) возвращает значение 10.

LOG2 — фунции логарифма

V = log2(Z)
[M, P] = log2(X)

Функция V = log2(Z) вычисляет логарифм по основанию 2 от значений элементов массива Z.

Функция [M, P] = log2(X) для массива X действительных чисел возвращает массив M значений мантисс и целочисленный массив P показателей степеней, позволяющих представить любой элемент x в виде x = f*2^p; нулевому элементу соответствует представление .

Примеры:

Для компьютеров с IEEE-арифметикой, в которых определены объекты eps, realmax, realmin, функция log2 вычисляет следующие величины:

log2(eps) log2(realmax) log2(realmin)
ans = -52 ans = 1024 ans = -1022

а функция [M, P] = log2(X) строит следующие представления чисел:

x m p
1 1/2 1
pi pi/4 2
-3 -3/4 2
eps 1/2 -51
realmax 1-eps/2 1024
realmin 1/2 -1021

LOG10 — функции логарифма

Функция V = log10(Z) вычисляет логарифм по основанию 10 от значений элементов массива Z.

Примеры:

Для компьютеров с IEEE-арифметикой, в которых определены объекты eps, realmax realmin, функция log10 вычисляет следующие величины:

log10(eps) log10(realmax) log10(realmin)
ans = -15.6536 ans = 308.2547 ans = -307.6527

Сопутствующие функции: EXP, LOG2, LOGM, POW2.

Тригонометрические функции

SIN, SINH — функции синуса

V= sin(Z)
V = sinh(Z)

Функция V = sin(Z) вычисляет синус от значений элементов массива Z.

Функция V = sinh(Z) вычисляет гиперболический синус от значений элементов массива Z.

Массив Z допускает комплексные значения; углы измеряются в радианах.

Для вычисления функции от матрицы следует применять специальные функции funm или expm.

Для вычисления функций синуса используются следующие соотношения:

sin(x + iy) = sin(x)ch(y) + icos(x)sh(y);
sh(z) = ;
sin(z) = — i sh(iz).

ASIN, ASINH — функции обратного синуса

V = asin(Z)
V = asinh(Z)

Функция V = asin(Z) вычисляет обратную функцию синуса от значений элементов массива Z.

Функция V = sinh(Z) вычисляет обратную функцию гиперболического синуса от значений элементов массива Z.

Массив Z допускает комплексные значения; углы V измеряются в радианах.

Функция Y = asin(X) для действительных значений -1<= x <= 1 определена в интервале — p /2<= x <= p /2.

Для вычисления функции от матрицы следует применять специальную функцию funm.

Для вычисления функций обратного синуса используются следующие соотношения:

arsh(z) = ln[z + (1 + z 2 ) 1/2 ];
arcsin(z) = — i arsh(iz).

CSC, CSCH — функции косеканса

V = csc(Z)
V = csch(Z)

Функция V = csc(Z) вычисляет косеканс от значений элементов массива Z.

Функция V = sinh(Z) вычисляет гиперболический косеканс от значений элементов массива Z.

Массив Z допускает комплексные значения; углы измеряются в радианах.

Для вычисления функции от матрицы следует применять специальную функцию funm.

Для вычисления функций косеканса используются следующие соотношения:

csc(z) = 1/sin(z);
csch(z) = 1/sinh(z).

ACSC, ACSCH — функции обратного косеканса

V = acsc(Z)
V = acsch(Z)

Функция V = acsc(Z) вычисляет обратную функцию косеканса от значений элементов массива Z.

Функция V = acsch(Z) вычисляет обратную функцию гиперболического косеканса от значений элементов массива Z.

Массив Z допускает комплексные значения; углы V измеряются в радианах.

Для вычисления функции от матрицы следует применять специальную функцию funm.

Для вычисления функций обратного косеканса используются следующие соотношения:

arccosec(z) = arcsin(1/z);
arcosech(z) = arsinh(1/z).

COS, COSH — функции косинуса

V = cos(Z)
V = cosh(Z)

Функция V = cos(Z) вычисляет косинус от значений элементов массива Z.

Функция V = cosh(Z) вычисляет гиперболический косинус от значений элементов массива Z.

Массив Z допускает комплексные значения; углы измеряются в радианах.

Для вычисления функции от матрицы следует применять специальные функции funm или expm.

Для вычисления функций косинуса используются следующие соотношения:

cos(x + iy) = cos(x)ch(y) — isin(x)sh(y);
ch(z) =;
cos(z) = ch(iz).

ACOS, ACOSH — функции обратного косинуса

V = acos(Z)
V = acosh(Z)

Функция V = acos(Z) вычисляет обратную функцию косинуса от значений элементов массива Z.

Функция V = acosh(Z) вычисляет обратную функцию гиперболического косинуса от значений элементов массива Z.

Массив Z допускает комплексные значения; углы V измеряются в радианах.

Функция Y = acos(X) для действительных значений -1<= x <=1 определена в интервале 0 <= x <= p .

Для вычисления функции от матрицы следует применять специальную функцию funm.

Для вычисления функций обратного косинуса используются следующие соотношения:

arch(z) = ln[z + (z 2 — 1) 1/2 ];
arccos(z) = -i arch(z).

SEC, SECH — функции секанса

V = sec(Z)
V = sech(Z)

Функция V = sec(Z) вычисляет секанс от значений элементов массива Z.

Функция V = sech(Z) вычисляет гиперболический секанс от значений элементов массива Z.

Массив Z допускает комплексные значения; углы измеряются в радианах.

Для вычисления функции от матрицы следует применять специальную функцию funm.

Для вычисления функций секанса используются следующие соотношения:

sec(z) = 1/cos(z);
sech(z) = 1/cosh(z).

ASEC, ASECH — функции обратного секанса

V = asec(Z)
V = asech(Z)

Функция V = asec(Z) вычисляет обратную функцию секанса от значений элементов массива Z.

Функция V = asech(Z) вычисляет обратную функцию гиперболического секанса от значений элементов массива Z.

Массив Z допускает комплексные значения; углы V измеряются в радианах.

Для вычисления функции от матрицы следует применять специальную функцию funm.

Для вычисления функций обратного секанса используются следующие соотношения:

arcsec(z) = arccos(1/z);
arsech(z) = arcosh(1/z).

TAN, TANH — функции тангенса

V = tan(Z)
V = tanh(Z)

Функция V = tan(Z) вычисляет тангенс от значений элементов массива Z.

Функция V = sinh(Z) вычисляет гиперболический тангенс от значений элементов массива Z.

Массив Z допускает комплексные значения; углы измеряются в радианах.

Для вычисления функции от матрицы следует применять специальную функцию funm.

Для вычисления функций тангенса используются следующие соотношения:

ATAN, ATAN2, ATANH — функции обратного тангенса

V = atan(Z)
V = atan2(Y, X)
V = atanh(Z)

Функция V = atan(Z) вычисляет обратную функцию тангенса от значений элементов массива Z.

Функция V = atan2(Y, X) вычисляет обратную функцию тангенса от значений элементов двух связанных действительных массивов Y и X. Если массивы оказались комплексными, берутся их действительные части. Углы V вычисляются с учетом знаков Y и X и определены в интервале — p <= v <= p .

Функция V = atanh(Z) вычисляет обратную функцию гиперболического тангенса от значений элементов массива Z.

Массив Z допускает комплексные значения; углы V измеряются в радианах.

Для вычисления функции от матрицы следует применять специальную функцию funm.

Для вычисления функций обратного тангенса используются следующие соотношения:

arctg(z) = -i arth(iz);

COT, COTH — функции котангенса

V = cot(Z)
V = coth(Z)

Функция V = csc(Z) вычисляет котангенс от значений элементов массива Z.

Функция V = sinh(Z) вычисляет гиперболический котангенс от значений элементов массива Z.

Массив Z допускает комплексные значения; углы измеряются в радианах.

Для вычисления функции от матрицы следует применять специальную функцию funm.

Для вычисления функций косеканса используются следующие соотношения:

ctg(z) = 1/tg(z);
cth(z) = 1/th(z).

ACOT, ACOTH — функции обратного котангенса

V = acot(Z)
V = acoth(Z)

Функция V = acsc(Z) вычисляет обратную функцию котангенса от значений элементов массива Z.

Функция V = acsch(Z) вычисляет обратную функцию гиперболического котангенса от значений элементов массива Z.

Массив Z допускает комплексные значения; углы V измеряются в радианах.

Для вычисления функции от матрицы следует применять специальную функцию funm.

Для вычисления функций обратного котангенса используются следующие соотношения:

arсth(z) = ;
arcctg(z) = i arcth(iz).

Преобразования системы координат

CART2POL — преобразование декартовой системы координат в полярную и цилиндрическую

[TH, R] = CART2POL(X, Y)
[TH, R, Z] = CART2POL(X, Y, Z)

Функция [TH, R] = CART2POL(X, Y) преобразует точки декартовой системы координат в точки полярной системы координат. Размеры массивов X и Y должны быть согласованы. Угол TH измеряется в радианах.

Функция [TH, R, Z] = CART2POL(X, Y, Z) преобразует точки трехмерной декартовой системы координат в точки цилиндрической системы координат. Размеры массивов X, Y и Z должны быть согласованы. Угол TH измеряется в радианах.

Для вычисления используются следующие формулы преобразования:

r = sqrt(x.^2 + y.^2);
th = atan2(y, x).

CART2SPH — преобразование декартовой системы координат в сферическую

[AZ, EL, R] = CART2SPH(X, Y, Z)

Функция [AZ, EL, R] = CART2SPH(X, Y, Z) преобразует точки трехмерной декартовой системы координат в точки сферической системы координат. Размеры массивов X, Y и Z должны быть согласованы. Углы AZ, EL измеряются в радианах.

Для вычисления используются следующие формулы преобразования:

r = sqrt(x.^2 + y.^2 + z.^2);
elev = atan2(z, sqrt(x.^2 + y.^2));
az = atan2(y, x).

POL2CART — преобразование полярной и цилиндрической систем координат в декартову

[X, Y] = POL2CART(TH, R)
[X, Y, Z] = POL2CART(TH, R, Z)
Описание:

Функция [X, Y] = POL2CART(TH, R) преобразует точки полярной системы координат в точки декартовой системы координат. Размеры массивов X и Y должны быть согласованы. Угол TH измеряется в радианах.

Функция [TH, R, Z] = CART2POL(X, Y, Z) преобразует точки цилиндрической системы координат в точки трехмерной декартовой системы координат. Размеры массивов X, Y и Z должны быть согласованы. Угол TH измеряется в радианах.

Для вычисления используются следующие формулы преобразования:

x = r.*cos(th);
y = r.*sin(th);
z = z;

SPH2CART — преобразование сферической системы координат в декартову

[AZ, EL, R] = CART2SPH(X, Y, Z)

Функция [AZ, EL, R] = CART2SPH(X, Y, Z) преобразует точки трехмерной декартовой системы координат в точки сферической системы координат. Размеры массивов X, Y и Z должны быть согласованы. Углы AZ, EL измеряются в радианах.

Для вычисления используются следующие формулы преобразования:

z = r .* sin(elev);
x = r .* cos(elev) .* cos(az);
y = r .* cos(elev) .* sin(az).

Специальные функции

BESSEL — функции Бесселя

J = bessel(alpha, X)

Линейное дифференциальное уравнение вида

где a — неотрицательная величина, называется уравнением Бесселя, а его решения известны как функции Бесселя.

Для вычисления функций Бесселя разработан набор M-файлов, обеспечивающий высокую точность их вычисления для действительных значений аргумента:

  • besselj(alpha, X) — функция Бесселя первого рода J a (x);
  • bessely(alpha, X) — функция Бесселя второго рода Y a (x);
  • besseli(alpha, X) — модифицированная функция Бесселя первого рода I a (x);
  • besselk(alpha, X) — модифицированная функция Бесселя второго рода K a (x).

Сохранена также функция [J, digits] = bessela(alpha, Z), которая допускает комплексные значения аргумента и позволяет получать оценку количества правильных цифр результата. Значение digits, равное 14 или 15, соответствует максимальной точности IEEE- или VAX-арифметик; однако значение digits, равное единице или двум, означает, что результату доверять нельзя. Для значений alpha и x, не превышающих 50, количество точных цифр по крайней мере 8. На плоскости (alpha, x) область наименьшей точности расположена вблизи прямой alpha = x, так что малые alpha и большие x, и наоборот, дают более точные значения.

Функция J = bessel(alpha, X) вызывает:

  • функцию besselj(alpha, X), если X — массив действительных чисел;
  • функцию besseli(alpha, X), если X — массив чисто мнимых чисел;
  • функцию bessela(alpha, Z), если Z — массив комплексных чисел.

Примеры:

Функция besselj(3:9, (10:.2:20)’) генерирует таблицу размера 51 х 7, воспроизведенную на стр. 400 работы [1];

функция bessely(3:9,(10:.2:20)’) генерирует таблицу размера 51 х 7, воспроизведенную на стр. 401 работы [1];

функция besseli(3:9, [0:.2:9.8 10:.5:20], 1) генерирует таблицу размера 71 х 7, воспроизведенную на стр. 423 работы [1];

функция besselk(3:9, [0:.2:9.8 10:.5:20], 1) генерирует таблицу размера 71 х 7, воспроизведенную на стр. 424 работы [1].

Оценим точность вычисления функции Бесселя для разных значений alpha и x.

Abramovitz M., Stegun I. A. Handbook of Mathematical Functions. National Bureau of Standards, Applied Math. Series #55. Dover Publications, 1965.

BETA, BETACORE, BETAINC, BETALN — бета-функции

B = beta(p, q)
B = betacore(x, p, q)
I = betainc(x, p, q)
y = betaln(p, q)

Полная бета-функция B = beta(p, q) определяется следующим образом [2]:

Неполная бета-функция B = betainc(p, q) определяется так [2]:

Для ее вычисления используется вспомогательная функция betacore(x, p, q).

Функция y = betaln(p, q) представляет натуральный логарифм полной бета-функции B = beta(p, q). Поскольку бета-функция изменяется в широких пределах, знание ее логарифма может оказаться более предпочтительным. Вычисление функции ln(B) реализуется без вычисления функции beta(p, q).

Если p и q — массивы, то их размеры должны быть согласованы.

betaln(p, q) = gammaln(p) + gammaln(q) — gammaln(p + q)
beta(p, q) = exp(betaln(p, q))

Пример:

formt rar
beta((1:10)’, 3)
ans =

0/0
1/3
1/12
1/30
1/60
1/105
1/168
1/252
1/360
1/495
1/660

В данном случае при целочисленных аргументах

beta(n, 3) = (n — 1)! * 2!/(n + 2)! = 2/((n * (n + 1) * (n + 2))

и представляет собой отношение двух сравнительно небольших целых чисел, так что представление результата в формате format rat оказывается точным.

Для x = 510 betaln(x, x) = -708.8616, что для компьютеров с IEEE-арифметикой немного меньше, чем log(realmin) = -708.3964, так что при вычислении функции beta(x, x) следует проявлять осторожность.

  1. Abramovitz M., Stegun I. A. Handbook of Mathematical Functions. National Bureau of Standards, Applied Math. Series #55. Dover Publications, 1965.
  2. Корн Г., Корн Т. Справочник по математике для научных работников и инженеров. М.: Наука, 1968. 720 с.

ELLIPJ — эллиптические функции Якоби

[sn, cn, dn] = ellipj(m, phi)

функция j = am(z) называется амплитудой, функция sn(z) — синусом амплитуды, функция cn(z) — косинусом амплитуды, и dn(z) — дельтой амплитуды.

Эти эллиптические функции Якоби связаны между собой следующим образом [1, 2]:

sn(z) = sin( j ),
cn(z) = cos( j ),
dn(z) = (1 — m sn(z)) 1/2 .

Функция [sn, cn, dn] = ellipj(m, phi) вычисляет эллиптические функции Якоби sn, cn, dn для заданных значений m и phi, которые могут быть как скалярами, так и массивами, но обязательно одинаковых размеров.

Ограничения:

Входной параметр m должен принадлежать диапазону 0 <= m <= 1.

  1. Abramovitz M., Stegun I. A. Handbook of Mathematical Functions. National Bureau of Standards, Applied Math. Series #55. Dover Publications, 1965.
  2. Корн Г., Корн Т. Справочник по математике для научных работников и инженеров. М.:Наука, 1968. 720 с.

ELLIPKE — полные эллиптические интегралы

K = ellipke(m)
[K, E] = ellipke(m)

Полные эллиптические интегралы первого и второго рода определяются следующим образом [1, 2]:

Ограничения:

Входной параметр m должен принадлежать диапазону 0 <= m <= 1.

  1. Abramovitz M., Stegun I. A. Handbook of Mathematical Functions. National Bureau of Standards, Applied Math. Series #55. Dover Publications, 1965
  2. Корн Г., Корн Т. Справочник по математике для научных работников и инженеров. М.:Наука, 1968. 720 с.

ERF, ERFCORE, ERFC, ERFCX, ERFINV — функции ошибок

y = erf(x)
y = erfc(x)
y = erfcx(x)
x = erfinv(y)

Функция ошибки erf(x) определяется следующим образом [2]:

Функция y = erfc(x) задается соотношением

erfc(x) = = 1 — erf(x).

Функция y = erfcx(x) определяется так:

Для вычисления этих функций используется вспомогательная функция erfcore(x, n). При этом справедливо

erf(x) = erfcore(x, 0);
erfc(x) = erfcore(x, 1);
erfcx(x) = erfcore(x, 2).

Обратная функция ошибки x = erfinv(y) имеет область определения -1< y <1 и область значений -Inf < x < Inf, причем erfinv(-1) = -Inf, erfinv(1) = Inf, а для значений abs(y) 1 erfinv(y) = NaN.

Алгоритм основан на работе [1] и представляет собой переработанную с языка FORTRAN программу из раздела NETLIB/SPECFUN, написанную W. J. Cody (Argonne National Laboratory, March 19, 1990).

  1. Cody W. J. Rational Chebyshev approximations for the error function//Math. Comp., 1969. P. 631-638.
  2. Корн Г., Корн Т. Справочник по математике для научных работников и инженеров. М.:Наука, 1968. 720 с.

GAMMA, GAMMAINC, GAMMALN — гамма-функции

y = gamma(a)
y = gammainc(x, a)
y = gammaln(a)

Гамма-функция gamma(a) определяется следующим образом [2]:

Неполная гамма-функция gammainc(x, a) задается соотношением

gammainc(x, a) = P(x, a) = .

Логарифмическая гамма-функция определяется так:

gammaln(a) = ln G(a).

Алгоритм основан на работе [1] и представляет собой переработанную с языка FORTRAN программу из раздела NETLIB/SPECFUN, написанную W. J. Cody (Argonne National Laboratory, October 12, 1989).

GeekBrains

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *