Решение системы линейный алгебраических уравнений модифицированным методом Гаусса

 














КУРСОВАЯ РАБОТА

по дисциплине «Программирование»

на тему: «Решение СЛАУ модифицированным методом Гаусса»


РЕФЕРАТ


Пояснительная записка к курсовой работе: 19 c., 6 рис., 3 раздела, 1 приложение, 7 источников.

Объект исследования - система линейных уравнений.

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

Метод исследования - изучение литературы, написание и отладка программ на компьютере.

Данную программу можно использовать для нахождения неизвестных системы линейных уравнений.

Разработана одна программа, которая демонстрирует нахождение неизвестных системы линейных уравнений.

Программу написано на языке С++ в среде Visual C++. Эта программа предназначена для разработки компьютерного учебного пособия по дисциплине Программирование. МАТРИЦА, АЛГОРИТМ, ФУНКЦИИ, ПАРАМЕТРЫ, ТИПЫ, ОПЕРАТОРЫ, ЗАГОЛОВОЧНЫЕ ФАЙЛЫ, КРАМЕР, ПЕРЕМЕННАЯ, ДЕМОНСТРАЦИОННАЯ ПРОГРАММА.


СОДЕРЖАНИЕ


ВВЕДЕНИЕ

. ПОСТАНОВКА ЗАДАЧИ И СФЕРА ЕЁ ИСПОЛЬЗОВАНИЯ

. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

. ИНСТРУКЦИЯ ПОЛЬЗОВАТЕЛЯ

ВЫВОДЫ

СПИСОК ЛИТЕРАТУРЫ

ПРИЛОЖЕНИЕ


ВВЕДЕНИЕ


В настоящее время мы не можем вообразить нашу жизнь без компьютеров, и они стали настолько важными, что ничто не может заменить их. С 1948, когда был изобретен первый компьютер, наша жизнь изменилась так, что мы можно назвать это цифровой революцией. Первые компьютеры отличались от сегодняшних. Они были настолько огромны, что занимали целые комнаты или здания, и были медленным. Они не были быстрее чем современные часы или калькуляторы. В настоящее время они также используются ученым. Они могут выполнить много сложных операций одновременно, и ученый фактически не может обойтись без них. Благодаря им люди имеют доступ к огромному количеству информации. Сбор данных никогда не был более простым чем теперь. Они не только используются в лабораториях, но также и на фабриках, чтобы управлять производством. Благодаря им современная медицина может диагностировать болезни быстрее и более тщательно. Также в банковской системе компьютеры стали незаменимыми. Они управляют торговыми автоматами, все данные хранятся на специальных жестких дисках, и бумага больше не используется в бухгалтерии. Кроме того архитекторы, проектировщики и инженеры не могут вообразить свою работу без компьютеров. Это, машины которые действительно всюду и мы зависим от них. Они помогают полиции решить преступления и собрать доказательства. Кроме того компьютеры широко распространены в образовании. Кроме их классических задач, таких как правительство и бухгалтерия они используются в процессе изучения. Во-первых, они хранят огромный объем данных, который помогает студентам получить информацию. Во-вторых, благодаря специальным обучающим методам и программам они улучшают наши навыки концентрации и ассимиляция знания. Они стали настолько популярными, что не знание, как использовать их, означает быть неграмотным.

Программирование - в обычном понимании, это процесс создания компьютерных программ <#"justify">1. ПОСТАНОВКА ЗАДАЧИ И СФЕРА ЕЁ ИСПОЛЬЗОВАНИЯ


Целью данной задачи является решение системы линейных уравнений, т.е. нахождение её неизвестных х1, х2, х3 модифицированным методом Гаусса и с помощью расширенной матрицы.

Начальными данными являются коэффициенты при неизвестных х1, х2, х3 и свободные члены. Свободные члены и коэффициенты при неизвестных являются главными данными, которые программа записывает в свою память.

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

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


2. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ


Блок-схемы алгоритма метода Гаусса:


Рис. 1 Основной алгоритм решения СЛАУ методом Гаусса


Рис. 2 Алгоритм запоминания коэффициентов


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


Рис. 4 Алгоритм выбора рабочей строки


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


Рис. 6 Алгоритм расчета невязок

3. ИНСТРУКЦИЯ ПОЛЬЗОВАТЕЛЯ


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

Минимальные системные требования для работы программы:

OS MS-DOS или Windows

5 МБ на жестком диске

8 МБ оперативной памяти

Прилагаемая к курсовой работе дискета содержит следующие файлы:

- Gauss.exe (разработанная программа)

Gauss.cpp (текст программы)

Курсовой.doc (пояснительная записка)

Для запуска программы Gauss необходимо запустить находящуюся на дискете программу Gauss.exe.


ВЫВОДЫ

гаусс матрица алгебраический уравнение

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

Ниже приведен результат работы программы



СПИСОК ЛИТЕРАТУРЫ


1.Апатёнок Р.Ф. Элементы линейной алгебры и аналитической геометрии. - Минск: Вышэйшая школа, 1977 г. - 257 с.

2.Глушаков С.В. и др. Язык программирования С++. -Харьков: Фолио, 2010. - 500 с.

.ГОСТ 19.701-90. ЕСПД. Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения.- М.: 1991.

.Дейтел Х.М. Дейтел П.Дж. Как программировать на С++: Пер. с англ. - М.: ЗАО Издательство БИНОМ, 2009 г. - 1024 с.: ил.

.Страуструп Б. Язык программирования С++. Часть 1. - Киев: "ДиаСофт", 1993. - 264 с.

.Страуструп Б. Язык программирования С++. Часть 2. - Киев: "ДиаСофт", 1993. - 296 с.

.Холзнер С. VISUAL C++6: учебный курс - СПб: Издательство Питер, 2010. -576 с.


ПРИЛОЖЕНИЕ


Текст программы


#include "stdio.h"

#include "stdafx.h"

#include "conio.h"

#include "clocale"

#include "cmath"

#include "iostream"

#define N 50namespace std;glavelem(int k,long double mas[] [N + 1], int n, int otv[]);main(void)

{(LC_ALL, "Russian");*outfile;double mas[N] [N + 1];double x[N]; //Корни системыotv[N]; //Отвечает за порядок корнейi, j, k, n = 4;(i = 0; i < n; i++)

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

{(outfile,"%lf", & mas[i] [j]);

}

}

//Вывод введенной системы("Расширенная матрица системы:\n");

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

{(j = 0; j < n + 1; j++)("%lf ", mas[i] [j]);

printf("\n");

}("\n");

//Сначала все корни по порядку

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

//Прямой ход метода Гаусса(k = 0; k < n; k++)

{

//Выбор главного элемента

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

//главной диагонали и под ней(k, mas, n, otv);

//Вычисление новых значений коэффициентов

//Вычитаем получавшуюся после перестановки первую строку из остальных строк, домножив её на величину,

//равную отношению первого элемента каждой из этих строк к первому элементу первой строки, обнуляя тем

//самым столбец под ним. После того, как указанные преобразования были совершены, первую строку и первый

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

for (j = n; j >= k; j--)[k] [j] /= mas[k] [k];(i = k + 1; i < n; i++)(j = n; j >= k; j--)[i] [j] -= mas[k] [j] * mas[i] [k];

//Как только k=n прямой ход завершается и мы получаем треугольную матрицу A

}

//Обратный ход, вычисление значений неизвестных начиная с последнего уравнения

for (i = 0; i < n; i++)[i] = mas[i] [n];(i = n - 2; i >= 0; i--)(j = i + 1; j < n; j++)

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

//Вывод результата("Корни СЛАУ в порядке: x1, x2, x3, x4:\n");

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

if (i == otv[j])

{

//Расставляем корни по порядку

printf("%f\n", x[j]);;

}();(0);

}glavelem(int k, long double mas[] [N + 1], int n, int otv[])

{i, j, i_max = k, j_max = k;

long double temp;

//Ищем максимальный по модулю элемент

for (i = k; i < n; i++)(j = k; j < n; j++)(fabs(mas[i_max] [j_max]) < fabs(mas[i] [j]))

{_max = i;_max = j;

}

//Переставляем строки, перемещая максимальный по модулю элемент в крайнее верхнее положение

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

{= mas[k] [j];[k] [j] = mas[i_max] [j];[i_max] [j] = temp;

}();

}


КУРСОВАЯ РАБОТА по дисциплине «Программирование» на тему: «Решение СЛАУ модифицированны

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ