Главная Случайная страница


Полезное:

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


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Встроенные функции. Функции, задаваемые пользователем





 

Основные элементарные математические функции приведены в табл. 1.1.

 

Таблица 1.1. Основные элементарные функции

exp Экспонента abs модуль
log натуральный логарифм asin арксинус
log10 десятичный логарифм acos арккосинус
sqrt квадратный корень atan арктангенс
sin Синус sinh гиперболический синус
cos Косинус cosh гиперболический косинус
tan Тангенс tanh гиперболический тангенс
cot Котангенс asinh гиперболический арксинус
cec Секанс acosh гиперболический арккосинус
csc Косеканс atanh гиперболический арктангенс

 

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

>> acosh(2)

ans =

1.3170

>> sin(1+i)

ans =

1.2985 + 0.6350i

>> exp(0:3)

ans =

1.0000 2.7183 7.3891 20.0855

Справочная информация по встроенным элементарным функциям содержится в разделе elfun справочной системы MATLAB. Способы получения этой информации подробно рассмотрены в Приложении 1. В разделе elfun содержится информация о функциях комплексного аргумента real, angle, abs и т. д. (см. раздел 1.5). В раздел elfun включены также функции округления и остатка от деления: round (округление до ближайшего целого), fix (усечение дробной части числа), floor (округление до меньшего целого), ceil (округление до большего целого), mod (остаток от деления с учетом знака), rem (остаток в смысле модульной арифметики), sign (знак числа). В этих случаях о комплексных аргументах не может быть и речи. Примеры:

>> round(-4.7)

ans =

-5

>> mod(7,2)

ans =

В MATLAB предусмотрены встроенные функции, связанные с целочисленной арифметикой: factor (разложение числа на простые множители), isprime (истина, если число простое), primes (формирование списка простых чисел), rat (приближение числа в виде отношения двух небольших целых чисел), lcm (наименьшее общее кратное), gcd (наибольший общий делитель). Примеры:

>> factor(123456789)

ans =

3 3 3607 3803

>> isprime(7)

ans =

>> primes(50)

ans =

2 3 5 7 11 13 17 19 23 29 31 37 41 43 47

>> gcd(1236,175992)

ans =

Есть также функции, предназначенные для решения стандартных задач комбинаторики: функция perms вычисляет число перестановок, а функция nchoosek – число сочетаний. Например, C124 – число сочетаний из 12 по 4, легко находится вызовом функции nchoosek:

>> nchoosek(12,4)

ans =

Информация по функциям целочисленной арифметики содержится в разделе specfun справочной системы MATLAB. В разделе specfun находится также информация по встроенным специальным математическим функциям (функциям Бесселя besselj, bessely, полиномам Лежандра legendre и др.).

MATLAB включает побитовые функции преобразования систем счисления: dec2bin (перевод десятичного числа в двоичное); bin2dec (перевод двоичного числа в десятичное); dec2hex (перевод десятичного числа в шестнадцатеричное); hex2dec (перевод шестнадцатеричного числа в десятичное). Примеры:

>> dec2bin(11)

ans =

>> bin2dec('1011')

ans =

>> dec2hex(350)

ans =

15E

>> hex2dec('15E')

ans =

Информация по этим функциям находится в разделе strfun справочной системы MATLAB.

И, наконец, есть функции для работы со значениями даты и времени. Чтобы отобразить календарь какого - либо года и месяца, нужно задать функцию calendar с двумя аргументами. Например, отобразим календарь на март 2008 года:

>> calendar(2008,3)

Mar 2008

S M Tu W Th F S

0 0 0 0 0 0 1

2 3 4 5 6 7 8

9 10 11 12 13 14 15

16 17 18 19 20 21 22

23 24 25 26 27 28 29

30 31 0 0 0 0 0

Функция calendar без аргументов выводит в командное окно календарь на текущий месяц.

Пара функций tic и toc позволяет вычислить время выполнения системой MATLAB той или иной операции. Если в командной строке набрать

>> tic, Fun, toc

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


>> tic, A=1:100; B=0.01:0.01:1;C=A*B', toc

C =

3.3835e+003

elapsed_time =

0.0100

Информация о функциях даты и времени содержится в разделе timefun справочной системы MATLAB.

В MATLAB мы будем использовать как встроенные функции, так и свои собственные функции. Собственные функции можно задавать в отдельных файлах, которые называются M-файлами (см. Главу 3). M-файлы-функции полезны для задания функций, которые требуют несколько промежуточных команд для вычисления результата. Задание простых функций, которые можно выразить в одной строке, осуществляется с помощью команды inline.

В этом примере показано, как задается функция f(x) = с использованием команды inline:

>> f=inline('1/x^2','x')

f =

Inline function:

f(x) = 1/x^2

Вычислим эту функцию, например, при x = 2:

>> f(2)

ans =

0.2500

Как отмечалось ранее, большинство функций системы MATLAB могут оперировать как скалярами, так и массивами. Для того, чтобы заданная вами функция могла оперировать массивами, вставте точки перед математическими операторами <^ >, < * >, < / >. Векторизацию символьного выражения S осуществляет команда vectorize(S). Таким образом, чтобы получить векторизованную версию функции f(x) =, введем строку

>> f=inline(vectorize('1/x^2'),'x')

f =

Inline function:

f(x) = 1./x.^2

Теперь можно вычислить эту функцию для вектора:

>> f(1:5)

ans =

1.0000 0.2500 0.1111 0.0625 0.0400

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

>> g=inline(vectorize('1/(x^2+y^2)'),'x','y')

g =

Inline function:

g(x,y) = 1./(x.^2+y.^2)

Тогда выполнение выражения

>> g([1 2],[3 4])

ans =

0.1000 0.0500

дает значения функции в точках (1;2) и (3;4).







Date: 2016-08-30; view: 226; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.01 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию