
matlab laboratornye / матлаботчет9
.docxМИНОБРНАУКИ РОССИИ
Санкт-Петербургский государственный
электротехнический университет
«ЛЭТИ» им. В.И. Ульянова (Ленина)
Кафедра PC
отчет
по лабораторной работе №9
по дисциплине «MATLAB»
Тема: ОСНОВЫ ПРОГРАММИРОВАНИЯ В СРЕДЕ MATLAB
Студент гр. фыв |
|
фыв |
Преподаватель |
|
фыв |
Санкт-Петербург
фыв
Цель работы.
Освоение синтаксиса операторов ветвления и цикла системы MatLab.
Краткие теоретические сведения.
1. Оператор сравнения:
if <условие1>
<действие 1>
else
<действие 2>
end
<действие 1> выполняется, если <условие1> истинно.
<действие 2> выполняется, если <условие1> ложно.
Форматы условий:
== равенство
~= неравенство
> строго больше
< строго меньше
>= нестрого больше
<= нестрого меньше
2. Оператор цикла while:
while <условие>
<действие 1>
<действие 2>
...
<действие n>
end
Цикл повторяется, пока условие истинно.
3. Оператор цикла for:
for <ИмяПеременнойЦикла>=<НачальноеЗначение>:<шаг>:<КонечноеЗначение>
<действие 1>
<действие 2>
...
<действие n>
End
Цикл выполняется для каждого значения переменной от <НачальноеЗначение> до <КонечноеЗначение> с шагом <шаг>.
Упрощенная форма для шага 1:
for <ИмяПеременнойЦикла>=<НачальноеЗначение>:<КонечноеЗначение>
<действие 1>
<действие 2>
...
<действие n>
end
4. Оператор переключения switch:
switch <выражение>
case <значение 1>
<действия>
...
case <значение r>
<действия>
...
otherwise
<действия>
end
Выполняет действия, соответствующие первому совпавшему значению case.
Если ни одно значение не совпадает, выполняются действия в блоке otherwise.
Копии рабочей области:
Рисунок 1 - Выполнение сложения с помощью кода нового m-файла
Происходит реализация программы сложения двух чисел с возможностью повторения операции по желанию пользователя. «f=1;» инициализирует флаг f значением 1, что означает, что цикл while будет выполняться. Затем выполняется ввод значений и выводится результат, после чего «f=input('Складывать еще (Да-1,Нет-0)? ');» запрашивает у пользователя, хочет ли он продолжать сложение. Вводимое значение присваивается флагу f. Если пользователь введет 1, то f останется равным 1 и цикл продолжится. Если введено 0, то f станет равным 0 и цикл завершится.
Рисунок 2 - Пример выполнения функции fact
Пользователю предлагается ввести значение для переменной x. Это значение будет использоваться для вычисления факториала. Переменная y инициализируется значением 1. Факториал по определению равен 1 для нуля и единицы, и это значение будет умножаться на последовательные числа от 1 до x. Цикл проходит от 1 до x и на каждой итерации умножает текущее значение y на текущее значение i. Таким образом, y постепенно накапливает произведение всех чисел от 1 до x, что и является определением факториала. Затем выводятся значения.
Рисунок 3 - Многократный расчет факториала с использованием while
В данном коде реализуется многократный повтор из первого кода для расчета суммы и расчёт интеграла из второго кода.
Рисунок 4 - Многократный расчет факториала с проверкой на ввод положительного числа
В этом коде добавлена проверка на то, какое вводится число. Если число меньше 0, то программа просит ввести заново число, выводя сообщение о невозможности нахождения факториала отрицательного числа. Если же больше, то программа будет выводить результат.
Рисунок 5 - Код файла polar.m, который поочередно выводит полярные графики в одном окне
Рисунок 6 - Графики, выводимые в одном окне с задержкой в 2 секунды
Чтобы увеличить задержку между выводом графиков, нужно поменять аргумент функции pause на значение более. Например, pause(5) будет показывать графики с задержкой в 5 секунд.
Для построения фигуры Лиссажу предлагается использовать следующий код:
Рисунок 7 - исходный код для вращения фигуры Лиссажу
Рисунок 8 - Код для фигуры Лиссажу с увеличенной частотой обновления и уменьшенным шагом
Рисунок 9 - Фигура Лиссажу в графическом окне
Вывод:
В ходе выполнения лабораторной работы были освоены принципы построения условий с использованием операторов сравнения. Реализованы программы с использованием ветвления if для обработки различных сценариев. Изучены и применены циклы while и for для повторения операций, включая обработку пользовательского ввода и выполнение математических вычислений. Разработаны программы, которые учитывают обработку ошибок ввода, такие как проверка ввода положительных чисел для вычисления факториала. Реализованы визуализации, включая построение семейства графиков в полярных координатах и анимации вращающейся фигуры Лиссажу. В ходе оптимизации плавности анимации было уменьшено время обновления и увеличено количество промежуточных положений.