Смекни!
smekni.com

Матричная математическая система MATLAB (стр. 3 из 8)

Для просмотра содержимого массивов удобно использовать браузер рабочего пространства Workspace. Каждый вектор и матрица в нем представляются в виде квадратика с ячейками, справа от которого указывается размер массива. Двойной щелчок по квадратику мышью ведет к появлению окна редактора массивов Array Editor. Работа с редактором массивов вполне очевидна – возможен не только просмотр элементов массивов, но и их редактирование и замена.

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

Работасредактороммассивов

To get started, select "MATLAB Help" from the Help menu.

>> 2+3

ans =

5

>> sin(1)

ans =

0.8415

>> type sin

sin is a built-in function.

>> help sin

SIN Sine.

SIN(X) is the sine of the elements of X.

Overloaded methods

help sym/sin.m

>> V=[1 2 3 4]

V =

1 2 3 4

>> sin(V)

ans =

0.8415 0.9093 0.1411 -0.7568

>> 3*V

ans =

3 6 9 12

>> V^2

??? Error using ==> ^

Matrix must be square.

>> V.^2

ans =

1 4 9 16

>> V+2

ans =

3 4 5 6

>>

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

Форма вывода и перенос строки в сессии

Следует отметить особенности вывода в системе MATLAB. Вывод начинается с новой строки, причем числовые данные выводятся с отступом, а текстовые – без него. Для экономии места в данной книге в дальнейшем вывод будет даваться без перевода на новую строку. Например, вывод вектора-строки

ans =

3 4 5 6

будет дан в виде:

ans = 3 4 5 6


Исключением является вывод векторов столбцов и матриц – тут будет сохранена более наглядная и присущая MATLAB по умолчанию форма вывода.

В некоторых случаях вводимое математическое выражение может оказаться настолько длинным, что для него не хватит одной строки. Тогда часть выражения можно перенести на новую строку с помощью знака многоточия «...» (3 или более точек), например:

s = 1 – 1/2 + 1/3 – 1/4 + 1/5 – 1/6 + 1/7 ...

1/8 + 1/9 – 1/10 + 1/11 – 1/12;

Максимальное число символов в одной строке командного режима – 4096, а в m-файле – не ограничено, но со столь длинными строками работать неудобно. В ранних версиях в одной строке было не более 256 символов.

Запуск примеров применения MATLAB из командной строки

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

>> bench

запускает m-файл bench.m демонстрационного примера тестирования системы.


Основные объекты MATLAB

Понятие о математическом выражении

Центральным понятием всех математических систем является математическое выражение. Оно задает то, что должно быть вычислено в численном (реже символьном) виде. Вот примеры простых математических выражений, записанных в MATLAB и в математике.

В MATLAB: В математике:

2+3; 2+3

2^3* sqrt(y)/2; 2+3*003********/2

2.301*sin(x) 2,301sin(x)

4+exp(3)/5 4+e3/5

Разница в записи вполне очевидна. В MATLAB выражения записываются

в виде одной строки и вместо разделительной запятой в числах применяется разделительная точка. Математические выражения строятся на основе чисел, констант, переменных, операторов, функций и разных спецзнаков. Ниже даются краткие пояснения сути этих понятий. Специфика MATLAB в том, что математические выражения задаются в виде одной строки. Например, 23 записывается как 2^3. Знак ; (точка с запятой) в конце строки ввода блокирует вывод результата вычислений, например:

>> 2^3;

Однако специальная переменная ans (от answer – ответ) позволяет вывести результат вычислений:


>> ans

ans = 8

Действительные и комплексные числа

Число – простейший объект языка MATLAB, представляющий количественные данные. Числа можно считать константами. Числа используются в общепринятом представлении о них. Они могут быть целыми, дробными, с фиксированной и плавающей точкой. Возможно представление чисел в хорошо известном научном формате с указанием мантиссы и порядка числа. Ниже приводятся примеры представления действительных чисел:

0

-3

2.301

123.456e-24

-234.456e10

Как нетрудно заметить, в мантиссе чисел целая часть отделяется от дробной незапятой, а точкой, как принято в большинстве языков программирования. Для отделения порядка числа от мантиссы используется символ e. Знак «плюс» у чисел не проставляется, а знак «минус» у числа называют унарным минусом. Пробелы между символами в числах не допускаются.

Числа могут быть комплексными: z=Re(x)+Im(x)*i. Такие числа содержат действительную Re(z) и мнимую Im(z) части. Мнимая часть имеет множитель i или j, означающий корень квадратный из –1:


3i

2j

2+3i

-3.141i

-123.456+2.7e-3i

Функция real(z) возвращает действительную часть комплексного числа,

Re(z), а функция imag(z) – мнимую, Im(z). Для получения модуля комплексного числа используется функция abs(z), а для вычисления фазы – angle(Z). Ниже даны простейшие примеры работы с комплексными числами:

>> i

ans = 0 + 1.0000i

>> j

ans = 0 + 1.0000i

>> z=2+3i

z = 2.0000 + 3.0000i

>> abs(z)

ans = 3.6056

>> real(z)

ans = 2

>> imag(z)

ans = 3

>> angle(z)

ans = 0.9828

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


Форматы чисел

Для установки определенного формата представления чисел используется команда

>> format name

где name – имяформата. Для иллюстрации различных форматов рассмотрим вектор, содержащий два элемента-числа: x=[4/3 1.2345e-6]

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

format short 1.3333 0.0000

format short e 1.3333E+000 1.2345E-006

format long 1.333333333333338 0.000001234500000

format long e 1.333333333333338E+000 1.234500000000000E-006

formatbank 1.33 0.00

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

Константы и системные переменные

Константа – это предварительно определенное числовое или символьное значение, представленное уникальным именем (идентификатором). Числа (например, 1, –2 и 1.23) являются безымянными числовыми константами.

Другие виды констант в MATLAB принято называть системными переменными, поскольку, с одной стороны, они задаются системой при ее загрузке, а с другой – могут переопределяться. Основные системные переменные, применяемые в системе MATLAB, указаны ниже:

• i или j –мнимая единица (корень квадратный из –1);

• pi – число p = 3,1415926…;

• eps – погрешность операций над числами с плавающей точкой (2–52);

• realmin – наименьшее число с плавающей точкой (2–1022);

• realmax – наибольшее число с плавающей точкой (21023)

• inf – значение машинной бесконечности;

• ans – переменная, хранящая результат последней операции и обычно вызывающая его отображение на экране дисплея;

• NaN – указание на нечисловой характер данных (Not-a-Number).

Вот примеры применения системных переменных:

>> 2*pi

ans = 6.2832

>> eps

ans = 2.2204e-016

>> realmin

ans = 2.2251e-308

>> realmax

ans = 1.7977e+308

>> 1/0

Warning: Divide by zero.

ans = Inf

>> 0/0

Warning: Divide by zero.

ans = NaN


Как отмечалось, системные переменные могут переопределяться. Можно задать системной переменной eps иное значение, например eps=0.0001. Однако важно то, что их значения по умолчанию задаются сразу после загрузки системы.Поэтому неопределенными, в отличие от обычных переменных, системные переменные не могут быть никогда.

Символьная константа – это цепочка символов, заключенных в апострофы, например:

'Hello my friend!'

'Привет'

'2+3'

Если в апострофы помещено математическое выражение, то оно не вычисляется и рассматривается просто как цепочка символов. Так что '2+3' не будет возвращать число 5. Однако с помощью специальных функций преобразования символьные выражения могут быть преобразованы в вычисляемые.

Текстовые комментарии в программах

Поскольку MATLAB используется для достаточно сложных вычислений, важное значение имеет наглядность их описания. Она достигается, в частности, с помощью текстовых комментариев. Текстовые комментарии в программах вводятся с помощью символа %, например так:

% It is factorial function

В новых версиях MATLAB отпала проблема ввода комментариев с символами кириллицы. Так что подобный комментарий также вполне приемлем:

% Это функция вычисления факториала

Обычно первые строки m-файлов служат для описания их назначения, которое выводится на экран дисплея после команды

>> help Имя_файла

Считается правилом хорошего тона вводить в m-файлы достаточно подробные текстовые комментарии. Без таких комментариев даже разработчик программных модулей быстро забывает о сути собственных решений.

Переменные и присваивание им значений

Переменные – это имеющие имена объекты, способные хранить некоторые, обычно разные по значению, данные. В зависимости от этих данных переменные могут быть числовыми или символьными, векторными или матричными. Переменные являются широко распространенными объектами в математике и программировании. На языке программирования MATLAB можно задавать переменным определенные значения. Для этого используется операция присваивания, вводимая знаком равенства:

Имя_переменной = Выражение

Типы переменных заранее не декларируются. Они определяются выражением, значение которого присваивается переменной. Так, если это выражение – вектор или матрица, то переменная будет векторной или матричной. Переменная, имеющая единственное значение, рассматривается как матрица размера 1×1.

Имя переменной (ее идентификатор) может содержать сколько угодно символов, но запоминается и идентифицируется только 31 начальный символ. Имя любой переменной не должно совпадать с именами других переменных, функций и процедур системы, то есть оно должно быть уникальным. Имя должно начинаться с буквы, может содержать буквы, цифры и символ подчеркивания _. Недопустимо включать в имена переменных пробелы и специальные знаки, например +, -, *, / и т. д., поскольку в этом случае правильная интерпретация выражений становится невозможной.