- •Пример обращения к созданной м-функции
- •Практическая часть
- •Программный код решения примера
- •Программный код решения примера
- •Программный код решения примера для сложения трех векторов
- •Программный код решения примера
- •Программный код решения примера
- •Программный код решения примера
- •Программный код решения примера
Практическая часть
Пример 1. Считая, что случайный процесс является простейшим Пуассоновским потоком, рассчитать вероятности нахождения в потоке 2, 3, 4 требований на отрезке времени длиной t = 12. В качестве интенсивности потока принять число 1.23. Для решения создать М-сценарий с именем test1.m.
Программный код решения примера
% М-сценарий с именем test1 % М-файл сохранен как test1.m clear all, clc %% очистка памяти и командного окна
L = 1.23; %% интенсивность потока t = 2.34; %% время, для расчета вероятности
p0 = (L*t)^0/factorial(0) * exp(-L * t) p1 = (L*t)^1/factorial(1) * exp(-L * t) p2 = (L*t)^2/factorial(2) * exp(-L * t) p3 = (L*t)^3/factorial(3) * exp(-L * t) p4 = (L*t)^4/factorial(4) * exp(-L * t) p5 = (L*t)^5/factorial(5) * exp(-L * t)
|
Результат выполнения программы:
P0 =
0.0562
P1 =
0.1619
P2 =
0.2329
P3 =
0.2235
P4 =
0.1608
P5 =
0.0926
В программе использована функция нахождения факториала числа – factorial.
Если в командном окне набрать help test1, то получим справку о данном М-файле, если в нем имеются комментарии:
>> help test1
М-сценарий с именем test1
М-файл сохранен как test1.m
Пример 2. Предыдущий пример оформить в виде М-функции с именем fun1.
В дальнейшем будем предполагать, что М-файлы создаются в текстовом редакторе MATLAB. Поэтому программный код оформим в следующем виде:
function [p0,p1,p2,p3,p4,p5] = fun1(L, t) % Расчет вероятностей количества требований % в простейшем потоке Пуассона p0 = (L*t)^0/factorial(0)*exp(-L*t); p1 = (L*t)^1/factorial(1)*exp(-L*t); p2 = (L*t)^2/factorial(2)*exp(-L*t); p3 = (L*t)^3/factorial(3)*exp(-L*t); p4 = (L*t)^4/factorial(4)*exp(-L*t); p5 = (L*t)^5/factorial(5)*exp(-L*t);
end
|
Результат обращения к созданной М-функции из командного окна системы MATLAB:
>> [P0,P1,P2,P3,P4,P5] = fun1(1.23, 2.34)
P0 =
0.0562
P1 =
0.1619
P2 =
0.2329
P3 =
0.2235
P4 =
0.1608
P5 =
0.0926
Задание 1
Создайте функцию, аргументами которой будут год и месяц вашего рождения, а возвращаемым значением был бы календарь заданного года и месяца. Обращение к созданной функции выполните из М-сценария, в котором задайте год и месяц своего рождения.
Напишите М-функцию, которая бы возвращала сумму элементов данной строки и данного столбца магического квадрата, размерность которого должна быть входным аргументом М-функции.
Пример 3. Написать М-функцию, которая содержит две подфункции. Одна подфункция служит для расчета суммы кубического корня заданного вектора вещественных чисел, другая для поэлементного перемножения двух матриц заданного размера.
Программный код решения примера
function [S, C] = fun3(X, A, B) % Главная М-функция % Аргументы функции fun3: % X – числовой вектор % A, B – числовые прямоугольные матрицы одинакового размера % Возвращаемые значения: % S – сумма из корня кубического элементов вектора Х % C – результат поэлементного произведения двух матриц A и B
% Обращение к подфункциям с фактическими параметрами S = sum(funs(X)); C = funt(A, B); end
function f = funs(Y) %% М-подфункция извлечения корня кубического %% из элементов заданного вектора f = sign(Y).*abs(Y).^(1/3); % см. help sign, help abs end
function F = funt(A, B) %% М-подфункция поэлементного произведения %% двух матриц F = A.*B; end
|
Пример выполнения программы при обращении к М-функции fun3 из командной строки:
>> [s,c] = fun3([1, 27,-19683], [1,2;3,4], [6,7;8,9])
s =
-23.0000
c =
6 14
24 36
Пример 4. Написать М-функцию, которая обеспечивает сложение векторов неизвестного заранее количества.
В общем случае для решения этого примера требуется использование операторов цикла. Здесь будет показано, какие средства используются для определения переменного количество аргументов М-функции.
