Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лаб_практикум_ОВИ_03_06_13

.pdf
Скачиваний:
66
Добавлен:
14.04.2015
Размер:
4 Мб
Скачать

»FORMAT LONG E

???FORMAT LONG.

Missing operator, comma, or semi-colon.

Для более удобного восприятия результата MATLAB выводит результат вычислений через строку после вычисляемого выражения.

Однако иногда бывает удобно разместить больше строк на экране, для чего следует выбрать переключатель compact (File, Numeric display) из раскрывающегося списка. Добавление пустых строк обеспечивается выбором loose из раскрывающегося списка Numeric display.

Замечание 3

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

1.1.4. Использование элементарных функций

Предположим, что требуется вычислить значение следующего выражения:

e2,5 (ln 11,3)0,3 (sin 2,45 cos 3,78 ) / (tg 3,3) .

Введите в командной строке это выражение в соответствии с правилами MATLAB и нажмите <Enter>:

» ехр( 2.5)*lоg(11.3)^0.3

sqrt((sin(2.45*pi)+cos(3.78*pi)}/tan(3.3))

Ответ выводится в командное окно:

ans =

-3.2105

11

При вводе выражения использованы встроенные функции

MATLAB для вычисления экспоненты, натурального логарифма,

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

Наберите в командной строке команду help eifun, при этом в командное окно выводится список всех встроенных элементарных функций с их кратким описанием. Аргументы функций заключаются в круглые скобки, имена функций набираются строчными буквами. Для ввода числа π достаточно набрать pi в командной строке.

Арифметические операции в MATLAB выполняются в обычном порядке, свойственном большинству языков программирования:

возведение в степень ^;

умножение и деление *, /;

сложение и вычитание +, .

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

Если теперь требуется вычислить значение выражения, похожего на предыдущее, например

e2,5 (ln 11,3)0,3 ((sin 2,45 cos 3,78 ) / (tg 3,3))2 ,

то необязательно его снова набирать в командной строке. Можно воспользоваться тем, что MATLAB запоминает все вводимые команды.

Для повторного занесения их в командную строку служат клавиши <up>, <down>. Вычислите данное выражение, проделав следующие шаги:

1.Нажмите клавишу < >, при этом в командной строке появится введенное ранее выражение.

2.Внесите в него необходимые изменения, заменив знак минус на плюс и квадратный корень на возведение в квадрат (для перемещения

12

по строке с выражением служат клавиши <right>, <left>, <Home>, <End>).

3. Вычислите измененное выражение, нажав <Enter>.

Получается

» ехр(-2.5)*log(11.3)^0.3+

((sin(2.45*pi)+cos(3.78*pi))/tan(3.3))^2

ans =

121.2446

Если необходимо получить более точный результат, то следует выполнить команду format long e, затем нажимать клавишу < > до тех пор, пока в командной строке не появится требуемое выражение, и

вычислить его, нажав <Enter>

»format long e

»exp(-2.5)*log(11.3)^0.3+ ((sin.(2.45*pi)+cos(3.78*pi))/tan(3.3))^2 ans =

1.212446016556763e+002

Вывести результат последнего найденного выражения в другом формате можно без повторного вычисления. Следует изменить формат командой short, а затем посмотреть значение переменной ans, набрав ее в командной строке и нажав <Enter>:

»format short

»ans

ans =

121.2446

13

В рабочей среде 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 появляется всплывающее меню. Выбор пункта Сору приводит к копированию команды в буфер Windows. При помощи Evaluate Selection

можно выполнить отмеченную группу команд. Для удаления текущей команды предназначен пункт Delete Selection. Для удаления всех команд до текущей Delete to Selection, для удаления всех команд Delete Entire History.

При вычислениях возможны некоторые исключительные ситуации,

например деление на нуль, которые в большинстве языков программирования приводят к ошибке. При делении положительного числа на нуль в MATLAB получается inf (бесконечность), а при делении

14

отрицательного числа на нуль получается inf (минус бесконечность) и

выдается предупреждение:

» 1/0

Warning: Divide by zero.

ans = Inf

При делении нуля на нуль получается NaN (не число) и также выдается предупреждение:

» 0/0

Warning: Divide by zero.

ans = NaN

При вычислении, например, sqrt( 1) никакой ошибки или предупреждения не возникает. MATLAB автоматически переходит в область комплексных чисел:

»sqrt( 1.0)

ans = 0 + l.0000i

1.1.5. Работа с комплексными числами

При наборе комплексных чисел в командной строке MATLAB

можно использовать либо i, либо j, а сами числа при умножении,

делении и возведении в степень необходимо заключать в круглые скобки:

»(2.1+3.2i)*2+(4.2+1.7i)^2

ans =

18.9500 + 20.6800i

15

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

» 2.1+3.2i*2+4.2+1.7i^2

ans =

3.4100 + 6.4000i

Для вычисления комплексно-сопряженного числа применяется апостроф, который следует набирать сразу за числом, без пробела:

» 2 3i'

ans =

2.0000 + 3.0000i

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

»((3.2+1.5i)*2+4.2+7.9i)'

ans =

10.6000 10.9000i

MATLAB позволяет использовать комплексные числа в качестве аргументов встроенных элементарных функций:

» sin(2+3i)

ans =

9.1545 4.1689i

Конструирование комплексного числа по его действительной и мнимой части выполняется с помощью функции complex:

16

» complex(2.3, 5.8)

ans =

2.3000 + 5.8000i

Как узнать, какие встроенные элементарные функции можно использовать и как их вызывать? Наберите в командной строке команду help eifun, при этом в командное окно выводится список всех встроенных элементарных функций с их кратким описанием.

1.2.Индивидуальные задания

1.В соответствии с номером N по списку в журнале группы,

записанном в виде N = СМ, где С старшая цифра, М младшая цифра,

вычислите выражение, заданное с помощью табл. 1.1 и табл. 1.2.

2.Замените в выражениях табл. 1.1 и табл. 1.2 знак арифметической операции умножения на знак операции сложения и вычислите новые выражения без их полного набора в командной строке, воспользовавшись тем, что MATLAB запоминает вводимые команды.

3.Получите результаты вычислений пункта 2 индивидуального задания в форматах short и long.

4.Получите комплексное число (a + bi), где a, b соответственно число букв в вашем имени и фамилии. При этом определите также:

комплексно-сопряженное число числу (a + bi);

вычислите квадрат комплексно-сопряженного числа;

вычислите произведение исходного комплексного числа и комплексно-сопряженного числа;

вычислите выражение sin(a + bi) + cos(a bi).

5. Оформите отчет по лабораторной работе.

17

Таблица 1.1 – Индивидуальное задание по младшей цифре М

Младшая

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

цифра М

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

номера в

 

0 или 5

 

 

 

 

1 или 6

 

2 или 7

 

 

 

 

3 или 8

 

 

4 или 9

журнале

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

группы

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C3 / 7

 

 

 

 

 

 

 

 

 

Выражение

 

A2 / 5

C

 

 

 

 

A2 B1,7

 

A B C

 

 

 

D

 

 

 

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)

18

Лабораторная работа 2

ПРОСТЕЙШИЕ ВЫЧИСЛЕНИЯ В ПАКЕТЕ MATLAB

С ИСПОЛЬЗОВАНИЕМ ПЕРЕМЕННЫХ И ВЕКТОРОВ

Цель лабораторной работы: получение и закрепление знаний,

формирование практических навыков работы с пакетом MATLAB при простейших вычислениях с использованием переменных и векторов.

2.1.Краткие сведения из теории

2.1.1.Использование переменных в пакете MATLAB

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

(комплексные, вещественные или только целые). Для того чтобы присвоить, например, переменной z значение 1.45, достаточно написать в командной строке z = 1,45, при этом MATLAB сразу же выведет значение z:

» z = 1.45

z =

1.4500

Здесь знак равенства используется в качестве оператора присваивания. Часто не очень удобно после каждого присваивания получать еще и результат. Поэтому в MATLAB предусмотрена возможность завершать оператор присваивания точкой с запятой для подавления вывода результата в командное окно. Именем переменной может быть любая последовательность букв и цифр без пробела,

19

начинающаяся с буквы. Строчные и прописные буквы различаются,

например, MZ и mz являются двумя разными переменными. Количество воспринимаемых MATLAB символов в имени переменной составляет 31.

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

sin 1,3 ln 3,4 tg 2,75th 2,75 sin 1,3 ln 3,4 tg 2,75th 2,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

Обратите внимание, насколько первая запись компактнее и яснее второй! Во втором варианте формула не помещалась в командном окне на

20

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