КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Встроенные функции. Функции, задаваемые пользователем
Векторы и матрицы
Вектор – это упорядоченный перечень чисел. Вектор можно ввести с клавиатуры, набрав в командной строке перечень чисел, отделенных запятыми или пробелами, помещенный в квадратные скобки. Примеры: >> V=[1 2 3] V = 1 2 3 >> Z=[-2,0 1,4] Z = -2 0 1 4 Символ <:> (двоеточие) дает возможность простого создания векторов, каждый элемент которых отличается от предшествующего на постоянную величину (шаг или приращение). Шаг может быть и отрицательным. Например: >> V=-0.1:0.3:1.4 V = -0.1000 0.2000 0.5000 0.8000 1.1000 1.4000 Шаг, равный единице, можно не указывать: >> X=-2:2 X = -2 -1 0 1 2 Элементы вектора X можно выделить в виде X (1), X (2) и т. д. Например: >> X(4) ans = Чтобы изменить форму вектора X со строчной на столбцовую, введем символ <′> (апостроф) после X: >> X' ans = -2 -1 Вектор-столбец можно ввести с командной строки, но значения элементов в перечне должны отделятся знаком <;> (точка с запятой): >> A=[1.3;5.4;6.9] A = 1.3000 5.4000 6.9000 Система MATLAB способна эффективно выполнять операции с векторами. Например, чтобы возвести в куб элементы вектора X, введем следующую команду: >> X.^3 ans = -8 -1 0 1 8 Матрица – это прямоугольный набор чисел. Рассмотрим матрицу размером 2×3:
B =.
В MATLAB эту матрицу можно ввести с помощью следующей команды: >> B=[1 3 0;-2 -2 5] B = 1 3 0 -2 -2 5 Отметим, что элементы матрицы в строке отделяются друг от друга пробелами, а сами строки разделяются точкой с запятой. Элементы в строке можно также отделять друг от друга запятыми. Элементы матрицы B можно выделить в виде B (1,1), B (2,3) и т. д. Например: >> B(1,2) ans = Чтобы транспонировать матрицу B, введем символ <′> (апостроф) после B: >> B' ans = 1 -2 3 -2 0 5 Чтобы возвести в квадрат элементы матрицы B, достаточно ввести следующую команду: >> B.^2 ans = 1 9 0 4 4 25 Векторы и матрицы – это массивы однородных данных, которые отличаются числом измерений. Под вектором в MATLAB понимается одномерный массив данных, а под матрицей – двумерный массив. Подробнее тема массивов будет рассмотрена ниже.
Основные элементарные математические функции приведены в табл. 1.
Таблица 1. Основные элементарные функции
Аргументами элементарных функций могут быть действительные либо комплексные числа, а также массивы. Если в качестве аргумента функции задан массив, результат представляет собой массив, полученный поэлементным вычислением функции для соответствующих элементов исходного массива. Аргументы тригонометрических функций задаются в радианах. Обратные к ним функции возвращают результат также в радианах. Примеры: >> 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. Информацию из раздела можно получить, набрав в командной строке команду doc elfun. В этом разделе содержится полная информация о функциях комплексного аргумента real, angle, abs и т. д. (см. раздел 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-файлами. 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).
Дата добавления: 2014-12-07; Просмотров: 454; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |