Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

з курсу Комп~ютерні методи дослідження систем керування Виконав- ст

Работа добавлена на сайт samzan.net:


МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»

Звіт про виконання лабораторної роботи № 2

«Прямі та ітераційні методи Розв’язування систем лінійних алгебричних рівнянь»

з курсу

«Комп’ютерні методи дослідження систем керування»

Виконав: ст. гр.СІ-21

Перевірив:

Самотий В.В.

Львів  2012

Завдання

Згідно варіанту завдання (таблиця 1), написати програму для реалізації алгоритму вказаного методу.

Таблиця 1

п/п

Завдання

Вхідні дані

2

Розв’язати систему рівнянь методом Гауса з вибором головного елемента по стовпцю

система №1

Вхідні дані:

Система №1

де  ;  ;  порядковому № завдання; № групи

(наприклад, для КС-21 )

Остаточна версія програми

#include "stdafx.h"

#include "iostream"

#include "iomanip"

#include "conio.h"

using namespace std;

void main ()

{

 int n=4;

 double A[4][4]={{8.3, 2.66, 4.1, 1.9},{3.92, 8.45, 7.74, 2.46},{3.77, 7.25, 8.04, 2.28},{2.21, 3.61, 1.69, 6.69}};

 double B[4]={{-10.23},{12.21},{15.03},{-8.35}};

 double V[4][4], C[4][4], P[4], X[4], Y[4];

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

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

 {

  V[i][j]=A[i][j];

  P[i]=B[i];

 }

 //Прямий хід

 //Вивід матриці

 cout<<"Matrucja do sortuvannja:"<<endl;

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

 {

  for(int j=0,l=1; j<n; j++,l++)

  {

   cout<<A[i][j]<<"*X"<<l;

   if(l<4)

    cout<<" + ";

  }

  cout<<" = "<<B[i]<<endl<<endl;

 }

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

{

 double max=fabs(V[k][k]);    //Сортування по стовпцям

 int w=k;

 for (int l=k+1;l<n;l++)

 {

  if(max<fabs(V[l][k]))

  {

   max=fabs(V[l][k]);

   w=l;

  }

 }

 double value=P[k];

 P[k]=P[w];

 P[w]=value;

 for(int d=1;d<n;d++)

 {

  value=V[k][d];

  V[k][d]=V[w][d];

  V[w][d]=value;

 }       //Кінець сортування

 

 

 Y[k]=P[k]/V[k][k];

 for (int i=k+1;i<n;i++)

 {

  P[i]+=-V[i][k]*Y[k];

  for (int j=k+1;j<n;j++)

  {

   C[k][j]=V[k][j]/V[k][k];

   V[i][j]+=-V[i][k]*C[k][j];

  }

 }

}

 //Обернений хід

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

 X[i]=0;

X[n-1]=Y[n-1];

 for (int i=n-2;i>=0;i--)

{

 for (int j=i+1;j<n;j++)

  X[i]+=C[i][j]*X[j];

 X[i]=Y[i]-X[i];

}

 //Перевірка результату

 double eps=0.01;

cout << "Perevirka:" << endl;

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

{

       double sum=0;

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

 {

           sum += A[i][j] * X[j];

 }

 double q;

 q=sum - B[i];

       if (q<eps)

 {

  q=0;

 }

 cout <<"Rivnyannya nomer "<< (i+1) << ": " << q << endl;

   }

 //Вивід

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

 {

  cout<<"X"<<(i+1)<<"="<< setw(7)<<X[i]<<"    ";

  cout<<endl;

    }

getch();

}


Короткий опис програми

  1.  Спочатку створюємо матриці V[n][n]=A[n][n] та P[n]=B[n] щоб не виконувати операції в заданих матрицях.
  2.  Виводимо на екран задану матрицю A[n][n].
  3.  Сортуємо матрицю V[n][n] та P[n] з вибором головного елемента по стовпцю.
  4.  В прямому ході зводимо матрицю V[n][n] до трикутного вигляду.
  5.  В зворотному знаходимо невідомі і записуємо їх в матрицю X[n].
  6.  Перевіряємо знайдені невідомі, підставивши їх в систему рівнянь.
  7.  Виводимо на екран знайдені корені рівнянь.


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

Matrucja do sortuvannja:

8.3*X1 + 2.66*X2 + 4.1*X3 + 1.9*X4 = -10.23

3.92*X1 + 8.45*X2 + 7.74*X3 + 2.46*X4 = 12.21

3.77*X1 + 7.25*X2 + 8.04*X3 + 2.28*X4 = 15.03

2.21*X1 + 3.61*X2 + 1.69*X3 + 6.69*X4 = -8.35

Perevirka:

Rivnyannya nomer 1: 0

Rivnyannya nomer 2: 0

Rivnyannya nomer 3: 0

Rivnyannya nomer 4: 0

X1=-2.82916

X2=-0.808384

X3=4.19036

X4=-0.935875

Висновок

Отже, в даній лабораторній роботі ми вивчили найпоширеніші прямі та ітераційні методи розв’язування систем лінійних алгебричних рівнянь та способи їх застосування для обчислення визначників і обертання матриць та реалізували їх на мові програмування C++. В даній програмі був використаний метод Гауса, що полягає у зведенні матриці коефіцієнтів до трикутного вигляду, що дозволяє достатньо просто і точно знаходити невідомі змінні, а також вибір головного елемента по стовпцю.




1. кандидат философских наук доцент кафедры социологии и социальной политики Сибирской академии государстве
2. Производство и механическая обработка заготовок
3. а. Предмет его правового регулирования института несостоятельности банкротства
4. Н Шардакова Ранняя профилактика девиантного поведения несовершеннолетних в образовательных учреждени
5. Шпаргалка по предмету Деньги и кредит (Гроши та кредит)
6. носить с собой все материалы требуемые для работы в любом объеме
7. тема криминалистики
8. Курсовая работа- Объемный гидропривод машины
9. Идиот. Явление. ЧАСТЬ ПЕРВАЯ I Рогожин Зябко И повел плечами
10. ОТЧЕТ ПО УЧЕБНОЙ ПРАКТИКЕ По направлению 230400.
11. Контрольная работа- Оценка хозяйственного риска на предприятии
12. реферат дисертації на здобуття наукового ступеня доктора медичних наук Київ 2002 Дисертацією
13. Особливості операційних систем реального часу
14. Природа возникновения и пути разрешения конфликтной ситуации в трудовом коллективе
15. материаловедение Назовите основные отличительные признаки материалов име
16. Методы исследования операций
17. Церковь в епископе и епископ в Церкви
18. Тема 3 ПОЛИТИЧЕСКАЯ ЖИЗНЬ И ПОЛИТИКА Цели изучения темы- Усвоить смысл понятий политическая жизнь и п
19. Интеллект 2012 по дисциплине Отечественная история А п-п
20. новых течений. В середине 30х гг