Решение системы линейных уравнений методом Крамера

Автор работы: Пользователь скрыл имя, 26 Сентября 2013 в 15:33, курсовая работа

Краткое описание

Пять лет назад известная компания Borland выпустила первую версию своего средства визуального программирования Delphi. К разочарованию приверженцев фигурных скобок (в связи со спецификой языка именно так называют программистов, использующих С или С++) программы в Delphi надо было писать на языке Pascal, имеющем дурную репутацию "студенческого". Однако большинство серьёзных разработчиков вскоре поняло, что Pascal уже не "игрушка для детей", каким его можно было считать раньше, а новое профессиональное средство для быстрой разработки высококачественных программных продуктов.

Содержание

.Введение………………………………………………………………..3
2.Постановка задачи и сфера её использования…………………..…11
3.Теоретическая часть………………………………………………….12
3.1 Определители………………………………………………...12
3.2 Метод Крамера……………………………………………….16
4.Программная реализация…………………………………………….19
4.1 Представление алгоритма программы……………………...19
4.2 Описание компонентов программы………………………...20
5.Инструкция пользователя…………………………………………….33
6.Вывод…………………………………………………………………..34
7.Список литературы…………………………………………………...

Вложенные файлы: 1 файл

Пояснительная записка.doc

— 8.17 Мб (Скачать файл)

Многие производители  просто не хотят писать продукты на Delphi. Общее мнение заключается в  следующем. Microsoft написала Windows, Microsoft написала средства разработки. Вывод: мы  будем пользоваться разработками Microsoft. Что можно сказать по этому поводу?

В Microsoft прекрасно понимают, что монополизируй они средства разработки, и пользователи  потянутся к другим операционным системам. Например, уже сейчас при разработке новой  ОС Windows.NET производители программного обеспечения, в том числе и Inprise, получают  исчерпывающую информацию заранее, поэтому бояться нечего - Delphi будет продолжать  расти и развиваться.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

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

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

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

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

Программа написана на языке Delphi в среде Delphi 7. Эта программа предназначена для решения системы линейных уравнений методом Крамера.

 

 

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

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

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

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

Для того, чтобы понять суть метода Крамера, необходимо знать  такие понятия, как определитель и матрица.

3.1 Определители.( детерминанты).

 Определителем квадратной матрицы А= называется число, которое может быть вычислено по элементам матрицы  по формуле:

 

                                             det A =      где                        

 

М – детерминант матрицы, полученной из исходной вычеркиванием первой строки и k – го столбца. Следует обратить внимание на то, что определители имеют только квадратные матрицы, т.е. матрицы, у которых число строк равно числу столбцов.

 

Предыдущая формула позволяет вычислить определитель матрицы по первой строке, также справедлива формула вычисления определителя по первому столбцу:

det  A =

                      

Вообще говоря, определитель может вычисляться по любой строке или столбцу матрицы, т.е. справедлива  формула:

 

detA =

     i = 1,2,…,n.

 

Очевидно, что различные  матрицы могут иметь одинаковые определители.

 

 Определитель единичной  матрицы равен 1.

Для указанной матрицы  А число М называется дополнительным минором  элемента матрицы a1k. Таким образом, можно заключить, что каждый элемент матрицы имеет свой дополнительный минор. Дополнительные миноры существуют только в квадратных матрицах.

 

Определение. Дополнительный минор произвольного элемента квадратной матрицы aij  равен определителю матрицы, полученной из исходной вычеркиванием i-ой строки и j-го столбца.

 

Свойство1. Важным свойством определителей является следующее соотношение:

det A = det AT;

 

Свойство 2.                   det ( A ± B) = det A ± det B.

 

Свойство 3.                   det (AB) = detA×detB

 

Свойство 4.  Если в  квадратной матрице поменять местами  какие-либо две строки (или столбца), то определитель матрицы изменит знак, не изменившись по абсолютной величине.

 

Свойство 5. При умножении  столбца (или строки) матрицы на число  ее определитель умножается на это  число.

 

Определение: Столбцы (строки) матрицы называются линейно зависимыми, если существует их линейная комбинация, равная нулю, имеющая нетривиальные (не равные нулю) решения.

 

Свойство 6. Если в матрице  А строки или столбцы линейно  зависимы, то ее определитель равен  нулю.

 

Свойство 7. Если матрица содержит нулевой столбец или нулевую строку, то ее определитель равен нулю. (Данное утверждение очевидно, т.к. считать определитель можно именно по нулевой строке или столбцу.)

 

Свойство 8. Определитель матрицы не изменится, если к элементам  одной из его строк(столбца) прибавить(вычесть) элементы другой строки(столбца), умноженные на какое-либо число, не равное нулю.

 

Свойство 9. Если для элементов  какой- либо строки или столбца матрицы  верно соотношение: d = d1 ± d2  , e = e1 ± e2 , f = f1 ± f2 , то верно:

 

Пример. Вычислить определитель матрицы А =

= -5 + 18 + 6 = 19.

 

Пример:. Даны матрицы А = , В = .  Найти det (AB).

1-й способ: det A = 4 –  6 = -2;      det B = 15 – 2 = 13;         

  det (AB) = det A ×det B = -26.

 

2- й способ:  AB = ,     

 det (AB) = 7×18 - 8×19 = 126 – 152  = -26.

 

 

Матрицей называется таблица, содержащая m строк и n столбцов вида

 

 a11 a12 ..... a1n

 a21 a22 ..... a11

 . . . . . .

 am1 am2 ....amn

 

где aij – элемент матрицы, находящийся в i-той строке и j-ом столбце, где i изменяется от 1 до m, j – от 1 до n, m и n – порядки матрицы. Отсюда вытекает определение системы линейных уравнений.

Система вида a11x1+a12x2+.....+a1nxn=b1

 a21x1+a22x2+.....+a2nxn=b2

 . . . . . . . . . . .

 am1x1+am2x2+.....+amnxn=bm

где aij (i изменяется от 1 до m; j – от 1 до n) – коэффициенты при неизвестных x1, x2,…., xn, bi (i изменяется от 1 до m) – свободные члены, называется системой линейных уравнений.

3.2 Метод Крамера

Рассмотрим систему  вида

 

 a11x1+a12x2+.....+a1nxn=b1

 a21x1+a22x2+.....+a2nxn=b2

 . . . . . . . . . . .

 am1x1+am2x2+.....+amnxn=bm

 

Назовём данную систему “система 1”.

Умножим 1-е уравнение системы 1 на А11. Умножим 2-е уравнение системы 1 на А21. Умножим n-е уравнение системы 1 на Аn1. Сложим полученные уравнения:

 

(a11А11+a21А21+….+an1Аn1)x1+(a12А12+a22А21+....+an1Аn1)x1+....+(a1nА11+a2nА21+ +....+annАn1)xn=b1А11+b2А21+....+bnАn1

 

detA x1=detA1,

 

где A1 – матрица, полученная из матрицы А заменой 1-го столбца столбцом свободных членов.

 

detA x2=detA2,

 

где A2 – матрица, полученная из матрицы А заменой 2-го столбца столбцом свободных членов.

 

detA xn=detAn,

где An – матрица, полученная из матрицы А заменой n-го столбца столбцом свободных членов.

Если обозначим Δ=detA, то получим

 

 Δ x11

 Δ x22

 . . . .

 Δ xnn

 

где Δi – определитель, полученный из определителя Δ заменой i-го столбца столбцом свободных членов системы 1.

Назовём данную систему  “система 2”.

Рассмотрим 3 случая:

1) Если в системе  2 Δ≠0, то x11/Δ, x22/Δ, ….. , xnn/Δ. Полученные формулы называются формулами Крамера.

2) Если в системе  2 Δ=0 и все Δi=0 для любого i, изменяющегося от 1 до n, то система имеет бесчисленное множество решений.

3)Если в системе  2 Δ=0 и существует Δi≠0, то решения системы 2 не существуют [1].

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4 ПРОГРАММНАЯ РЕАЛИЗАЦИЯ

4.1 Представление алгоритма программы

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

 

 

 

Рисунок 4.1 – Алгоритм выполнения программы

 

 

 

 


 

 

 

 

 

 

 

 

 

 

 

.


 

Рисунок 4.2 – Алгоритм функции Kramer

 

 

 

4.2 Описание компонентов программы

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

Все программы на языке Delphi состоят из одной или нескольких функций  и процедур. В данной  программе содержится 27 процедур и 1 функция.

В программе существует 5 форм: fmMain, fAbout, fmReport, fmSetting,

1.При запуске программы появляется главная форма fmMain.

 

 

 На этой форме расположены объекты типа:Тpanel1(2), ТGroupBox (2), ТstringGrid(1) , ТlistBox() , Тlabel(1) , ТspinEdit(1) , ТBitBtn1(3) , Тbutton(2) , TmainMenu(1) , TOpenDialog (1) TSaveDialog (1).Они предназначены для реализации ввода и вывода данных.

С помощью компонента  типа ТspinEdit можно изменять количество уравнений.

Ввод уравнений (коэффициентов при неизвестных) осуществляется при помощи таблицы(StringGrid)

Результат (корни уравнения) выводится в компонент типа TlistBox.

При нажатии на кнопку Решить реализуется основная  процедура программы(procedure TfmMain.btGoClick(Sender: TObject))).

Эта процедура непосредственно  производит расчёты корней уравнения  по методу Крамера.  Данные берёт  из таблицы и выводит в ListBox.

 

 При нажатии   но кнопку Заполнить  таблица заполняется случайными числами в выбранном диапазоне, при этом реализуется процедура :procedure TfmMain.Button1Click(Sender: TObject).

 

 

Кнопка  Очистить даёт возможность очистить таблицу от введённых данных и поля для вывода корней, реализуется с помощью процедуры: procedure TfmMain.btClearClick(Sender: TObject).

При нажатии на кнопку Отчёт появляется форма: fmReport, реализуется с помощью процедуры: procedure TfmMain.btReportClick(Sender: TObject) .

Кнопка Отчёт становится активной только после решения системы уравнений.

 

Кнопка Выход предназначена для выхода из приложения. За выход отвечает процедура: procedure TfmMain.BitBtn1Click(Sender: TObject).

Для того чтобы сохранить систему уравнений в файл нужно выбрать пункт меню Фай      Сохранить систему. Сохранение системы осуществляется с помощью процедуры: procedure TfmMain.N2Click(Sender: TObject).


Для того чтобы открыть систему  уравнений из файл нужно выбрать  пункт меню Фай      Загрузить систему. Загрузка


 системы осуществляется  с помощью процедуры: procedure TfmMain.N3Click(Sender: TObject).

 

Пункт меню Фай      Выход предназначен для выхода из приложения.


Реализуется с помощью  процедуры : procedure TfmMain.N5Click(Sender: TObject).

Пункт меню Настройки       Параметры предназначен для настройки параметров ввода и вывода данных, при нажатии появляется форма: fmSettin. Реализуется с помощью процедуры: procedure TfmMain.N7Click(Sender: TObject).


Пункт меню О программе предназначен для получения данных о программе, при нажатии появляется форма fAbout. Выполняется процедура: procedure TfmMain.N8Click(Sender: TObject).

2.Форма fmReport появляется при нажатии на кнопку Отчёт.

На ней находятся объекты типа: Tmemo(1), TbitBtn(4), TprintDialog(1).

Компонент  типа Tmemo предназначен для вывода текста отчёта.

Кнопка Печать используется для вывода на печать текста отчёта. При нажатии на кнопку выполняется процедура: procedure TfmReport.BitBtn2Click(Sender: TObject).

Кнопка Очистить предназначена для очистки поля, реализуется процедура: procedure TfmReport.BitBtn3Click(Sender: TObject).

Информация о работе Решение системы линейных уравнений методом Крамера