
Отчет по лабораторонй работе №6
.docx
ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ
Федеральное государственное бюджетное образовательное
учреждение высшего образования
«Санкт-Петербургский государственный университет телекоммуникаций
им. проф. М. А. Бонч-Бруевича»
_____________________________________________________________________________
Кафедра радиосистем и обработки сигналов
Дисциплина «Прикладные пакеты моделирования»
Лабораторная работа № 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
Овладели навыками их использования при разработке М-файлов.