Реализация иерархии классов для решения системы линейных алгебраических уравнений - Курсовая работа

бесплатно 0
4.5 154
Решение системы линейных алгебраических уравнений методом Гаусса с выборкой ведущего элемента. Изучение особенности программной реализации алгоритма, составленной средствами разработки Microsoft Visual Studio. Проведение сложения и умножения двух матриц.

Скачать работу Скачать уникальную работу

Чтобы скачать работу, Вы должны пройти проверку:


Аннотация к работе
O В первом разделе содержатся теоретические сведения о методах решения систем линейных уравнений. O Второй раздел содержит программную реализацию используемых методов - листинг программы, написанной на языке C , с подробными комментариями. В данной программе реализован метод решения системы линейных алгебраических уравнений методом Гаусса с выборкой ведущего элемента.Системой линейных уравнений с неизвестными с действительными коэффициентами называется система выражений вида Если все , то система (1) называется однородной, иначе - неоднородной. Совокупность вещественных чисел называется решением (1), если после подстановки их вместо соответственно во все уравнения (1) получаются тождества. Если система (1) имеет хотя бы одно решение, то она называется совместной, если решений нет - несовместной. Если система (1) имеет единственное решение, то она называется определенной, если у системы существует по крайней мере два различных решения, то система называется неопределенной.При этом при исследовании и решении СЛУ производятся элементарные преобразования строк расширенной матрицы : перестановка строк (это соответствует перестановке уравнений системы), сложение строк (это соответствует сложению уравнений системы), умножение строк на отличное от нуля число (это соответствует умножению уравнения системы на отличное от нуля число). Очевидно, что при указанных преобразованиях получается система, эквивалентная данной. Следовательно, после элементарных преобразований строк расширенной матрицы получается расширенная матрица некоторой новой системы, эквивалентной данной системе. Перестановка в основной матрице двух столбцов соответствует в системе перестановке неизвестных вместе со своими координатами. Умножение столбца на число и сложение столбцов приводит к изменению коэффициентов только при одном неизвестном и значит к системе, не эквивалентной рассматриваемой.Рисунок 2.1Если был выбран 2 пункта появиться еще одно меню, со следующим списком доступных команд. При выводе решения на экран или в файл можно выбрать как напечатать ответ и невязку. Вводятся имя файла для вывода СЛАУ, решения и невязки. Потом, традиционно выбирается тип вывода решения и невязки(строка или столбец). При выводе в файл на экран экран выводятся «done step1» и «done step2» что является своеобразным индикатором успешного печати.~my_matrix(){}//деструктор void my_matrix_set(int ii,int jj){} //установка размеров матрицы i на j double get_(int i5,int j5) {} //возращает значение a[i5][j5] ячейки void matrix_random(double aa=1.,double bb=5.){}//рандом void swap_line(int k1,int k2) {}//меняет строки k1 и k2 искомой матрицы //умножение строки a[pos][] на число void line_to_num(int pos,double k){} public: friend my_matrix* operator (my_matrix aa,my_matrix bb); {public: void see_mat_console(my_matrix *b)//вывод матрицы на консоль void see_mat_console(double **a,int nn) //вывод матрицы на консоль //вывод в зависимости от параметра fl. fl==1 то вывод СЛАУ fl==2 печать ответов на экран в строку fl==3 печать ответов на экран в столбец void look_all_(double **a,my_matrix *x,my_matrix *b,int fl) Kof==2 вывод без a[][] void look_all_(my_matrix *m,int kof=1/*1 печать с a[][],2 без */) void look_all_(double **a,int n2)//посимвольная проверка с выводом на экран содержимого массива *text int chek_cin_int(char **text,int n) //где n число строк массива **text void m1()// FAQ/Help о том что можно в этой программе char* m2()/*enter output file name */ Возвращает имя файла. int m3()//Ввод размерности СЛАУ void m4(char *fname/*имя файла*/,char*tip/*печать ответов ver или lin*/,int n/*размер системы*/,int my_mode/*1 если печать в файл,-1 на экран*/)//меню СЛАУ Выводится меню из 3 пунктов: печать СЛАУ с погрешностью вычислений в файл, печать СЛАУ с погрешностью вычислений на экран и вернуться назад к предыдущему меню. char* m6()//Выводиться меню из 2ух пунктов: печать результатов вертикально или горизонтально. void slau_m()//Основное меню работы со СЛАУ. //меню для подсчета определителя матрицы с выбором: печать на экран или в файл. void m7()//Генерируется матрица и находится ее определитель. voidВ ходе работы были освоены основы объектно-ориентированного программирования, методы программирования с использованием структур и классов. Была написана программа на языке С среде разработки Microsoft Visual Studio.NET, в которой реализована иерархия классов и перегрузка функций, работа с динамической памятью.

План
Оглавление

Введение

1. Теоретические основы

1.1 Определения, обозначения

1.2 Метод Гаусса решения СЛУ

2. Особенности программной реализации

2.1 Иерархия классов

2.2 Блок-схема алгоритма программы

3.1 Основные классы

3.2 Вспомогательные функции

Заключение

Список литературы

Введение
Курсовая работа состоит из трех разделов.

O В первом разделе содержатся теоретические сведения о методах решения систем линейных уравнений.

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

O Третий раздел включает особенности программной реализации алгоритма, составленной средствами разработки Microsoft Visual Studio.NET.

В данной программе реализован метод решения системы линейных алгебраических уравнений методом Гаусса с выборкой ведущего элемента. Помимо решения СЛАУ в программе можно подсчитать, определитель матрицы и провести сложение и умножение двух матриц.

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

Вывод
В ходе работы были освоены основы объектно-ориентированного программирования, методы программирования с использованием структур и классов. Была написана программа на языке С среде разработки Microsoft Visual Studio.NET, в которой реализована иерархия классов и перегрузка функций, работа с динамической памятью.

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

По итогам работы была оформлена пояснительная записка в текстовом редакторе MS Word согласно установленным требованиям к оформлению результатов курсовой работы.

Список литературы
1. Голицына О.Л. Языки программирования: учеб. пособие. Издательство: «ИНФРА-М, Форум», 2010.

2. Программирование и алгоритмизация В.П. Аверкин, А.И. Бобровский, В.В. Веснич и др.; Под ред. А.Д. Хомоненко. - СПБ.: Корона принт, 2009. - 252 с.

3. Архангельский А.Я. Программирование / А.Я. Архангельский. - М.: Бином, 2012. - 1151 с.

4. Павловская Т.А. Программирование на языке высокого уровня: Учебник для вузов, Питер, 2012.

Размещено на .ru

Вы можете ЗАГРУЗИТЬ и ПОВЫСИТЬ уникальность
своей работы


Новые загруженные работы

Дисциплины научных работ





Хотите, перезвоним вам?