35264

Тема. Метод Крилова побудови власного багаточлена матриці.

Практическая работа

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

h void min {int ij; double x1x2x3x4; double [4][5]; double b[4][5]; double c[4][4]; double y0=new double [4]; double y1=new double [4]; double y2=new double [4]; double y3=new double [4]; double y4=new double [4]; cout Введите матрицу n ; fori=0;i 4;i {forj=0;j 4;j {cin c[i][j];}} y0[0]=1; y0[1]=0; y0[2]=0; y0[3]=0; y1[0]=0.0; forj=0;j 4;j {y1[j]=y0[0]c[j][0]y0[1]c[j][1]y0[2]c[j][2]y0[3]c[j][3];} forj=0;j 4;j...

Украинкский

2013-09-09

90.5 KB

2 чел.

еревко О.В.

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

Тема. Метод Крилова побудови власного багаточлена матриці.

Мета. Навчитися знаходити власний багаточлен матриці методом Крилова.

Устаткування: лист формату А4, ручка, програмне забезпечення Borland C++

Хід роботи

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

Знайти власний багаточлен матриці А по методу Крилова, використовуючи метод Гаусса.

№16

#include<iostream.h>

#include<math.h>

void main()

{int i,j;

double x1,x2,x3,x4;

double a[4][5];

double b[4][5];

double c[4][4];

double *y0=new double [4];

double *y1=new double [4];

double *y2=new double [4];

double *y3=new double [4];

double *y4=new double [4];

cout<<"Введите матрицу\n";

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

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

{cin>>c[i][j];}}

y0[0]=1;         y0[1]=0;        y0[2]=0;       y0[3]=0;     y1[0]=0.0;

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

{y1[j]=y0[0]*c[j][0]+y0[1]*c[j][1]+y0[2]*c[j][2]+y0[3]*c[j][3];}

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

{y2[j]=y1[0]*c[j][0]+y1[1]*c[j][1]+y1[2]*c[j][2]+y1[3]*c[j][3];}

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

{y3[j]=y2[0]*c[j][0]+y2[1]*c[j][1]+y2[2]*c[j][2]+y2[3]*c[j][3];}

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

{y4[j]=y3[0]*c[j][0]+y3[1]*c[j][1]+y3[2]*c[j][2]+y3[3]*c[j][3];}

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

{a[i][3]=y0[i];}

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

{a[i][2]=y1[i];}

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

{a[i][1]=y2[i];}

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

{a[i][0]=y3[i];}

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

{a[i][4]=-y4[i];}

if(a[0][0]==0) {cout<<"Метод Гаусса не применим";

return;}

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

{b[0][j]=a[0][j]/a[0][0];}

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

{b[1][j]=a[1][j];}

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

{a[1][j]=a[1][j]-b[0][j]*b[1][0];}

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

{b[2][j]=a[2][j];}

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

{a[2][j]=a[2][j]-b[0][j]*b[2][0];}

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

{b[3][j]=a[3][j];}

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

{a[3][j]=a[3][j]-b[0][j]*b[3][0];}

if(a[1][1]==0) {cout<<"Метод Гаусса не применим";

return;}

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

{b[1][j]=a[1][j]/a[1][1];}

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

{b[2][j]=a[2][j];}

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

{a[2][j]=a[2][j]-b[1][j]*b[2][1];}

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

{b[3][j]=a[3][j];}

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

{a[3][j]=a[3][j]-b[1][j]*b[3][1];}

if(a[2][2]==0) {cout<<"Метод Гаусса не применим";

return;}

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

{b[2][j]=a[2][j]/a[2][2];}

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

{b[3][j]=a[3][j];}

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

{a[3][j]=a[3][j]-b[2][j]*b[3][2];

}

x4=a[3][4]/a[3][3];

x3=b[2][4]-b[2][3]*x4;

x2=b[1][4]-b[1][2]*x3-b[1][3]*x4;

x1=b[0][4]-b[0][1]*x2-b[0][2]*x3-b[0][3]*x4;

cout<<"x1="<<x1<<"\nx2="<<x2<<"\nx3="<<x3<<"\nx4="<<x4;

}

Результат программы

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

Як продовжити рішення, якщо по будь-якому методу отримана система не має


 

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

52660. Відомий дослідник генетики- Грегор Мендель 26 KB
  У 1843 році Мендель був прийнятий в августинський монастир святого Томаша в Альтбрюнні. Несподіванкою не тому що Мендель зробив доповідь адже звичайно було відоме що роботу з гібридизації гороху він веде уже багато років а через те що було в доповіді сказано. Чи випадково Мендель зайнявся проблемою гібридизації Що це було: ще одне хоббі дилетанта розвага типу збирання марок.