Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Вычисление элементарных и специальных математических функций в MATLAB.
Специальные математические функции являются решениями дифференциальных уравнений специального вида или обозначениями некоторых видов интегралов. Специфика специальных функций в MATLAB та же, что и элементарных, — их аргументами могут быть как одиночные численные значения, так и массивы чисел. В последнем случае функции возвращают массив тех же размерности и размера с преобразованием каждого элемента в соответствии с действием функции. 1. Функции Эйри Функция Эйри формирует пару линейно независимых решений линейного дифференциального уравнения вида Связь между функцией Эйри и модифицированной функцией Бесселя выражается следующей формулой: где airy(Z) — возвращает функцию Эйри, AKZ), для каждого элемента комплексного массива Z; airy(k.Z) — возвращает различные варианты результата в зависимости от значения k: k=0 — тот же результат, что и airy(Z); k=l — производную от А1 (Z); k=2 — функцию Эйри второго рода, 61 (Z): k=3 — производную от B1(Z).
2. Функции Бесселя Линейное дифференциальное уравнение второго порядка вида где v — неотрицательная константа, называется уравнением Бесселя, а его решения известны как функции Бесселя. Функции Jv(z) и J_v(z) формируют фундаментальное множество решений уравнения Бесселя для неотрицательных значений п (это так называемые функции Бесселя первого рода): где для гамма-функции используется следующее представление: Второе решение уравнения Бесселя, линейно независимое от Jv(z), определяется как и задает функции Бесселя второго рода Yv(z). Функции Бесселя третьего рода (функции Ханкеля) и функция Бесселя первого и второго рода связаны следующим выражением:
bessel j(nu, Z) — возвращает функцию Бесселя первого рода, Jv(z), для каждого элемента комплексного массива Z. Порядок ш может не быть целым, однако должен быть вещественным. Аргумент Z может быть комплексным. Результат вещественный, если Z положительно. Если nu и Z — массивы одинакового размера, то результат имеет тот же размер. Если любая входная величина — скаляр, результат расширяется до размера другой входной величины. Если одна входная величина — вектор-строка, а другая — вектор-столбец, результат представляет собой двумерный массив значений функции. bessely(nu.Z) — возвращает функцию Бесселя второго рода, Yv(z). [J.ierr] = besse1j(nu, Z) и [Y.ierr] = bessely(nu.Z) функции всегда возвращают массив с флагами ошибок: ierr = 1 — запрещенные аргументы; ierr = 2 — переполнение (возвращает Inf); ierr = 3 — некоторая потеря точности при приведении аргумента; ierr = 4 — недопустимая потеря точности: Z или nu слишком велики; ierr = 5 — нет сходимости (возвращает NaN).
3. Бета-функция и ее варианты Бета-функция определяется как где Г (z) — гамма-функция. Неполная бета-функция определяется по формуле beta(Z.W) — возвращает бета-функцию для соответствующих элементов комплексных массивов Z и W. Массивы должны быть одинакового размера (или одна из величин может быть скаляром). beta i nc ( X, Z, W ) — возвращает неполную бета-функцию. Элементы X должны быть в закрытом интервале [0, 1]. beta 1 п ( Z, W ) — возвращает натуральный логарифм бета-функции log ( beta ( Z, W ) ), без вычисления beta(Z.W). Так как сама бета-функция может принимать очень большие или очень малые значения, функция betaln(Z.W) иногда более полезна, так как позволяет избежать переполнения.
4. Эллиптические функции и интегралы Эллиптические функции Якоби определяются интегралом и соотношениями сn(u) = cos ф, cn(u)=cosф, dn(u) = (1-sin2ф)1/2, аm(u) = ф. В некоторых случаях при определении эллиптических функций используются модули k вместо параметра гл. Они связаны выражением k = т = sin a. [SN.CN.DN] = ellipj(U.M) — возвращает эллиптические функции Якоби SN, CN и. DN, вычисленные для соответствующих элементов — аргумента U и параметра М. Входные величины U и М должны иметь один и тот же размер (или любая из них может быть скаляром). [SN.CN.DN] = ellipj(U, M, to1) — возвращает эллиптическую функцию Якоби, вычисленную с точностью tol. Значение tol по умолчанию — eps; его можно увеличить, тогда результат будет вычислен быстрее, но с меньшей точностью.
5. Функции ошибки Функция ошибки определяется следующим образом:
erf(X) — возвращает значение функции ошибки для каждого элемента вещественного массива X. Дополнительная (остаточная) функция ошибки задается соотношением erfc(X) — возвращает значение остаточной функции ошибки. erfcx(X) — возвращает значение масштабированной остаточной функции ошибки. Эта функция определяется так: егfсх(х) = ех erfc(x). erfinv(Y) — возвращает значение обратной функции ошибки для каждого элемента массива Y. Элементы массива Y должны лежать в области -1< Y< 1.
6. Интегральная показательная функция Интегральная показательная функция определяется следующим образом: expint(X) — возвращает интегральную показательную функцию для каждого элемента X.
7. Гамма-функция и ее варианты Гамма-функция определяется выражением Неполная гамма-функция определяется как gamma (А) — возвращает гамма-функцию элементов А. Аргумент А должен быть вещественным. gamma iпс(X, А) — возвращает неполную гамма-функцию соответствующих элементов X и А. Аргументы X и А должны быть вещественными и иметь одинаковый размер (или любой из них может быть скалярным) gammaln(A) —возвращает логарифмическую гамма-функцию, gammaln(A) = 1og(gamma(A)). Команда gammaln позволяет избежать переполнения, которое может происходить, если вычислять логарифмическую гамма-функцию непосредственно, используя 1og(gamma(A)).
М-сценарии Сценарии являются самым простым типом M-файла – у них нет входных и выходных аргументов. Они используются для автоматизации многократно выполняемых вычислений. Сценарии оперируют данными из рабочей области и могут генерировать новые данные для последующей обработки в этом же файле. Данные, которые используются в сценарии, сохраняются в рабочей области после завершения сценария и могут быть использованы для дальнейших вычислений. Пример Следующие операторы вычисляют радиус-вектор rho для различных тригонометрических функций от угла theta и строят последовательность графиков в полярных координатах. Строка комментария % M-file petals - сценарий построения лепесткового графика theta = -pi: 0.01: pi; rho(1, : ) = 2*sin(5*theta).^2; rho(2, : ) = cos(10*theta).^3; rho(3, : ) = sin(theta).^2; rho(4, : ) = 5*cos(3.5*theta).^3; for i = 1: 4 polar (theta, rho(i, : )) pause end Вычисления Команды графического вывода Создайте М-файл petals.m, вводя указанные выше операторы. Этот файл является сценарием. Ввод команды petals.m в командной строке системы MATLAB вызывает выполнение операторов этого сценария. После того, как сценарий отобразит первый график, нажмите клавишу Return, чтобы перейти к следующему графику. В сценарии отсутствуют входные и выходные аргументы; программа petals.m сама создаёт переменные, которые сохраняются в рабочей области системы MATLAB. Когда выполнение завершено, переменные (i, theta и rho) остаются в рабочей области. Для того чтобы увидеть этот список, следует воспользоваться командой whos. М-функции М-функции являются M-файлами, которые допускают наличие входных и выходных аргументов. Они работают с переменными в пределах собственной рабочей области, отличной от рабочей области системы MATLAB. Пример Функция average - это достаточно простой M-файл, который вычисляет среднее значение элементов вектора: function y = average (x) % AVERAGE Среднее значение элементов вектора. % AVERAGE(X), где X - вектор. Вычисляет среднее значение элементов вектора. % Если входной аргумент не является вектором, генерируется ошибка. [m, n] = size(x); if (~((m == 1) | (n == 1)) | (m == 1 & n == 1)) error('Входной массив должен быть вектором’) end y =sum(x)/length(x); % Собственно вычисление Попробуйте ввести эти команды в M-файл, именуемый average.m. Функция average допускает единственный входной и единственный выходной аргументы. Для того чтобы вызвать функцию average, надо ввести следующие операторы: z = 1: 99; average(z) ans = 50
|
Последнее изменение этой страницы: 2017-03-17; Просмотров: 848; Нарушение авторского права страницы