Числа. Переменные. Операторы. Функции. Выражения.




 

Как и большинство других языков программирования, MATLAB предоставляет возможность использования математических выражений, но в отличие от многиx из них, эти выражения в MATLAB включают матрицы. Основные состав­ляющие выражения:

• числа

• переменные

• операторы

• функции

 

Числа

MATLAB использует принятую десятичную систему счисления, с необязатель­ной десятичной точкой и знаками плюс-минус для чисел. Научная нотация использует букву е для определения множителя степени десяти. Мнимые числа используют i или j как суффикс. Некоторые примеры правиль­ных чисел приведены ниже

3 -99 0.0001

9.6397238 1.60210е-20 6.02252е23

li -3.14159j 3e5i

Все числа для хранения используют формат long, определенный стандартом плавающей точки IEEE.

Полезные константы:

pi = 3.14159265...

i = sqrt(-l)

j - то же, что и i

eps - относительная точность вычислений с плавающей запятой 2-52

realmin - наименьшее число с плавающей запятой 2-1022

realmax - наибольшее число с плавающей запятой (2 - ерs)21023

Inf - бесконечность (например, inf=l/0)

NaN - Not-a-number (например, NaN—0/0, Inf-Inf)

Переменные

В MATLAB нет необходимости в определении типа переменных или размерно­сти. Когда MATLAB встречает новое имя переменной, он автоматически созда­ет переменную и выделяет соответствующий объём памяти. Если переменная уже существует, MATLAB изменяет ее состав и если это необходимо выделяет дополнительную память. Например.

num_siudents = 8

создает матрицу 1x1с именем num_sludents и сохраняет значение 8 в её един­ственном элементе.

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

Чтобы увидеть матрицу, связанную с пере­менной, следует просто ввести название переменной.

Переменные могут быть числовыми, текстовыми и других типов.

1. Числовые переменные. Это числа, векторы, матрицы и многомерные массивы. В компьютере все числа представлены примерно с 16 десятичными знаками, под каждое вещественное число отводится 8 байтов, под комплексное – 16.

Комплексные числа и функции для работы с ними (набираем команды):

 

q=1+2*i q=1+2i real(q) imag(q) abs(q) conj(q) s=angle(q) (здесь -p<s<=p).

q=1+2*i; r=3; fi=0:.01:pi; z=q+r*exp(i*fi); plot(z) - это верхняя полуокружность.

 

2. Текстовые переменные. Они берутся в одиночные кавычки (апострофы), каждый символ занимает 2 байта (формат Unicode). Используются для задания заголовков в числовых выдачах и на графиках, для задания формул и т.д. Можно переводить текстовые переменные в числовые и наоборот. Выполним в командной строке

t='Moscow - столица России'

Строковые значения рассматриваются системой как массивы. В приве­денном примере t - это вектор-строка из 23 элементов-символов (ни­какого завершающего нулевого символа нет).

Строки символов можно объединять в двумерные массивы. Это позволяет хранить набор строковых значений одинаковой длины. Например, после ввода команды

S= ['Isaac Newton '

'Blaise Pascal']

MATLAB создает следующий двумерный массив 2 x 13:

[ 'I' 's' 'a' 'a' 'с' ' ' 'N' 'e' 'w' 't' 'о' 'n' ' '

'В' 'l' 'а' 'i' 's' 'e' ' ' 'P' 'а' 's' 'с' 'a' 'l' ]

В данном примере мы специально добавили к имени Ньютона один про­бел, чтобы уравнять число элементов в каждой строке массива. Если этого не сделать, MATLAB выдаст сообщение об ошибке.

Команда S (1,:) в данном примере возвращает строку 'Isaac Newton', команда S(2,:) - строку 'Blaise Pascal'. Вообще, к массивам сим­волов применимо большое число команд из предыдущего раздела. Так, например, доступны блочные операции, команды выделения подмассивов и др. В примере

а = 'Matrix';

b = 'Laboratory';

с = [а(1:3) b(l:3)]

переменной с будет присвоено символьное значение 'MatLab'.

 

3. Контроль за переменными: команды who и whos (последняя даёт подробную информацию обо всех переменных).

 

4. Другие типы переменных – ячейки и структуры, а также целочисленные типы данных будут обсуждаться позже.

 

Операции

Выражения используют обычные арифметические операции и правила стар­шинства.

Ниже указаны эти операции в возрастающем порядке приоритета. Все операции левоасоциативны.

 

+ - сложение, вычитание

* / \ умножение, деление, левое деление

^ степень

' комплексно сопряженное транспонирование

() определение порядка вычисления

 

Функции

MATLAB предоставляет большое количество элементарных математических функций, таких как abs, sqrt, exp, sin. Вычисление квадратного корня или лога­рифма отрицательного числа не является ошибкой: в этом случае результатом является соответствующее комплексное число. MATLAB также предоставляет и более сложные функции, включая гамма-функцию и функции Бесселя. Боль­шинство из этих функции имеют комплексные аргументы. Чтобы вывести спи­сок всех элементарных математических функций, наберите

Help elfun

Для вывода более сложных математических и матричных функций, наберите

Help specfun

Help elmat

соответственно.

Некоторые функции, такие как sqrt и sin, - встроенные. Они являются частью MATLAB, поэтому они очень эффективны, но их вычислительные детали труд­но доступны. В то время как другие функции, такие как gamma и sinh, реализо­ваны в М-файлах. Поэтому вы можете легко увидеть их код и, в случае необходимости, даже модифицировать его.

Имена функций не являются зарезервированными, поэтому возможно изменять их значения на новые, например

eps = l.e-6

и далее использовать это значение в последующих вычислениях. Начальное значение может быть восстановлено следующим образом:

Clear eps

 

Выражения

Ниже приведено несколько примеров выражений с результатами.

rho = (1+sqrt(5))/2

rho =

1.6180

а = abs(3+4i)

a =

z = sqrt(besselk(4/3, rho-i))

z =

0.3730 + 0.3214i

huge = exp(log(realmax))

huge =

1.7977е+308

toobig = pi*huge

toobig =

Inf

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2022-11-01 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: