Нахождение собственных значений и векторов

Автор работы: Пользователь скрыл имя, 12 Июня 2013 в 22:14, курсовая работа

Описание работы

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

Содержание работы

Введение……………………………………………………………………….4
Часть 1 (теоретическая)……………………………………………………….5
Нахождение собственных значений…………………………………….5
Нахождение собственных векторов……………………………………..6
Список литературы………………

Файлы: 1 файл

Курсач.doc

— 132.00 Кб (Скачать файл)

Министерство  образования Российской Федерации

Тульский государственный  университет

Кафедра прикладной математики и информатики

 

 

Утверждаю

Зав. кафедрой ПМиИ

___________________ В.И.  Иванов

«___»  _____________ 2008 г.

 

 

 

 

ПОЯСНИТЕЛЬНАЯ  ЗАПИСКА

к курсовому проекту по курсу

«ЧИСЛЕННЫЕ МЕТОДЫ»

на тему

________________________________________________________________________

________________________________________________________________________

________________________________________________________________________

 

 

 

 

 

 

 

Автор работы __________________ студент гр. _________   _____________________

                                                                (дата, подпись)                                                                                                                   (фамилия и инициалы)

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

                                                                                     (дата, подпись)                                     (должность)                                     (фамилия и инициалы)

Работа защищена ___________________ с оценкой  ____________________________

                                                                                     (дата)

Члены комиссии __________________  _______________   ____________________

                                                                          (дата, подпись)                                     (должность)                                     (фамилия и инициалы)

                              __________________  _______________   ____________________

                                                                          (дата, подпись)                                     (должность)                                     (фамилия и инициалы)

                              __________________  _______________   ____________________

                                                                          (дата, подпись)                                     (должность)                                     (фамилия и инициалы)

 

 

Тула, 2008 

Утверждаю

Зав. кафедрой ПМиИ

___________________ В.И.  Иванов

«___»  _____________ 20___ г.

 

 

ЗАДАНИЕ

на курсовой проект по курсу

«ЧИСЛЕННЫЕ МЕТОДЫ»

 

студенту гр. ____________   ________________________________________________

                                                                                                                                                                (фамилия, имя, отчество)

Тема работы _____________________________________________________________

________________________________________________________________________

________________________________________________________________________

Входные данные  _________________________________________________________

________________________________________________________________________

________________________________________________________________________

________________________________________________________________________

________________________________________________________________________

Задание получил __________________            _____________________

                                                                              (подпись)                                                                               (дата)

График выполнения работы ________________________________________________

________________________________________________________________________

________________________________________________________________________

________________________________________________________________________

________________________________________________________________________

________________________________________________________________________

________________________________________________________________________

________________________________________________________________________

Замечания консультанта ___________________________________________________

________________________________________________________________________

________________________________________________________________________

________________________________________________________________________

К защите. Консультант  работы __________________            _____________________

                                                                                                                   (подпись)                                                                               (дата)

 

 

 

 

Министерство  образования Российской Федерации

Тульский государственный  университет

Кафедра прикладной математики и информатики

 

РЕЦЕНЗИЯ

на курсовой проект по курсу

«ЧИСЛЕННЫЕ МЕТОДЫ»

 

студента гр. ____________   ________________________________________________

                                                                                                                                                                (фамилия, имя, отчество)

на тему

________________________________________________________________________

________________________________________________________________________

________________________________________________________________________

Краткая характеристика теоретической части

________________________________________________________________________

________________________________________________________________________

________________________________________________________________________

________________________________________________________________________

________________________________________________________________________

________________________________________________________________________

Краткая характеристика программной реализации

________________________________________________________________________

________________________________________________________________________

________________________________________________________________________

________________________________________________________________________

________________________________________________________________________

________________________________________________________________________

Работа с  литературой

________________________________________________________________________

________________________________________________________________________

________________________________________________________________________

 

Рекомендуемая оценка ____________________________

Рецензент __________________  _______________   ____________________

                                                      (дата, подпись)                                     (должность)                                     (фамилия и инициалы)

 

 

Содержание

      Введение……………………………………………………………………….4

      Часть 1 (теоретическая)……………………………………………………….5

  1. Нахождение собственных значений…………………………………….5
  2. Нахождение собственных векторов……………………………………..6

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

      Приложение 1. Программа……………………………………………………8

      Приложение 2. Результаты  работы программы…………………………….16

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Введение.

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Нахождение собственных значений.

 

Метод Крылова основан на свойстве квадратной матрицы обращать в нуль свой характеристический многочлен.

Согласно тождеству Гамильтона-Кели, всякая квадратная матрица является корнем своего характеристического многочлена и, следовательно, обращает его в нуль.

Пусть

   (1)

характеристический многочлен.

Заменяя в выражении (1) величину на , получим

 (2)

Возьмем произвольный ненулевой вектор

 (3)

Умножим обе части выражения (2) на :

 (4)

Положим

 (5)

т.е.

 (6)

Учитывая (5), выражение (4) запишем в  виде

 (7)

или в виде

 

Решаем систему (7). Если эта система  имеет единственное решение, то ее корни    являются коэффициентами характеристического многочлена (1).

 

 

 

Нахождение  собственных векторов.

 

Если известны коэффициенты и корни характеристического многочлена, то метод Крылова дает возможность найти соответствующие собственные векторы по следующей формуле:

 (8)

Здесь – векторы, использованные при нахождении коэффициентов методом Крылова, а коэффициенты определяются по схеме Горнера:

 (9)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

    1. Б. П. Демидович, И. А. Марон «Основы вычислительной математики». - Издательство «Лань», 2007 – 672с .
    2. Н. Н. Калиткин «Численные методы».

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Приложение 1. Программа.

 

Unit1.h

 

#ifndef Unit1H

#define Unit1H

//---------------------------------------------------------------------------

#include <Classes.hpp>

#include <Controls.hpp>

#include <StdCtrls.hpp>

#include <Forms.hpp>

#include <Grids.hpp>

#include "math.hpp"

#include <ExtCtrls.hpp>

//---------------------------------------------------------------------------

class TForm1 : public TForm

{

__published: // IDE-managed Components

        TMemo *Memo1;

        TButton *Button1;

        TStringGrid *StringGrid1;

        TGroupBox *GroupBox1;

        TLabel *Label1;

        TLabel *Label2;

        TGroupBox *GroupBox2;

        TButton *Button2;

        TStringGrid *StringGrid2;

        TStringGrid *StringGrid3;

        TButton *Button3;

        TButton *Button4;

        TLabel *Label3;

       TEdit *Edit1;

        TLabel *Label4;

        TLabel *Label5;

        TLabel *Label6;

        TLabel *Label7;

        TStringGrid *StringGrid4;

        TCheckBox *CheckBox1;

        TLabel *Label8;

        TLabel *Label9;

        TLabel *Label10;

        TButton *Button5;

        TButton *Button6;

        TLabel *Label11;

        TMemo *Memo2;

        TLabel *Label12;

        void __fastcall Button1Click(TObject *Sender);

        void __fastcall Button2Click(TObject *Sender);

        void __fastcall Button3Click(TObject *Sender);

        void __fastcall Button4Click(TObject *Sender);

        double __fastcall Polinom(double x);

        void __fastcall Dix(double a,double b);

        void __fastcall CheckBox1Click(TObject *Sender);

        void __fastcall Button5Click(TObject *Sender);

        void __fastcall Button6Click(TObject *Sender);

        void __fastcall FormDestroy(TObject *Sender);

 

private:

public:

        double * *matrix;

        double * *vektori;

        double * *vektorg;

        double * *vek;

        double *L,*koef,*q;

        double buf;

        int i,j,k,dlstr,step;

 

        __fastcall TForm1(TComponent* Owner);

};

//---------------------------------------------------------------------------

extern PACKAGE TForm1 *Form1;

//---------------------------------------------------------------------------

#endif

 

 

Unit1.cpp

 

#include <vcl.h>

#pragma hdrstop

 

#include "Unit1.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

        : TForm(Owner)

{

}

//---------------------------------------------------------------------------

 

void __fastcall TForm1::Button1Click(TObject *Sender)

{

char bufb;

String bufs;

 

Memo1->Lines->LoadFromFile(Edit1->Text);

 

Label4->Visible=false;

Label5->Visible=true;

Button2->Visible=true;

Button5->Visible=false;

Button1->Visible=false;

Memo2->Visible=false;

 

Memo2->Text="";

 

step=Memo1->Lines->Count;

 

matrix = new double *[step];

for (i=0;i<step;i++)

  matrix[i] = new double[step];

 

vektori = new double *[step+1];

for (i=0;i<step+1;i++)

  vektori[i] = new double[step];

 

vektorg = new double *[step+1];

for (i=0;i<step+1;i++)

  vektorg[i] = new double[step];

 

vek = new double *[step];

for (i=0;i<step+1;i++)

  vek[i] = new double[step];

 

q = new double [step+1];

koef = new double [step];

L = new double [step];

                                

StringGrid2->ColCount=step;

StringGrid2->RowCount=step+1;

StringGrid2->Width=step*121+20;

 

StringGrid3->ColCount=step;

StringGrid3->Width=step*121+3;

 

StringGrid4->ColCount=step;

StringGrid4->Width=step*101+3;

 

 

StringGrid1->ColCount=step;

StringGrid1->Width=step*51+3;

StringGrid1->Visible=true;

StringGrid1->Cells[0][0]="1";

for (i=1;i<step;i++)

  StringGrid1->Cells[i][0]="0";

 

                                 

for (i=0;i<step;i++)             

  {

  dlstr=Memo1->Lines->Strings[i].Length();

  k=0;

  bufs="";

    for (j=0;j<dlstr;j++)

    {

    bufb=Memo1->Lines->Strings[i][j+1];

    if (bufb!=' ') bufs+=bufb;

    if (bufb==' ') { matrix[i][k] = StrToFloat(bufs); k++; bufs="";}

    }

Информация о работе Нахождение собственных значений и векторов