русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

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


Дата добавления: 2015-07-23; просмотров: 614; Нарушение авторских прав


Элементарные функции, пожалуй, наиболее известный класс математических функций. Поэтому, не останавливаясь подробно на их описании, представим набор данных функций, имеющийся в составе системы MATLAB. Функции, перечисленные ниже, сгруппированы по функциональному назначению. В тригонометрических функциях углы измеряются в радианах. Все функции могут использоваться в конструкции вида y=func(x), где func — имя функции. Обычно в такой форме задается информация о функции в системе MATLAB. Мы, однако, будем использовать для функций, возвращающих одиночный результат, более простую форму func(x). Форма [y,z,...]=func(x....) будет использоваться только в тех случаях, когда функция возвращает множественный результат.

Алгебраические и арифметические функции

В системе MATLAB определены следующие алгебраические и арифметические функции:

· abs(X) — возвращает абсолютную величину для каждого числового элемента вектора X. Если X содержит комплексные числа, abs(X) вычисляет модуль каждого числа. Примеры:

abs(-5) = 5

abs(3+4i) =5

» abs([1 -2 1 3i 2+3i ])

ans =

1.0000 2.0000 1.0000 3.0000 3.6056

· ехр(Х) — возвращает экспоненту для каждого элемента X. Для комплексного числа z = х + i*y функция exp(z) вычисляет комплексную экспоненту: exp(z)=exp(x)*(cos(y)+i*sin(y)).

Примеры:

» ехр([1 23])

ans =

2.7183 7.3891 20.0855

» exp(2+3i)

ans =

-7.3151 + 1.0427i

· factor(n) — возвращает вектор-строку, содержащую простые множители числа п. Для массивов эта функция неприменима. Пример:

f = factor(221)

f =

13 17

· G=gcd(A, В) — возвращает массив, содержащий наибольшие общие делители соответствующих элементов массивов целых чисел А и В. Функция gcd (0.0) возвращает значение 0, в остальных случаях возвращаемый массив G содержит положительные целые числа;

· [G, С. D] = gcd(A, В) — возвращает массив наибольших общих делителей G и массивов С и D, которые удовлетворяют уравнению A(i) .*С(1) + B(i) .*D(i) = G(i). Они полезны для выполнения элементарных эрмитовых преобразований. Примеры:



» А=[2 6 9]:

» В=[2 3 3]:

» gcd(A.B)

ans =

2 3 3

» [G.C.D]=gcd(A.B)

G =

2 3 3

C =

0 0 0

D=

1 1 1

· lcm(A.B) — возвращает наименьшие общие кратные для соответствующих парных элементов массивов А и В. Массивы А и В должны содержать положительные целые числа и иметь одинаковую размерность (любой из них может быть скаляром). Пример:

» А=[1 354];

» В=[2 462];

» lcm(А.В)

ans =

2 12 30 4

· log (X) — возвращает натуральный логарифм элементов массива X. Для комплексного или отрицательного z, где z = х + y*i, вычисляется комплексный логарифм в виде log(z) = log(abs(z)) + i*atan2(y,x). Функция логарифма вычисляется для каждого элемента массива. Область определения функции включает комплексные и отрицательные числа, что способно привести к непредвиденным результатам при некорректном использовании. Пример:

» Х=[1.2 3.34 5 2.3];

» log(X)

ans=

-0.1823 1.2060 1.6094 0.8329

· log2(X) — возвращает логарифм по основанию 2 элементов массива X;

· [F,E] = log2(X) — возвращает массив действительных значений F и массив целых чисел Е. Элементы массива F обычно лежат в диапазоне 0.5 J abs(F) < 1. Для действительных X возвращаемые массивы F удовлетворяют уравнению вида X = F. *2. Е. Для нулевых значений X возвращаются F = 0 и Е = 0.

Пример:

» Х=[2 4.678 5;0.987 1 3];

» [F.E] = log2(Х)

F =

0.5000 0.5847 0.6250

0.9870 0.5000 0.7500

Е =

2 3 3

0 1 2

· log10(X) — возвращает логарифм по основанию 10 для каждого элемента X. Область функции включает комплексные числа, что способно привести к непредвиденным результатам при некорректном использовании.

Пример:

» Х=[1.4 2.23 5.8 3];

» log10(X)

ans =

0.1461 0.3483 0.7634 0.4771

· mod(x.y) — возвращает х mod у;

· mod(X, Y) — возвращает остаток от деления X на Y (т. е., X - Y.*floor(X./Y)) для ненулевого Y, и X в противном случае. Если операнды X и Y имеют одинаковый знак, функция mod(X, Y) возвращает тот же результат, что mod(Х, Y). Однако (для положительных X и Y) mod(-x.y) = rem(-x,y)+y.

Примеры:

» М = mod(5.2)

М =

» mod(10.4)

ans =

· pow2(Y) — возвращает массив X, где каждый элемент есть Z Y ;

· pow2(F.E) — вычисляет Х=Р*2 £ для соответствующих элементов F и Е. Аргументы F и Е — массивы действительных и целых чисел соответственно.

Пример:

» d=pow2(pi/4,2)

d =

3.1416

· р = nextpow2(A) — возвращает такой показатель степени р, что 2 Р i abs(A). Эта функция эффективно применяется для выполнения быстрого преобразования

Фурье. Если А не является скалярной величиной, то nextpowZ возвращает значение nextpow2(length(A)).

Пример:

» х=[2 678934567784324];

» length(x)

ans =

» р = nextpow2(x)

Р =

» х=4:

» р = nextpow2(x)

Р =

» Х=45;

» р = nextpow2(x)

Р =

Функция primes(n) возвращает вектор-строку простых чисел, меньших или равных n. Пример:

» р = primes(25)

Р =

2 3 5 7 11 13 17 19 23

· [N,D] = rat(X) - возвращает массивы N и D, такие что N./D аппроксимирует X с точностью 1 .е-6*norm(Х(:),!). Даже при том, что все числа с плавающей запятой — рациональные числа, иногда желательно аппроксимировать их дробями, у которых числитель и знаменатель являются по возможности малыми целыми числами. Функция rat пытается это сделать;

· [N.D] = rat(X.tol) — возвращает массивы N и D, такие что N./D аппроксимирует X с точностью tol.

· rat (X) без выходных параметров просто выдает на экран массив цепных дробей;

· rats(X.strlen) — возвращает ряд, полученный путем упрощенной рациональной аппроксимации элементов X. Аргумент strlen — длина возвращаемой строки. Функция возвращает знак «*», если полученное значение не может быть напечатано в строке, длина которой задана значением strlen. По умолчанию strlen=13. Тот же алгоритм аппроксимации используется в командном окне MATLAB при задании рационального формата вывода командой format rat.

Пример:

» [g.j]=rat(pi.le-10)

g=

j =

· sqrt(A) — возвращает квадратный корень каждого элемента массива X. Для отрицательных и комплексных элементов X функция sqrt(X) вычисляет комплексный результат.

Пример:

» А=[25 21.23 55.8 3]:

» sqrt(A)

ans =

5.0 4.6076 7.4699 1.7321

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

syms x

subplot(2,2.1).ezplot(x*2.[-5 5]).xlabel( " ).grid on

subplot(2,2.2).ezplot(exp(x),[-2 2]),xlabel(").grid on

subplot(2.2.3).ezplot(log(x).[0 5]),grid on

subplot(2.2.4),ezplot(sqrt(x).[0 10]).grid on

Рис. 8.1.Графики ряда алгебраических функций

Графики дают наглядное представление о поведении представленных на них функций. Обратите внимание на применение графической команды ezplot из пакета Symbolic Math ToolBox (она отличается от обычной команды ezplot MATLAB отсутствием заключения символьных переменных в'), команды syms, также входящей в пакет Symbolic Math .Toolbox и задающей символьную переменную х, и несколько необычное применение команды xlabel (''). Эта команда с аргументом в виде пустой строки снимает вывод обозначения горизонтальной оси на двух верхних графиках. Если этого не сделать, то символ «х» окажется наложенным на наименование функций нижних графиков, которое команда ezpl ot выводит над графиками автоматически.

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

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

Э acos (X) — возвращает арккосинус для каждого элемента X. Для действительных значений X в области [-1, 1] acos(X) возвращает действительное значение из диапазона диапазона [0, р], для действительных значений X вне области [-1, 1] acos(X) возвращает комплексное число.

Примеры:

»Y = acos (0.5)

1.0472

» acos([0.5 1 2])

ans =

1.0472 0 0 + 1.31701

· acot (X) — возвращает арккотангенс для каждого элемента X. Пример:

» Y=acot(0.l)

у =

1.4711

· acsc(X) — возвращает арккосеканс для каждого элемента X. Пример:

» Y= acsc(3)

0.3398

· asec(X) — возвращает арксеканс для каждого элемента X. Пример:

» Y=asec(0.5)

Y =

0 + 1.31701

· asin(X) — возвращает арксинус для каждого элемента X. Для действительных значений X в области [-1, 1] asin(X) возвращает действительное число из диапазона [-р/2, р/2], для действительных значений X вне области [-1, 1] asin(X) возвращает комплексное число. Пример:

» Y= asin (0.278)

Y =

0.2817

· atan(X) — возвращает арктангенс для каждого элемента X. Для действительных значений X atan(X) находится в области [-р/2, р/2]. Пример:

» Y=atan(1)

Y =

0.7854

· atan2 (Y, X) — возвращает массив Р той же размерности, что X и Y, содержащий поэлементно арктангенсы отношения вещественных частей Y и X. Мнимые части игнорируются. Элементы Р находятся в интервале [-р, р]. Специфический квадрант определен функциями sign(Y) и sign(X). Это отличает полученный результат от результата atan(Y/X), который ограничен интервалом [-л/2, л/2].

Пример:

» atan2(l,2)

ans =

0.4636

· cos(X) — возвращает косинус для каждого элемента X. Пример:

»Х=[123];

» cos(X)

ans =

0.5403 -0.4161 -0.9900

· cot(X) — возвращает котангенс для каждого элемента X. Пример:

» Y = cot(2)

Y =

-0.4577

· csc(X) — возвращает косеканс для каждого элемента X. Пример:

» Х=[2 4.678 5:0.987 1 3];

» Y = csc(X)

Y =

1.0998 -1.0006 -1.0428

1.1985 1.1884 7.0862

· sec(X) — возвращает массив той же размерности что и X, состоящий из секансов элементов X. Пример:

» X=[pi/10 pi/3 pi/5];

» sec(X)

ans =

1.0515 2.0000 1.2361

· sin(X) — возвращает синус для каждого элемента X. Пример:

» X=[pi/2 pi/4 pi/6 pi];

» sin(X)

ans =

1.0000 0.7071 0.5000 0.0000

· tan(X) — возвращает тангенс для каждого элемента X.

Рис. 8.2.Графики четырех тригонометрических функций

Пример:

» Х=[0.08 0.06 1.09]

X=

0.0800 0.0600 1.0900

» tan(X)

ans=

0.802 0.0601 1.9171

Следующий файл-сценарий позволяет наблюдать графики четырех тригонометрических функций (рис. 8.2):

syms xsubplot(2.2.1).ezplot(sin(x),[-5 5]).xlabel("),gnd on

subplot(2.2.2),ezp"lot(tan(x).[-5 5]).xlabel(").grid on

subplot(2,2,3),ezplot(asin(x),[-1 1]).grid on

subplot(2.2.4),ezplot(atan(x).[-5 5]),grid on

Поскольку многие тригонометрические функции периодичны, появляется возможность формирования из них любопытных комбинаций, позволяющих создавать типовые тестовые сигналы, используемые при моделировании радиоэлектронных устройств. Следующий файл-сценарий строит графики для таких комбинаций, создающих из синусоиды три наиболее распространенных сигнала — прямоугольные, пилообразные и треугольные импульсы:[ В пакете расширения Signal Processing Toolbox есть специальные функции для генерации таких сигналов — square и sawtooth. — Примеч. ред. ]

х=-10:0.01:10;

subplot(2,2.1).plot(x.0.8*sin(x))

.x label('0.8*sin(x)')

subplot(2.2,2).plot(x,0.8*sign(sin(x)))

.x1abel('0.8*sgn(sin(x))')

subplot(2.2.3),plot(x.atan(tan(x/2)))

.xlabel('atan(tan(x/2))')

subplot(2.2.4),plot(x,asin(sin(x)))

.xlabel('asin(sin(x))')

Соответствующие графики представлены на рис. 8.3.

Рис. 8.3.Графики синусоиды, прямоугольных, пилообразных и треугольных колебаний

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

х=-10:0.01:10;

subplot(2.2.1).plot(x.sin(x). A 3).x1abel('sin(xr3')

subplot(2.2.2).plot(x,abs(s1n(x)))

.xlabel('abs(sin(x))').axis([-10 10 -1 1]),

subplot(2.2,3),plot(x,tan(cos(x)))

.xlabel('tanCcos(x))')

subplot(2.2.4).plot(x.csch(sec(x))),xlabeK'csch(sec(x))')

Рис. 8.4.Графики периодических сигналов без разрывов

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

Гиперболические и обратные им функции

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

· acosh(X) — возвращает гиперболический арккосинус для каждого элемента X. Пример:

»Y= acosh (0.7)

Y =

0 + 0.7954i

· acoth(X) — возвращает гиперболический арккотангенс для каждого элемента X. Пример:

»Y = acoth (0.1)

Y=

0.1003 + 1.5708i

· acsch(X) — возвращает гиперболический арккосеканс для каждого элемента X. Пример:

» Y = acsch(1)

Y =

0.8814

· asech(X) — возвращает гиперболический арксеканс для каждого элемента X. Пример:

» Y = asech(4)

Y =

0 + 1.3181i

· asinh(X) — возвращает гиперболический арксинус для каждого элемента X. Пример:

» Y = asinh (2.456)

Y =

1.6308

· atanh(X) — возвращает гиперболический арктангенс для каждого элемента X. Пример:

» Х=[0.84 0.16 1.39];

» atanh (X)

ans =

1.2212 0.1614 0.9065 + 1.5708i

· cosh(X) — возвращает гиперболический косинус для каждого элемента X. Пример:

» Х=[1 23];

» Cosh(X)

ans =

1.5431 3.7622 10.0677

· coth(X) — возвращает гиперболический котангенс для каждого элемента X. Пример:

» Y = coth(3.987)

Y =

1.0007

· csch(x) — возвращает гиперболический косеканс для каждого элемента X. Пример:

» Х=[2 4.678 5:0.987 1 3];

» Y = csch(X)

Y =

0.2757 0.0186 0.0135

0.8656 0.8509 0.0998

· sech(X) — возвращает гиперболический секанс для каждого элемента X. Пример:

» X=[pi/2 pi/4 pi/6 pi];

» sech(X)

ans =

0.3985 0.7549 0.8770 0.0863

· sinh(X) — возвращает гиперболический синус для каждого элемента X. Пример:

» X=[pi/8 pi/7 pi/5 pi/10];

» sinh(X)

ans =

0.4029 0.4640 0.6705 0.3194

· tanh(X) — возвращает гиперболический тангенс для каждого элемента X. Пример:

» X=[pi/2 pi/4 pi/6 pi/10];

»tanh(X)

ans =

0.9172 0.6558 0.4805 0.3042

Следующий m-файл-сценарий строит графики ряда гиперболических функций:

syms x

subplot(2,2,l).ezplot(sinh(x).[-4 4]).xlabel(").grid on

subplot(2,2.2).ezplot(cosh(x).[-4 4]).xlabel('').grid on

subp1ot(2.2,3).ezplot(tanh(x).[-4 4]).grid on

subplot(2.2.4).ezplot(sech(x).[-4 4]).grid on

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

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

syms x

subplot(2,2.1).ezplot(asinh(x).[-4 4]).xlabel(").grid on

subplot(2.2.2),ezp1ot(acosh(x).[0 4]).xlabel(").grid on

subplot(2,2.3),ezplot(atanh(x).[-l l]).grid on

subplot(2.2.4).ezplot(asech(x).[0 l]).grid on

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

 



<== предыдущая лекция | следующая лекция ==>
Функции времени и даты | Функции округления и знака


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 1.191 сек.