51353

Решение системы линейных уравнений методом Гаусса

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

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

Руководство программиста Описание структуры программы Функции PHod осуществляет прямой ход; OHod осуществляет обратный ход; Описание структур данных Описание глобальных переменных использующихся в программе: int n – размер матрицы; flot rr – массив в котором хрантся элементы матрицы; flot ms – копия масива rr; flot x – массив решений системы уравнений; FILE file – файл из которого берется матрица; FILE file2 – файл в который записываются результаты; Описание алгоритмов Метод Гаусса для решения системы линейных...

Русский

2014-02-10

158 KB

7 чел.

Федеральное агентство по образованию Российской Федерации

Государственное образовательное учреждение

высшего профессионального образования

Нижегородский государственный университет им. Н.И. Лобачевского

Факультет вычислительной математики и кибернетики

Отчёт по лабораторной работе

Решение системы линейных уравнений методом Гаусса

Выполнил:

 студент ф-та ВМК гр. 81-05

Ляшук Д.А.

Проверил:

 ассистент каф. МО ЭВМ, ВМК

Кукаева С.А.

Нижний Новгород

2013 г.


Содержание

[1] Решение системы линейных уравнений методом Гаусса

[2] Введение

[3] Постановка задачи

[4] Руководство пользователя

[5]
Руководство программиста

[5.1] Описание структур данных

[5.2] Описание алгоритмов

[6]
Заключение

[7] Приложения

[7.1] Приложение 1


Введение

Метод Гаусса — классический метод решения системы линейных алгебраических уравнений. Это метод последовательного исключения переменных, когда с помощью элементарных преобразований система уравнений приводится к равносильной системе ступенчатого (или треугольного) вида, из которой последовательно, начиная с последних (по номеру) переменных, находятся все остальные переменные.

Пусть исходная система выглядит следующим образом

Матрица  называется основной матрицей системы,  — столбцом свободных членов.

Тогда согласно свойству элементарных преобразований над строками основную матрицу этой системы можно привести к ступенчатому виду (эти же преобразования нужно применять к столбцу свободных членов):


Постановка задачи

При выполнении лабораторной работы необходимо разработать программный комплекс для поиска методом Гаусса решений систем линейных уравнений вида

A*x = b,                                   

где А - числовая не особая (т.е. имеющая не равный нулю детерминант) квадратная матрица размером N на N, b - числовой вектор-столбец размером N, а x - искомый вектор-столбец размером N. Программный комплекс должен обеспечивать:

задание пользователем исходной системы уравнений  в текстовом файле;

решение полученной системы уравнений методом Гаусса;

экранное отображение формирующейся системы уравнений, результата, а так же запись результатов в текстовый файл.

 


Руководство пользователя

Для работы с программой пользователю необходимо ввести значения элементов матрицы в файл inp.txt. Причем матрица в файле должна быть записана следующим образом – первое число должно означать размер матрицы, а далее со следующей строки записана сама матрица, элементы которой разделены пробелом. Затем запустить программу.

Файл inp.txt.

Работа программы.

Результаты вычислений записываются в файл out.txt.


Руководство программиста

Описание структуры программы

Функции

PHod – осуществляет прямой ход;

OHod – осуществляет обратный ход;

Описание структур данных

Описание глобальных переменных, использующихся в программе:

     int n – размер матрицы;

 float** arr – массив, в котором хрантся элементы матрицы;

 float** mas – копия масива arr;

 float* x – массив решений системы уравнений;

FILE* file – файл, из которого берется матрица;

FILE* file2 – файл в который записываются результаты;

Описание алгоритмов

Метод Гаусса для решения системы линейных уравнений состоит в приведении матрицы А посредством эквивалентных преобразований (не меняющих решение системы [12]) к треугольному виду и последующему поиску решений для вновь полученной матрицы. Краткая схема первой части метода Гаусса - прямого хода - состоит в следующем.

Алгоритм прямого хода.

  1.  Движение по главной диагонали матрицы  А.
    В цикле по переменной  
    I  от  1 до N выполняются  Шаг 2 Шаг 6.

Выбор главного элемента. Полагается R:=A[I, I]. Если R=0, то реализуется поиск главного элемента.

Преобразование текущей строки матрицы путем деления всех значений ее элементов на главный элемент. В цикле по переменной  J  от  I до N+1 выполняются вычисления
A[IJ]:= A[IJ] / R.

Вычитание текущей строки из всех ниже расположенных строк с занулением I - ого элемента в каждой из них. В цикле по K от I + 1 до N выполняются Шаг 5 Шаг 6.

Полагается m:= A[KI].

Вычитание из очередной строки текущей строки. В  цикле по J  от  I  до  N+1  делаем A[KJ]:= A[KJ] - A[IJ]* m.

Конец алгоритма.

Алгоритм обратного хода.

  1.  Поиск, начиная с последнего, всех неизвестных системы - элементов вектора x. В цикле по переменной I от N до 0 выполняются Шаг 2 Шаг 3.

Задается начальное значение элемента x[I].
x[I]:=A[I,N] .

Корректируется искомое значение x[I]. В цикле по J от N-1 до I+1 (в случае, когда I=N, этот шаг не выполняется) производятся вычисления x[I]:=  x[I] - x[J]* A[IJ].

Конец алгоритма. 

Поиск главного элемента

  1.  Если главный элемент R=A[II] равен нулю, то в остальных элементах этого столбца ищется первый ненулевой элемент. Если такой найден и его номер равен K, то меняются местами I -ая и K -ая строки матрицы А.


Заключение

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


Приложения

Приложение 1

Исходный код программы

#define _CRT_SECURE_NO_WARNINGS

#include<stdio.h>

#include<Windows.h>

void phod(float**,int);

void ohod(float**, float*, int);

int main()

{

 int n,i,j;

 float** arr;

 float** mas;

 float* x;

FILE* file;

FILE* file2;

 

{

 file=fopen("inp.txt","r+");

 fscanf(file,"%d\n",&n);

}

   x=(float*)malloc(n*sizeof(float));

arr=(float**)malloc(n*sizeof(float*));

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

{

 arr[i]=(float*)malloc(n*sizeof(float));

}

mas=(float**)malloc(n*sizeof(float*));

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

{

 mas[i]=(float*)malloc(n*sizeof(float));

}

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

{

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

 {

  fscanf(file,"%f ",&arr[i][j]);

  mas[i][j]=arr[i][j];

 }

}

 //вывод массива  

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

{

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

 {

  printf("%.3f ", arr[i][j]);

 }

 printf("\n");

}

printf("\n");

//прямой ход  

 phod(arr,n);

 //зануляем массив x

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

  {

   x[i]=0;

  }   

//обратный ход

ohod(arr,x,n);

 

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

  {

   printf("\n x%d=%.4f ",i+1,x[i]);

  }

//запись результатов в файл

 

 file2=fopen("out.txt","w");

 

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

 {

  fprintf(file2,"x%d=%.4f  ",i+1,x[i]);

 }

 fprintf(file2,"\n\n");

 fclose(file2);

 

{

 return 0;

}

 

}

 //прямой ход

void phod(float** arr,int n)

{

 int i,j,k,l;

 float r,m;

 float h;

 

 

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

  {

   if (arr[i][i]==0)

   {

    for(l=i+1; l<n; ++l)

    {

     if (arr[l][i]!=0)

     {

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

      {

      h=arr[l][j];

      arr[l][j]=arr[i][j];

      arr[i][j]=h;

      }

     }

   }

   }

   r=(arr[i][i]);

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

   {

  (arr[i][j])= (arr[i][j])/r;

   }

  

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

  {

   m=arr[k][i];

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

   {

    arr[k][j]= arr[k][j]- arr[i][j]*m;

   }

     }

    }

// вывод прямого хода

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

{

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

 {

  printf("%.3f ", arr[i][j]);

   

 }

printf("\n");

}

}

//обратный ход

void ohod(float** arr, float* x, int n)

{

 int i,j;

 float c;

  for(i=n-1; i>=0; --i)

  {

   c=arr[i][n];

   x[i]=c;

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

   {

    x[i]=x[i]-x[j]*arr[i][j];

   }

  }

  system("pause");

}


 

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

46477. Рак легкого. Формы периферического рака легкого. Дифференциальная диагностика с доброкачественными заболеваниями легких. Методы хирургического лечени 16.82 KB
  Распространение повсеместно. Вызывается заболевание эхинококкус гранулезус. Окончательный хозяин –собака, волк. Промежуточный –копытные. Содержимое кисты жид-ть, сколексы и дочерние пузыри. Оболочки: герминативная (зародышевая), кутикулярная (хитиновая), фиброзная капсула
46478. Становление новой российской государственности (1993-1999 гг.) 16.87 KB
  После распада СССР началась ликвидация прежних структур власти и управления. Отсутствие четкого разграничения полномочий между ними вызывало острое противостояние двух ветвей государственной власти законодательной и исполнительной. под давлением законодательной власти ушло в отставку правительство Е. Противостояние ветвей власти усилилось осенью 1993 г.
46479. Психология человека при ЧС и профилактические меры 16.93 KB
  Реакция людей попавших в зону ЧС может быть как индивидуальной так и коллективной. Индивидуальные реакции людей при этом возможны положительного или отрицательного вида. Отрицательные реакции у людей проявляются в виде тревоги беспокойства неуверенности в себе обострения чувства самосохранения страха острой борьбы мотивов долга и личной безопасности растерянности непонимания происходящего деавтоматизации навыков допущения ошибок в работе недостаточной мобилизованности утраты самоконтроля панических действий острых психозов и...
46480. Понятие социализации в психоанализе и в теории Ж. Пиаже 17.07 KB
  Она рассматривает детское развитие как процесс постепенной социализации ребенка подчиняющийся закону перехода от принципа удовольствия к принципу реальности. Фрейду усиливается влияние на ребенка внешнего мира З. Фрейд защита от элементов детской жизни таких как жадность корысть ревность пожелание смерти которые толкают ребенка в направлении десоциализации. Продвижение ребенка от принципа удовольствия к принципу реальности наступает когда различные функции Я достигают определенной ступени развития.
46481. Государственный заказ 17.1 KB
  Субъекты системы госзакупок: госзаказчики формирующие и размещающие госзаказ на поставку продукции заключающие контракты и получающие продукцию непосредственные потребители товаров работ и услуг поставщики продукции участвующие в процедурах размещения гозакупок заключающие контракты на поставку продукции и поставляющие ее координатор уполномоченный орган исполнительной власти осуществляющий планирование координацию контроль и методическое руководство процессом формирования и размещения госзаказа специализированные...
46482. Несостоятельность (банкротство) предприятий. Основные понятия 17.1 KB
  К внешним факторам относят: Экономические уровень доходов и накопления населения покупательская способность; платежеспособность экономических партнеров кредитная и налоговая политика государства; изменение рыночных ориентаций потребителя конъюнктуры внутреннего и мирового рынков государственное регулирование уровень развития науки и техники инфляция; Социальные – изменение политической обстановки внутри страны и за рубежом; международная конкуренция уровень культуры предпринимателей и потребителей их продукции организация досуга...
46483. Анализ ликвидности и платежеспособности 17.1 KB
  Критерии банктротства предприятия: неудовлетворительная структура оборотных активов; тенденция к росту доли труднореализуемых активов материальнопроизводственных запасов имеющих медленную оборачиваемость сомнительной дебиторской задолженности может привести к неплатежеспособности организации; замедление оборачиваемости оборотных средств по причине накопления чрезмерных запасов и наличия просроченной задолженности покупателей и заказчиков; преобладание в обязательствах предприятия дорогостоящих кредитов и займов; наличие...
46484. Коммерческая деятельность на рынке товаров и услуг. Коммерческие сделки, контракты купли-продажи 17.14 KB
  Коммерческие сделки контракты куплипродажи. Контракт куплипродажи является основным коммерческим документом оформляющим внешнеторговую сделку в котором содержится письменная договоренность сторон о поставке товара: обязательство продавцаэкспортера передать определенный товар в собственность покупателяимпортера и обязательство покупателяимпортера принять этот товар и уплатить за него определенную денежную сумму или обязательства сторон выполнить условия товарообменной сделки. Согласно действующему законодательству статья 153 ГК РФ...
46485. Дисциплинарная и материальная ответственность за эколо¬гические правонарушения 17.16 KB
  Правовой режим особо охраняемых природных территорий. Особо охраняемые природные территории определены законодательством РФ как участки земли водной поверхности и воздушного пространства над ними где располагаются природные комплексы и объекты имеющие особое природоохранное научное культурное эстетическое рекреационное и оздоровительное значение. Общественные отношения в сфере организации охраны и использования особо охраняемых природных территорий с целью сохранения уникальных и типичных природных комплексов и объектов...