50936

Знаходження власних чисел і векторів матриці по методу Крилова

Лабораторная работа

Информатика, кибернетика и программирование

Мета: навчитися знаходити власні числа і вектори матриці по методу Крилова. Устаткування: лист формату А4, ручка, С ++. Хід роботи Правила техніки безпеки Теоретичні дані Індивідуальне завдання. Знайти одне з власних чисел і відповідний йому власний вектор матриці А по методу Крилова (використати результати лабороторної роботи № 18).

Украинкский

2014-02-02

60.5 KB

2 чел.

М   Вариант 13    Остапова А.А.

Лабораторна робота №19

Тема. Знаходження власних чисел і векторів матриці по методу Крилова.

Мета: навчитися знаходити власні числа і вектори матриці по методу Крилова.

Устаткування: лист формату А4, ручка, С ++.

Хід роботи

  1.  Правила техніки безпеки
  2.  Теоретичні дані
  3.  Індивідуальне завдання.

Знайти одне з власних чисел і відповідний йому власний вектор матриці А по методу Крилова (використати результати лабороторної роботи № 18).

Из Лабораторной робота №18 получили:

#include <iostream.h>

#include <math.h>

double  f (double x,double*Y,int m)

{int i;

double S;

for(i=0;i<m;i++)S+=pow(x,i)*Y[m-1-i];

return S+pow(x,m);}

double f2 (double x,double*Y,int m)

{int i;

double S;

for(i=1;i<m;i++)S+=i*pow(x,i-1)*Y[m-1-i];

return S+m*pow(x,m-1);}

void main()

{cout<<"=======================================\n";

int n,i,j,k,p,N;

double q,l,a,b,xs,xm,xn,xm1,xn1,eps=0.01;

cout<<"ВВЕДИТЕ РАЗМЕР: ";cin>>n;

cout<<"----------------------------------------\n";

cout<<"ВВЕДИТЕ МАТРИЦУ: \n";

double **A1=new double*[n]; 

for(i=0;i<n;i++){

A1[i]=new double [n];

for(j=0;j<n;j++){

cin>>A1[i][j];}}

double **A=new double*[n];

for(i=0;i<n;i++)A[i]=new double [n+1];

double **A2=new double*[n];

for(i=0;i<n;i++)A2[i]=new double [n+1];

double  *Y=new double [n];

N=1;

if(N){

cout<<"\nВВЕДИТЕ ПРОИЗВОЛЬНЫЙ НЕНУЛЕВОЙ ВЕКТОР: \n";

for(i=0;i<n;i++)cin>>Y[i];

cout<<"----------------------------------------\n";

for(k=0;k<=n;k++){

for(j=0;j<n;j++){

for(i=0;i<n;i++)l+=Y[i]*A1[i][j];

if(k!=n)A[j][n-k-1]=l;

if(k==n)A[j][k]=l*(-1);

l=0;}

for(p=0;p<n;p++)Y[p]=A[p][n-k-1];}

int m=n;n=m+1;

for(i=0;i<n-1;i++){

for(j=0;j<n;j++){

A2[i][j]=A[i][j];}}

for(i=0;i<m;i++){

if(A[i][i]==0){cout<<"\nМЕТОД ГАУССА НЕПРИМЕНИМ. ВВЕДИТЕ ДРУГОЙ ПРОИЗВОЛЬНЫЙ НЕНУЛЕВОЙ ВЕКТОР.\n";break;}

for(j=n-1;j>=i;j--){

A[i][j]/=A[i][i];}

for(k=i+1;k<m;k++){

l=A[k][i];

for(p=i;p<n;p++){

A[k][p]-=l*A[i][p];}}}

for(i=m-1;i>=0;i--){

Y[i]=A[i][n-1];

for(j=n-2;j>i;j--){

Y[i]-=A[i][j]*Y[j];}}

N=0;}

if(N==0){

cout<<"\nОТВЕТ: \n";

cout<<"Л^"<<n-1;

for(i=0;i<n-1;i++){

if(Y[i]>=0)cout<<"+";

cout<<Y[i];

if(n-i-2>1)cout<<"*Л^"<<n-i-2;

if(n-i-2==1)cout<<"*Л";}cout<<"=0";

cout<<"\nЛ принадлежит отрезку ";cin>>a>>b;

 if ((f(a,Y,n-1)*f2(a,Y,n-1)) < 0) {xm=a; xs=xm1=b;}

else {xm=b; xs=xm1=a;}

xn=xn1=xm;

do{ xm=xn;xm1=xn1;

xn=xm-(f(xm,Y,n-1)*(xs-xm)/(f(xs,Y,n-1)-f(xm,Y,n-1)));

xn1=xm1-(f(xm1,Y,n-1)/f2(xm1,Y,n-1));}

while (fabs(xn-xn1)>eps);

cout<<"Л="<<xn<<endl;

double*X=new double [n-1];

for(i=0;i<n-1;i++){

q=1;

X[i]=A2[0][i];

for(j=1;j<n-1;j++){

q=xn*q+Y[j];

X[i]+=q*A2[j][i];}

if((n-1)/2-i==1)cout<<"\nX= "<<X[i];

else cout<<"\n "<<X[i];}}

cout<<endl;

delete []Y;

delete []A;

delete []A1;

delete []A2;

cout<<"\n=======================================\n";}

  1.  Контрольні питання
  •  Дайте визначення власних чисел і векторів матриці.
  •  Сформулюйте задачу знаходження власних чисел і векторів матриці по методу Крилова.
  •  Які допоміжні методи використовуються в методі Крилова при знаходженні власних чисел матриці?
  •  За якими формулами знаходиться  власний вектор?



 

А также другие работы, которые могут Вас заинтересовать

11030. Методы доступа. Примеры методов доступа 28 KB
  Методы доступа В большинстве сетевых технологий используется метод разделяемой среды передачи при котором множество узлов сети по очереди используют одну и ту же линию связи. Передавать данные при этом необходимо по очереди иначе пакеты от разных узлов смешаются и
11031. Управление ресурсами одноранговой сети 156.5 KB
  Практическая работа Управление ресурсами одноранговой сети Для работы необходимо наличие 2х виртуальных компьютеров под управлением Windows98 Windows2000 или Windows XP. Также необходимо присутствие дистрибутива Windows98. Целью работы является создание одноранговой сети ...
11032. Сетевые протоколы 559 KB
  Практическая работа Сетевые протоколы Для работы необходимо наличие неских виртуальных компьютеров под управлением Windows98 Windows2000 или Windows XP. Также необходимо присутствие дистрибутива Windows98. Целью работы является настройка сетевых протоколов на виртуальны...
11033. Сети с централизованным управлением (ЦУ) 330 KB
  Сети с централизованным управлением ЦУ Более сложная форма организации сети по сравнению с одноранговыми. Эта модель хорошо походит для крупных корпоративных сетей. Другое название сети – на основе выделенного сервера. Основные различия: ...
11034. Одноранговые сети 45 KB
  Одноранговые сети 1 занятие Любая сеть в конечном счете должна обеспечивать обмен полезными данными. В локальных сетях простейшим способом является использование сетевого окружения. Оно позволяет работать с общими сетевыми папками и принтерами. При этом некотор
11035. Одноранговые сети. Виды административного устройства сетей 319.5 KB
  Одноранговые сети. Целью изучения данной темы является организация общих сетевых ресурсов с помощью Сетевого окружения в различных ОС а также изучение систем прав доступа. Необходима работоспособное соединение компьютеров на базе протокола TCP/IP. Занятие 1 Люб...
11036. Enable Mapping to \\Hostname\C$ Share on Windows 7 or Vista 56.95 KB
  Enable Mapping to \HostnameC Share on Windows 7 or Vista Just about everybody knows about the hidden administrator C share that is always built into Windows file sharing but you might have wondered why you can’t use that in Windows 7 or Vista. The reason this doesn’t work is because of UAC User Account Control that Vista is infamous for. By default Vista doesn’t allow UAC elevation over the network with a local user account. There’s a registry key that we can use to c...
11037. Работа в сети с централизованным управлением 32.5 KB
  Практическая работа Работа в сети с централизованным управлением Цель работы. Освоить приемы работы рядового пользователя в существующей сети Microsoft при наличии домена безопасности. Исходная ситуация. Для работы используются виртуальные машины Win9x и Win2k изнача
11038. Сетевое оборудование. Семейство технологий Ethernet (стандарт 802.3) 84.5 KB
  Сетевое оборудование В данном разделе рассматриваются работа физического и канального уровней модели ОСИ сетевых интерфейсов и линий связи. На канальном уровне сетевое оборудование реализует тот или иной метод доступа. Таким образом например Ethernet является как метод