Банк рефератов содержит более 364 тысяч рефератов, курсовых и дипломных работ, шпаргалок и докладов по различным дисциплинам: истории, психологии, экономике, менеджменту, философии, праву, экологии. А также изложения, сочинения по литературе, отчеты по практике, топики по английскому.
Полнотекстовый поиск
Всего работ:
364150
Теги названий
Разделы
Авиация и космонавтика (304)
Административное право (123)
Арбитражный процесс (23)
Архитектура (113)
Астрология (4)
Астрономия (4814)
Банковское дело (5227)
Безопасность жизнедеятельности (2616)
Биографии (3423)
Биология (4214)
Биология и химия (1518)
Биржевое дело (68)
Ботаника и сельское хоз-во (2836)
Бухгалтерский учет и аудит (8269)
Валютные отношения (50)
Ветеринария (50)
Военная кафедра (762)
ГДЗ (2)
География (5275)
Геодезия (30)
Геология (1222)
Геополитика (43)
Государство и право (20403)
Гражданское право и процесс (465)
Делопроизводство (19)
Деньги и кредит (108)
ЕГЭ (173)
Естествознание (96)
Журналистика (899)
ЗНО (54)
Зоология (34)
Издательское дело и полиграфия (476)
Инвестиции (106)
Иностранный язык (62792)
Информатика (3562)
Информатика, программирование (6444)
Исторические личности (2165)
История (21320)
История техники (766)
Кибернетика (64)
Коммуникации и связь (3145)
Компьютерные науки (60)
Косметология (17)
Краеведение и этнография (588)
Краткое содержание произведений (1000)
Криминалистика (106)
Криминология (48)
Криптология (3)
Кулинария (1167)
Культура и искусство (8485)
Культурология (537)
Литература : зарубежная (2044)
Литература и русский язык (11657)
Логика (532)
Логистика (21)
Маркетинг (7985)
Математика (3721)
Медицина, здоровье (10549)
Медицинские науки (88)
Международное публичное право (58)
Международное частное право (36)
Международные отношения (2257)
Менеджмент (12491)
Металлургия (91)
Москвоведение (797)
Музыка (1338)
Муниципальное право (24)
Налоги, налогообложение (214)
Наука и техника (1141)
Начертательная геометрия (3)
Оккультизм и уфология (8)
Остальные рефераты (21697)
Педагогика (7850)
Политология (3801)
Право (682)
Право, юриспруденция (2881)
Предпринимательство (475)
Прикладные науки (1)
Промышленность, производство (7100)
Психология (8694)
психология, педагогика (4121)
Радиоэлектроника (443)
Реклама (952)
Религия и мифология (2967)
Риторика (23)
Сексология (748)
Социология (4876)
Статистика (95)
Страхование (107)
Строительные науки (7)
Строительство (2004)
Схемотехника (15)
Таможенная система (663)
Теория государства и права (240)
Теория организации (39)
Теплотехника (25)
Технология (624)
Товароведение (16)
Транспорт (2652)
Трудовое право (136)
Туризм (90)
Уголовное право и процесс (406)
Управление (95)
Управленческие науки (24)
Физика (3463)
Физкультура и спорт (4482)
Философия (7216)
Финансовые науки (4592)
Финансы (5386)
Фотография (3)
Химия (2244)
Хозяйственное право (23)
Цифровые устройства (29)
Экологическое право (35)
Экология (4517)
Экономика (20645)
Экономико-математическое моделирование (666)
Экономическая география (119)
Экономическая теория (2573)
Этика (889)
Юриспруденция (288)
Языковедение (148)
Языкознание, филология (1140)

Курсовая работа: Прямой метод вращения векового определителя

Название: Прямой метод вращения векового определителя
Раздел: Рефераты по информатике, программированию
Тип: курсовая работа Добавлен 08:00:11 14 мая 2008 Похожие работы
Просмотров: 54 Комментариев: 2 Оценило: 0 человек Средний балл: 0 Оценка: неизвестно     Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное агентство по образованию

Государственное образовательное учреждение

Высшего профессионального образования

«Оренбургский государственный университет»

Факультет экономики и управления

Кафедра математического обеспечения информационных систем

КУРСОВАЯ РАБОТА

по дисциплине «Численные методы»

Прямой метод вращения векового определителя

ОГУ 061800.8006.18 ООО

Руководитель работы

____________________Ващук И.Н.

«_____» _______________ 2006 г.

Исполнитель студент гр. 04ММЭ

________________Широбоков П.Д.

«_____» ________________ 2006 г.

Оренбург 2006


Оглавление

Введение. 3

Постановка задачи.. 4

Описание метода. 5

Сходимость метода. 8

Описание входных и выходных данных.. 9

Заключение. 10

Список литературы.. 11

Приложение А... 12

Приложение Б.. 19

Введение

Численные методы решения проблемы собственных значений до конца 40-х годов, сводились, в основном, к решению характеристического уравнения. При реализации такого подхода, основные усилия были направлены на разработку эффективных методов быстрого вычисления коэффициентов характеристического уравнения. Такие методы имеют названия прямых. Популярным методом этого типа является метод Данилевского. Он давал довольно большую погрешность, но в тоже время имел очень большую скорость получения результата.

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

Постановка задачи

Большое число задач математики и физики требует отыскания собственных значений и собственных векторов матриц, т.е. отыскания таких значений +, для которых существуют нетривиальные решения однородной системы линейных алгебраических уравнений

, (1)

и отыскания этих нетривиальных решений.

Здесь -квадратная матрица порядка m , - неизвестный вектор - столбец.

Из курса алгебры известно, что нетривиальное решение системы (1) существует тогда и только тогда, когда

, (2)

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

Определитель называется характеристическим (или вековым ) определителем, а уравнение (2) называется характеристическим (или вековым ) уравнением.

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

Описание метода

Идея метода Данилевского состоит в том, что матрица А приводится к “нормальной форме Фробениуса”, имеющей вид: .

Характеристическое уравнение для матрицы Р имеет простой вид

т.е. коэффициенты при степенях характеристического полинома непосредственно выражаются через элементы первой строки матрицы Р.

Приведение матрицы А к нормальной форме Фробениуса Р осуществляется последовательно построкам, начиная с последней строки.

1. Приведем матрицу

к виду

Пусть Можно проверить,что такой вид имеет матрица , которая равна

где

Следующий шаг - приведение подобным преобразованием к .

Таким образом

И так далее:

2. Рассмотрим нерегулярный случай, когда матрица, полученная в результате подобных преобразований приведена уже к виду

и элемент .

Таким образом обычная процедура метода Данилевского не подходит из-за необходимости деления на ноль. В этой ситуации возможно два случая.

2.1 Предполагаем, что левее есть элемент Тогда домножая матрицу слева и справа на элементарную матрицу перестановок , получаем матрицу .

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

2.2 Рассмотрим второй нерегулярный случай, когда в матрице элемент и все элементы левее, тоже нулевые. В этом случае характеристический определитель матрицы можно представить в виде

где и - единичные матрицы соответствующей размерности, а квадратные матрицы и имееют вид:

Обратим внимание на то, что матрица уже имеет нормальную форму Фробениуса, и поэтому сомножитель просто развертывается в виде многочлена с коэффициентами, равными элементам первой строки.

Сомножитель нужно преобразовывать. Для развертывания можно применять метод Данилевского, приводя матрицу подобными преобразованиями к нормальной форме Фробениуса.

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

Тесты метода и ПО см. В Приложении Б.

Сходимость метода

Определение. Квадратная матрица Р порядка m называется подобной матрице А , если она представлена в виде , где S - невыродженная квадратная матрица порядка m.

Теорема. Характеристический определитель исходной и подобной матрицы совпадают .

Доказательство.

Идея метода Данилевского состоит в том, что матрица А подобным преобразованиям приводится, к так называемой нормальной форме Фробениуса

.

Теорема. Пусть є есть собственное значение , а есть соответствующий собственный вектор матрицы Р , которая подобна матрице А ,т.е.

Тогда есть собственный вектор матрицы А , соответствующий собственному значению

Доказательство.Тривиально следует из того, что

Домножая левую и правую часть этого равенства слева на S , имеем

А это и означает, что -собственный вектор матрицы А , отвечающий собственному значению

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

Входные параметры:

Квадратная матрица порядка n*n. Рекомендуется, чтобы она была хорошо обусловлена.

Выходные параметры:

Получаем коэффициенты при степенях характеристического полинома. Решая данное уравнение получаем собственные значения исходной матрицы. Следующим шагом является определение собственных векторов.

.

Заключение

Обозначим некоторые выводы по проделанной работе:

Во время освоения данного метода мы не могли пропустить некоторые минусы метода Данилевского:

- Погрешность накапливается со скоростью геометрической прогрессии.

- Приходится решать достаточно сложное уравнение порядка n (если решать с помощью приближенных метод, снова получаем некоторую погрешность)

- В программном варианте используются достаточно большие объемы оперативной памяти, к примеру, приходится хранить до 4 матриц порядка n*n.

Но так же нельзя не остановиться на очевидных плюсах метода:

- Метод удобен для нахождения собственных векторов практически любой матрицы. Рекомендуется рассматривать матрицы меньше порядка нескольких десятков.

- Данный метод очень удобен в программировании (на этапе разработки ПО проблем практически не возникало).

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

Список литературы

1. Основы численных методов: Учебник для вузов/ В.М. Вержбицкий. – М.: Высш. Шк., 2002. – 840 с.: ил.

2. Высшая математика для экономистов: Учебник для вузов/ Н.Ш. Кремер, Б.А. Путко, И.М. Тришин, М.Н. Фридман; Под ред. проф. Н.Ш. Кремера. – 2-е изд., перераб. и доп. – М.: ЮНИТИ, 2004. – 471 с.

3. Интернет.

4. Библия Delphi/ М.Е. Фленов – СПб.: БХВ-Петербург, 2005. – 880 с.: ил.

Приложение А

unit MainUnit;

interface

uses

Windows, …, Buttons;

type

Matrix = array of array of real;

TForm1 = class(TForm)

private

{ Private declarations }

// Процедура "перестановки" матрицы, возвращает true если все хорошо

function Remove(Var rez: Matrix; i: integer): boolean;

// Умножение 2-х матриц

procedure Multiple(a,b:Matrix; Var rez: Matrix);

// Возвращение решений

function FindDet(Var a:Matrix):string;

// Обнуление матриц

procedure Zero(Var a:Matrix);

public

{ Public declarations }

end;

var Form1: TForm1;

implementation

{$R *.dfm}

function TForm1.FindDet(Var a: Matrix):string;

Var i,j : integer;

M,Mob,bac : Matrix;

flag : boolean;

begin

SetLength(M,Length(a[1]),Length(a[1]));

SetLength(Mob,Length(a[1]),Length(a[1]));

SetLength(bac,Length(a[1]),Length(a[1]));

flag:=true;

for i:=Length(a[1])-2 downto 0 do

// Построение матриц

BEGIN

// Обработка случая 2.1

if (a[i+1,i]=0) and (not Remove(a,i)) then

begin

// Если ничего не помогло

flag:=false;

Break;

end;

// Обнуление всех матриц

Zero(M); Zero(Mob); Zero(bac);

// Построение матриц М

for j:=0 to Length(a[i])-1 do

begin

Mob[j,j]:=1;

Mob[i,j]:=a[i+1,j];

M[j,j]:=1;

M[i,j]:=-Mob[i,j]/a[i+1,i];

if i=j then M[i,j]:=1/a[i+1,i];

end;

// Умножение матрицы А на М

Multiple(a,M,bac); // A*M

Multiple(Mob,bac,a); // M^(-1)*(A*M)

END;

// Обработка случая 2.2, если надо

if not flag then

begin

M:=nil;

Mob:=nil;

// Находим матрицу С и выводим ее коэффициенты

SetLength(bac,1,length(a)-i-1);

for j:=i+1 to length(a)-1 do bac[0,j-i-1]:=a[i,j]; // Матрица C

Result:='('+FloatToStrF(bac[0,0],ffFixed,10,3);

for i:=1 to Length(bac)-1 do

Result:=Result+','+FloatToStrF(bac[0,i],ffFixed,10,3);

Result:=Result+'),';

// "Урезаем" матрицу А до состояния B, см. 2.2 пункт алгоритма

SetLength(a,i+1,i+1);

// Вызываем рекурсивно процедуру

Result:=Result+FindDet(a);

end

else begin

Result:='('+FloatToStrF(a[0,0],ffFixed,10,3);

for i:=1 to Length(a)-1 do

Result:=Result+','+FloatToStrF(a[0,i],ffFixed,10,3);

Result:=Result+')';

end;

bac:=nil;

end;

procedure TForm1.bbPlusClick(Sender: TObject);

begin

sgInData.ColCount:=sgInData.ColCount+1;

sgInData.RowCount:=sgInData.RowCount+1;

if sgInData.ColCount=11 then ShowMessage('Attention!!! Полученные результаты имеют малую точность');

end;

procedure TForm1.bbMinusClick(Sender: TObject);

begin

if sgInData.ColCount<3 then Exit;

sgInData.ColCount:=sgInData.ColCount-1;

sgInData.RowCount:=sgInData.RowCount-1;

end;

procedure TForm1.bbOpenClick(Sender: TObject);

Var k : real;

f : textfile;

a,i,j : integer;

begin

OpenDialog1.Filter:='Все файлы (*.*)|*.*| Файлы .txt (*.txt)|*.TXT';

OpenDialog1.Title:='Выбор файла для этой проги';

OpenDialog1.FilterIndex:=2;

if OpenDialog1.Execute then

begin

AssignFile(f,OpenDialog1.FileName);

Reset(f);

end

else Exit;

ReadLn(f,a);

sgInData.ColCount:=a;

sgIndata.RowCount:=a;

for i:=0 to a-1 do

begin

for j:=0 to a-1 do

begin

Read(f,k);

sgIndata.Cells[j,i]:=FloattoStr(k);

end;

ReadLn(f);

end;

CloseFile(f);

end;

procedure TForm1.bbFindClick(Sender: TObject);

Var a :matrix;

i,j :integer;

begin

try

SetLength(a,sgInData.ColCount,sgInData.RowCount);

for i:=0 to sgInData.RowCount-1 do

for j:=0 to sgInData.RowCount-1 do a[i,j]:=StrToFloat(sgInData.Cells[j,i]);

except

begin

a:=nil;

ShowMessage('STOP! Неправильный ввод, проверьте входные данные');

Exit;

end;

end;

OutData.Clear;

OutData.Lines.Add('Коэффициенты характеристического уравнения');

OutData.Lines.Add(FindDet(a));

a:=nil;

end;

procedure TForm1.Multiple(a, b: Matrix; var rez: Matrix);

var i,k,j : word;

Begin

for i:=0 to Length(a[1])-1 do

for k:=0 to Length(a[1])-1 do

begin

// Обновление занятых матриц

rez[i,k]:=0;

for j:=0 to Length(a[1])-1 do rez[i,k]:=rez[i,k]+a[i,j]*b[j,k];

end;

end;

function TForm1.Remove(var rez: Matrix; i: integer): boolean;

Var j,k : integer;

E,bac : Matrix;

begin

Result:=false;

for k:=0 to i-1 do // Ищем ненулевой элемент слева

if rez[i+1,k]<>0 then

begin

Result:=true;

Break;

end;

if not Result then Exit;

SetLength(E,Length(rez[1]),Length(rez[1]));

SetLength(bac,Length(rez[1]),Length(rez[1]));

for j:=0 to Length(rez[1])-1 do E[j,j]:=1;

for j:=0 to Length(rez[1])-1 do

begin

// Меняем две строки местами в матрице E

E[i,j]:=-E[i,j]-E[k,j];

E[k,j]:=-E[i,j]-E[k,j];

E[i,j]:=-E[i,j]-E[k,j];

end;

Multiple(rez,E,bac); // A*M

Multiple(E,bac,rez); // M^(-1)*(A*M)

E:=nil;

bac:=nil;

end;

procedure TForm1.Zero(var a: Matrix);

Var i,j: integer;

begin

for i:=0 to Length(a)-1 do

for j:=0 to Length(a[0])-1 do a[i,j]:=0;

end;

end.

Приложение Б

Результаты работы программы с теми же входными данными:

Рис 1.

Приложение Б

(продолжение)

Результаты работы программы с теми же входными данными:

Рис 2.

Оценить/Добавить комментарий
Имя
Оценка
Комментарии:
Где скачать еще рефератов? Здесь: letsdoit777.blogspot.com
Евгений07:32:37 19 марта 2016
Кто еще хочет зарабатывать от 9000 рублей в день "Чистых Денег"? Узнайте как: business1777.blogspot.com ! Cпециально для студентов!
19:46:08 28 ноября 2015

Работы, похожие на Курсовая работа: Прямой метод вращения векового определителя

Назад
Меню
Главная
Рефераты
Благодарности
Опрос
Станете ли вы заказывать работу за деньги, если не найдете ее в Интернете?

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



Результаты(150503)
Комментарии (1836)
Copyright © 2005-2016 BestReferat.ru bestreferat@mail.ru       реклама на сайте

Рейтинг@Mail.ru