Теми рефератів
Авіація та космонавтика Банківська справа Безпека життєдіяльності Біографії Біологія Біологія і хімія Біржова справа Ботаніка та сільське гос-во Бухгалтерський облік і аудит Військова кафедра Географія
Геодезія Геологія Держава та право Журналістика Видавнича справа та поліграфія Іноземна мова Інформатика Інформатика, програмування Історія Історія техніки Комунікації і зв'язок Краєзнавство та етнографія Короткий зміст творів Кулінарія Культура та мистецтво Культурологія Зарубіжна література Російська мова Маркетинг Математика Медицина, здоров'я Медичні науки Міжнародні відносини Менеджмент Москвоведение Музика Податки, оподаткування Наука і техніка Решта реферати Педагогіка Політологія Право Право, юриспруденція Промисловість, виробництво Психологія Педагогіка Радіоелектроніка Реклама Релігія і міфологія Сексологія Соціологія Будівництво Митна система Технологія Транспорт Фізика Фізкультура і спорт Філософія Фінансові науки Хімія Екологія Економіка Економіко-математичне моделювання Етика Юриспруденція Мовознавство Мовознавство, філологія Контакти
Українські реферати та твори » Экономико-математическое моделирование » Ітераційний метод вирішення проблеми власних значень

Реферат Ітераційний метод вирішення проблеми власних значень


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

В«Чисельні методи в економіці В»

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

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


Введення

У даній курсовій роботі розглянуто ітераційний метод розв'язання проблеми власних значень. Збіжність ітераційного процесу може бути дуже повільною. Причиною цього є наявність нелінійного елементарного дільника, відповідає першому власному числу. Інша причина - це близькість другий власного числа до першого. У цьому випадку можна прискорити збіжність декількома методами. Одним з них є метод скалярних добутків, який розглянуто в даній роботі.

У методі скалярних добутків число ітерацій, необхідних для визначення максимального власного числа матриці, з даної точністю, скорочується майже вдвічі.

математичний ітераційний метод програмний


1. Математична постановка задачі

Цей метод особливо зручний в застосуванні до симетричної матриці, проте спробуємо викласти його без цього припущення. В основі методу лежать послідовності ітерацій вектора Y 0 матрицями A і A ', транспонованої з А. Ці послідовності мають наступний вигляд:

Y 0 , Y 1 = A * Y 0 , Y 2 = A 2 * Y 0 , ..., Y k = A k * Y 0 , ... (1)

Y 0 , Y ' 1 = A' * Y 0 , Y ' 2 = A' 2 * Y 0 , ..., Y ' k = A' k * Y 0 , ... (2)

Нехай b 1 , ..., B n координати вектора Y 0 в базисі X ' 1 , ..., X ' n , a 1 , ..., a n координати Y 0 в базисі X 1 , ..., X n . При цьому припустимо, що базиси вибрані так, що система векторів X 1 , X 2 , ..., X n і X ' 1 , ..., X' n задовольняє умовам ортогональності і нормування.

Утворюємо скалярний добуток (Y ' k , Y k ):

(Y ' k , Y k ) = (A ' k * Y 0 , A k * Y 0 ) = (Y 0 , A 2k * Y 0 ) = (b 1 * X ' 1 + ... + b n * X ' n , a 1 * l 2k 1 * X 1 + ... + + A n * l 2k n * X n )

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

(Y ' k , Y k ) = a 1 * b 1 * l 2k 1 + ... + a n * b n * l 2k n (3).

Аналогічно:

(Y ' k-1 , Y k ) = a 1 * b 1 * l 2k-1 1 + ... + a n * b n * l 2k-1 n (4).

Можна бачити, що з рівностей (3) і (4) отримуємо:


(Y ' k , Y k )/(Y' k -1 , Y k ) = l 1 + O (l 2 /l 1 ) 2 k .

З цієї оцінки видно, що освіта скалярного твори скорочує число кроків ітерацій, потрібних для визначення максимального власного l 1 , з даної точністю, майже вдвічі. Однак при цьому потрібно додаткове обчислення послідовності (2).

Слід відзначити, що в разі симетричної матриці, послідовності (1) і (2) збігаються, і тому в цьому випадку застосування методу скалярного добутку особливо доцільно. Починаючи з деякого кроку ітерації, потрібно обчислювати відповідні скалярні твори і визначати l 1 через їх відносини.

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

Програма, реалізує розглянутий метод, розроблена в середовищі Ма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];

3. Опис тестових завдань

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

Знайдемо власні значення вихідної матриці, використовуючи функцію eig.

Отримаємо

L1 = -5.5251

0.2841

3.4399

4.3911

Рішення вихідної задачі

Вихідні дані:

yn = [1,1,1,1];

ed = 0.00001;

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];

Дані, отримані при виконанні програми :

y = -0.1501 m = 34 L1 = -5.5251 T = 0

-0.0135

-0.7853

0.6005


Графік зн...


Страница 1 из 2Следующая страница

Друкувати реферат
Замовити реферат
Товары
загрузка...
Наверх Зворотнiй зв'язок