А. С. Попова Кафедра информационных технологий Основные принципы работы в системе Matlab Методические указания



бет14/29
Дата06.02.2022
өлшемі3,15 Mb.
#80626
түріМетодические указания
1   ...   10   11   12   13   14   15   16   17   ...   29
Байланысты:
матлаб

Пример 1 – программа с циклами:

сlear
x1=1:0.01:pi;


y1=sin(x1);
k=3;
x=1:0.01:pi
n=length(x);
n
slag=1;
y2=1;
for i=2:k
slag=slag.*(-x.^2)./((2.*i-2)*(2.*i-1));
y2=y2+slag;
end;
y2
[x' y1' y2']
plot(x1,y1,'r')
hold on
plot(x,y2,'g:')



Рисунок 3.7 – Результат работы прогаммы 1




Пример 2 – программа с циклами:

clear
x1=1:0.01:pi;


y1=sin(x1);
k=3;
x=1:0.1:pi;
n=length(x);
n
for m=1:n
slag(m)=x(m);
y2(m)=x(m);
for i=2:k
slag(m)=slag(m).*(-x(m).^2)./((2.*i-2)*(2.*i-1));
y2(m)=y2(m)+slag(m);
end;
end;
n2=length(y2);
n2
y2;
[x' y2']
plot(x1,y1,'r')
hold on
plot(x,y2,'g:')
hold off

Рисунок 3.8 – Результат работы прогаммы 2
Пример 3:Напишите файл-программу для вычисления суммы

Алгоритм вычисления суммы использует накопление результата, т.е. сначала сумма равна нулю (S = 0), затем в переменную k заносится единица, вычисляется 1/k!, добавляется к S и результат снова заносится в S. Далее k увеличивается на единицу, и процесс продолжается, пока последним слагаемым не станет 1/10!. Файл-программа Prim3, приведенная в следующем листинге, вычисляет искомую сумму.
Листинг файл-программы Prim3 для вычисления суммы:
% файл-программа для вычисления суммы
% 1/1!+1/2!+ … +1/10!
% Обнуление S для накопления суммы
S = 0;
% накопление суммы в цикле
for k = 1:10
S = S + 1/factorial(k);
End
% вывод результата в командное окно S

Набрать файл-программу в редакторе М-файлов, сохранить её в текущем каталоге в файле Prim3.m и выполнить. Результат отобразится в командном окне, так как в последней строке файл–программы S содержится без точки с запятой для вывода значения переменной S.


S =
1.7183


Пример 4: табулирование с условием, дифференцирование и интегрирование
Листинг файл-программы:
clear
x=0:0.05:4;
a=x<=2;
for i=1:length(a)
if a(i)
y(i)=x(i);
else y(i)=3.*x(i);
end;
end;
[x' y']
figure(1)
plot(x,y,'r') % вывод графика функции

s=trapz(x,y)


s2=quad(@funs,0,4,1e-4)
figure(2)
f1=diff(funs(x));
x1=x(1:end-1)
plot(x1,f1) % вывод графика производной



Рисунок 3.9 – График функции



Рисунок 3.10 – График производной

Ход работы программы может определяться значением некоторой переменной (переключателя) т.е. способ ветвления программы основан на использовании оператора переключения switch. Оператор switch содержит блоки, начинающиеся со слова case, после каждого case записывается через пробел, то значение переключателя, при котором выполняется данный блок. Последний блок начинается со слова otherwise, его операторы работают в том случае, когда ни один из блоков case не был выполнен. Если хотя бы один из блоков case выполнен, то происходит выход из оператора switсh и переход к оператору, следующему за end.


Предположим, что требуется найти количество единиц и минус единиц в заданном массиве и, кроме того, найти сумму всех элементов, отличных от единицы и минус единицы. Листинг программы содержит файл–функцию, которая по заданному массиву возвращает число минус единиц в первом выходном аргументе, число единиц – во втором, а сумму – в третьем (рис.3.11).



Рисунок 3.11 – Листинг программы


Для остановки программы используется оператор pause. Он используется в следующих формах:



  1. pause — останавливает вычисления до нажатия любой клавиши;

  2. pause(N) — останавливает вычисления на N секунд;

  3. pause on — включает режим отработки пауз;

d) pause off — выключает режим отработки пауз. 




Достарыңызбен бөлісу:
1   ...   10   11   12   13   14   15   16   17   ...   29




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет