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

Отчет по лабораторонй работе №6

.docx
Скачиваний:
52
Добавлен:
03.10.2022
Размер:
20.28 Кб
Скачать

ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ

Федеральное государственное бюджетное образовательное

учреждение высшего образования

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

им. проф. М. А. Бонч-Бруевича»

_____________________________________________________________________________

Кафедра радиосистем и обработки сигналов

Дисциплина «Прикладные пакеты моделирования»

Лабораторная работа № 6

Режим программирования: организация разветвлений и циклов

Цель работы

Изучить средства организации разветвлений и циклов в MATLAB и овладеть навыками их использования при разработке М-файлов.

Выполнение работы

1. Организация разветвлений с одним условием.

function [] = y1()

clear

clc

x=-4:0.1:4

a=5;

b=4;

if a~=0 & b~=0

y1=a*sin(b*x)

else

y1=(a+2)*x+b

end

figure('Name','Grafik1','NumberTitle','off')

plot(x,y1),grid

end

Пояснения:

  • Разветвление по условию выполняется с помощью оператора if.

  • Действие оператора: если значение "истинно" (выполняется), то управление передается , в противном случае управление передается части программы, следующей за end..

  • Входные a, b, x выходные y1.

2. Организация разветвлений с несколькими условиями.

function [] = y2()

clear

clc

x=-4:0.1:4

a=5;

b=4;

if a~=0 & b~=0

y2=a*sin(b*x)

elseif a>-2 & b>0

y2=(a+2)*x+b

else

(2-a)*x^2+b

end

figure('Name','Grafik2','NumberTitle','off')

plot(x,y2),grid

end

Пояснения:

  • Разветвление по условию выполняется с помощью оператора if.

3. Организация цикла с заранее известным числом повторений.

for n = 0:10

fprintf('Fibonacci(%d)= %d\n', n, fibonacci(n));

end

Пояснения:

  • Арифметический цикл с заранее известным (фиксированным) числом повторений организуется с помощью оператора for.

4. Организация цикла с заранее неизвестным числом повторений

function [] = GeomProgression()

n = 0; s0 = 0; e = 100;

while e>1e-4

s = s0+(-0.5).^n;

e = abs(s-s0);

s0 = s;

n = n+1;

end

Strue=1/(1-(-0.5))

sum_pogr=[s e]

end

Пояснения:

  • Итерационный цикл с заранее неизвестным (не фиксированным) числом повторений организуется с помощью оператора while.

  • Входные n, s0, e выходные s, e, d.

  • Сравнить их.

5. Организация разветвления в зависимости от значения выражения.

variant = input('variant: ');

switch (variant)

case 1

y1

case 2

y2

case 3

fibonachi

case 4

GeomProgression

otherwise

disp('Неверное значение')

end

Пояснения:

  • Разветвление в зависимости от значения выражения (арифметического, символьного или логического) выполняется с помощью оператора switch.

  • Значение переменной variant.

  • Скаляр или символьный вектор.

Самостоятельная работа

1С. Организация разветвления по условию. Создать function-файл для решения квадратного уравнения 2 ax bx c    0 двумя способами:

 используя известную алгебраическую формулу;

 с помощью функции вычисления корней многочлена производного порядка: x = roots(a) где a — вектор коэффициентов в порядке убывания степеней, а x — корни многочлена (вектор).

clear

variant = input('variant: ');

a=[6 5 1];

switch (variant)

case 1

d=(-5)^2-(4*6*1)

x1=(-5+sqrt(d))/(2*6)

x2=(-5-sqrt(d))/(2*6)

case 2

x=roots(a)

otherwise

disp('Неверное значение')

end

end

Вывод

  • Изучили средства организации разветвлений и циклов в MATLAB

  • Овладели навыками их использования при разработке М-файлов.