Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MATLAB.doc
Скачиваний:
202
Добавлен:
13.11.2018
Размер:
1.36 Mб
Скачать

2. Работа в режиме прямых вычислений

Система MATLAB допускает работу в режиме прямых вычислений, т.е. без сохра­нения вводимых операторов на диске в виде m-файлов (программ). При этом система функционирует по существу как мощный научно-технический калькулятор, способ­­ный проводить весьма сложные вычисления и представлять их результаты в числовой или гра­­фической форме.

MATLAB различает строчные и прописные символы. При наборе команд MATLAB могут использоваться буквы латинского алфавита и цифры; кириллица может быть использована только в комментариях, вклю­­чаемых в m-файлы, а также в графических объектах (заголовки, надписи по осям координат). Команды MATLAB набирают в позиции приглашения с помощью клавиатуры, завершая ввод ко­­манды нажатием клавиши [Enter]; предыдущие команды могут быть вызваны с помощью стре­­лочных клавиш [] и []. При корректировке (редактировании) текста команд используют обычные приемы.

Основные символы MATLAB приведены в табл. 2.1.

Таблица 2.1

+

Плюс

-

Минус

*

Символ умножения

.*

Умножение массивов (поэлементное умножение)

^

Возведение в степень

.^

Возведение массива в степень

\

«Левое» деление

/

«Правое» деление

./

Деление массива (поэлементное деление)

:

Двоеточие. Используют для обозначения индексов, в цикле for и в некоторых других случаях.

– то же, что

– пусто, если

– то же, что , где

– пусто, если и или если и .

Двоеточие используют для исключения строк, столбцов или элементов векторов и матриц.

– все элементы A как один столбец.

- j -й столбец A

и т.д.

( )

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

[ ]

Квадратные скобки. Используют при формировании векторов и матриц.

.

Десятичная точка или символ массива

..

Каталог более высокого уровня

...

Символ продолжения (не менее трех точек)

,

Запятая

;

Точка с запятой. Используется для обозначения строк матриц, а также для подавления вывода результата на экран

%

Символ комментария (игнорируется интерпретатором)

!

Восклицательный знак. Ставится перед командой операционной системы

'

Символ транспонирования или апостроф

=

Символ присваивания

<, <=, >, >=, = =, ~ = – операторы отношений

&

Логическое И (AND)

|

Логическое ИЛИ (OR)

~

Логическое дополнение НЕ (NOT)

xor

Исключительное ИЛИ

kron

символ тензорного произведения (Кронекера).

Ввод чисел в командной строке производится по правилам, принятым в языках высокого уровня. Ввод команды завершается нажатием клавиши [Enter].

Пример команды:

» 4*2^1.7-5.87

ans =

7.1260

По умолчанию результату присваивается имя ans (начало слова answer, т.е. ответ) – эта системная переменная может быть использована в последующих вычислениях:

» ans-1

ans =

6.1260

В результате данного вычисления переменной ans присваивается новое значение.

Видимая информация в окне MATLAB располагается в двух зонах: просмотра и редактирования (командной). Информацию, находящуюся в первой из них, можно только просматривать с помощью мыши и полос прокрутки, а также выделять нужные фрагменты для копирования в буфер обмена и последующей вставки в текстовый документ или в командную строку.

В MATLAB соблюдается общепринятая иерархия математических операций. Срав­­ни­те с предыдущим примером:

» (4*2)^1.7-5.87

ans =

28.4268

При прямых вычислениях могут использоваться функции, которые разделяют на внутренние (встроенные) и внешние; последние существуют в виде m-файлов. Справку по ним можно получить, набирая соответствующую команду: help elfun – перечень элементарных функций; help specfun – специальных и т.д. Список аргументов (и параметров), отделяемых запятой, заключается в круглые скоб­ки после имени функции. Тип результата вычисления функции совпадает с типом аргумента.

Ниже приведен перечень элементарных функций:

sin(X), cos(X), tan(X) – синус, косинус, тангенс;

asin(X), acos(X), atan(X) – арксинус, арккосинус, арктангенс;

sinh(X), cosh(X), tanh(X) – гиперболические функции;

asinh(X), acosh(X), atanh(X) – обратные гиперболические функции;

exp(X) – экспоненциальная функция;

log(X) – натуральный логарифм;

log10(X) – десятичный логарифм;

log2(X) – логарифм по основанию 2;

pow2(X) – возведение числа 2 в степень Х;

nextpow2(X) – ближайшая степень по основанию 2;

sqrt(X) – корень квадратный;

abs(X) – модуль числа;

fix(X) – округление до ближайшего целого в сторону нуля;

floor(X) – округление до ближайшего целого в сторону ;

ceil(X) – округление до ближайшего целого в сторону ;

round(X) – округление до ближайшего целого;

rem(X,Y) – остаток от целочисленного деления;

sign(X) – функция знака;

rat(X) – представление числа в виде цепной дроби;

rats(X) – представление числа в виде рациональной дроби.

В качестве примера рассмотрим представление числа 

» rats(pi)

ans =

355/113

» rat(pi)

ans =

3 + 1/(7 + 1/(16))

Для формирования цепной дроби функция rat(X) подбирает два целых числа n и d , причем выполняется условие . Можно выбрать точность вычислений, отличную от принятой по умолчанию,

» rat(pi,1e-10)

ans =

3 + 1/(7 + 1/(16 + 1/(-294 + 1/(3))))

а также определить числа n и d:

» [n,d]=rat(pi); [n,d]

ans =

  1. 113

» [n,d]=rat(pi,1e-10); [n,d]

ans =

312689 99532

» n/d

ans =

3.1416

Вычисления в системе MATLAB проводятся с двойной точностью, но вывод дан­ных может происходить в разном формате. Формат устанавливается с помощью соответствующей настройки: File-Preferences…-General-Numerical Format (см. раздел 1):

Перечень форматов:

Short – короткий, с 5 знаками (уста­нов­ле­н по умолчанию);

Long – длинный, с 15 знаками;

Hex – шестнадцатеричный;

Bank – финансовый (с точностью до сотых);

Plus – знаковый;

Short E – короткий экспоненциальный (4 знака после запятой);

Long E – длинный экспоненциальный (15 знаков после запятой);

Short G – короткий экспоненциальный (с отбрасыванием нулей);

Long G – длинный экспоненциальный

Rationalпредставление действительного числа в виде отношения целых чисел.

Форматом можно также управлять, набирая соответствующие команды со служебным словом format, например, format long, format + (знаковый), format rat (сокращенная форма rational) и т.д. Установленный формат действует до назначения нового формата или до конца сеанса работы с системой MATLAB.

Продолжаем вычисления:

» sn(pi/2)

??? Undefined function or variable sn.

При вводе команды допущена ошибка: набрано sn вместо sin. Диагностика системы: «??? Функция или переменная sn не определена».

» sin(pi/2)

ans = 1

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

Далее используем оператор присваивания 1 – вводим переменную s

»s=sin(pi/2)

s = 1

Переменная может быть числом, элементом вектора или матрицы, а также символьной (строковой). Значение переменной сохраняется до конца сеанса работы в среде MATLAB.

Длинная команда может быть продолжена на следующей строке, если в конце текущей строки набрать многоточие (...):

» s=1-1/2+1/3-1/4+1/5-1/6+...

1/7-1/8+1/9-1/10

s = 0.6456

Вывод результата вычисления на экран подавляется с помощью символа (;).

Если необходимо вывести на экран промежуточные результаты, после оператора (при нескольких операторах в командной строке) ставят символ (,). Например:

» a=.5, s=sin(a*pi)

a = 0.5000

s = 1

и

» a=.5; s=sin(a*pi)

s = 1

» a=.5; s=sin(a*pi), a*s

s = 1

ans = 0.5000

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

» 4*2^1.7-sqrt(5.87); ans-1

ans =

9.5732

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

» e=exp(1)

e =

2.7183

» format long, e

e =

2.71828182845905

» format short e, e

e =

2.7183e+000

» format long e, e

e =

2.718281828459045e+000

» format hex, e

e =

4005bf0a8b145769

» format bank, e

e =

2.72

» format +, е

ans = +

После этих упражнений необходимо восстановить принятый по умолчанию формат, т.е. short.

Признаком возникновения неопределенности типа 0/0, / или - при вычислениях является результат ans = NaN (Not a Number – не число) или ans = Inf – системная переменная, равная машинной бесконечности (+) и характеризующая результат деления на ноль или переполнение регистра.

» s=sin(0)/0

Warning: Divide by zero (Предупреждение: деление на нуль)

s = NaN

» exp(1000)

ans = Inf

Система MATLAB реализует операции не только с действительными, но и с комплексными числами, причем мнимые единицы i и j определены по умолчанию как . MATLAB допускает возможность переопределить эти величины (например, как целые переменные в заголовке цикла for). Комплексное число может быть задано в естественной форме, например, или . Возможна и такая форма записи: . Существуют следующие функции для работы с комплексными числами:

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

imag(z) – возвращает мнимую часть комплексного числа z;

conj(z) – возвращает комплексно сопряженное число;

angle(z) – возвращает фазовый угол (в радианах);

abs(z) – возвращает модуль комплексного числа.

Приведем примеры:

» j

ans = 0 + 1.0000i

» z = 1 – 2i

z = 1.0000 – 2.0000i

» z=1-2*j

z =

1.0000 - 2.0000i

» real(z)

ans = 1

» imag(z)

ans = – 2

» abs(z)

ans = 2.2361

» angle(z)

ans = -1.1071

» conj(z)

ans = 1.0000 + 2.0000i

Еще примеры действий с комплексными числами:

» sqrt(z)

ans = 1.2720 – 0.7862i

» z^2

ans = -3.0000 – 4.0000i

» sin(z)

ans = 3.1658 – 1.9596i

» 2^z

ans = 0.3669 – 1.9661i

Пример операции, некор­ректной в элементарной тригонометрии:

» asin(4)

ans =

1.5708 – 2.0634i

Проверка:

» sin(1.5708-2.0634i)

ans =

3.9999 + 0.0000i

Функция disp выводит результат непосредственно, без использования переменной ans:

» s=sin(4.5); w=cos(s); disp(s^w)

-0.1822 + 0.9704i

Практические рекомендации:

1. Переменные, использованные при вычислениях, сохраняются в рабочем про­ст­ранстве MATLAB (см. описание интерфейса системы); их список может быть вы­ве­ден на экран с помощью команды » who, а значения – с помощью команды » whos.

2. С помощью команды » clc можно очистить текущее окно MATLAB; параметры рабочего пространства и значения переменных при этом сохраняются.

3. Для сохранения рабочего пространства с целью продолжения работы в среде с данными параметрами необходимо обратиться к главному меню: File-Save Workspace As… , а затем с помощью диалогового окна создать файл с расширением .mat (mat-файл). Для последующей загрузки рабочего пространства – команда File-Load Workspace… .

4. Удаление имен переменных из рабочего пространства осуществляется с помощью команды clear name1 name2 … или clear(‘name1’,’name2’,…).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]