RSS    

   Учебное пособие: Матричная математическая система MATLAB

В большинстве математических систем вычисление sin(V) или exp(V), где V – вектор, сопровождалось бы выдачей ошибки, поскольку функции sin и exp должны иметь аргумент в виде скалярной величины. Однако MATLAB – матричная система, а вектор является разновидностью матрицы с размером 1×n или n×1. Поэтому в нашем случае результат вычислений будет вектором того же размера, что и аргумент V, но элементы возвращаемого вектора будут синусами или экспонентами от элементов вектора V.

Матрица задается в виде ряда векторов, представляющих ее строки и заключенных в квадратные скобки. Для разделения элементов векторов используется пробел или запятая, а для отделения одного вектора от другого – точка с запятой. Для выделения отдельного элемента матрицы M используется выражение вида M(j,i), где M – имя матрицы, j – номер строки и i – номер столбца.

Для просмотра содержимого массивов удобно использовать браузер рабочего пространства 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

format bank         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.

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9


Новости


Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

                   

Новости

© 2010.