Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка Моделювання систем електропостачання...doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
961.54 Кб
Скачать

Тема 4. Входной язык системы matlab

Цель работы: Освоить студентами понятие о математическом выражении и числах. Изучить системные переменные и символьные константы, работу с ними. Текстовые комментарии.

В MATLAB математические выражения записываются построчно, как это принято в большинстве языков программирования:

2+3

2.301*sin(x)

4+exp(3)/5

sqrt(y)/2

sin(pi/2)

Математические выражения состоят из чисел, констант, переменных, операторов и функций, а также разных спецзнаков. Ниже представлены примеры задания чисел:

0

2

-3

2.301

0.0001

123.456е-24

-224.456е10

3i

2j

2+3i

-3.141i

-123.456+2.7e-3

Функция real(z) возвращает действительную часть комплексного числа z, а функция imag(z) – мнимую. Для получения модуля комплексного числа используется функция abs(z), а для вычисления фазы – angle(z).

Операции над числами выполняются в формате с двойной точностью. Такой формат удовлетворяет подавляющему большинству требований к численным расчетам. Символьные вычисления MATLAB может выполнять с помощью специального пакета расширения Symbolic

Для переноса длинных строк используется многоточие (три или более точек), например:

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, но со столь длинными строками работать неудобно.

В MATLAB используются следующие системные переменные:

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

pi – число «пи» 3, 1415926…;

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

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

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

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

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

NaN – указание на нечисловой характер данных.

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

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

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

Текстовые комментарии вводятся с помощью оператора %. Обычно в определениях m-файлов первые строки определений служат для их описания, которое выводится на экран дисплея после команды » help Имя_файла. Желательно вводить достаточно подробные текстовые комментарии в m-файлы.

В системе MATLAB можно задавать переменным определенные значения. Для этого используется операция присваивания, вводимая оператором равенства =.

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

В памяти переменные занимают определенное место, называемое рабочей областью (workspace). Средство для ее просмотра уже описывалось.

Для очистки рабочей области используется функция clear в разных формах, например:

clear – удаление определений всех переменных;

clear x – удаление определения переменной x;

clear a, b, c – удаление определений переменных списка и т.д.

Для дефрагментации всей рабочей области памяти служит команда pack. Удаленная переменная становится неопределенной.

Важное значение при диалоге с сиcтемой MATLAB имеет диагностика ошибок. Рассмотрим ряд примеров. Введём, к примеру, ошибочное выражение:

» sqr(2)

Теперь нажмём клавишу Enter. Система сообщит об ошибке:

??? Undefined function or variable ‘sqr’ .

Это сообщение говорит, что не определена переменная или функция, и указывает, какая именно – sqr . В данном случае, разумеется, можно просто набрать правильное выражение. Однако в случае громоздкого выражения лучше воспользоваться редактором. Для этого достаточно нажать клавишу перелистывания строк ↓.

В результате появится выражение

» sqr (2)

Теперь с помощью клавиши→ следует установить курсор после буквы r и нажать клавишу t на нижнем регистре, а затем – клавишу Enter.

» sqrt(2)

ans =

1.4142

Теперь вычисления дают ожидаемый результат – значение квадратного корня из двух.

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

» hsin(1)

??? Undefined function or variable ‘hsin’.

» sinh(1)

ans =

1.1752

Иногда, что уже отмечалось, в ходе вывода данных вычислений появляется сокращение NaN (от слов Not a Number – не число). Оно обозначает операцию неопределенности, например вида 0/0 или Inf/Inf. Могут появляться и различные предупреждения об ошибках (на английском языке). Например, при делении на 0 конечного числа появляется предупреждение Warning: Dievide by Zero. (Внимание: деление на 0).

В MATLAB надо отличать предупреждение об ошибке от сообщения о ней. Предупреждения (обычно после слова Warning) не останавливают вычисления и лишь предупреждают пользователя о том, что диагностируемая ошибка способна повлиять на ход вычислений. Сообщение об ошибке (после знаков ???) останавливает вычисления.

Весь диапазон представления чисел в системе лежит от 10-308 до 10+308. По умолчанию MATLAB выдает числовые результаты в нормализованной форме с четырьмя цифрами после десятичной точки и одной до нее. Для изменения формата используется команда format:

x=[4/3 1.2345e-6]

format short 1.3333 0.0000

format short e 1.3333E+000 1.2345E-006

format long 1.33333333333333 80.000001234500000

format long e 1.3333333333333338E+000 1.23450000000000E-006

format bank 1.33 0.00

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