Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Matlab_лекции Джалилова.DOC
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
273.41 Кб
Скачать

6. Математические функции

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

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

6.1. Элементарные функции

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

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

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

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

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

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

Синтаксис:

Y=abs(X)

Описание:

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

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

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

Пример:

abs(-5)=5

abs(3+4i)=5

ascii=abs(‘3+41’)

ascii=51 32 43 32 52 105

setstr(ascii)

ans=3+41

Сопутствующие функции: SIGN, ANGLE, REAL, IMAG, SETSTR.

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

Синтаксис:

P=angle(Z)

Описание:

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

Пример:

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

r=abs(z)

phi=angle(z),

а оператор

z=r.*exp(i*phi)

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

Алгоритм:

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

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

Сопутствующие функции: ABS, REAL, IMAG.

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

Синтаксис:

X=real(Z)

Y=real(Z)

Описание:

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

Сопутствующие функции: ABS, ANGLE.

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

Синтаксис:

V=conj(Z)

Описание:

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

Сопутствующие функции: IMAG, REAL.

SIGN Вычесления знака числа

Синтаксис:

S=sign(Z)

Описание:

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

(-1).

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

S=Z./abs(Z), модуль которых равен единице.

Сопутствующие функции: ABS, IMAG, REAL.

CEIL, FIX, Функция округления

FLOOR,

ROUND

Синтаксис:

Y=ceil(X)

Y=fix(X)

Y=floor(X)

Y=round(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) [ -1 0 4 6 7 ] fix(x) [ -1 0 3 5 7 ]

floor(x) [ -2 -1 3 5 7 ] round(x) [ -2 0 3 6 7 ]

Сопутствующие функции: CEIL, FIX, FLOOR, ROUND.

REM Функции остатка

Синтаксис:

rem(x, y)

Описание:

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

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

Сопутствующие функции: CEIL, FIX, FLOOR, ROUND.

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.

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

Алгоритм:

if round(a)=a | round(b)=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

Сопутствующие функции: ABS, FLOOR, ROUND, SIGN.

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

Синтаксис:

g=lcm(m, n)

Описание:

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

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

Алгоритм:

if round(a)=a | round(b)=b | a<1 | b<1

error(‘ Входные аргументы должны быть целым числами. ’)

end

c=a*b/gcd(a, b);

Пример:

g=lcm(45, 36)

g=180

Сопутствующие функции: GCD, ROUND.

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) определяет для входа ч два таких целых числа n и d, при которых выполняется условие n/d-х<=1е-6* abs(х).

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

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

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

Функция S=rats(X, k) использует функцию rat(X), чтобы вывести на экран результат в виде простой дроби

s=[ sprintf([ ‘%’ num2str(fix(k/2)), n) ‘/‘ sprintf([ ‘%-’ num2str(fix(k/2)) ‘.of ‘], d)], точность аппроксимации для которой составляет tol=10^(-fix(k/2))*abs(x).

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

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

Алгоритм:

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

n/d=d1+__________1_______________

d2+________1_____________

d3+______1___________

d4+_____1________

d5+___1_______

d6+_1_____

d7+_1_

d8

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

Примеры:

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

rat(pi)

3+1/(7+1/(16))

rat(pi, 1e-12)

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

Сопутствующие функции: FORMAT RAT.

Трансцендент

16

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]