Страница: 2/4
Отдельной процедурой в программе описан вывод на экран матрицы m*m. В программе часто приходится проделывать эту операцию, поэтому она оформлена как процедура out.
Первой процедурой является центрирование и нормирование исходных данных. Оно выполняется в соответствии с описанными выше формулами.
Далее запрограммировано нахождение коэффициентов характеристического уравнения для корреляционной матрицы R. Оно производится в соответствии с рекуррентными соотношениями Фаддеева, т.е по следу матриц, производных из R, по формулам:
Ai-1=ABi-2; Pi-1=1/(m-1)trAi-1; Bi-1=Ai-1-Pi-1E; i=1,2 m. (2.1)
После вычисления рекуррентных соотношений находится характеристический полином:
Pm(λ)= λm - P1 λm-1 - P2 λm-2 -…- Pm. (2.2)
Известно, что при m > 4 (2.2) не имеет общего решения. Однако мы знаем, что это уравнение имеет все вещественные корни, и что их число равно m. Для их нахождения используется итерационный метод Ньютона, поскольку исследуемая функция – полином и нет затруднений в вычислении ее производной. Итерационная формула Ньютона для i-й точки имеет вид:
, (2.3)
где j – номер итерации.
Далее в соответствии с (1.1) находим собственные векторы матрицы R. Для решения систем уравнений применялся метод Гаусса. Однако предварительно необходимо было исключить одно неизвестное. Для этого переменным umj были присвоены единичные значения, последний столбец перенесен в правую часть с обратным знаком, а последнее уравнение исключено из рассмотрения.
После получения матрицы собственных векторов U было проведено ее нормирование, в результате чего была получена матрица нормированных собственных векторов V.
Затем вычисляется матрица факторного отбражения A в соответствии с правилами умножения матриц.
Далее находится матрица, обратная к A, методом m-кратного пересчета элементов [3,с.358] по рекуррентным формулам:
где k – номер итерации, k=1 m. На заключительном этапе A-1 = -A(k).
После нахождения матрицы, обратной A, находим матрицу F – матрицу факторного отображения и выводим ее на экран в транспонированном виде в соответствии с (1.2). На этом расчеты по методу главных компонент завершены.
ЗАКЛЮЧЕНИЕ
В данной курсовой работе была построена математическая модель и программная реализация метода главных компонент. Следует отметить, что в работе не была рассмотрена методика отсева несущественных факторов, и поэтому результирующая модель, выдаваемая программой на экран, содержит число компонент, равное числу исходных элементарных признаков m. К достоинствам разработанной программы можно отнести то, что она может работать с массивами исходных данных достаточно большой размерности.
ЛИТЕРАТУРА
Сошникова Л.А., Тамашевич В.Н., Уебе Г., Шебер М. Многомерный статистический анализ в экономике: Учеб. Пособие для вузов/Под ред. проф. Тамашевича. – М.: ЮНИТИ-ДАНА, 1999. –598с.
А. Епанешников, В. Епанешников. Программирование в среде Turbo Pascal 7.0. –3-е изд., стер. –М.: “ДИАЛОГ-МИФИ”, 1997. –288с.
Жуков Л.А., Стратан И.П. Установившиеся режимы сложных электрических сетей и систем: Методы расчетов. –М.: Энергия, 1979. – 416 с.
ПРИЛОЖЕНИЕ А
Текст программы метода главных компонент
Program gl_komp;
const
m=3;{число признаков}
n=4;{число объектов}
type
matrix=array[1 m,1 m]of real;
var
x,z:array[1 n,1 m]of real;
f:array[1 m,1 n]of real;
a_,b_,_a_,_b_:matrix;{для алгоритма Фаддеева}
c:array[1 m-1,1 m-1]of real;
d:array[1 m-1]of real;
l,r,u,a,a_1,v:matrix;
p:array[0 m]of real;
i,j,k,q:integer;
s,x_,b,_b,w:real;
{-------процедура вывода на экран матрицы m*m----------}
procedure out(t:matrix);
var
i1,j1:integer;
begin
for i1:=1 to m do
begin
for j1:=1 to m do
write(' ',t[i1,j1]:3:3,' ');
writeln
end
end;
{===================================================================}
Begin
writeln('ПРОГРАММА РАСЧЕТА ГЛАВНЫХ КОМПОНЕНТ ПО ЗАДАННОМУ РАСПРЕДЕЛЕНИЮ');
Реферат опубликован: 30/04/2008