Автоматизация процесса решения систем линейных уравнений методом Гаусса посредством языка программирования C++
Системы линейных уравнений. Метод решения через обратную матрицу. Вопросы, связанные с методом Гаусса. Разработка программного обеспечения для автоматизации процесса решения систем линейных уравнений. Использование языка программирования C++ Builder.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 04.07.2013 |
Размер файла | 597,0 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное бюдженоет образовательное учреждение высшего профессионального образования
«тюменский государственный нефтегазовый университет»
ФИЛИАЛ « ТОБОЛЬСКИЙ ИНДУСТРИАЛЬНЫЙ ИНСТИТУТ »
Кафедра математики и информатики
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
К КУРСОВОЙ РАБОТЕ
по дисциплине «Вычислительная математика»
на тему: Автоматизация процесса решения систем линейных уравнений методом Гаусса посредством языка программирования C++
Студента __2__ курса
Ибуков Д.В.
Специальность 230100
«Автоматизированные системы обработки и управления»
Научный руководитель:
к.п.н.,доцент Герчес Н.И.
Зав. кафедрой
к.п.н.,доцент Татьяненко С.А.
Тобольск, 2012
Аннотация
Пояснительная записка к данной курсовой работе состоит из 30 страниц. В тексте пояснительной записки содержится 6 рисунков и 1 таблица.
Данная курсовая работа посвящена разработке программного обеспечения для автоматизации процесса решения систем линейных уравнений методом Гаусса.
Алгоритм задания реализован на языке программирования C++, в среде программирования Borland C++ Builder 6. Размер приложения Windows для метода Гаусса составляет 132 КБ (135 168 байт).
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное бюдженоет образовательное учреждение высшего профессионального образования
«тюменский государственный нефтегазовый университет»
ФИЛИАЛ « ТОБОЛЬСКИЙ ИНДУСТРИАЛЬНЫЙ ИНСТИТУТ »
Кафедра математики и информатики
«УТВЕРЖДАЮ»:
Заведующий кафедрой___________________
«___»_____________20__г.
З А Д А Н И Е
курсовая работа по дисциплине « Вычислительная математика»
студент Д.В. Ибуков
группа Асо и Уб
руководитель Н.И.Герчес
тема «Автоматизация процесса решения систем линейных уравнений методом Гаусса посредством языка программирования C++»
Техническое задание
Разработать программное обеспечение для автоматизации процесса вычисления определенных интегралов по формуле Гаусса.
Отчетный материал курсовой работы
1.Пояснительная записка.
2.Отлаженная версия программы.
Список рекомендуемой литературы:
Котюргина, А.С. Численные методы [текст]: учеб. пособие / А.С. Котюргина. - Омск: Изд-во ОмГТУ, 2010.-84 с.
Самарский, А.А. Введение в численные методы [текст]:учебное пособие для вузов/А.А. Самарский. - 5-е изд., стер . - СПб. : Лань, 2009 . - 288 с.
Задание выдано «___»_________20__г.
Руководитель____________(подпись)
Отзыв руководителя
__________________________________________________________________________________________________________________________
Руководитель____________(подпись)
Задание принято «___»_____________20__г.
Содержание
Введение
Глава 1. Теоретические основы решения систем линейных уравнений.
1.1 Системы линейных уравнений.
1.2 Существующие методы решения систем линейных уравнений.
1.2.1 Прямые методы.
1.2.2 Итерационные методы.
1.3 Метод Гаусса. Пример решения систем линейных уравнений
Глава 2. Автоматизация процесса решения систем линейных уравнений методом Гаусса с помощью языка программирования C++Builder.
2.1 Блок-схема, пояснения к блок-схеме
2.2 Листинг программы. Комментарий к программе.
2.3 Выполнение работы.
2.3.1 Входные данные.
2.3.2 Выходные данные.
2.4 Расчет вариантов
Заключение
Список литературы.
Введение
Необходимость отыскания корней линейных уравнений встречается в расчетах систем автоматического управления и регулирования, собственных колебаний машин и конструкций, в задачах кинематического анализа и синтеза, плоских и пространственных механизмов и других задачах.
Цель курсовой работы: Исследовать метод Гаусса, разработать алгоритм и написать программу, для решения систем линейных алгебраических уравнений методом Гаусса.
Задачами работы являются:
1. Изучение литературы по вычислительной математике;
2. Изучение литературы, связанной с программированием, а именно с изложением основ языка программирования C++ и среды программирования Borland C++ Builder 6;
3.Разработать программу на языке высокого уровня С++ для вычисления систем линейных уравнений методом Гаусса.
4.Сделать расчет вариантов.
Для решения перечисленных задач были использованы следующие методы:
1.Анализ научно-технической, специальной литературы по вычислительной математике, программированию на языке C++.
2.Рассмотрение вычисление систем линейных уравнений с использованием языка программирования C++ в среде Borland C++ Builder.
3.Анализ уже существующих способов вычисления систем линейных уравнений методом Гаусса для составления наиболее подходящей программы на языке C++ .
Глава 1. Теоретические основы решения систем линейных уравнений
1.1 Системы линейных уравнений
Система m линейных алгебраических уравнений с n неизвестными (или, линейная система, также употребляется аббревиатура СЛАмУ) в линейной алгебре -- это система уравнений вида
(1)
Система линейных уравнений от трёх переменных определяет набор плоскостей. Точка пересечения является решением.
Здесь m -- количество уравнений, а n -- количество неизвестных x1, x2, …, xn -- неизвестные, которые надо определить. a11, a12, …, amn -- коэффициенты системы -- и b1, b2, … bm -- свободные члены -- предполагаются известными. Индексы коэффициентов (aij) системы обозначают номера уравнения (i) и неизвестного (j), при котором стоит этот коэффициент, соответственно.
Система (1) называется однородной, если все её свободные члены равны нулю (b1 = b2 = … = bm = 0), иначе -- неоднородной.
Система (1) называется квадратной, если число m уравнений равно числу n неизвестных.
Решение системы (1) -- совокупность n чисел c1, c2, …, cn, таких что подстановка каждого ci вместо xi в систему (1) обращает все её уравнения в тождества.
Система (1) называется совместной, если она имеет хотя бы одно решение, и несовместной, если у неё нет ни одного решения.
Совместная система вида (1) может иметь одно или более решений.
Решения c1(1), c2(1), …, cn(1) и c1(2), c2(2), …, cn(2) совместной системы вида (1) называются различными, если нарушается хотя бы одно из равенств:
c1(1) = c1(2), c2(1) = c2(2), …, cn(1) = cn(2).
Совместная система вида (1) называется определённой, если она имеет единственное решение; если же у неё есть хотя бы два различных решения, то она называется неопределённой. Если уравнений больше, чем неизвестных, она называется переопределённой.
1.2 Существующие методы решения систем линейных уравнений
Прямые (или точные) методы позволяют найти решение за определённое количество шагов. Итерационные методы основаны на использовании повторяющегося процесса и позволяют получить решение в результате последовательных приближений.
1.2.1 Прямые методы
Метод Крамера
Для системы n линейных уравнений с n неизвестными (над произвольным полем)
с определителем матрицы системы , отличным от нуля, решение записывается в виде
(i-ый столбец матрицы системы заменяется столбцом свободных членов).
В другой форме правило Крамера формулируется так: для любых коэффициентов c1, c2, …, cn справедливо равенство:
В этой форме формула Крамера справедлива без предположения, что отлично от нуля, не нужно даже, чтобы коэффициенты системы были бы элементами целостного кольца (определитель системы может быть даже делителем нуля в кольце коэффициентов). Можно также считать, что либо наборы и , либо набор состоят не из элементов кольца коэффициентов системы, а какого-нибудь модуля над этим кольцом. В этом виде формула Крамера используется, например, при доказательстве формулы для определителя Грама и Леммы Накаямы.
Матричный метод
Матричный метод решения (метод решения через обратную матрицу) систем линейных алгебраических уравнений с ненулевым определителем состоит в следующем.
Пусть дана система линейных уравнений с n неизвестными (над произвольным полем):
Тогда её можно переписать в матричной форме:
AX=B, где A -- основная матрица системы, B и X -- столбцы свободных членов и решений системы соответственно:
Умножим это матричное уравнение слева на A-1 -- матрицу, обратную к матрице A:A-1(AX)=A-1B
Так как A-1A=E, получаем X=A-1B. Правая часть этого уравнения даст столбец решений исходной системы. Условием применимости данного метода (как и вообще существования решения неоднородной системы линейных уравнений с числом уравнений, равным числу неизвестных) является невырожденность матрицы A. Необходимым и достаточным условием этого является неравенство нулю определителя матрицы A:
Для однородной системы линейных уравнений, то есть когда вектор B=0, действительно обратное правило: система AX=0 имеет нетривиальное (то есть ненулевое) решение только если det A=0.
1.2 Итерационные методы
Метод Якоби
Для того, чтобы построить итеративную процедуру метода Якоби, необходимо провести предварительное преобразование системы уравнений к итерационному виду . Оно может быть осуществлено по одному из следующих правил:
где в принятых обозначениях D означает матрицу, у которой на главной диагонали стоят соответствующие элементы матрицы A, а все остальные нули; тогда как матрицы U и L содержат верхнюю и нижнюю треугольные части A, на главной диагонали которых нули, -- единичная матрица.
Тогда процедура нахождения решения имеет вид:
Или в виде поэлементной формулы:
где счётчик итерации.
В отличие от метода Гаусса-Зейделя мы не можем заменять на в процессе итерационной процедуры, т.к. эти значения понадобятся для остальных вычислений. Это наиболее значимое различие между методом Якоби и методом Гаусса-Зейделя решения СЛАУ. Таким образом, на каждой итерации придётся хранить оба вектора приближений: старый и новый.
Метод Гаусса - Зейделя
Чтобы пояснить суть метода, перепишем задачу в виде:
Здесь в -м уравнении мы перенесли в правую часть все члены, содержащие , для . Эта запись может быть представлена:
линейный уравнение матрица программирование
где в принятых обозначениях означает матрицу, у которой на главной диагонали стоят соответствующие элементы матрицы , а все остальные нули; тогда как матрицы и содержат верхнюю и нижнюю треугольные части , на главной диагонали которых нули.
Итерационный процесс в методе Гаусса-Зейделя строится по формуле после выбора соответствующего начального приближения .
Метод Гаусса-Зейделя можно рассматривать как модификацию метода Якоби. Основная идея модификации состоит в том, что новые значения используются здесь сразу же по мере получения, в то время как в методе Якоби они не используются до следующей итерации:
где
Таким образом, i-тая компонента (k+1)-го приближения вычисляется по формуле:
1.3 Метод Гаусса. Пример решения систем линейных уравнений
Метод Гаусса -- классический метод решения системы линейных алгебраических уравнений (СЛАУ). Это метод последовательного исключения переменных, когда с помощью элементарных преобразований система уравнений приводится к равносильной системе треугольного вида, из которой последовательно, начиная с последних (по номеру) переменных, находятся все остальные переменные.
Описание метода
Пусть исходная система выглядит следующим образом
Матрица называется основной матрицей системы, -- столбцом свободных членов.
Тогда согласно свойству элементарных преобразований над строками основную матрицу этой системы можно привести к ступенчатому виду (эти же преобразования нужно применять к столбцу свободных членов):
При этом будем считать, что базисный минор (ненулевой минор максимального порядка) основной матрицы находится в верхнем левом углу, то есть в него входят только коэффициенты при переменных .
Тогда переменные называются главными переменными. Все остальные называются свободными.
Если хотя бы одно число , где , то рассматриваемая система несовместна, т.е. у неё нет ни одного решения.
Пусть для любых .
Перенесём свободные переменные за знаки равенств и поделим каждое из уравнений системы на свой коэффициент при самом левом x ( aij, i=1,…,r, где -- номер строки):
где
Если свободным переменным системы (2) придавать все возможные значения и решать новую систему относительно главных неизвестных снизу вверх (то есть от нижнего уравнения к верхнему), то мы получим все решения этой СЛАУ. Так как эта система получена путём элементарныx преобразований над исходной системой (1), то по теореме об эквивалентности при элементарных преобразованиях системы (1) и (2) эквивалентны, то есть множества их решений совпадают.
Алгоритм решения
Алгоритм решения СЛАУ методом Гаусса подразделяется на два этапа.
На первом этапе осуществляется так называемый прямой ход, когда путём элементарных преобразований над строками систему приводят к ступенчатой или треугольной форме, либо устанавливают, что система несовместна. А именно, среди элементов первого столбца матрицы выбирают ненулевой, перемещают его на крайнее верхнее положение перестановкой строк и вычитают получившуюся после перестановки первую строку из остальных строк, домножив её на величину, равную отношению первого элемента каждой из этих строк к первому элементу первой строки, обнуляя тем самым столбец под ним. После того, как указанные преобразования были совершены, первую строку и первый столбец мысленно вычёркивают и продолжают пока не останется матрица нулевого размера. Если на какой-то из итераций среди элементов первого столбца не нашёлся ненулевой, то переходят к следующему столбцу и проделывают аналогичную операцию.
На втором этапе осуществляется так называемый обратный ход, суть которого заключается в том, чтобы выразить все получившиеся базисные переменные через небазисные и построить фундаментальную систему решений, либо, если все переменные являются базисными, то выразить в численном виде единственное решение системы линейных уравнений. Эта процедура начинается с последнего уравнения, из которого выражают соответствующую базисную переменную (а она там всего одна) и подставляют в предыдущие уравнения, и так далее, поднимаясь по «ступенькам» наверх. Каждой строчке соответствует ровно одна базисная переменная, поэтому на каждом шаге, кроме последнего (самого верхнего), ситуация в точности повторяет случай последней строки.
Пример решения систем линейных уравнений
Коэффициент a11 отличен от нуля, так что приступим к прямому ходу метода Гаусса, то есть, к исключению неизвестной переменной x1 из всех уравнений системы, кроме первого. Для этого к левой и правой частям второго, третьего и четвертого уравнения прибавим левую и правую части первого уравнения, умноженные соответственно на
Неизвестную переменную x1 исключили, переходим к исключению x2. К левым и правым частям третьего и четвертого уравнений системы прибавляем левую и правую части второго уравнения, умноженные соответственно на
Для завершения прямого хода метода Гаусса нам осталось исключить неизвестную переменную x3 из последнего уравнения системы. Прибавим к левой и правой частям четвертого уравнения соответственно левую и правую часть третьего уравнения, умноженную на
Можно начинать обратный ход метода Гаусса.
Из последнего уравнения имеем
Из третьего уравнения получаем
Из второго
Из первого
Для проверки можно подставить полученные значения неизвестных переменных в исходную систему уравнений. Все уравнения обращаются в тождества, что говорит о том, что решение по методу Гаусса найдено верно.
Глава 2. Автоматизация процесса решения систем линейных уравнений методом Гаусса с помощью языка программирования C++ Builder
Программа разработана на языке программирования C++ Builder для решения систем линейных алгебраических уравнений методом Гаусса (на примере системы *). Точность данных метода e= 0,001.
2.1 Блок-схема, пояснения к блок-схеме
На рисунке 1 представлена укрупнённая схема алгоритма (блок-схема) метода Гаусса. На рисунках 2 - 6 представлены алгоритмы отдельных блоков метода.
Рис. 1. Укрупнённая схема алгоритма (блок-схема) метода Гаусса
Блок 2. С помощью двух вложенных циклов с управляющими переменными i=1,n и j=1,kорганизуем ввод коэффициентов ai,j и свободных членов bi исходной системы. Для того, чтобы в дальнейшем можно было выполнить в блоке 9 проверку результата, в алгоритме предусмотрено сохранение значений ai,j и bi исходной системы с помощью переприсвоений: cij=aij и di=bi
Рис. 2.
Блок 3. Организуем цикл по k, внутри которого производится вычисление по всем шагам прямого хода. Последний п-й шаг прямого хода выводим из цикла.
Блок 4. На каждом шаге прямого хода выполняем поиск ненулевого ведущего элемента.
Рис. 3.
Поиск ненулевого ведущего элемента ведётся в следующем порядке:
а) На каждом k-ом шаге прямого хода ведущий элемент каждой строки сравнивается с нулём;
б) Если в k-ой строке имеется нулевой ведущий элемент, то в k-ом столбце в цикле осуществляется поиск ненулевого элемента.
в) Если в какой-то строке kn такой ненулевой элемент найден, то строки kn и k поэлементно, в цикле по k1=(k+1),n ,меняем местами. Для перестановки элементов используется рабочая переменная R.
г) Если ненулевой ведущий элемент не найден, то коду ошибки kо присваиваем значение 1 и расчёт прекращается.
Блок 5 - шаг прямого хода. На каждом шаге прямого хода проводим исключение неизвестных путём преобразования коэффициентов и свободных членов системы по полученным ранее рекуррентным формулам.
Рис. 4.
Блок 6. В этом блоке выведем из цикла по k последний шаг прямого хода, т.к. на этом шаге не нужны преобразования коэффициентов и свободных членов, а реализуется только одно вычисление
xn=bn/an,n
Блок 7 - обратный ход. В процессе обратного хода метода Гаусса из системы треугольного вида последовательно в обратном порядке в цикле по i=(n-1),1,-1 находим неизвестные системы по рекуррентной формуле
bi= bi - xj.ai,j , i=(n-1),1, j=(n+1),n.
При этом в цикле по j=(i+1),n использован приём последовательного вычитания xj.ai,j из bi,после чего вводится переприсвоение bi =хi.
Рис. 5.
Блок 9 - проверка результата. В этом блоке подставляя значения полученных неизвестных в исходную систему и используя сохранённые значения коэффициентов системы ci,j и свободных членов di, проводим проверку решения задачи по формуле
Если корни системы найдены, то Fi - это число, близкое к нулю.
Блок 9 в алгоритме метода Гаусса рекомендуется использовать только в процессе отладки метода.
В дальнейшем, при использовании метода Гаусса при решении различных прикладных задач, особенно в тех случаях, когда метод Гаусса используется внутри другого метода, блок 9 можно опустить, а в блоке 2 при вводе данных исходные значения коэффициентов системы и её свободных членов можно не сохранять.
Рис. 6.
2.2 Листинг программы. Комментарий к программе
#include <vcl.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <ctype.h>
#include <math.h>
char* rus (char* str) ;
void ShowVector(int n, double * vec)
{
for(int i=0;i<n;i++)
printf("%.3f ",vec[i]);
printf("\r\n");
}
void PryamoiHod(int n, double **a, double *b)
{
double v;
for(int k=0,i,j,im; k<n-1; k++)
{
im=k;
for(i=k+1;i<n;i++)
{
if(fabs(a[im][k]) < fabs(a[i][k]))
{
im=i;
}
}
if(im!=k)
{
for(j=0; j<n; j++)
{
v=a[im][j];
a[im][j]=a[k][j];
a[k][j]=v;
}
v=b[im];
b[im]=b[k];
b[k]=v;
}
for(i=k+1; i<n; i++)
{
v= 1.0*a[i][k]/a[k][k];
a[i][k]=0;
b[i]= b[i]-v*b[k];
if(v!=0)
for(j=k+1; j<n; j++)
{
a[i][j]=a[i][j]-v*a[k][j];
}
}
}
}
void ObratniHod(int n, double **a, double *b, double *x)
{
double s=0;
x[n-1]=1.0*b[n-1]/a[n-1][n-1];
for(int i=n-2, j; 0<=i; i--)
{
s=0;
for(j=i+1; j<n; j++)
{
s=s+a[i][j]*x[j];
}
x[i]=1.0*(b[i]-s)/a[i][i];
}
}
int main()
{
int i,j,n;
double **a, *b, *x;
do
{
printf(rus("Введите размер матрицы: "));
scanf("%d",&n);
//Выделяем память под матрицу А, векторы В и Х
a=(double **)malloc(n*sizeof(double *));
b=(double *)malloc(n*sizeof(double));
x=(double *)malloc(n*sizeof(double));
for(i=0; i<n; i++)
{
a[i]=(double *)malloc(n*sizeof(double));
//Ввод a
for(j=0; j<n; j++)
{
printf("a[%d][%d]=",i + 1,j + 1);
scanf("%lf",&a[i][j]);
}
}
//Ввод b
for(i=0; i<n;i++)
{
printf("b[%d] = ",i+1);
scanf("%lf",&b[i]);
}
printf(rus("\tВходные данные:\r\n"));
printf(rus("Матрица А:\r\n"));
for(i=0; i<n; i++)
ShowVector(n, a[i]);
printf(rus("Вектор В:\r\n"));
ShowVector(n, b);
printf(rus("\tРешение методом Гаусса\r\n"));
PryamoiHod(n, a, b);
printf(rus("Прямой ход:\r\n"));
printf(rus("Матрица А:\r\n"));
for(i=0; i<n; i++)
ShowVector(n, a[i]);
printf(rus("Вектор В:\r\n"));
ShowVector(n, b);
ObratniHod(n, a, b, x);
printf(rus("Обратный ход:\r\n"));
printf(rus("Матрица А:\r\n"));
for(i=0; i<n;i++)
ShowVector(n, a[i]);
printf(rus("Вектор В:\r\n"));
ShowVector(n, b);
printf(rus("Результат:\r\n"));
ShowVector(n, x);
printf(rus("Выход - Y\r\n"));
//чистим память
free((void *)a);
free((void *)b);
free((void *)x);
}
while(toupper(getch()) == 'Y');
return 0;
}
char* rus(char* str) {
unsigned char *p=str;
while (*p) {
if (*p>=192)
if ((*p)<=239)
(*p)-=64;
else
(*p)-=16;
p++;
}
return str;
}
2.3 Выполнение работы
2.3.1.Входные данные
2.3.2.Выходные данные
2.4 Расчет вариантов
№ |
Матрица А |
Вектор В |
е |
Ответ: |
||||
1 |
4,4 |
-2,5 |
19,2 |
-10,8 |
4,3 |
0,001 |
Х1=0,445 |
|
5,5 |
-9,3 |
-14,2 |
13,2 |
6,8 |
Х2=0,067 |
|||
7,1 |
-11,5 |
5,3 |
-6,7 |
-1,8 |
Х3=0,869 |
|||
14,2 |
23,4 |
-8,8 |
5,3 |
7,2 |
Х4=1,312 |
|||
2 |
8,2 |
-3,2 |
14,2 |
14,8 |
-8,4 |
0,001 |
Х1=0,975 |
|
5,6 |
-12 |
15 |
6,4 |
4,5 |
Х2=-0,246 |
|||
5,7 |
3,6 |
-12,4 |
-2,3 |
3,3 |
Х3=0,397 |
|||
6,8 |
13,2 |
-6,3 |
-8,7 |
14,3 |
Х4=-1,542 |
|||
3 |
5,7 |
-7,8 |
-5,6 |
-8,3 |
2,7 |
0,001 |
Х1=11,947 |
|
6,6 |
13,1 |
-6,3 |
4,3 |
-5,5 |
Х2=-11,235 |
|||
14,7 |
-2,8 |
5,6 |
-12,1 |
8,6 |
Х3=1,788 |
|||
8,5 |
12,7 |
-23,7 |
5,7 |
14,7 |
Х4=17,230 |
|||
4 |
3,8 |
14,2 |
6,3 |
-15,5 |
2,8 |
0,001 |
Х1=0,971 |
|
8,3 |
-6,6 |
5,8 |
12,2 |
-4,7 |
Х2=-0,590 |
|||
6,4 |
-8,5 |
-4,3 |
8,8 |
7,7 |
Х3=-1,000 |
|||
17,1 |
-8,3 |
14,4 |
-7,2 |
13,5 |
Х4=-0,889 |
|||
5 |
15,7 |
6,6 |
-5,7 |
11,5 |
-2,4 |
0,001 |
Х1=0,466 |
|
8,8 |
-6,7 |
5,5 |
-4,5 |
5,6 |
Х2=0,110 |
|||
6,3 |
-5,7 |
-23,4 |
6,6 |
7,7 |
Х3=-0,566 |
|||
14,3 |
8,7 |
-15,7 |
-5,8 |
23,4 |
Х4=-1,189 |
|||
6 |
4,3 |
-12,1 |
23,2 |
-14,1 |
15,5 |
0,001 |
Х1=-1,751 |
|
2,4 |
-4,4 |
3,5 |
5,5 |
2,5 |
Х2=-23,951 |
|||
5,4 |
8,3 |
-7,4 |
-12,7 |
8,6 |
Х3=-16,155 |
|||
6,3 |
-7,6 |
1,34 |
3,7 |
12,1 |
Х4=-7,661 |
|||
7 |
14,4 |
-5,3 |
14,3 |
-12,7 |
-14,4 |
0,001 |
Х1=-0,327 |
|
23,4 |
-14,2 |
-5,4 |
2,1 |
6,6 |
Х2=-0,607 |
|||
6,3 |
-13,2 |
-6,5 |
14,3 |
9,4 |
Х3=-1,154 |
|||
5,6 |
8,8 |
-6,7 |
-23,8 |
7,3 |
Х4=-0,283 |
|||
8 |
1,7 |
10 |
-1,3 |
2,1 |
3,1 |
0,001 |
Х1=0,861 |
|
3,1 |
1,7 |
-2,1 |
5,4 |
2,1 |
Х2=0,192 |
|||
3,3 |
-7,7 |
4,4 |
-5,1 |
1,9 |
Х3=-0,126 |
|||
10 |
-20,1 |
20,4 |
1,7 |
1,8 |
Х4=-0,215 |
|||
9 |
1,7 |
-1,8 |
1,9 |
-57,4 |
10 |
0,001 |
Х1=5,811 |
|
1,1 |
-4,3 |
1,5 |
-1,7 |
19 |
Х2=-0,234 |
|||
1,2 |
1,4 |
1,6 |
1,8 |
20 |
Х3=8,042 |
|||
7,1 |
-1,3 |
-4,1 |
5,2 |
10 |
Х4=0,271 |
|||
10 |
6,1 |
6,2 |
-6,3 |
6,4 |
6,5 |
0,001 |
Х1=1,028 |
|
1,1 |
-1,5 |
2,2 |
-3,8 |
4,2 |
Х2=0,074 |
|||
5,1 |
-5 |
4,9 |
-4,8 |
4,7 |
Х3=-1,975 |
|||
1,8 |
1,9 |
2 |
-2,1 |
2,2 |
Х4=-1,981 |
Заключение
В курсовой работе были рассмотрены все основные теоретические вопросы, связанные с методом Гаусса, решены несложные и общедоступные задачи, был программно реализован метод Гаусса для решения системы линейных уравнений. Тем самым была достигнута поставленная цель.
В ходе работы над данным курсовым проектом также закреплены и выработаны следующие знания, умения и навыки:
анализа задачи;
построения блок-схемы,
разработки алгоритма программы;
написания программы на языке программирования C++ Builder 6;
работы с учебной литературой.
Данная программа может использоваться для решения систем линейных уравнений непосредственно методом Гаусса, посредством языка программирования C++ Builder 6.
Список литературы
1. Вержбицкий, В.М. Основы численных методов [текст]/В.М. Вержбицкий. - М.: Высшая школа, 2002. - 840с.
2. Воробьева, Г.Н. Практикум по вычислительной математике [текст]/ Г.Н. Воробьева, А.Н. Данилова.- М.:Высшая школа, 1991.- 208 с.
3. Котюргина, А.С. Численные методы [текст]: учеб.пособие / А.С. Котюргина. -Омск: Изд-во ОмГТУ, 2010.-84 с.
4. Марчук, Г. И. Методы вычислительной математики [текст]: учебное пособие / Г. И. Марчук. - 4-е изд., стер. - СПб . : Лань, 2009. - 608 с., ил.
5. Самарский, А.А. Введение в численные методы [текст]:учебное пособие для вузов/А.А. Самарский. - 5-е изд., стер . - СПб. : Лань
Размещено на Allbest.ru
...Подобные документы
Сущность матричного метода. Разработка программы решения системы уравнений линейных алгебраических уравнений методом решения через обратную матрицу на языке программирования Delphi. Представление блок-схемы и графического интерфейса программного продукта.
курсовая работа [1,0 M], добавлен 27.09.2014Сущность и особенности языка программирования Си. Основные этапы алгоритма решения системы линейных алгебраических уравнений методом Гаусса, реализация программы для их расчета. Инструкции пользователя и программиста. Тестирование функции решения.
курсовая работа [153,9 K], добавлен 18.02.2013Системы линейных алгебраических уравнений. Код программы для решения систем линейных алгебраических уравнений. Математические и алгоритмические основы решения задачи методом Гаусса. Программная реализация решения. Алгоритмы запоминания коэффициентов.
лабораторная работа [23,5 K], добавлен 23.09.2014Системы линейных алгебраических уравнений. Решение систем уравнений графическим способом. Разработка программного кода модуля, реализующего приближенное решение систем линейных уравнений графическим способом. Отладка программного модуля "Метод Гаусса".
курсовая работа [858,5 K], добавлен 01.12.2013Разработка программного продукта для решения систем линейных алгебраических уравнений методом Гаусса с помощью ЭВМ. Математическое описание объекта моделирования, начальные и граничные условия. Алгоритм реализации задачи. Использование модуля CRT.
курсовая работа [269,6 K], добавлен 07.01.2016Программный продукт для решения систем линейных уравнений методом Гаусса. Алгоритм для проведения вычислений. Цель разработки и область ее применения. Схема информационных потоков. Метод Гаусса: исключение неизвестных. Проектирование удобного интерфейса.
курсовая работа [340,0 K], добавлен 02.07.2010Алгоритм решения систем линейных уравнений методом Гаусса, его этапы. Система уравнений для определения коэффициентов сплайна, представляющая собой частный случай систем линейных алгебраических уравнений. Программная реализация, тестовый пример.
курсовая работа [431,8 K], добавлен 15.06.2013Описание математических методов решения систем линейных уравнений. Метод Гаусса, матричный метод. Вычисление определителей второго и третьего порядка. Язык программирования Паскаль. Структура программы, описание переменных, основные конструкции языка.
курсовая работа [137,3 K], добавлен 20.07.2010Применение итерационных методов численного решения системы линейных алгебраических уравнений при вычислении на ЭВМ. Математические и алгоритмические основы решения задачи, метод Гаусса. Функциональные модели и блок-схемы, программная реализация решения.
курсовая работа [527,5 K], добавлен 25.01.2010Метод Гаусса как прямой метод нахождения решений для систем системы линейных уравнений маленькой и средней размерности с помощью компьютерной техники. Редактор кода и исходный код основной программы в Delphi, блок-схема и графическое решение задачи.
контрольная работа [460,8 K], добавлен 15.06.2015Объектно-ориентированное программирование: основная идея, сопровождение, модификация, термины и положения. Понятие объекта как логической единицы, правила (методы) обработки данных. Метод Гаусса для решения систем линейных алгебраических уравнений.
курсовая работа [125,1 K], добавлен 22.04.2009Матричная форма записи системы линейных уравнений, последовательность ее решения методом исключений Гаусса. Алгоритмы прямого хода и запоминания коэффициентов. Решение задачи о сглаживании экспериментальных данных с помощью метода наименьших квадратов.
курсовая работа [610,7 K], добавлен 25.06.2012История развития алгоритмических языков. Создание языка С++. Разработка программы в Visual C++ для решения линейных уравнений методом Крамера. Структура данных, этапы тестирования программного обеспечения на работоспособность и корректность расчетов.
курсовая работа [390,0 K], добавлен 29.12.2014Метод Гаусса-Зейделя как модификация метода Якоби, его сущность и применение. Разработка программы решения системы линейных алгебраических уравнений на языке VB, проверка правильности работы программы в MS Excel и математических пакетах MathCad и MatLab.
курсовая работа [325,5 K], добавлен 27.10.2013Преобразование матрицы системы линейных алгебраических уравнений (СЛАУ) с помощью алгоритма Гаусса. Решение задачи методом простой итерации. Создание блок-схемы и текста программы для решения СЛАУ, реализованной на языке программирования Turbo Pascal.
курсовая работа [1,2 M], добавлен 15.06.2013Разработка программного продукта на языке Delphi 7.0. Матричный метод решения однородных и неоднородных систем линейных уравнений. Разработка интерфейса. Тестирование и описание объектов программы. Описание процесса вычисления определителей матриц.
курсовая работа [366,1 K], добавлен 04.02.2015Системы линейных алгебраических уравнений. Матричный метод решения систем линейных уравнений. Решение задачи математическим методом. Блок-схема алгоритма и листинг программы. Расчет трудоемкости разработки программы. Расчет себестоимости и цены программы.
дипломная работа [144,8 K], добавлен 25.04.2012Общее понятие о линейных уравнениях и их системах. Разработка программного продукта в среде Delphi 7 для решения методом Крамера квадратных систем линейных алгебраических уравнений с ненулевым определителем основной матрицы. Описание конкретных примеров.
курсовая работа [193,7 K], добавлен 07.07.2013Требования к языкам программирования, их эффективность, лаконичность, ясность, реальные возможности. Создание языка С#. Применение систем линейных алгебраических уравнений для практических задач, сущность и особенности метода Крамера для их решения.
курсовая работа [118,1 K], добавлен 13.11.2009Рассмотрение двух способов решения систем линейных алгебраических уравнений: точечные и приближенные. Использование при программировании метода Гаусса с выбором главного элемента в матрице и принципа Зейделя. Применение простой итерации решения уравнения.
курсовая работа [879,8 K], добавлен 05.06.2012