Программа для решения линейных уравнений
Понятия систем линейных уравнений и матриц. Решение общей системы линейных уравнений по методу Гаусса. Системные требования, методы установки, удаления и работы с программой. Методы защиты от неверного ввода данных. Тестирование и опытная эксплуатация.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 25.02.2011 |
Размер файла | 751,0 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
СОДЕРЖАНИЕ
ВВЕДЕНИЕ
1. ПОСТАНОВКА ЗАДАЧИ
2. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ. МАТЕМАТИЧЕСКИЙ АППАРАТ
2.1 Основные понятия систем линейных уравнений
2.1.1 Основные понятия матриц
2.1.2 Действия над матрицами
2.1.3 Обратная матрица
2.1.4 Ранг матрицы
2.2 Решение общей системы линейных уравнений по Методу Гаусса
3. РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ
3.1 Системные требования
3.2 Установка программы
3.3 Работа с программой
3.4 Удаление программы
4. РУКОВОДСТВО ПРОГРАММИСТА
4.1 Общие сведения
4.2 Основные переменные, используемые в программе
4.3 Функции используемые в программе
4.4 Защита от неверного ввода данных
4.5 Пример расчета. Тестирование и опытная эксплуатация
ЗАКЛЮЧЕНИЕ
СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ
ПРИЛОЖЕНИЕ А БЛОК-СХЕМА ПРОГРАММЫ
ПРИЛОЖЕНИЕ Б ЛИСТИНГИ ИСХОДНЫХ ТЕКСТОВ
ВВЕДЕНИЕ
Основная задача, стоящая перед студентом при написании курсовой работы - на основе предоставленного математического аппарата разработать алгоритм и составить программу на языке высокого уровня.
Построение алгоритма начинается с создания укрупнённых блоков, кратко характеризующих минимальные требования для понимания программы. Затем каждый блок расписывается подробнее в соответствии с математическим аппаратом.
Основная задача курсового проекта разработка и создание алгоритма программы, которая решает системы линейных уравнений по методу Гаусса.
Преимущество этой программы заключается в том, что размерность линейных уравнений может менять пользователь.
1. ПОСТАНОВКА ЗАДАЧИ
Представленная программа позволяет решать линейные уравнения по методу Гаусса. Программа созданная под операционную систему Windows.
При запуске программы выводиться основное меню, где имеется поле заполнения уравнения, где пользователь вносит нужные значения, для облегчения вносимых значений специально сделана кнопка RANDOM, которая облегчает внос значений в поле заполнения. Также имеется дополнительное небольшое меню с несколькими кнопками, такие как «Применить», «RANDOM», «Решить систему», «Выход», «Разработчик», которые необходимы для вноса, редактирования и решения уравнений.
Кнопка «Применить» предназначенная для размерности уравнений. Пользователь в небольшом окошке выбирает размерность уравнения. Диапазон размерности рассчитан (от 1 до 30) линейных уравнений. Если вводится неправильное значение, то программа выводит ошибку.
Кнопка «RANDOM» предназначенная для облегчения (ввода значений вручную), при нажатии кнопки производится ввод автоматических значений в поле заполнения уравнений. Автоматические значения, вносимые в поле заполнения, имеют диапазон (от -50 до 50).
Кнопка «Решить систему» выполняет самую важную функцию - это решение линейного уравнения. Если неправильно будет заполнено поле уравнения, то при нажатии кнопки “Решить систему” программа выдаст окошко с неправильно введённым параметром.
Кнопка «Выход» предназначенная для незамедлительного выхода из программы.
Кнопка «Разработчик» при нажатии выводит окно, где написаны сведения о программе.
2. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ. МАТЕМАТИЧЕСКИЙ АППАРАТ
2.1 Основные понятия систем линейных уравнений
В самом общем случае система линейных уравнений имеет следующий вид:
a11x1 + a12x2 + …+ a1n xn = b1 ;
a21x1 + a22x2 + …+ a2n xn = b2 ;
am1x1+ am2x2 + …+ amnxn = bm ;
где х1, х2, …, хn - неизвестные, значения которых подлежат нахождению.
Как видно из структуры системы, в общем случае число неизвестных не обязательно должно быть равно числу уравнений самой системы. Числа а11, а12, … , аmn называются коэффициентами системы, а b1, b2, … , bm - её свободными членами. Для удобства коэффициенты системы аij
(i = 1, 2, . . ., m; j = 1, 2, . . .,n) и свободные члены bi (i=1, 2, . . .,m) снабжены индексами. Первый индекс коэффициентов аij соответствует номеру уравнения, а второй индекс - номеру неизвестной хi, при которой коэффициент поставлен. Индекс свободного члена bi соответствует номеру уравнения, в которое входит bi.
Дадим определения некоторых понятий, необходимых при изучении системы уравнений. Решением системы уравнений называется всякая совокупность чисел б1, б2, бn, которая будучи поставлена в систему на место неизвестных х1, х2, …, хn, обращает все уравнения системы в тождества. Система уравнений называется совместной, если она имеет хотя бы одно решение, и несовместной, если не имеет решений. Совместная система уравнений называется определенной, если она имеет одно единственное решение, и неопределенной, если она имеет, по крайней мере, два различных решения.
Две системы уравнений называются равносильными или эквивалентными, если они имеют одно и тоже множество решений.
2.1.1 Основные понятия матриц
Матрица размерами m Ч n - совокупность mn чисел, расположенных в виде прямоугольной таблицы из m строк и n столбцов, например (обозначим за А)
2 5 2
А= 3 10 7 - матрица.
6 -3 -4
Числа, из которых состоит матрица, называются элементами матрицы.
В общем виде матрицы:
а11 a12 … a1n
a21 a22 … a2n
M = a31 a32 … a3n
am1 am2 … amn
они обозначаются буквами с двумя индексами: 1ый индекс указывает номер строки, а 2ой - номер столбца, в которых содержится этот элемент.
Если m = n, то матрица называется квадратной, а число строк (или столбцов) - её порядком.
Две матрицы, имеющие одинаковое количество строк и столбцов, называются матрицами одинакового типа. Две матрицы А = [aij] и В = [bij] одинакового типа называются равными, если aij = bij при всех i и j.
Матрица, состоящая из одной строки (одного столбца), называется матрицей-строкой (матрицей-столбцом), а матрица, у которой все элементы аij = 0, - нулевой или нуль матрицей.
Элементы квадратной матрицы, имеющие одинаковые значения индексов, составляют главную диагональ, а элементы квадратной
матрицы порядка n,сумма индексов каждого из которых равна n+1, -
побочную диагональ.
Сумма элементов главной диагонали квадратной матрицы называется следом матрицы. Квадратные матрицы, у которых все элементы вне главной диагонали равны нулю, называются диагональными (обозначается Е):
1 0 … 0
Е = 0 1 … 0
0 0 … 1
Квадратная матрица, все элементы которой, стоящие ниже (выше) главной диагонали, равны нулю, называется треугольной:
a11 а12 … а1n b11 0 … 0
А = 0 а22 … а2n ; B = b21 b22 … 0
0 0 … ann bn1 bn2 … bnn
Диагональная матрица является частным случаем треугольной. Преобразование элементов квадратной матрицы, состоящее в замене строк соответствующими столбцами, называется транспонированием матрицы. Таким образом, если
a11 a12 … a1n
A = a21 a22 … a2n ;
an1 an2 … ann
то
a11 a21 … an1
AT = a12 a22 … an2 .
a1n a2n … ann
Определитель n-го порядка матрицы
а11 а12 … а1n
А = а21 а22 … а2n
аn1 а n2 … аnn
есть число
а11 а12 … а1n
? = а21 а22 … а2n = ? (-1)I(k , k , …, k) a1k a2k … ank
(k1, k2, …, kn)
аn1 аn2 … аnn
Здесь суммирование распространяется на всевозможные перестановки индексов элементов aij, т.е. на всевозможные перестановки (k1, k2, …, kn). Числа aij называют элементами определителя.
Квадратная матрица, определитель которой отличен от нуля, называется невырожденной, а матрица с определителем, равным нулю - вырожденной.
Определитель обладает некоторыми свойствами. Перечислим их:
1. При транспонировании матрицы её определитель не изменяется.
2. Если все элементы некоторой строки определителя состоят из нулей, определитель равен нулю.
3. От перестановки двух строк определитель меняет знак.
Определитель, содержащий две одинаковые строки, равен нулю.
Общий множитель всех элементов некоторой строки определителя можно вынести за знак определителя, или, если все элементы некоторой строки определителя умножить на одно и тоже число, то определитель умножается на это число.
Определитель, содержащий две пропорциональные строки, равен нулю.
Если все элементы i-й строки определителя представлены в виде суммы двух слагаемых, то определитель равен сумме двух определителей, у которых все строки, кроме i-й, те же, что и у данного определителя; i-я строка определителя состоит из первых слагаемых элементов i-й строки данного определителя, а i-я строка другого - из вторых слагаемых элементов i-й строки.
Определитель не изменяется, если к элементам одной строки прибавить соответствующие элементы другой строки, умноженные на одно и тоже число.
2.2 Действия над матрицами
Основные операции, которые производятся над матрицами, - сложение, вычитание, умножение, а также умножение матрицы на число. Указанные операции являются основными операциями алгебры матриц - теории, играющей весьма важную роль в различных разделах математики и естествознания.
Суммой двух матриц А и В одинаковых размеров называется матрица того же размера, элементы которой равны сумме соответствующих элементов матриц А и В. Таким образом, если
а11 … а1n b11 … b1n
А = ………….. ; В = …………… , то
am1 … аmn bm1 … bmn
a11+ b11 … a1n + b1n
A + B = ………………………
am1+ bm1 … amn + bmn
Операция нахождения суммы матриц называется сложением матриц и распространяется на случай конечного числа матриц одинаковы размеров.
Так же, как и сумма, определяется разность двух матриц
a11 - b11 … a1n - b1n
A - B = ………………………
am1 - bm1 … amn - bmn
Операция нахождения разности двух матриц называется вычитанием матриц. Проверкой можно убедиться, что операция сложения матриц удовлетворяет следующим свойствам:
А + В = В + А; (коммутативность)
А + (В + С) = (А + В) + С; (ассоциативность)
А + О = А
Здесь А, В, С - произвольные матрицы одинаковых размеров; О - нулевая матрица того же размера.
Произведением матрицы А = [аij] на число л называется матрица, элементы которой получаются из соответствующих элементов матрицы А умножением их на число л. Произведение обозначим лА. Таким образом от умножения матрицы А на число, получим:
a11 … a1n лa11 … лa1n
A = ………… , то лA = ………………
am1 … amn лam1 … лamn
Операция нахождения произведения матрицы на число называется умножением матрицы на число.
Матрица -А = -1А называется противоположной матрице А. Проверкой можно убедиться, что операция умножения матрицы на число удовлетворяет следующим свойствам:
1А = А;
(л + м)А = лА + мБ;
л(А + В) = лБ+ лВ;
4) л( мА) = (лм)А;
5) А + (-А) = О
Здесь А, В - произвольные матрицы; м, л - произвольные числа; О - нулевая матрица.
Произведение АВ матрицы А на матрицу В определяется только в том случае, когда число столбцов матрицы А равно числу строк матрицы В. Пусть матрицы А и В такие, что число столбцов матрицы А равно числу строк матрицы В:
а11 … а1n b11 … b 1n
A = …………… ; B = ………………
am1 … amn bm1 … bmn
В этом случае произведением матрицы А на матрицу В, которые
заданы в определенном порядке (А - 1ая, В - 2ая), является матрица С, элемент которой сij определяется по следующему правилу:
cij = ai1b1j + ai2b2j + … + ainbnj = ? n б = 1 aiбbбj,
где i = 1,2, …, m; j = 1, 2, …, k.
Для получения элемента сij матрицы произведения С = АВ нужно элементы i-й строки матрицы А умножить на соответствующие элементы j-го столбца матрицы В и полученные произведения сложить. Например, если:
1 2 3 7 8
А = ; В = 9 10 , то (1)
4 5 6 11 12
1 7 + 2 9 + 3 11 1 8 + 2 10 + 3 12 58 64
АВ = = (2)
4 7 + 5 9 + 6 11 4 8 + 5 10 + 6 12 139 154
Число строк матрицы С = АВ равно числу строк матрицы А, а число столбцов - числу столбцов матрицы В.
Операция нахождения произведения двух матриц называется умножением матриц. Умножение матриц некоммутативное, т.е.
АВ ? ВА. Убедимся в примере матриц (1). Перемножив их в обратном порядке, получим:
39 54 69
ВА = 49 68 87 (3)
59 82 105
Сравнив правые части выражений (2) и (3), убедимся, что АВ ? ВА.
Матрицы А и В, для которых АВ = ВА, называются перестановочными. Например:
1 2 -3 2
А = ; В = перестановочны, т.к.
-2 0 -2 -4
-7 -6
АВ = ВА=
Проверкой можно показать, что умножение матриц удовлетворяет следующим свойствам:
А(ВС) = (АВ)С; (ассоциативность)
л(АВ) = (лА)В = А(лВ);
А(В + С) = АВ + АС. (дистрибутивность)
Здесь А, В, С - матрицы соответствующих определению умножения матриц размеров; л - произвольное число.
Операция умножения двух прямоугольных матриц распространяется на случай, когда число столбцов в 1ом множителе равно числу строк во 2ом, в остальных случаях произведение не определяется. А также, если матрицы А и В - квадратные одного и того же порядка, то умножение матриц всегда выполнимо при любом порядке следования сомножителей.
2.1.3 Обратная матрица
Пусть дана квадратная матрица
a11 … a1n
A = …………… ,
am1 … amn
= A - её определитель.
Если существует матрица Х такая, что АХ = ХА = Е, где Е - единичная матрица, то матрица Х называется обратной по отношению к матрице А, а сама матрица А - обратимой. Обратная матрица для А обозначается А-1.
Пример 1. Найти матрицу обратную матрице
матрица уравнение гаусс программа
1 2 3
А = -3 -1 1
2 1 -1
Решение. Проверим, обратима матрица А или нет, т.е. является ли она невырожденной:
1 2 3 1 2 5
?А = -3 -1 1 = -3 -1 0 = 5 -3 1 = 5 (-3 + 2) = -5 ? 0.
2 1 -1 2 1 0 2 1
Найдем алгебраические дополнения всех элементов матрицы А:
А11 = -1 1 = 0; А12 = - -3 1 = -1; А13 = -3 -1 = -1;
1 -1 2 -1 2 1
А21 = - 2 3 = 5; А22 = 1 3 = -7; А23 = - 1 2 = 3;
1 -1 2 -1 2 1
А31 = 2 3 = 5; А32 = - 1 3 = -10; А33 = 1 2 = 5
-1 1 -3 1 -3 -1
Составим присоединённую матрицу для матрицы А:
0 5 5
-1 -7 -10
-1 3 5
Отсюда находим обратную матрицу:
0 5 5
А-1 = - -1 -7 -10
-1 3 5
2.1.4 Ранг матрицы
Рассмотрим произвольную прямоугольную матрицу
а11 … а1n
A = …………… (4)
am1 … amn
Выделим некоторое число k строк этой матрицы и такое же число столбцов. Элементы матрицы (4), стоящие на пересечение выделенных строк и столбцов, образуют квадратную матрицу k-го порядка. Определитель этой матрицы называется минором k-го порядка матрицы А. Если не все числа аij матрицы А равны нулю, то всегда можно указать число r такое, что у матрицы А имеется минор, имеющий порядок r + 1 и выше, равен нулю.
Число r, представляющее собой наибольший из порядков отличных от нуля миноров матрицы А, называется рангом матрицы и обозначается rangA. Если все элементы aij равны нулю, то ранг матрицы принимается равным нулю. Отличный от нуля минор r-го порядка матрицы A (таких миноров у матрицы А может быть несколько, но все они имеют один и тот же порядок r) называется базисным минором матрицы А. Строки и столбцы, из которых построен базисный минор, называют базисными. Понятие ранга матрицы широко применяется в различных приложениях теории матриц.
Выделим в матрице А произвольно k строк. Пусть это будут строки
a1, а2, …, аk:
аб11, аб12, …, аб1n
аб21, аб22, …, аб2n;
абk1, абk2, …, абkn.
Если существуют такие числа л1, л2, …, лk, не все равные нулю, что для элементов некоторой другой, отличной от выделенной, строки i выполняются следующие соотношения:
то говорят, что i-я строка линейно выражается через строки б1, б2, …, бk. В случае, если равенства (5) выполняются тогда и только тогда, когда все числа л1, л2, …, лk - нули, то говорят, что i-я строка линейно зависима от строк б1, б2, …, бk. Аналогичным образом можно ввести понятие линейной зависимости и линейной независимости между столбцами матрицы.
Пример 1. Найти ранг матрицы
1 2 3 4 5
A = 2 1 1 3 5
1 2 3 1 7
-2 2 4 -1 2
Решение. Произведем следующие элементарные преобразования над матрицей А. Путем умножения элементов строк на числа и сложения их с соответствующими элементами других строк добьемся, чтобы все элементы первого столбца, кроме первого, были бы нулями. Один нуль там уже имеется, поэтому, сложив четвертую строку со второй, умноженной на два, получим
1 2 3 4 5
B = 0 -3 -5 -5 -5
0 0 0 -3 2
0 6 10 7 12
Применим теперь элементарные преобразования таким образом, чтобы в матрице В все элементы второго столбца, кроме первых двух, были бы нулями. Один нуль там уже имеется, поэтому, сложив четвертую строку со второй, умноженной на 2, получим
1 2 3 4 5
С = 0 -3 -5 -5 -5
0 0 0 -3 2
0 0 0 -3 2
Оставив три строки матрицы С без изменения и сложив четвертую строку с третьей, умноженной на -1, получим
1 2 3 4 5
D = 0 -3 -5 -5 -5
0 0 0 -3 2
0 0 0 0 0
Очевидно, что ранг матрицы D равен трем, так как минор третьего порядка
1 2 5
М = 0 -3 -5 = -6 ? 0,
0 0 2
а все миноры четвертого порядка, окаймляющие минор М, равны нулю. На основании теоремы 1.3. заключаем, что rang А = 3.
2.2 РЕШЕНИЕ ОБЩЕЙ СИСТЕМЫ ЛИНЕЙНЫХ УРАВНЕНИЙ ПО МЕТОДУ ГАУССА
Практическое значение правила Крамера для решения системы n линейных уравнений с п неизвестными невелико, так как при его применении приходится вычислять п +1 определителей n-го порядка: , x1, x2, …,xn. Более удобным является так называемый метод Гаусса. Он применим и в более, общем случае системы линейных уравнений, т. е. когда число уравнений не совпадает с числом неизвестных.
Итак, пусть дана система, содержащая m линейных уравнений с п неизвестными:
а11х1 + а12х2 + …+ а1nхn = b1;
а21х1 + а22х2 + …+ а2nхn = b2 (6)
аm1х1 + аm2х2 + …+ amnxn = bm
Требуется найти все решения системы уравнений (6). Будем производить над системой элементарные преобразования: исключение из системы уравнения вида
0х1 + 0х2 + …+ 0хn = 0
и прибавление к обеим частям одного из уравнений системы соответствующих частей другого уравнения, умноженных на любое число .
Очевидно, что если мы проделаем над уравнениями системы (6) любое из приведенных выше преобразований, то получим систему, равносильную исходной. При необходимости систему (6) будем подвергать еще одному виду преобразований - перенумерации переменных и уравнений.
Идея этого преобразования заключается в следующем. Если, например, возникает необходимость, чтобы в каком-то уравнении системы (например, в k -м) неизвестная x1 стояла на первом месте, то в результате перенумерации соответствующее уравнение запишется в виде
akix1 + ... + ak2x2 + … + ak1xi+ ... + aknxn = bk,
т. е. вместо прежней неизвестной хi мы будем писать х1, а вместо x1 - хi
Метод Гаусса решения системы (6) заключается в последовательном исключении переменных.
Если среди уравнений системы есть хотя бы одно уравнение вида
0xl + 0x2+ ... + 0xn= b ,
причем b 0, то совершенно очевидно, что ни одна система значений х1, х2..., хп не удовлетворяет этому уравнению, а следовательно, и системе в целом, поэтому система несовместна.
Пусть теперь система (6) не содержит уравнений вида (7) или (8). Это значит, что в каждом уравнении системы хотя бы один из коэффициентов отличен от нуля.
Пусть a110 (в противном случае, применив элементарные преобразования, мы сможем добиться, чтобы первый коэффициент первого уравнения был отличен от нуля). Оставив первое уравнение без изменения, исключим из всех уравнений системы (6), начиная со второго, неизвестную х1. Для этого из второго уравнения вычтем первое, умноженное на a21/a11, затем из третьего уравнения вычтем также первое, но уже умноженное на a31/a11, и так до последнего уравнения.
В результате этих преобразований мы получим равносильную систему
а11х1 + а12х2 + … + а1nхn = b1;
а?22х2 + …+ а?2nхn = b?2;
а?m2х2 + …+ а?mnхn = b?m
Заметим, что в системе (9) число уравнений может быть и меньше m, так как среди них могут оказаться уравнения вида (7), которые, как мы условились ранее, можно отбросить.
Пусть а22 0. Применим те же самые рассуждения и исключим из последних п - 2 уравнений системы (9) неизвестную х2 путем вычитания из третьего уравнения второго, умноженного на a?32/a?22 , из четвертого уравнения -- второго, умноженного на a?34/a?22 и т. д.
В результате получим систему
а11х1 + а12х2 + а13х3 + …+ а1nхn = b1;
а?22х2 + а?23х3 + …+ а?2nхn = b?2;
а??33х3 + …+ а?3хn = b?3;
а?m3х3 +…+а?mnхn = b?m.
Продолжая этот процесс, систему (6) приведем к равносильной системе вида
c11х1 + c12х2 + c13х3 + …+ c1kхk + …+ c1nхn = d1;
c22х2 + c23х3 + …+ c2kхk + …+ c2nхn = d2;
c33х3 + …+ c3kхk + …+ c3nхn = d3; (10)
ckkхk + …+cknхn = dk.
в которой коэффициенты c11, c22, . . ., ckk отличны от нуля.
Может оказаться, что в процессе преобразования на каком-то шаге в полученной системе окажется уравнение вида (8). В этом случае система (6) не имеет решений. Предположим теперь, что среди уравнений полученной системы нет уравнения вида (8). Тогда для решения системы (6) необходимо решить систему (10), что не составляет особого труда. Рассмотрим два возможных случая.
1. k = n (это частный случай, когда число уравнений совпадает с числом неизвестных). Тогда последнее уравнение системы (10) имеет вид
сппхп = dn, откуда хп = dn /cnn
Подставив это значение в предпоследнее уравнение системы (10), имеющее вид cn-1n-1xn-1 + cn-1nxn= dn-1, найдем значение неизвестной xn-1 и т. д.;
наконец, из первого уравнения найдем неизвестную x1 .
Таким образом, в случае k = п система уравнений (6) имеет единственное решение.
2. k < n. Тогда из последнего уравнения системы (10), найдем неизвестную xk, выраженную через неизвестные хk+1, хk+2, . . . xn :
xk = (dkk - ck k+1xk+1 - … - cknxn).
Подставив это значение неизвестной в предпоследнее уравнение системы (10), найдем выражение для неизвестной хk-1,и т. д.; наконец, подставив значения неизвестных хk, хk-1, . . . x2 в первое уравнение системы (10), получим выражение для неизвестной x1. В результате указанная система уравнений (6) приводится к виду
x1 = d?1 + c?1 k+1xk+1 + …+ c?1nxn;
x2 = d?2 + c?2 k+1xk+1 + …+ c?2nxn;
xk = d?k + c?k k+1 xk+1 + …+ cknxn
Неизвестные хk+1, хk+2, …, хп называются свободными. Им можно придать различные значения и затем из системы (6) найти значения неизвестных х1, х2, …, хk.
Таким образом, в случае k < п совместная система уравнений (6) имеет бесчисленное множество решений.
Заметим, что если в процессе приведения системы (6) к системе (11) была произведена перенумерация неизвестных, то в системе (11) необходимо вернуться к их первоначальной нумерации.
На практике процесс решения системы уравнений облегчается тем, что указанным выше преобразованиям подвергают не саму систему, а матрицу
a11 a12 … a1n b1
a21 a22 … a2n b2
am1 am2 … amn bm
составленную из коэффициентов уравнений системы (6) и их свободных членов. При этом каждому элементарному преобразованию, проведенному над системой (6), соответствует преобразование над матрицей (12): вычеркивание строки, все элементы которой состоят из нулей, прибавление к элементам некоторой строки соответствующих элементов другой строки, умноженных на некоторое число, и перестановка двух столбцов матрицы.
Пример 1. Решить систему уравнений методом Гаусса.
x1 - 2x2 + x3 + x4 = -1;
3x1 + 2x2 - 3x3 - 4x4 = 2;
2x1 - x2 + 2x3 - 3x4 = 9
x1 + 3x2 - 3x3 - x4 = -1
Решение. Составим матрицу В и преобразуем ее. Для удобства вычислений отделим вертикальной чертой столбец, состоящий из свободных членов:
1 -2 1 1 -1
B = 3 2 -3 -4 2
2 -1 2 -3 9
1 3 -3 -1 -1
Умножим первую строку матрицы В последовательно на 3, 2 и 1 и вычтем соответственно из второй, третьей и четвертой строк. Получим матрицу, эквивалентную исходной:
1 -2 1 1 -1
0 8 -6 -7 5
0 3 0 -5 11
0 5 -4 -2 0
Третью строку матрицы умножим на 3 и вычтем ее из второй строки. Затем новую вторую строку умножим на 3 и на 5 и вычтем из третьей и четвертой строк. Получим матрицу, эквивалентную исходной:
1 -2 1 1 -1
0 -1 -6 8 -28
0 0 -1 0 -3
0 0 0 19 -19
Из коэффициентов последней матрицы составим систему, равносильную исходной:
x1 - 2x2 + x3 + x4 = -1;
X2 - 6x3 + 8x4 = -28;
- x3 = -3;
19x4 = -19.
Решим полученную систему методом подстановки, двигаясь последовательно от последнего уравнения к первому. Из четвертого уравнения x4 = -1, из третьего х3 = 3. Подставив значения х3 и x4 во второе уравнение, найдем x2 = 2. Подставив значения x2, x3, x4 в первое уравнение, найдем x1 = 1.
3. РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ
3.1 Системные требования
Для наилучшей работы с данным программным продуктом, требуется: IBM-совместимый компьютер следующей конфигурации: тактовая частота процессора не менее 100 МГц, оперативная память не менее 16 МВ, видеоадаптер SVGA, объём свободного места на жёстком диске не менее 5 МВ, операционная система Microsoft Windows 95/98/NT/2000/XP, накопитель на гибких магнитных дисках 3,5” или устройство для чтения компакт-дисков, необходимо наличие манипулятора типа «мышь».
Чтобы обеспечить удобство для работы с данным программным продуктом, желательно произвести следующие настройки экрана: минимальное разрешение экрана 800600 точек на дюйм, цветовая палитра не ниже 256 цветов, частота кадров монитора не менее 75 Гц.
Установка программного продукта производится с дискеты 3,5'' или компакт-диска на компьютер. При желании создайте на рабочем столе папку, в которую будете производить копирование программного продукта. Программный продукт представлен в виде единственного приложения (.exe-файла).
3.2 Работа с программой
Работа пользователя с программой представляет собой ввод данных в поля ввода таблицы (заполнение таблицы). Если заполнены все поля, можно решить необходимое линейное уравнение путём нажатия кнопки «Решить». В главном окне находятся обязательные кнопки «Random», «Применить», «Решить» и «Выход», посредством которых пользователь может автоматически заполнять поля, менять размерность линейного уравнения или выйти из программы. Также в главном окне находятся дополнительная информационная кнопка «Разработчик», посредством которой пользователь может узнать информацию о разработчике программы.
В случае случайного нажатия кнопки «Выход» пользователь выходит из программы, и все введённые данные будут при этом утеряны. Вернуться в исходное место для продолжения работы пользователь не сможет. Поэтому для продолжения работы с программой пользователь должен будет запустить её снова.
Далее можно видеть подробную работу с программой.
Это главное окно программы, окно ввода чисел в таблицу заполнения уравнения, необходимые кнопки программы их функции и ошибки. В результате запуска программы вы увидите основное меню, как показано на (Рис.1).
Рис.1. Окно программы.
Для изменения размерности линейного уравнения пользователю необходимо указать необходимую размерность уравнения. Для этого пользователь должен ввести в малом окне интересующую его цифру (изначально цифра стоит 5), а потом нажать кнопку «Применить». Как показано на (Рис.2).
Рис.2. Кнопка «Применить».
Программа поддерживает размерность (от 1 до 30). При вводе любого другого значения программа выдаст соответствующую ошибку. При этом пользователь будет извещён о неправильном вводе цифрового значения (Рис.2.1).
Рис.2.1. Ошибка, ввода неверного значения размерности системы.
Автоматическое заполнение ячеек системы генерируется в определённом интервале чисел, этот интервал чисел расположен (от -50 до 50). Для того чтобы заполнить систему автоматическим заполнением. Пользователю необходимо нажать одним нажатием (кликом) мышки на кнопку «RANDOM», после чего программа автоматически заполнит пустые ячейки, системы линейного уравнения (Рис.3.).
Рис.3. Кнопка «RANDOM».
При вводе чисел пользователем в ручную. Пользователь может ввести в ячейку неверный символ (Рис.3.1), но при нажатии на кнопку «Решить систему» программа выдаст ошибку. На этот случай программа защищена от неправильного ввода символа. При вводе в ячейку несоответствующего символа т.е. числа, программа выдаст соответствующую ошибку и покажет где был введён неверный символ. Программа при такой ошибки не удаляет числа из ячейки, а ждет изменений соответствующего символа от пользователя (Рис.3.2).
Рис.3.1. Ввод чисел пользователем вручную.
Рис.3.2. Ошибка, ввода в ячейку несоответствующего символа.
При не заполнении пользователем, в (автоматическом или ручном режиме) ввода чисел в ячейки системы линейного уравнения, и нажатии кнопки «Решить систему» (Рис.4.), программа выдаст соответствующую ошибку (Рис.4.1).
Рис.4. Не заполнение в (автоматическом или ручном режиме) ячеек системы линейного уравнения.
Рис.4.1 Ошибка, не заполнения ячеек системы линейного уравнения.
3.2 Удаление программы
Прежде чем удалить программу, необходимо закрыть окно программы. Если вы хотите отправить программу в корзину, нажмите правой кнопкой мыши по ярлыку. Появится контекстное меню, в котором вы должны выбрать команду «Удалить». Для удаления программы с вашего компьютера выделите ярлык одинарным нажатием левой кнопкой мыши, затем, нажав и удерживая кнопку “Shift” на клавиатуре, нажмите копку “Delete” и подтвердите удаление программы. Программа будет полностью удалена с вашего компьютера.
4. РУКОВОДСТВО ПРОГРАММИСТА
4.1 Общие сведения
Данный проект разработан в интегрированной системе Borland C++ Builder 6.0. Он состоит из набора файлов, необходимых для компиляции проекта и редактирования в C++ Builder. Основные из них:
uMain.cpp и Gauss.cpp - исходный файл на С++, содержащий
программу;
uMain.dfm - содержит описание формы и всех ее компонентов;
uMain.h - заголовочный файл, содержащий объявление классов;
Gauss.res - двоичный файл ресурсов, созданный
компилятором;
Gauss.exe - автономный исполняемый файл.
Курсовой проект содержит единственную форму Form1, на которой размещены объекты Panel1 и TableGauss. В объекте Panel1 содержит в себе всего 11 элементов. 5 элементов, из которых это TButton , 6 элементов типа Tlabel и элемент типа TEdit.
4.2 Основные переменные, используемые в программе
В программе имеется одна переменная:
N - это количество строк в системе уравнения, которая при запуске программы имеет первоначальное значение 5.
В программе присутствуют обработчики кнопок:
Кнопка «RANDOM».
Кнопка «Применить».
Кнопка «Решить систему».
Кнопка «Выход».
Кнопка «Разработчик».
Также в программе имеется функция DrawXY.
4.3 Функции, используемые в программе
Сама программа состоит из нескольких функций. Каждая, из которых, записана на определенном обработчике и на конкретном элементе формы.
Программные функции:
void __fastcall TForm1::FormCreate(TObject *Sender)
- эта функция вызывается при создании формы. Она создает форму программы.
void TForm1::DrawXY
- эта функция заполняет ячейки таблицы системы линейного уравнения нулевыми значениями, заголовки таблицы, вписывает имена переменных, номера строк.
void __fastcall TForm1::btnNClick(TObject *Sender)
Эта функция относиться к кнопки «Применить».
- эта функция считывает значение введенное пользователем, проверяет его на допустимость, если значение недопустимо, то выдается сообщение об ошибки что «Ошибка при вводе размера.», если допустимо значение, то функция изменяет количество строк и столбцов в таблице, перерисовывает таблицу с помощью функции DrawXY.
Подобные документы
Системы линейных алгебраических уравнений. Код программы для решения систем линейных алгебраических уравнений. Математические и алгоритмические основы решения задачи методом Гаусса. Программная реализация решения. Алгоритмы запоминания коэффициентов.
лабораторная работа [23,5 K], добавлен 23.09.2014Решение систем линейных алгебраических уравнений по методу Гаусса. Разработка прикладной программы формирования видеотеки с использованием технологии разработки программ "сверху-вниз". Алгоритм добавления, удаления и корректировки элемента видеотеки.
курсовая работа [305,0 K], добавлен 18.06.2012Алгоритм решения систем линейных уравнений методом Гаусса, его этапы. Система уравнений для определения коэффициентов сплайна, представляющая собой частный случай систем линейных алгебраических уравнений. Программная реализация, тестовый пример.
курсовая работа [431,8 K], добавлен 15.06.2013Системы линейных алгебраических уравнений. Решение систем уравнений графическим способом. Разработка программного кода модуля, реализующего приближенное решение систем линейных уравнений графическим способом. Отладка программного модуля "Метод Гаусса".
курсовая работа [858,5 K], добавлен 01.12.2013Матричная форма записи системы линейных уравнений, последовательность ее решения методом исключений Гаусса. Алгоритмы прямого хода и запоминания коэффициентов. Решение задачи о сглаживании экспериментальных данных с помощью метода наименьших квадратов.
курсовая работа [610,7 K], добавлен 25.06.2012Объектно-ориентированное программирование: основная идея, сопровождение, модификация, термины и положения. Понятие объекта как логической единицы, правила (методы) обработки данных. Метод Гаусса для решения систем линейных алгебраических уравнений.
курсовая работа [125,1 K], добавлен 22.04.2009Системы линейных алгебраических уравнений. Матричный метод решения систем линейных уравнений. Решение задачи математическим методом. Блок-схема алгоритма и листинг программы. Расчет трудоемкости разработки программы. Расчет себестоимости и цены программы.
дипломная работа [144,8 K], добавлен 25.04.2012Разработка программного продукта на языке Delphi 7.0. Матричный метод решения однородных и неоднородных систем линейных уравнений. Разработка интерфейса. Тестирование и описание объектов программы. Описание процесса вычисления определителей матриц.
курсовая работа [366,1 K], добавлен 04.02.2015Сущность метода Гаусса при решении систем линейных уравнений. Элементарные преобразования этого метода. Краткое описание среды визуальной разработки Delphi. Описание основных применяемых процедур и алгоритм роботы программы по решению уравнений.
курсовая работа [1,1 M], добавлен 29.08.2010Метод Гаусса как прямой метод нахождения решений для систем системы линейных уравнений маленькой и средней размерности с помощью компьютерной техники. Редактор кода и исходный код основной программы в Delphi, блок-схема и графическое решение задачи.
контрольная работа [460,8 K], добавлен 15.06.2015