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

ЛИЧНЫЙ КАБИНЕТ 

 

Здравствуйте гость!

 

Логин:

Пароль:

 

Запомнить

 

 

Забыли пароль? Регистрация

Повышение уникальности

Предлагаем нашим посетителям воспользоваться бесплатным программным обеспечением «StudentHelp», которое позволит вам всего за несколько минут, выполнить повышение уникальности любого файла в формате MS Word. После такого повышения уникальности, ваша работа легко пройдете проверку в системах антиплагиат вуз, antiplagiat.ru, etxt.ru или advego.ru. Программа «StudentHelp» работает по уникальной технологии и при повышении уникальности не вставляет в текст скрытых символов, и даже если препод скопирует текст в блокнот – не увидит ни каких отличий от текста в Word файле.

Результат поиска


Наименование:


курсовая работа Программная реализация численных методов нахождения собственных векторов и собственных значений

Информация:

Тип работы: курсовая работа. Добавлен: 04.12.2012. Сдан: 2012. Страниц: 26. Уникальность по antiplagiat.ru: < 30%

Описание (план):


Содержание. 

1 Собственные значения и собственные векторы…………………………………..6 

     1.1 Математическое обоснование метода………………………………………6 

     1.2 Метод итераци..………………………………………………………………..8  

     1.3 Метод Леверрье-Фаддеева…………………………………………………...9 

         1.3.1 Основные пункты алгоритма метода Леверрье-Фаддеева.…….10 

      1.4 Численное решение задачи нахождения собственных значений матриц методом Леверрье-Фаддеева….…………………………………………….10 

2 Приложение…………………………………………………………………………..13 

     2.1 Структурная схема алгоритма метода Леверрье-Фаддеев..……………13 

     2.2 Листинг программы…………………………………………………………16 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

    Собственные значения и собственные  векторы.
Задачи  нахождения собственных значений и  соответствующих им собственных  векторов возникают в самых различных  научных задачах. Например, при анализе  динамических систем собственные значения определяют частоты колебаний, а  собственные векторы характеризуют  их форму. В электро-радиотехнических устройствах собственные значения матриц определяют характеристические постоянные времени и режимы работы этих устройств.
      Математическое обоснование метода.
Рассмотрим  квадратную матрицу n-ого порядка: 

 

Собственные значения li квадратной матрицы A есть действительные или комплексные числа, удовлетворяющие условию:
,

E – единичная матрица,
- собственный вектор матрицы  A, соответствующий некоторому собственному значению l. 

Матрица называется характеристической матрицей матрицы A. Т.к. в матрице по главной диагонали стоят l, а все остальные элементы равны нулю, то характеристическая матрица имеет вид: 

 
 

Определитель  этой матрицы называется характеристическим определителем и равен: 


В развернутом  виде он является многочленом n-ой степени относительно l, т.к. при вычислении этого определителя произведение элементов главной диагонали дает многочлен со старшим членом , т.е.  

 

  и  называется характеристическим многочленом. Корни этого многочлена – собственные значения или характеристические числа матрицы A. Числа называются коэффициентами характеристического многочлена.
Ненулевой вектор называется собственным вектором матрицы A, если эта матрица переводит вектор X в вектор
,

т.е. произведение матрицы A на вектор X и произведение характеристического числа l на вектор X есть один и тот же вектор. Каждому собственному значению матрицы соответствует свой собственный вектор .
Для определения  координат собственного вектора  составляется характеристическое уравнение: . Переписав его в векторном виде и выполнив умножение, получим систему линейных однородных уравнений:

 

Определитель  этой системы равен нулю, т.к. из этого  условия были определены собственные  значения матрицы A. Следовательно, система имеет бесконечное множество решений. Ее можно решить с точностью до постоянного множителя (как систему однородных уравнений). Решив эту систему, мы найдем все координаты собственного вектора X. Подставляя в систему однородных уравнений поочередно , получаем n собственных векторов.
При определении  собственных значений и принадлежащих  им собственных векторов решается одна и двух задач:
    Определение всех собственных значений и принадлежащих им собственных векторов матриц;
    Определение одного или нескольких собственных значений и принадлежащих им собственных векторов.
Первая  задача состоит в развертывании  характеристического определителя в многочлен n-й степени (т.е. в определении коэффициентов ) с последующим вычислением собственных значений и, наконец, в определении координат собственного вектора .
Вторая  задача заключается в определении  собственных значений  итерационными  методами без предварительного развертывания  характеристического определителя (метод итераций). Методы первой задачи (метод Данилевского, метод Леверрье-Фаддеева) относятся к точным, т.е. если их применить  для матриц, элементы которых заданы точно (рациональными числами), и  точно проводить вычисления (по правилам действий с обыкновенными дробями), то в результате будет получено точное значение коэффициентов характеристического  многочлена, и координаты собственных  векторов окажутся выраженными точными  формулами через собственные  значения.
Обычно  собственные векторы матрицы  удается определить, используя промежуточные  результаты вычислений, проведенных  для определения коэффициентов  характеристического многочлена. Для  определения того или иного собственного вектора, принадлежащего собственному значению, это собственное значение должно быть уже вычислено.
Методы  решения второй задачи – итерационные. Здесь собственные значения получаются как пределы некоторых числовых последовательностей, так же, как  и координаты принадлежащих им собственных  векторов. Т.к. эти методы не требуют  вычисления коэффициентов характеристического  многочлена, то он менее трудоемки. 
Некоторые свойства собственных значений векторов:
    Все n собственных значений любой симметричной матрицы (aij=aji; i,j = 1,2,…,n) вещественны.
    Собственные векторы, отвечающие различным собственным значениям симметричной матрицы, ортогональны:
, при 
,

, при 
.

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

Характеристическое  уравнение 

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

С помощью  итерационных методов можно определить наибольшее по модулю собственное число  матрицы A без раскрытия определителя.
Итак, пусть 

    характеристическое  уравнение; - его корни, являющиеся собственными значениями матрицы . Предположим, что
,

т.е. наибольшее по модулю собственное число. Тогда для нахождения приближенного значения корня используется следующая схема:
    произвольно выбирают начальный вектор Y;
    составляют последовательные итерации

    выбирают  из этой последовательности два последних  значения, и принимают за наибольшее собственное число следующее  соотношение:
,

где - соответствующие координаты векторов .
Таким образом, взяв достаточно большой номер  итерации m, можно с любой степенью точности вычислить наибольший по модулю корень характеристического уравнения матрицы. Для нахождения этого корня может быть использована любая координата вектора , в частности можно взять среднее арифметическое соответствующих отношений для разных координат.
      Метод Леверрье-Фаддеева.
Этот метод  относится к группе тех, которые  решаются методами развертывания определителей. Этот метод был предложен Леверрье и упрощен советским математиком  Фаддеевым. Метод Леверрье основан  на формулах Ньютона для сумм степеней корней алгебраического уравнения  и заключается в следующем. Пусть 

    характеристический  многочлен матрицы  , и - полная совокупность корней характеристического многочлена. Рассмотрим суммы:
,
,

 иначе:

(каждая  сумма  есть след матрицы ). Тогда при справедливы формулы Ньютона:

откуда  получаем:
    при
    при
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    при
Следовательно, коэффициенты характеристического  многочлена можно легко определить, если известны суммы .
Таким образом, схема раскрытия характеристического  многочлена состоит в следующем:
    вычисляют степени
    определяют - суммы элементов главных диагоналей матриц ;
    по вышеприведенным формулам Ньютона находим коэффициенты .
Видоизмененный  метод Леверрье, предложенный Фаддеевым, заключается в вычислении последовательности матриц по следующей схеме:
 

        Основные  пункты алгоритма  метода Леверрье-Фаддеева.
    Ввод исходной матрицы , где n – размерность матрицы.
    Вычисление коэффициентов .
    Решение характеристического уравнения (определение ). В качестве метода решения характеристического уравнения выбран уединения корней уравнения и метод хорд.
    Задание начальных единичных векторов .
    Вычисление собственного вектора , соответствующего .
    Нормировка вектора .
    Конец алгоритма.
При решении  данной задачи использовались и некоторые  вспомогательные процедуры, - например процедура возведения в степень.
 
      Численное решение задачи нахождения собственных значений матриц методом Леверрье-Фаддеева.
    Используя метод Леверрье-Фаддеева, найти собственные  числа матрицы, а так же наибольший собственный вектор. 

.
Решение.
     Определяем  коэффициенты характеристического  уравнения  посредством построения последовательности матриц.
,

,

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

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

.
Решение.
Выбираем  начально-свободный вектор
Вычисляем

 

 

 

Дальнейшие  вычисления можно свести в Таблицу1.
A 2,6 1,2
-0,1
1,2 2,1
1,6
-0,1 1,6
0,8
Y0 1.00 1.00 1.00      
Y1 3.70 4.90 2.30 4.13 3.76 4.05
Y2 15.27 18.41 9.31 3.99 3.90 3.80
Y3 60.86 71.88 35.38 3.96 3.90 3.88
Y4 240.96 280.59 137.22 3.94 3.91 3.90
Y5 949.49 1097.95 534.63 3.93 3.92 3.91
Y6 3732.75 4300.49 2089.48 3.93 3.92 3.91
Y7 14656.79 16853.49 8179.09 3.92 3.92 3.92
 
Дальнейшие  итерации можно прекратить. Собственное  значение (наибольшее) . Нормированный собственный вектор .  
 
 

 


    Приложение
      Структурная схема алгоритма метода Леверрье-Фаддеева.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Процедура Trace формирования "следа" матрицы AMatrix. 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Процедура VInter формирования последовательности матриц Bmatrix. 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Структурная схема процедуры  AConsistance. 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Структурная схема метода хорд для решения характеристического  уравнения. 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Процедура уединения коренй характристического уравнения. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

      Листинг программы.
 
 
unit Unit2; 

interface 

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, StdCtrls, Spin, ExtCtrls, Buttons; 

type
  TForm2 = class(TForm)
    Button1: TButton;
    RadioGroup1: TRadioGroup;
    Label1: TLabel;
    SpinEdit1: TSpinEdit;
    StringGrid1: TStringGrid;
    RadioGroup2: TRadioGroup;
    StringGrid2: TStringGrid;
    Button2: TButton;
    RadioGroup3: TRadioGroup;
    Memo1: TMemo;
    Edit1: TEdit;
    Edit2: TEdit;
    Label2: TLabel;
    Label3: TLabel;
    Button3: TButton;
    Button4: TButton;
    procedure Button1Click(Sender: TObject);
    procedure SpinEdit1Change(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end; 

var
  Form2: TForm2; 

implementation 

{$R *.dfm}
type TMatrix=array of array of real;
     TVec=array of real;
var AMatrix,CEquival,BMatrix,VMatrix:TMatrix;
    X_SelfVec,LVec,U_EMatrix:TVec;
    P_CharacteristicParam,Pk,Pn,Lambda,Max:real;{Параметр p характеристического уравнения матрицы}
    Range,k,k1,i,j,num:integer;
    i0,m:integer;
    Cols,Rows:integer;
    PVec:TVec;
    {Параметры  характеристического уравнения  уравнения}
    Ya,Yb,Yk:real;
    Xk,Xn,x1,x2:real;
    X,Y:real;
    alpha,beta,eps:real;
    RootNum:integer;
    SpEdV:integer; 
 

{Процедура считывания  исходной матрицы}
procedure InputMatrix(var AMatrix:TMatrix;Range:integer);
var i,j,cols,rows:integer;
begin
    Rows:=Range;
    Cols:=Range;
    for i:=0 to cols-1 do
      for j:=0 to rows-1 do AMatrix[i,j]:=StrToFloat(Form2.StringGrid1.Cells[i,j]);
end; 

//строим эквивалентную матрицу
procedure PlotSameMatrix(CEquival:TMatrix;AMatrix:TMatrix;Range:integer);
var i,j:integer;
begin
  for i:=0 to Range-1 do
    for j:=0 to Range-1 do
    begin
       CEquival[i,j]:=AMatrix[i,j];
    end;
end; 
 

//Процедуры форматированного  вывода/печати матриц AMatrix в Memo
procedure Coord_AMatrix(var AMatrix:TMatrix;Range:integer);
var i,j,k:integer;
    str:string;
begin
Form2.Memo1.Lines.Add('Матрицa');
str:='';
     for i:=0 to Range-1 do
      begin
        for j:=0 to range-1 do str:=str + FloatToStr(AMatrix[i,j]) + ' ';
           Form2.Memo1.Lines.Add(str);
      end;
end;
//Процедуры форматированного  вывода/печати матриц VMatrix в Memo
procedure Coord_VMatrix(var VMatrix:TMatrix;Range:integer);
var i,j:integer;
    str:string;
begin
Form2.Memo1.Lines.Add('Ветора');
   for i:=0 to Range-1 do
   begin
     for j:=0 to range-1 do str:=str + FloatToStr(VMatrix[i,j]) + ' ';
       Form2.Memo1.Lines.Add(str);
     end;
end; 
 

//cуммирование  диагональных элементов (след  матрицы)
function Trace(Range:integer;AMatrix:TMatrix):real;
var i,N:integer;
    diag_sum:real;
begin
     Diag_sum:=0;
     Trace:=0;
     N:=Range;
     for i:=0 to N-1 do
     begin
       Diag_sum:=diag_sum+AMatrix[i,i];
       Trace:=Diag_sum;
     end;
end; 

//Промежуточная матрица V
procedure VInter(var VMatrix:TMatrix;BMatrix,AMatrix:TMatrix;Range:integer;
                     Pk:real);
var i,j,m,i0:integer;
begin
    for i:=0 to Range-1 do
      for j:=0 to Range-1 do
      begin
          if i=j then BMatrix[i,j]:=AMatrix[i,j]-Pk
          else BMatrix[i,j]:=AMatrix[i,j];
          VMatrix[i,j]:=BMatrix[i,j];
      end;
end; 

//Процедура формирования  матриц A (последовательности матриц)
procedure AConsistance(var AMatrix:TMatrix;CEquival,V:TMatrix;Range:integer);
var i,j,k:integer;
begin
  for i:=0 to Range-1 do
     for j:=0 to Range-1 do
     begin
        AMatrix[i,j]:=0;
     end;
     for k:=0 to Range-1 do
       for i:=0 to Range-1 do
       begin
         for j:=0 to Range-1 do
         begin
           AMatrix[k,i]:=AMatrix[k,i]+CEquival[k,j]*V[j,i];
         end;
         Coord_AMatrix(AMatrix,Range);
       end;
end; 

//Промежуточная  функция возведения в степень
function pow(x:real;y:integer):real;
begin
    if x=0 then pow:=0;
    if x>0 then pow:=exp(y*ln(x));
    if (x<0) and ((y mod 2)=0) then pow:=exp(y*ln(-x));
    if (x<0) and ((y mod 2)<>0) then pow:=-exp(y*ln(-x));
end; 

//Окончательная функция
function f(x:real;i:integer;PVec:TVec;Range:integer):real;
var k:integer;
begin
    k:=1;
    if Range=4 then f:=pow(x,4)-PVec[k-1]*pow(x,3)-PVec[k]*pow(x,2)
                      -PVec[k+1]*x-PVec[k+2];
    if Range=3 then f:=pow(x,3)-PVec[k-1]*pow(x,2)-PVec[k]*x-PVec[k+1];
end; 

//Derivative -вторая производная
function F_deriv(x:real;i:integer;PVec:TVec;Range:integer):real;
var k:integer;
begin
    k:=1;
    if Range=4 then F_deriv:=12*pow(x,2)-6*PVec[k-1]*x-PVec[k]*2;
    if Range=3 then F_deriv:=6*x-2*PVec[k-1];
end; 

//Реализация метода  хорд для решения характеристического  уравнения
procedure ChordMethood(var X,Y:real;x1,x2,eps:real;i,Range:integer;PVec:TVec);
var Ya,Yb,Yk:real;
    Xk,Xn:real;
    k:integer;
begin
       Ya:=f(x1,i,PVec,Range);
       Yb:=f(x2,i,PVec,Range);
       Y:=F_deriv(x1,i,PVec,Range);{Вторая производная}
       if Ya*Y>0 then
       begin
            Xk:=x1;Yk:=Ya;X:=x2; Y:=Yb;
       end
         else
       begin
            Xk:=x2;Yk:=Yb; X:=x1;Y:=Ya;
       end;
       repeat
            Xn:=X;X:=Xn-(Y/(Y-Yk))*(Xn-Xk);
            Y:=f(X,i,PVec,Range);
       until abs(X-Xk)>=eps; 

end; 

//Реализация метода  уединения и уточнения коренй  посредством метода хорд
procedure Root_limit(var alpha,beta:real;var LVec:TVec;var RootNum:integer;
                        i,Range:integer;PVec:TVec);
const step_h=0.09;
var
   x1,x2,y1,y2:real;
   Ya,Yb,Yk,Y:real;
   Xk,Xn,X:real;
   eps:real;
   k:integer;
begin
и т.д.................


Перейти к полному тексту работы


Скачать работу с онлайн повышением уникальности до 90% по antiplagiat.ru, etxt.ru или advego.ru


Смотреть полный текст работы бесплатно


Смотреть похожие работы


* Примечание. Уникальность работы указана на дату публикации, текущее значение может отличаться от указанного.