М-функции в MATLAB (Лабораторная работа № 5)

Страницы работы

3 страницы (Word-файл)

Содержание работы

Лабораторная работа № 5 «М-функции в MATLAB»

М-файлы можно оформлять как отдельные функции. В этом случае имя функции должно совпадать с именем файла, в котором она хранится.

Структура М-функции

Первая строка М-функции должна иметь вид:

function [y1,y2,…,yn]=name_function(x1,x2,…,xm)

оператор1;

оператор2;

…;

операторk;

end

В файле с расширением .m кроме основной функции, имя которой совпадает с именем файла, могут находиться подфункции. Они доступны только внутри файла.

Пример программы с использованием М-функции

Написать функцию, предназначенную для из массива x(N) простых чисел.

Пусть имя функции udal_prostoe. Ее входными данными являются:

- числовой массив х;

- N– количество элементов в массиве.

Выходными данными будут:

- массив х, из которого удалены простые числа;

- новый размер массива N после удаления из него простых чисел.

В функции udal_prostoeбудут использоваться две вспомогательные функции: функция prostoe, которая проверяет, является ли число простым; функция udal удаления элемента из массива.

Заголовок функции udal_prostoe: function [x N]=udal_prostoe(x, N)

Заголовок подфункции prostoe: functionpr=prostoe(P)- проверяет, является ли число Р простым, она возвращает 1, если Р – простое, 0 – в противном случае.

Заголовок функции udal: function[xN]=udal(x,m,N) – удаляет из массива x(N) элемент с номером m, возвращает модифицированный массив х и измененное значение N.

function [x N]=udal_prostoe(x, N)

i=1;

 while i<=N

    L=prostoe(x(i);

        if L==1

            [x N]=udal(x,i,N);

       else

            i=i+1;

  end

end

function pr=prostoe(P)

pr=1;

  for i=2:P/2

      if mod(P,i)==0

         pr=0;

        break;

    end 

 end

          end

            function [x N]=udal(x,m,M)

               for i=m:N-1

                   x(i)=x(i+1);

             end

x(i,N)=[];

N=N-1

end

Обращение к функции для удаления простых чисел:

>> z=[4 6 8 7 100 13 88 125];

>>[y k]=udal_prostoe(z,8);

>>y

y=

            4 6 8100 88125

>>k

k

            6

ЗАДАНИЕ. Прогнозирование случайного процесса

Построить модель, с помощью которой можно делать прогнозы о ходе случайного процесса и подбирать значения параметров, обеспечивающих его устойчивость. Время, определяющее течение процесса, считать дискретным, поэтому все величины, характеризующие состояние процесса, маркируйте  моментами времени t = 1, 2, ….

Требуется смоделировать следующий случайный процесс. На начала моделирования (t=0) в цехе имеется n однотипных исправных станков. Любой исправный станок к следующему моменту может выйти из строя с вероятностью p, т.е. стать неисправным. Имеется u рабочих, каждый из которых может заниматься ремонтом одного неисправного станка. В любой момент времени в ремонте может находиться определенное количество  станков и любой из них к следующему моменту может быть отремонтирован с вероятностью q, т.е. стать исправным.

Исходные данные: всего в цехе станков n = 100;

количество исправных станков на начало моделирования m = 100;  число рабочих в цехе u = 10;

вероятность выхода из строя станка    p = 0,05;

вероятность выхода станка из ремонта   q = 0,2;

период моделирования Т=100 ( t = 0, 1, 2, …, 99).

На основе результатов моделирования выполнить следующее:

1.  Сделать прогноз о количестве исправных станков в каждый момент времени и на конец периода моделирования.

2.  Определить оптимальное число рабочих  в цехе, занимающихся ремонтом станков,  которые бы обеспечивали устойчивое состояние исправных станков.

РЕКОМЕНДАЦИИ ПО ВЫПОЛНЕНИЮ ЗАДАНИЯ

  1. Разработать моделирующий алгоритм и представить его в виде блок-схемы.
  2. Составить программу на М-языке.
  3. Вывод о прогнозе сделать на основании графика, показывающего наличие исправных станков в моменты времени 0, 1, 2, …, 99.

4.  При выполнении пункта 2, поставленной задачи, можно теоретически оценить количество ремонтников, необходимое для того, чтобы процесс был стационарным (устойчивым), т.е. чтобы среднее количество станков осталось неизменным в течение большого (потенциально неограниченного) числа тактов. Рассмотрим случайную величину Х – число станков, которые за один такт выходят из строя. Если число исправных станков к началу такта было m, вероятность выхода из строя за один такт любого станка равна р, а выход из строя отдельных станков – независимые случайные величины, то математическое ожидание случайной величины Х равно m×p. Рассмотрим случайную величину У - количество станков, отремонтированных за один такт. Пусть количество ремонтников u³nm, где n-m– число станков, неисправных к началу такта. Тогда все неисправные станки находятся в ремонте. Если завершение за один такт ремонта каждого отдельного станка – независимые случайные события с вероятность q,то математическое ожидание случайной величины У равно (n-m)×q.

Случайная величина приращение количества исправных станков равна разности У-Х, ее математическое ожидание равно (n-m)×q-m×p. Условие стационарности процесса заключается в том, что это математическое ожидание равно 0. Отсюда получаем m×(p+q)=n×q. Таким образом, стационарное количество исправных станков m0=n×q/(p+q), а количество ремонтников, минимально необходимое для поддержания стационарного количества исправных станков, u³u0=n=m0=n×q/(p+q).

Тогда для тех же исходных данных стационарное значение числа исправных станков m0=80, минимально необходимое количество ремонтников u0=20.

С помощью программы, составленной в п. 1, подобрать количество ремонтников, обеспечивающих устойчивость моделируемого процесса. Результат представить графически, в котором отобразить количество исправных станков в каждый момент времени при выбранном оптимальном числе ремонтников.

Похожие материалы

Информация о работе

Тип:
Методические указания и пособия
Размер файла:
24 Kb
Скачали:
0