Читайте также:
|
|
[1] Пискунов А.И., Воробьев Г.В. Методы педагогических исследований. – М.: Издательский центр «Академия», 2008. – с. 74-75
Лабораторная работа №1
Функции работы с массивами
Цели работы:
· изучение функций для генерации и обработки массивов;
Необходимое оборудование и материалы.
· ОС Windows XP, Vista, 7;
· Matlab 6.5 или 7.x;
· ПК класса не ниже Pentium II, RAM 128Mb.
Трудоемкость: 4 академических часа.
Генерация случайных величин
Для генерации случайных величин в Matlab используется целый ряд функций. Рассмотрим 2 из них: randn и rand.
Обе функции имеют одинаковый набор входных аргументов
r = randn(m,n) и
r = rand(m,n),
где m,n – размер матрицы,
и выдают случайный результат.
В случае обращения с одним входным аргументам функция возвращает квадратную матрицу соответствующего размера
>> y=rand(3)
y =
0.9572 0.1419 0.7922
0.4854 0.4218 0.9595
0.8003 0.9157 0.6557
>> z=randn
z =
-1.2075
В обоих случаях результатом работы функции являются случайные числа, но с разными свойствами: при использовании функции rand числа имеют равномерный закон распределения, а при использовании randn нормальный закон распределения. Поясним сказанное на следующем примере.
Пример 1. Сформируем 4 вектора случайных чисел X1, Y1, X2, Y2: первые 2 с равномерным законом распределения, а вторые 2 с нормальным законом распределения. Выведем на график первое множество точек, координатами которых будут элементы векторов X1 и Y1 (X1 – абсцисса, Y1 – ордината), а также второе множество точек, координатами которых являются компоненты векторов X2 и Y2. Также покажем первые 100 компонент векторов X1 и X2. Результат работы программ представлен на рис. 1-2.
Рис. 1. Графическое представление системы двух случайных величин с разными законами распределения.
Рис. 2. Компоненты случайных векторов с разным законом распределения.
Листинг программы.
clear all
close all
clc
N=1000; % размер вектора
% генерация элементов вектора
X1=rand(1,N);
Y1=rand(1,N);
X2=randn(1,N);
Y2=randn(1,N);
% построение графиков
figure(1)
subplot(1,2,1)
plot(X1,Y1,'r.');
grid on
xlabel('x')
ylabel('y')
title('rand')
subplot(1,2,2)
plot(X2,Y2,'b.');
grid on
xlabel('x')
ylabel('y')
title('randn')
figure(2)
subplot(1,2,1)
plot(X1(1:100),'rv');
grid on
xlabel('n')
ylabel('x')
title('rand')
subplot(1,2,2)
plot(X2(1:100),'bv');
grid on
xlabel('n')
ylabel('x')
title('randn')
Функция rand генерирует случайные числа, равномерно распределенные на отрезке [0; 1]. Для генерации чисел, равномерно распределенных на отрезке [a; b], используется следующее преобразование.
r=a+(b-a)*rand(m,n)
randint(m,n, [min,max]) – генерация массива равномерно распределенных в диапазоне [min,max] целых чисел:
out = randint(1,8,[0 7])
out =
1 3 2 7 3 1 7 7
Обработка данных включает вопрос о том, сколько данных попало в тот или иной интервал. Для получения наглядного представления о распределении данных служит функция hist. Например, команды
data = randn(1000, 1);
hist(data)
заполняют вектор data числами, распределенными по нормальному закону, разбивают интервал, которому они принадлежат, на десять равных частей (по умолчанию) и строят гистограмму попадания чисел в каждый из интервалов. Для увеличения числа интервалов следует в качестве второго аргумента указать число интервалов, например,
hist (data, 50).
Дата добавления: 2014-12-15; просмотров: 42 | Поможем написать вашу работу | Нарушение авторских прав |