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

matlab laboratornye / матлаботчет9

.docx
Скачиваний:
0
Добавлен:
25.09.2025
Размер:
591.75 Кб
Скачать

МИНОБРНАУКИ РОССИИ

Санкт-Петербургский государственный

электротехнический университет

«ЛЭТИ» им. В.И. Ульянова (Ленина)

Кафедра 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 для повторения операций, включая обработку пользовательского ввода и выполнение математических вычислений. Разработаны программы, которые учитывают обработку ошибок ввода, такие как проверка ввода положительных чисел для вычисления факториала. Реализованы визуализации, включая построение семейства графиков в полярных координатах и анимации вращающейся фигуры Лиссажу. В ходе оптимизации плавности анимации было уменьшено время обновления и увеличено количество промежуточных положений.

Соседние файлы в папке matlab laboratornye