Мегаобучалка Главная | О нас | Обратная связь


Описание тестовых задач



2019-12-29 140 Обсуждений (0)
Описание тестовых задач 0.00 из 5.00 0 оценок




Курсовая работа

«Численные методы в экономике»

Тема: «Итерационный метод решения проблемы собственных значений»

 

 

 

 

Новосибирск, 2010


Введение

 

В данной курсовой работе рассмотрен итерационный метод решения проблемы собственных значений. Сходимость итерационного процесса может быть очень медленной. Причиной этого является наличие нелинейного элементарного делителя, соответствующего первому собственному числу. Другая причина – это близость второго собственного числа к первому. В этом случае можно ускорить сходимость несколькими методами. Одним из них является метод скалярных произведений, который рассмотрен в данной работе.

В методе скалярных произведений число итераций, необходимых для определения максимального собственного числа матрицы, с данной точностью, сокращается почти вдвое.

математический итерационный метод программный


Математическая постановка задачи

 

Этот метод особенно удобен в применении к симметричной матрице, однако попробуем изложить его без этого предположения. В основе метода лежат последовательности итераций вектора Y0 матрицами A и A’, транспонированной с А. Эти последовательности имеют следующий вид:

 

Y0, Y1=A*Y0, Y2=A2*Y0, …, Yk=Ak*Y0, … (1)

Y0, Y’1=A’*Y0, Y’2=A’2*Y0, …, Y’k=A’k*Y0, … (2)

 

Пусть b1, …, bn координаты вектора Y0 в базисе X’1, …, X’n, a1, …, an координаты Y0 в базисе X1, …, Xn. При этом предположим, что базисы выбраны так, что система векторов X1, X2, …, Xn и X’1, …, X’n удовлетворяет условиям ортогональности и нормированности.

Образуем скалярное произведение (Y’k, Yk):

 

(Y’k, Yk)=(A’k*Y0, Ak*Y0)=(Y0, A2k*Y0)=(b1*X’1+ … +bn*X’n, a1*l2k1*X1+ … + + an*l2kn*Xn)

 

Далее в силу свойств ортогональности и нормированности системы векторов имеем:

 

(Y’k, Yk)=a1*b1*l2k1+ … + an*bn*l2kn (3).

 

Аналогично:

 

(Y’k-1, Yk)=a1*b1*l2k-11+ … + an*bn*l2k-1n (4).

 

Можно видеть, что из равенств (3) и (4) получаем:


(Y’k, Yk)/(Y’k-1, Yk) = l1 + O(l2/l1)2k.

 

Из этой оценки видно, что образование скалярного произведения сокращает число шагов итераций, нужных для определения максимального собственного l1, с данной точностью, почти вдвое. Однако при этом требуется дополнительное вычисление последовательности (2).

Следует отметить, что в случае симметричной матрицы, последовательности (1) и (2) совпадают, и поэтому в этом случае применение метода скалярного произведения особенно целесообразно. Начиная с некоторого шага итерации, нужно вычислять соответствующие скалярные произведения и определять l1 через их отношения.

 

Описание программного обеспечения

 

Программа, реализующая рассматриваемый метод, разработана в среде МаtLab, предназначенной для выполнения математических операций. Она состоит из головной программы и 2х подпрограмм, вызываемых из основной программы.

Головная программа (main.m)

В основной программе задается начальное приближение yn, начальное значение собственного вектора L1 и значение допустимой ошибки ed.

Текст программы:

clc %очистка экрана

yn=[1; 1; 1; 1]; %задание начального приближения собственного вектора

L1= -5.5251;%начальное значение собственного числа матрицы

ed=0.00001; %значение допустимой ошибки

trace=1; %установка режима вывода на экран

[mout, Lout, yout]= sobstv ('fun', yn, L1, ed, trace);%вызов функции, реализующей метод скалярных произведений

plot (mout, Lout) %вывод графика значений собственного числа заданной матрицы за время итерационного процесса

pause;

plot (mout, yout)%вывод графика значений собственного вектора, соответствующего собственному числу

Подпрограмма sobstv.m

В данной подпрограмме происходит вычисление максимального собственного числа и соответствующего ему собственного вектора. Значение собственного числа на каждом шаге заносится в L, результат умножения матрицы а на заданный вектор заносится в yn. Время выполнения итераций равно t, количество итераций – m .

Текст программы:

 

function [mout, Lout, yout]=sobstv (fun, yn, L1, ed, trace);

a=feval(fun);%вызов матрицы, описанной в файле с именем matrsp

m=0; %обнуление счетчика итераций

Lout=L1; mout=m; yout=yn';

L=0; %присваивание начального значения решения

if trace

clc, yn, m, L1% вывод значения решений на данном этапе

end

t0=fix(clock); %задание начальной точки отсчета времени выполнения итераций

while (abs (L1-L)>ed) %задание цикла

yn1=yn;

yn=a*yn;

L=L1;

L1=(yn'*yn)/(yn1'*yn); %вычисление собственного числа

y=yn/sqrt (yn'*yn);%вычисление собственного вектора

if trace

home, y, m, L1%вывод текущих значений на экран

end %на данном этапе итераций

m=m+1;%увеличение счетчика итераций

Lout=[Lout; L1]; %формирование выходных параметров

mout=[mout; m];

yout=[yout; y'];

end

t1=fix(clock); %значение конечного момента времени

t=t1-t0%время выполнения итераций

pause;

Подпрограмма fun.m

В этой подпрограмме задается матрица a .

Текст программы:

function a=fun

%Изменяемая пользователем часть

a=[1.255 1.340 -1.316 0;

1.340 2.526 0 0.516;

-1.316 0 -1.743 4.628;

0 0.516 4.628 0.552];

 

Описание тестовых задач

 

В данной работе спроектирована программа, реализующая метод скалярного произведения для нахождения максимального собственного числа матрицы. Для проверки предлагается нахождение собственных чисел (векторов) симметричной матрицы. При этом исследуется влияние вектора начального приближения к решению и значения допустимой ошибки на время вычислений и число итераций.

Найдем собственные значения исходной матрицы, используя функцию eig.

Получим

 

L1= -5.5251

0.2841

3.4399

4.3911



2019-12-29 140 Обсуждений (0)
Описание тестовых задач 0.00 из 5.00 0 оценок









Обсуждение в статье: Описание тестовых задач

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Почему люди поддаются рекламе?: Только не надо искать ответы в качестве или количестве рекламы...
Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы...
Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (140)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.009 сек.)