Раздел: Точные наукиМоделирование значений случайных векторовСодержание 1. Аннотация 2. Введение 3. Необходимые сведения 4. Исходные данные и обозначения 5. Вывод неизвестных коэффициентов системы уравнений 6. Реализация программы в среде Matlab 7. Примеры работы программы 8. Заключение 9. Список литературы 1. Аннотация. Решение многих прикладных задач требует моделирования случайных векторов. В работе приводится метод моделирования случайных векторов с одинаковым для всех координат одномерным законом распределения, заданной матрицей ковариации и математическим ожиданием составляющих. Для решения этой задачи используется система алгебраических уравнений с неизвестными коэффициентами. По соответствующему алгоритму разработана программа имитации значений векторов по заданной ковариационной матрице и математическим ожиданиям составляющих с треугольной матрицей преобразования. Изучена возможность покоординатных преобразований. Проведена проверка датчика псевдослучайных чисел системы MATLAB. 2. Введение. Решение многих прикладных задач, таких как проведение модельных (машинных) экспериментов с помощью математического моделирования требует моделирования случайных векторов. Предполагая определенные свойства объекта исследования и характеристики измерительной аппаратуры, исследователь имитирует результаты измерений, обрабатывает их тем или иным способом и сравнивает результат с заложенными ранее характеристиками объекта. Особенно необходимы такие эксперименты при решении некорректных обратных задач. При этом необходимо моделировать не только закономерное влияние на результат измерения свойств объекта исследования и аппаратные искажения, но и случайные погрешности измерений, т.е. случайные величины (вектора) с заданным законом распределения. Результат эксперимента, как правило, представляет собой массив отсчетов (вольтамперная характеристика, спектр излучения источника света, пространственное распределение яркости в изображении и т.п.). Если отсчеты считать независимыми случайными величинами (их средние значения отражают какие-то закономерности, но к средним прибавлена случайная погрешность), то задача сводится к генерации значений независимых случайных величин (погрешностей) с нулевым средним и заданным законом распределения. В общем случае эту задачу легко решить с помощью генератора случайных чисел, равномерно распределенных в интервале (0,1), который встроен практически во все языки программирования высокого уровня. Однако в реальных экспериментах, особенно если они выполняются быстро с помощью автоматизированных измерительных систем, погрешности измерения в различных экспериментальных точках могут быть коррелированны. Ниже описывается метод моделирования случайных векторов с одинаковым для всех координат одномерным законом распределения, заданной матрицей ковариации и математическим ожиданием составляющих. Для решения этой задачи предлагается использовать систему алгебраических уравнений с неизвестными коэффициентами. Алгоритм получения очередного случайного вектора ![]() — по заданным ковариационным матрицам и математическим ожиданиям составляющих случайных векторов вычисляются значения неизвестных коэффициентов системы линейных алгебраических уравнений; — моделируется случайный вектор ![]() — с помощью указанной системы алгебраических уравнений получается случайный вектор ![]() Доказано, что при выполнении условий реализуемости системы линейных алгебраических уравнений закон распределения координат ![]() ![]() ![]() Моделирующая программа, использующая предложенный метод, определяет значения коэффициентов системы линейных алгебраических уравнений и проверяет выполнение условий реализуемости этой системы. В случае невыполнения условий реализуемости программа указывает на необходимость корректировки задаваемой матрицы коэффициентов ковариации. Если указанные условия реализуемости выполнены, то программа позволяет выбрать количество (объем выборки) и размерность моделируемых векторов. По окончании моделирования программа проверяет соответствие параметров закона распределения координат исходным требованиям, а также находит оценки для полученных в результате моделирования коэффициентов ковариации координат. Программа реализована в вычислительной среде MATLAB. 3. Необходимые сведения. Ниже приводятся необходимые сведения и определения из линейной алгебры и теории вероятности. Математическое ожидание случайной величины обладает следующими свойствами.
![]() ![]() ![]() ![]() ![]() Можно доказать, что для случайных величин ![]() ![]() Дисперсия случайной величины обладает следующими свойствами.
![]() ![]() ![]() ![]() Можно доказать, что для случайных независимых величин ![]() Линейное преобразование случайных векторов . Предположим, что ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Можно показать справедливость следующих выражений ![]() ![]() ![]() ![]() Если ![]() ![]() ![]() справедливо ![]() 4. Исходные данные и обозначения. Исходными данными для поставленной задачи являются характеристики моделируемого случайного ![]() ![]() ![]() ![]() ![]() ![]() ![]() В качестве вектора ![]() ![]() ![]() ![]() ![]() То есть координаты вектора независимы (отсутствует корреляция между компонентами вектора). Вектор ![]() ![]() которая формирует массив, соразмерный с матрицей ![]() 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)) <= 0 error('Матрица сov_ksi не положительно определенна'); end end вычисление элементов матрицы ![]() for i=1:n, for j=1:i, sum=0; for k=1:(j-1), sum=sum+A(i,k)*A(j,k)*cov_u(k,k); end if i==j A(i,j)=sqrt((cov_ksi(i,j)-sum)/cov_u(j,j)); else A(i,j)=(cov_ksi(i,j)-sum)/(A(j,j)*cov_u(j,j)); end end end построение случайного вектора ![]() for i=1:N, ksi(:,i)=A*U(:,i)+M_ksi; end транспонирование матрицы случайных векторов ![]() ksi_t=ksi'; вывод транспонированной матрицы в файл out.txt save out.txt ksi_t –ASCII disp('Матрица преобразований A'); A disp('Выборка входных векторов U'); U disp('Выходные векторы ksi'); ksi disp('Исходн. матрица cov_ksi'); cov_ksi построение выборочной ковариационной матрицы disp('Выборочн. ков. матрица cov_ksi'); test_cov_ksi=cov(ksi_t) проверка правильности преобразований disp('Матрица cov_ksi (проверка правильности преобразований)'); A*cov_u*A' построение гистограмм для входных и выходных векторов figure(1); hist(U',20); xlabel('Интервалы'); ylabel(sprintf('Количество из g',N)); figure(2); hist(ksi',50); xlabel('Интервалы'); ylabel(sprintf('Количество из g',N));figure(1); 7. Примеры работы программы. № 1. Входные данные: размерность вектора ![]() объем выборки ![]() ![]() ![]() ![]() ![]() ![]() Гистограмма нормального распределения всех координат ![]() ![]() Гистограмма распределения всех координат ![]() ![]() № 2. Входные данные: размерность вектора ![]() объем выборки ![]() ![]() ![]() ![]() ![]() Выходные данные: ![]() ![]() Как видно из полученных данных объем выборки недостаточен для оценки с помощью выборочной ковариационной матрицы полученного закона распределения координат, так как ковариационная матрица измерений значительно отличается от заданной. Поэтому увеличим объем выборки. Гистограмма распределения координат ![]() ![]() ![]() Гистограмма распределения координат ![]() ![]() ![]() № 3. Входные данные: размерность вектора ![]() объем выборки ![]() ![]() ![]() ![]() ![]() Выходные данные: ![]() ![]() C увеличением объема выборок до ![]() Гистограмма распределения координат ![]() ![]() ![]() Гистограмма распределения координат ![]() ![]() ![]() Заключение. Итогом курсовой работы по теме “Моделирование значений случайных векторов” явилась разработка алгоритма моделирования значений случайных векторов, с одинаковым для всех координат одномерным законом распределения, заданной матрицей ковариаций и математическим ожиданием составляющих. Для достижения поставленной цели была изучена система MatLab, с помощью которой была создана моделирующая программа, позволяющая моделировать вектора по заданным параметрам. В программе присутствуют средства проверки соответствия полученных данных условиям поставленной задачи. Результаты работы программы представлены в виде графических данных и в виде сохранения массива полученных векторов в файл. Список литературы. 1. Гусак А.А. Высшая математика. В 2-х т. Т. 2.:Учеб. Пособие для студентов вузов. – Мн.: ТетраСистемс, 1998. – 448 с. 2. Лазарев Ю.Ф. MatLAB 5.x – К.: Издательская группа BHV, 2000. – 384 с. 3. Потемкин В.Г. Система инженерных и научных расчетов MATLAB 5.x. В 2-х т. Т. 2 – М.: ДИАЛОГ-МИФИ, 1999. – 303 с. 4. Вентцель Е.С. Теория вероятностия. – М.: Государственное издательство физико-математической литературы, 1962. – 564 с.
Документация по программе MonteCarlo.mВходные данные: N – количество моделируемых случайных векторов. cov_ksi – ковариационная матрица элементов моделируемых случайных векторов. M_ksi – матрица математического ожидания выходных векторов n – размерность случайных векторов (вычисляется в программе по заданной ковариационной матрице). Выходные данные: ksi – матрица размерности ![]() out.txt – файл – распечатка случайных векторов ksi (сохраняется в той же директории, что и программа). |