лабы 3 вар matlab / ПИОА_лаб(2)
.docxМИНОБРНАУКИ РОССИИ
Санкт-Петербургский государственный
электротехнический университет
«ЛЭТИ» им. В.И. Ульянова (Ленина)
Кафедра «Корабельных систем управления»
отчет
по лабораторной работе №2
по дисциплине «Программирование и основы алгоритмизации»
Тема: ОПЕРАТОРЫ УСЛОВИЯ И ЦИКЛА.
Студент гр. 9494 |
|
Лобазев Н.А. |
Преподаватель |
|
Модин Н.В. |
Санкт-Петербург
2020
1. Задание на лабораторную работу.
Цель работы: освоить основные конструкции языка MATLAB для реализации ветвящихся и циклических алгоритмов.
Условие:
1) В соответствии с заданием составить блок-схему алгоритма вычисления функции двух переменных, заданной по интервалам.
2) Написать и отладить программу-сценарий вычисления функции в точке (не пользуясь стандартными математическими функциями).
3) Построить график функции при заданном значении T в диапазоне от -2T до 2T.
4) В соответствии с заданием из таблиц 6 и 7 составить блок-схемы алгоритмов.
5) Написать и отладить программы вычисления суммы ряда (табл. 6) и поиска элементов матрицы (табл. 7)
Исходные данные:
Фрагмент таблицы 5:
Фрагмент таблицы 6:
Фрагмент таблицы 7:
2. Блок-схемы алгоритмов решения задачи.
Алгоритм функции двух переменных LAB2_F1(t,T).
Алгоритм функции вычисления суммы ряда LAB2_F2(х)
Алгоритм функции вычисления заданного условия по матрице LAB2_F3(М)
3. Тексты программ
Основная программа:
%lab2
clc, clear,close;
T=2;
t=single(-2*T:0.20*T:2*T);
R=lab2_f1(t , T);
figure(1), hold on;
plot(t, R, '*'),plot(t, R);
title('f(t,T) для T=2');
xlabel('t'), ylabel('f(t,T)');
grid on
%сумма ряда
x=1:12;
Summ=lab2_f2(x);
disp('сумма ряда равна: '), disp(Summ)
disp('число иттераций: '), disp(length(x))
%столбец с минимальным элементом
M=[-1.1 4 -11 6; 3 0 5 2.3; 6.2 -0.3 3 -6.4];
R=lab2_f3(M);
disp('Номер столбца с минимальным элементом'), disp(m)
lab2_f1
function[R]=lab2_f1(t,T)
R=zeros(1,length(t));
for i=[1:1:length(t)]
if t(i)<-T
R(i)=0;
elseif t(i)<=0
R(i)=3+3*t(i);
elseif t(i)<=T
R(i)=3-3*t(i);
else
R(i)=0;
end
end
lab2_f2
function[R]=lab2_f2(x)
R=0;
for i=x
x1=i/(i+1);
R=R+x1;
end
end
Lab_f3
function[R]=lab2_f3(M)
sub=1;
min = M(1,1);
for i=[1:1:12]
if M(i)<min
min=M(i);
sub=i;
end
end
[n m]=ind2sub(size(M), sub)
disp('столбец с минимальным элементом:'), disp(m)
end
4. Результаты выполнения программы
Окно 1:
Листинг:
сумма ряда равна:
9.8199
число иттераций:
12
cтолбец с минимальным элементом:
3
5. Выводы.
В ходе работы мы освоили основные конструкции языка MATLABа именно и ветвящиеся и циклические алгоритмы. Кроме того, изучили правила создания, оформления и использованияm-функций. Создание функций которые могут принимать и возвращать не только символы, но и матрицы. По работе составлен отчёт в соответствии с предъявленными требованиями.