Содержание
1. Аннотация
2. Введение
3. Необходимые сведения
4. Исходные данные и обозначения
5. Вывод неизвестных коэффициентов системы уравнений
6. Реализация программы в среде Matlab
7. Примеры работы программы
8. Заключение
9. Список литературы
1. Аннотация.
Решение многих прикладных задач требует моделирования случайных векторов.
В работе приводится метод моделирования случайных векторов с одинаковым для всех координат одномерным законом распределения, заданной матрицей ковариации и математическим ожиданием составляющих. Для решения этой задачи используется система алгебраических уравнений с неизвестными коэффициентами. По соответствующему алгоритму разработана программа имитации значений векторов по заданной ковариационной матрице и математическим ожиданиям составляющих с треугольной матрицей преобразования. Изучена возможность покоординатных преобразований. Проведена проверка датчика псевдослучайных чисел системы MATLAB.
2. Введение.
Решение многих прикладных задач, таких как проведение модельных (машинных) экспериментов с помощью математического моделирования требует моделирования случайных векторов.
Предполагая определенные свойства объекта исследования и характеристики измерительной аппаратуры, исследователь имитирует результаты измерений, обрабатывает их тем или иным способом и сравнивает результат с заложенными ранее характеристиками объекта. Особенно необходимы такие эксперименты при решении некорректных обратных задач. При этом необходимо моделировать не только закономерное влияние на результат измерения свойств объекта исследования и аппаратные искажения, но и случайные погрешности измерений, т.е. случайные величины (вектора) с заданным законом распределения. Результат эксперимента, как правило, представляет собой массив отсчетов (вольтамперная характеристика, спектр излучения источника света, пространственное распределение яркости в изображении и т.п.).
Если отсчеты считать независимыми случайными величинами (их средние значения отражают какие-то закономерности, но к средним прибавлена случайная погрешность), то задача сводится к генерации значений независимых случайных величин (погрешностей) с нулевым средним и заданным законом распределения. В общем случае эту задачу легко решить с помощью генератора случайных чисел, равномерно распределенных в интервале (0,1), который встроен практически во все языки программирования высокого уровня.
Однако в реальных экспериментах, особенно если они выполняются быстро с помощью автоматизированных измерительных систем, погрешности измерения в различных экспериментальных точках могут быть коррелированны.
Ниже описывается метод моделирования случайных векторов с одинаковым для всех координат одномерным законом распределения, заданной матрицей ковариации и математическим ожиданием составляющих. Для решения этой задачи предлагается использовать систему алгебраических уравнений с неизвестными коэффициентами.
Алгоритм получения очередного случайного вектора заключается в следующем:
— по заданным ковариационным матрицам и математическим ожиданиям составляющих случайных векторов вычисляются значения неизвестных коэффициентов системы линейных алгебраических уравнений;
— моделируется случайный вектор , координаты которого независимы и имеют заданное одномерное распределение;
— с помощью указанной системы алгебраических уравнений получается случайный вектор .
Доказано, что при выполнении условий реализуемости системы линейных алгебраических уравнений закон распределения координат совпадает с одномерным законом распределения координат
, а значения коэффициентов ковариации любой пары
равны соответствующим элементам заданной матрицы коэффициентов ковариации.
Моделирующая программа, использующая предложенный метод, определяет значения коэффициентов системы линейных алгебраических уравнений и проверяет выполнение условий реализуемости этой системы. В случае невыполнения условий реализуемости программа указывает на необходимость корректировки задаваемой матрицы коэффициентов ковариации.
Если указанные условия реализуемости выполнены, то программа позволяет выбрать количество (объем выборки) и размерность моделируемых векторов.
По окончании моделирования программа проверяет соответствие параметров закона распределения координат исходным требованиям, а также находит оценки для полученных в результате моделирования коэффициентов ковариации координат.
Программа реализована в вычислительной среде MATLAB.
3. Необходимые сведения.
Ниже приводятся необходимые сведения и определения из линейной алгебры и теории вероятности.
Математическое ожидание случайной величины обладает следующими свойствами.
- Математическое ожидание постоянной равно этой постоянной, т.е.
,
.
- Постоянный множитель можно вынести за знак математического ожидания, т.е.
.
- Математическое ожидание суммы двух случайных величин равно сумме их математических ожиданий, т.е.
.
- Математическое ожидание произведения двух независимых случайных величин равно произведению их математических ожиданий, т.е.
.
Можно доказать, что для случайных величин и для независимых случайных величин
.
Дисперсия случайной величины обладает следующими свойствами.
- Дисперсия постоянной величины равно нулю, т.е.
,
.
- Постоянный множитель можно вынести за знак дисперсии возведя его в квадрат, т.е.
.
- Дисперсия суммы двух независимых случайных величин равно сумме их дисперсий, т.е.
.
Можно доказать, что для случайных независимых величин
Линейное преобразование случайных векторов . Предположим, что
— случайный
— мерный вектор с математическим ожиданием
и корреляционной матрицей
. Введем матрицу преобразования
размером
и сформируем
мерный вектор
Можно показать справедливость следующих выражений
,
.
— вектор математического ожидания
Если — случайный
— мерный вектор, координаты которого являются центрированными случайными величинами, то для выражения
справедливо .
4. Исходные данные и обозначения.
Исходными данными для поставленной задачи являются характеристики моделируемого случайного – мерного вектора
:
— ковариационная матрица,
,
,
— вектор математического ожидания,
.
В качестве вектора берется случайный вектор, координаты которого распределены по нормальному закону с параметрами:
— нулевой вектор математического ожидания, центрированная случайная величина равна самой случайной величине
,
— дисперсия,
— ковариационная матрица.
То есть координаты вектора независимы (отсутствует корреляция между компонентами вектора).
Вектор задается с помощью генератора случайных чисел, встроенного в систему MATLAB, для этих целей подходит функция
,
которая формирует массив, соразмерный с матрицей , элементами которого являются случайные величины, распределенные по нормальному закону с математическим ожиданием 0 и среднеквадратическим отклонением 1.
5. Вывод неизвестных коэффициентов системы линейных уравнений.
Координаты выходного вектора
могут быть получены из нормально распределенных независимых случайных величин
— координат вектор
следующим образом:
или
.
Можно переписать систему линейных уравнений в матричном виде:
,
где ,
,
,
.
Найдем элементы матрицы , выразив их через элементы матриц
,
,
,
.
Так как
, поэтому будем рассматривать
центрированные случайные величины, прибавив к которым соответствующие математические ожидания, получим искомые координаты выходного вектора.
Для этого рассмотрим ковариацию двух случайных величин
.
Так как
,
аналогично
,
используя приведенные выше свойства математического ожидания, и учитывая, что из исходных данных , получим
.
т.к. ,
таким образом, между элементами ковариационных матриц ,
, и элементами матрицы линейного преобразования
установлена следующая связь
,
или как было рассмотрено выше выражение в матричном виде
.
Так как нижнетреугольная матрица (
) и
, то
.
Эти рекуррентные соотношения позволяют найти элементы матрицы
по элементам ковариационных матриц, ,
.
Рассмотрим двумерный массив , где каждый столбец рассматривается как переменная, а каждая строка – как наблюдение. Тогда выборочная матрица ковариации
определяется следующим образом:
В системе MATLAB, присутствует функция , которая вычисляет матрицу ковариаций измерений (или выборочную матрицу ковариации).
Выборочная ковариационная матрица позволяет оценить соответствие моделируемых случайных векторов поставленной задачи.
6. Реализация программы в среде Matlab.
clear all;
n=3; размерность случайного вектора
N=100; количество наблюдений (объем выборки)
U=randn(n,N); генерация случайного вектора
cov_u = eye(n,n); ковариационная матрица
cov_ksi = 4*eye(n,n);
cov_ksi=[4 2 3 ; 2 9 6 ; 3 6 16]; ввод ковариационной матрицы
M_ksi=[-10; 0; 10]; ввод матрицы
M_ksi=zeros(n,1);
A=zeros(n,n);
проверка размерности и
if (size(cov_ksi) ~= n) | (size(M_ksi) ~= n)
error(‘Размерность матрицы сov_ksi или M_ksi не совпадает с n’);
end
проверка корректности
for i=1:n,
if det(cov_ksi(1:i,1:i))