
ОВИ_ЛР_2012
.pdfВывести результат последнего найденного выражения в другом формате можно без повторного вычисления. Следует изменить формат командой short, а затем посмотреть значение переменной ans, набрав ее в командной строке и нажав <Enter>:
»format short
»ans
ans =
121.2446
В рабочей среде MATLAB 6.x для вызова ранее введенных команд имеется удобное средство окно Command History с историей команд.
История команд содержит время и дату каждого сеанса работы с
MATLAB 6.x. Для активизации окна Command History необходимо выбрать вкладку с одноименным названием. Текущая команда в окне изображена на синем фоне. Если щелкнуть на какой-либо команде в окне левой кнопкой мыши, то данная команда становится текущей. Для ее выполнения в MATLAB надо применить двойной щелчок мыши или выбрать строку с командой при помощи клавиш <up>, <down> и
нажать клавишу <Enter>. Лишнюю команду можно убрать из окна. Для этого ее надо сделать текущей и удалить при помощи клавиши <Delete>.
Можно выделить несколько идущих подряд команд при помощи комбинации клавиш <Shift>+<up>, <Shift>+<down> и выполнить их при помощи <Enter> или удалить клавишей <Delete>. Выделение последовательно идущих команд можно производить левой кнопкой мыши с одновременным удерживанием клавиши <Shift>. Если команды не идут одна за другой, то для их выделения следует использовать левую кнопку мыши с удерживанием клавиши <Ctrl>.
При щелчке правой кнопкой мыши по области окна Command History появляется всплывающее меню. Выбор пункта Сору приводит к
21
копированию команды в буфер Windows. При помощи Evaluate Selection
можно выполнить отмеченную группу команд. Для удаления текущей команды предназначен пункт Delete Selection. Для удаления всех команд до текущей Delete to Selection, для удаления всех команд Delete Entire History.
При вычислениях возможны некоторые исключительные ситуации,
например деление на ноль, которые в большинстве языков программирования приводят к ошибке. При делении положительного числа на ноль в MATLAB получается inf (бесконечность), а при делении отрицательного числа на ноль получается inf (минус бесконечность) и
выдается предупреждение:
» 1/0
Warning: Divide by zero.
ans =
Inf
При делении нуля на нуль получается NaN (не число) и также выдается предупреждение:
» 0/0
Warning: Divide by zero.
ans =
NaN
При вычислении, например sqrt(1), никакой ошибки или предупреждения не возникает. MATLAB автоматически переходит в область комплексных чисел:
22
»sqrt( 1.0) ans =
0 + l.0000i
1.2.5. Работа с комплексными числами
При наборе комплексных чисел в командной строке MATLAB
можно использовать либо i, либо j, а сами числа при умножении,
делении и возведении в степень необходимо заключать в круглые скобки:
»(2.1+3.2i)*2+(4.2+1.7i)^2
ans =
18.9500 +20.6800i
Если не использовать скобки, то умножаться или возводиться в степень будет только мнимая часть и получится неверный результат:
» 2.1+3.2i*2+4.2+1.7i^2
ans =
3.4100 + 6.4000i
Для вычисления комплексно-сопряженного числа применяется апостроф, который следует набирать сразу за числом, без пробела:
» 2 3i'
ans =
2.0000 + 3.0000i
Если необходимо найти комплексно-сопряженное выражение, то исходное выражение должно быть заключено в круглые скобки:
23
»((3.2+1.5i)*2+4.2+7.9i)'
ans =
10.6000 10.9000i
MATLAB позволяет использовать комплексные числа в качестве аргументов встроенных элементарных функций:
» sin(2+3i)
ans =
9.1545 4.1689i
Конструирование комплексного числа по его действительной и мнимой части выполняется с помощью функции complex:
» complex(2.3, 5.8)
ans =
2.3000 + 5.8000i
Как узнать, какие встроенные элементарные функции можно использовать и как их вызывать? Наберите в командной строке команду help eifun, при этом в командное окно выводится список всех встроенных элементарных функций с их кратким описанием.
1.3.Индивидуальные задания
1.В соответствии с номером N по списку в журнале группы,
записанном в виде N = СМ, где С старшая цифра, М младшая цифра,
вычислите выражение, заданное с помощью таблицы 1.1 и таблицы 1.2.
2. Замените в выражениях табл. 1.1 и табл. 1.2 знак арифметической операции умножения на знак операции сложения и вычислите новые
24

выражения без их полного набора в командной строке, воспользовавшись
тем, что MATLAB запоминает вводимые команды.
3.Получите результаты вычислений пункта 2 индивидуального задания в форматах short и long.
4.Получите комплексное число (a + bi), где a, b соответственно число букв в вашем имени и фамилии. При этом определите также:
комплексно-сопряженное число числу (a + bi);
вычислите квадрат комплексно-сопряженного числа;
вычислите произведение исходного комплексного числа и комплексно-сопряженного числа;
вычислите выражение sin(a + bi) + cos(a bi).
5. Оформить отчет по лабораторной работе.
Таблица 1.1 – Индивидуальное задание по младшей цифре М
Младшая |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
цифра М |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
номера в |
|
0 или 5 |
|
|
|
|
1 или 6 |
|
2 или 7 |
|
|
|
|
3 или 8 |
|
|
|
4 или 9 |
|||||||||||
журнале |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
группы |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
C3 / 7 D |
|
|
|
|
|
|
|
|||
Выражение |
|
A2 / 5 C |
|
|
|
|
A 2 B1.7 |
|
A B C |
|
|
|
|
|
|
A 5 D |
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
B D |
|
|
|
|
|
|
|
|
D1 / 5 / C |
|
|
|
|
B 3 A5 |
|
|
|
C B4 |
|||||||||||
|
|
|
|
|
D C A |
|
|
|
|
|
|
|
|
||||||||||||||||
Таблица 1.2 – Индивидуальное задание по старшей цифре С |
|||||||||||||||||||||||||||||
Старшая |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
цифра С |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
номера в |
|
A |
|
|
|
|
|
B |
|
|
|
|
|
|
|
C |
|
|
|
D |
|||||||||
журнале |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
группы |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|
(sin(N ))2 |
|
|
|
|
ln( N 2) |
|
exp( N / N 2 ) |
|
|
|
A B |
||||||||||||||||
1 |
|
(cos(N ))4 |
|
|
|
|
(ln( N 4 ))2 |
|
exp(N ) 1 |
|
|
|
A C |
||||||||||||||||
2 |
|
(tg(N ))2 |
|
|
|
|
(log(N ))4 |
|
|
1/ exp( N ) |
|
|
|
B / C |
|||||||||||||||
3 |
|
(ctg(N ))4 |
|
|
|
log( N N 3 |
9) |
|
N / exp(N ) |
|
|
C /( A B) |
25
ЛАБОРАТОРНАЯ РАБОТА 2
ПРОСТЕЙШИЕ ВЫЧИСЛЕНИЯ В ПАКЕТЕ MATLAB
С ИСПОЛЬЗОВАНИЕМ ПЕРЕМЕННЫХ И ВЕКТОРОВ
2.1. Цель лабораторной работы
Получение и закрепление знаний, формирование практических
навыков работы с пакетом MATLAB при простейших вычислениях с
использованием переменных и векторов.
2.2.Краткие сведения из теории
2.2.1.Использование переменных в пакете MATLAB
Как и во всех языках программирования, в MATLAB предусмотрена возможность работы с переменными. Причем пользователь не должен заботиться о том, какие значения будет принимать переменная
(комплексные, вещественные или только целые). Для того чтобы присвоить, например, переменной z значение 1.45, достаточно написать в командной строке z = 1.45, при этом MATLAB сразу же выведет значение z:
» z = 1.45
z =
1.4500
Здесь знак равенства используется в качестве оператора присваивания. Часто не очень удобно после каждого присваивания получать еще и результат. Поэтому в MATLAB предусмотрена
26

возможность завершать оператор присваивания точкой с запятой для подавления вывода результата в командное окно. Именем переменной может быть любая последовательность букв и цифр без пробела,
начинающаяся с буквы. Строчные и прописные буквы различаются,
например MZ и mz являются двумя разными переменными. Количество воспринимаемых MATLAB символов в имени переменной составляет 31.
В качестве упражнения на использование переменных найдите значение следующего выражения:
sin1.3ln 3.4
tg2.75
th2.75
sin1.3
ln 3.4
tg2.75
th2.75 .
Наберите последовательность команд, приведенную ниже (обратите внимание на точку с запятой в первых двух операторах присваивания для подавления вывода промежуточных значений на экран):
»х = sin(1.3*pi)/log(3.4);
»у = sqrt(tan(2.75)/tanh(2.75));
»z = (х+у)/(х-у)
Z =
0.0243 - 0.9997i
Последний оператор присваивания не завершается точкой с запятой для того, чтобы сразу получить значение исходного выражения. Конечно,
можно было бы ввести сразу всю формулу и получить тот же результат:
»(sin(1.3*pi)/log(3.4)+sqrt(tan(2.75)/tanh(2.75)))/…
(sin(1.3*pi)/log(3.4)-sqrt(tan(2.75)/tanh(2.75)))
ans =
0.0243 - 0.9997i
27

Обратите внимание, насколько первая запись компактнее и яснее второй! Во втором варианте формула не помещалась в командном окне на одной строке, и пришлось записать ее в две строки, для чего в конце первой строки поставлены три точки.
Замечание 1.
Для ввода длинных формул или команд в командную строку следует поставить три точки (подряд, без пробелов), нажать клавишу <Enter> и
продолжить набор формулы на следующей строке. Так можно разместить выражение на нескольких строках. MATLAB вычислит все выражение или выполнит команду после нажатия на <Enter> в последней строке (в
которой нет трех идущих подряд точек).
MATLAB запоминает значения всех переменных, определенных во время сеанса работы. Если после ввода примера, приведенного выше, были проделаны еще какие-либо вычисления, и возникла необходимость вывести значение х, то следует просто набрать х в командной строке и нажать <Enter>:
» x
-0.6611
Переменные, определенные выше, можно использовать и в других формулах. Например, если теперь необходимо вычислить выражение
sin1.3ln 3.4
tg2.75
th2.75 32 ,
то достаточно ввести следующую команду:
» (x-y)^(3/2)
ans =
-0.8139 + 0.3547i
28
Вызов функций в MATLAB обладает достаточной гибкостью.
Например, вычислить е3.5 можно, вызвав функцию ехр из командной строки:
» ехр(3.5)
ans =
33.1155
Другой способ состоит в использовании оператора присваивания:
» t = ехр(3.5)
t =
33.1155
Предположим, что часть вычислений с переменными выполнена, а
остальные придется доделать во время следующего сеанса работы с
MATLAB. В этом случае понадобится сохранить переменные,
определенные в рабочей среде.
2.2.2. Сохранение рабочей среды
Самый простой способ сохранить значения всех переменных использовать в меню File пункт Save Workspace As. При этом появляется диалоговое окно Save …, в котором следует указать каталог и имя файла.
По умолчанию предлагается сохранить файл в подкаталоге work основного каталога MATLAB. Оставьте пока этот каталог. В дальнейшем будет объяснено, как устанавливать пути к каталогам в MATLAB для поиска файлов. Удобно давать файлам имена, содержащие дату работы, например work20-06-12. MATLAB сохранит результаты работы в файле
29
work20-06-12.mat. Теперь можно закрыть MATLAB одним из следующих
способов:
выбрать в меню File пункт Exit MATLAB;
нажать клавиши <Ctrl>+<Q>;
набрать команду Exit в командной строке и нажать <Enter>;
нажать на кнопку с крестиком в правом верхнем углу окна программы MATLAB.
В следующем сеансе работы для восстановления значений переменных следует открыть файл work20-06-12.mat при помощи пункта
Open меню File. Теперь все переменные, определенные в прошлом сеансе,
стали доступными. Их можно использовать во вновь вводимых командах.
Сохранение и восстановление переменных рабочей среды можно выполнить и из командной строки. Для этого служат команды save и load.
В конце сеанса работы с MATLAB надо выполнить команду
» save work20-06-12
Расширение можно не указывать, MATLAB сохранит переменные рабочей среды в файле work20-06-12.mat. В начале следующего сеанса работы для считывания переменных следует ввести команду
» load work20-06-12
Подробную информацию о командах save и load можно получить,
набрав в командной строке help save или help load.
Замечание 2.
Переменные в файлах с расширением mat хранятся в двоичном виде.
Просмотр этих файлов в любом текстовом редакторе не даст никакой информации о переменных и их значениях.
30