Научная статья на тему 'ПРОГРАММНАЯ РЕАЛИЗАЦИЯ МЕТОДА ГАУССА - ЖОРДАНА ДЛЯ РЕШЕНИЯ СИСТЕМ УРАВНЕНИЙ'

ПРОГРАММНАЯ РЕАЛИЗАЦИЯ МЕТОДА ГАУССА - ЖОРДАНА ДЛЯ РЕШЕНИЯ СИСТЕМ УРАВНЕНИЙ Текст научной статьи по специальности «Математика»

CC BY
192
11
i Надоели баннеры? Вы всегда можете отключить рекламу.
Область наук
Ключевые слова
ПРОГРАММНАЯ РЕАЛИЗАЦИЯ / МЕТОД ГАУССА - ЖОРДАНА / СИСТЕМА ЛИНЕЙНЫХ АЛГЕБРАИЧЕСКИХ УРАВНЕНИЙ / МАТРИЦЫ / ЛИНЕЙНАЯ АЛГЕБРА

Аннотация научной статьи по математике, автор научной работы — Григоренко В.Е., Цейтлина Н.Е., Игрунова С.В.

В данной статье описана программа, решающая квадратные системы линейных алгебраических уравнений методом Гаусса - Жордана.The article describes a program that solves the square system of linear algebraic equations by Gauss - Jordan.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «ПРОГРАММНАЯ РЕАЛИЗАЦИЯ МЕТОДА ГАУССА - ЖОРДАНА ДЛЯ РЕШЕНИЯ СИСТЕМ УРАВНЕНИЙ»

Григоренко В. Е.

студент Цейтлина Н. Е. студент Игрунова С. В., к.с.н.

доцент НИУ «БелГУ» РФ, г. Белгород

ПРОГРАММНАЯ РЕАЛИЗАЦИЯ МЕТОДА ГАУССА - ЖОРДАНА ДЛЯ РЕШЕНИЯ СИСТЕМ УРАВНЕНИЙ

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

Abstract: The article describes a program that solves the square system of linear algebraic equations by Gauss - Jordan.

Ключевые слова: программная реализация, метод Гаусса - Жордана, система линейных алгебраических уравнений, матрицы, линейная алгебра.

Keywords: software implementation, Gauss - Jordan, system of linear algebraic equations, matrix, linear algebra.

Решение систем квадратных уравнений бывает затруднительно, в отдельных случаях такие системы можно решить, используя способы подстановки или сложения. Объектом исследования данной работы являются квадратные системы линейных уравнений, решение предлагается выполнить методом Гаусса - Жордана [1].

В данной работе представлено описание процесса разработки приложения в среде Microsoft Visual Studio 2010 [2] для поставленной задачи, программа выполнена как приложение Windows Forms [3].

Рассмотрим основные функции, применяемые при разработке. Основной функцией является button1_Click, вызываемая при нажатии на "OK". В ней определяются основные изменения внешнего вида программы, связанные с расчетами. Вызываются функции form или typing в зависимости от выбранного варианта заполнения матрицы коэффициентов. После вызова одной из функций заполнения значений коэффициентов и столбца свободных членов, вызывается функция show, а за ней функция vector.

В функции form происходит заполнение матрицы случайными числами. Функция typing заполняет двумерный массив значениями, введенными с клавиатуры. Функция clear очищает обе таблицы от имеющихся значений. Функция show выводит на экран значения коэффициентов и столбца свободных членов. Заголовочной ячейке последнего столбца присваивается значение "Столбец свободных членов", верхней левой заголовочной ячейке присваивается значение "Коэффициенты", в оставшихся заголовочных ячейках строк и столбцов выводятся их порядковые номера, начиная с единицы, в самих ячейках

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

Функция vector осуществляет расчет корней системы уравнений и выводит их на экран. В ней вызывается функция gauss, рассчитывающая корни системы уравнений. Затем выводится нумерация столбцов с единицы в заголовочных ячейках, в самой строке выводятся значения массива корней системы. В теле функции gauss вызывается функция triangular, затем вызывается функция upend, затем снова вызывается функция triangular, далее вызывается функция one_for_diagonal, последней вызывается функция calculate_result.

Функция triangular выполняет приведение матрицы к треугольному виду. Данный метод реализован с помощью программного кода:

private: void triangular(double** arr, int x) {

double a;

for(int i=0; i<x-1; i++)

for(int m=i+1; m<x; m++) {

a=(-1)*arr[m][i]/arr[i][i];

for(int j=0; j<x+1; j++) {

arr[m] [j]+=arr[i][j]*a; } }}

Функция upend переворачивает сверху вниз все строки матрицы, а затем меняет порядок всех столбцов, наоборот, за исключением последнего столбца - столбца свободных членов. В ее теле вызывается функция equating, присваивающая значения одной матрицы другой, затем вызывается функция upend_strokes, переворачивающая строки, далее снова вызывается функция equating, далее вызывается функция upend_columns, переворачивающая столбцы.

Функция one_for_diagonal производит деление всех элементов каждой строки на значение элемента, находящегося в данной строке на главной диагонали. Функция calculate_result присваивает значения столбца свободных членов одномерному массиву, также передаваемому как параметр. Так как изменялся порядок столбцов, то значения последнего столбца двумерного массива присваиваются, начиная с последнего.

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

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

Мгтм Жодиня Глуссл

Рисунок 1 - Результат работы программы при заполнении случайными

числами

Рисунок 2 - Результат работы программы в том случае, когда система

несовместна

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

Разработанная программа освобождает пользователя от необходимости вручную проводить расчеты. Учитывая, что значения, используемые как коэффициенты и свободные члены могут быть неудобны для использования в расчетах, но необходимы для получения верного результата, данная программа имеет практическую значимость. Пути дальнейшего совершенствования программы: получение более подробной справки по программе, не выходя из приложения; возможность просмотра точного решения системы уравнений, при необходимости; более детальная обработка исключительных ситуаций.

Использованные источники:

1. Системы линейных алгебраических уравнений | mathhelpplanet.com [электронный ресурс] - Режим доступа http://mathhelpplanet.com/static.php?p=sistemy-linyeinykh-algebraicheskikh-uravnenii, свободный.

2. Visual Studio 2010 | msdn.microsoft.com [электронный ресурс] - Режим доступа https://msdn.microsoft.com/en-us/library/dd831853(v=vs.100).aspx, свободный.

3. Windows Forms | msdn.microsoft.com [электронный ресурс] - Режим доступа https://msdn.microsoft.com/ru-ru/library/dd30h2yb(v=vs. 110).aspx, свободный.

Григорова Е.С. студент ЭБ1531 Сыромятникова Е.Р. студент ЭБ1531 ФГБОУ ВПО Кубанский государственный

аграрный университет Россия, г. Краснодар ЭКОНОМИЧЕСКИЕ ПОСЛЕДСТВИЯ МОНОПОЛИИ

Вопрос монополизма в России всегда был и будет актуальным до тех пор, пока существуют в экономике компании-гиганты, крепко занимающие монополистическое место в производстве.

Монополия - огромнейшая капиталистическая компания, осуществляющая контроль над созданием и сбытом одного либо нескольких видов продукции; это та структура, при которой на рынке отсутствует конкуренция и работает лишь одна компания. Она изготавливает неповторимый, не имеющий аналогов товар и она защищена от вхождения на рынок новых компаний. К монополиям можно относиться с разных сторон:

1) с одной стороны, продукция монополистических компаний отличается продукцией высокого качества, также монополия воздействует на повышение эффективности производства. Не считая этого, крупные масштабы производства позволяют снижать издержки и в целом экономить ресурсы;

i Надоели баннеры? Вы всегда можете отключить рекламу.