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

Введение


Решение систем линейных алгебраических уравнений (СЛАУ) является одной из основных задач линейной алгебры. Эта задача имеет важное прикладное значение при решении научных и технических проблем. Кроме того, является вспомогательной при реализации многих алгоритмов вычислительной математики, математической физики, обработки результатов экспериментальных исследований. В нашей программе мы реализуем решение систем линейных уравнений «матричным методом».

Сначала выясним смысл решения систем линейных уравнений «матричным методом», выведем формулу для вычисления линейных уравнений. Следом перейдем к решению характерных примеров, снабдим их подробными комментариями.

После проведенного обзора программных средств мы выбрали среду программирования наиболее подходящую нам как очень удобное средство для разработки данного программного продукта. Delphi 7 является наиболее выгодной нам средой программирования.


1.Теоретическая часть


1.1 Описание метода


Матричный метод решения (метод решения через обратную матрицу <#"9" src="doc_zip1.jpg" />неизвестными (над произвольным полем):



Тогда её можно переписать в матричной форме:

где - основная матрица системы, и - столбцы свободных членов и решений системы соответственно:


A = , B = , X =


Умножим это матричное уравнение слева на - матрицу, обратную к матрице A:



Умножим это матричное уравнение слева на - матрицу, обратную к матрице A:


Так как , получаем . Правая часть этого уравнения даст столбец решений исходной системы. Условием применимости данного метода (как и вообще существования решения неоднородной системы линейных уравнений с числом уравнений, равным числу неизвестных) является не вырожденность <#"22" src="doc_zip27.jpg" />.


Для однородной системы линейных уравнений, то есть когда вектор , действительно обратное правило: система имеет нетривиальное (то есть ненулевое) решение только если . Такая связь между решениями однородных и неоднородных систем линейных уравнений носит название альтернативы Фредгольма <#"justify">1.2 Ввод формул


Пусть для матрицы А порядка n на n существует обратная матрица . Умножим обе части матричного уравнения слева на (порядки матриц и В позволяют произвести такую операцию, смотрите статью операции над матрицами, свойства операций <#"22" src="doc_zip43.jpg" />. Так как для операции умножения матриц подходящих порядков характерно свойство ассоциативности, то последнее равенство можно переписать как , а по определению обратной матрицы (E - единичная матрица порядка n на n), поэтому


Таким образом, решение системы линейных алгебраических уравнений матричным методом определяется по формуле Другими словами, решение СЛАУ находится с помощью обратной матрицы .

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


1.3 Примеры решения систем линейных алгебраических уравнений матричным методом


Рассмотрим матричный метод на примерах. В некоторых примерах мы не будем подробно описывать процесс вычисления определителей матриц, при необходимости обращайтесь к статье вычисление определителя матрицы <#"54" src="doc_zip58.jpg" />.

Решение.

В матричной форме исходная система запишется как , где


.


Вычислим определитель основной матрицы и убедимся, что он отличен от нуля. В противном случае мы не сможем решить систему матричным методом. Имеем


,


следовательно, для матрицы А может быть найдена обратная матрица . Таким образом, если мы отыщем обратную матрицу, то искомое решение СЛАУ определим как . Итак, задача свелась к построению обратной матрицы . Найдем ее.

Мы знаем, что для матрицы обратная матрица может быть найдена как , где - алгебраические дополнения элементов a_11,a_12,a_21,a_22

В нашем случае:



Тогда:


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



Следовательно, решение найдено верно.

Ответ:

или в другой записи .


2. Практическая часть


2.1 Блок-схема программы


На рисунке 1 представлена блок-схема программы:


Рисунок 1 ? Блок-схема матричного метода

2.2 Разработка интерфейса


Графический интерфейс представляет собой стандартный набор компонентов Delphi. Были использованы компоненты Form, Edit, Label, Button, MainMenu, StringGrid.

Компонент Label предназначен для показа текста на форме нашей программы.

Компонент Edit предназначен для ввода пользовательских данных и представляет собой однострочное поле.

Компонент Button это стандартная кнопка Delphi, кнопка имеет на поверхности надпись (описывающая её назначение при нажатии).

Компонент MainMenu - это не визуальный компонент delphi(место размещения которого на форме не имеет значения для пользователя, так как он увидит не сам компонент, а меню, сгенерированное им), предназначенный для вывода главного меню на форме.

Компонент Form - это важнейший визуальный компонент, который представляет собой видимое окно Windows.

Компонент StringGrid - предназначен для отображения различных данных в табличной форме.

На рисунке 2 отображена начальная форма программы:

Рисунок 2 - Объекты формы


2.3 Описание объектов программы


В таблице №1 представлено описание всех объектов, которые задействованы в программе:

линейное уравнение матричный программа

Таблица №1 - Описание объектов:

ОбъектыОписание объектаButton1Кнопка создания размерности массива.Button2Кнопка, вычисления метода.Edit1Ввод размерности.Label1Надпись для поля StringGrin1.Label2Надпись для поля StringGrin2.Label3Надпись для поля Edit1.StringGrit1Ввод данных.StringGrit2Вывод данных.MainMenuГлавное меню окна программы.

.4 Тестирование программы


Пример 1.

В поле Edit1 вводим размерность таблицы 3.

Нажмём кнопку «Создать таблицу», в StringGrid1 появится 3 строки и 4 столбца.

В StringGrid1 вводим необходимые значения, как показано в таблице№2


Таблица№2 - Ввод значений:

32-142-152317-15

Нажимаем кнопку «Выполнить решение», в компонент StringGrid2 получаем результат показанный в таблице№3


Таблица№3 - Вывод значений:

X(1)2.000X(2)1.000X(3)4.000

Для подтверждения этих данных сделаем перевод математическим способом:

Сначала убедимся в том, что определитель матрицы <#"59" src="doc_zip102.jpg" />=




Далее найдём союзную матрицу <#"60" src="doc_zip119.jpg" />


Подставляя переменные в формулу, получаем:


Осталось найти неизвестные. Для этого перемножим <#"22" src="doc_zip126.jpg" />


Итак, x=2; y=1; z=4.


2.5 Руководство пользователя


Открываем каталог практика, и запускаем файл ObrMatP1.exe, откроется главное окно программы (Рисунок 3):


Рисунок 3 - Интерфейс программы

В поле Edit1 вводим размерность таблицы;

Нажмём на кнопку Button1 «Создать таблицу»;

В поле StringGrid1 вводим значения;

Нажмём на кнопку Button2 «Выполнить решение»;

В поле StringGrid2 появится результат вычисления;

Для дополнительных сведений, нажмите на компонент меню: «Справка»;

Если необходимо очистить поля для ввода данных, нажмите на компонент меню «Очистить»;

Если необходимо выйти из формы, нажмите на компонент меню «Выход»;

На рисунке 4 показана выполненная программа, в которой введены значения. Выведен результат.


Рисунок 4 - Руководство пользователя


Заключение


В данной курсовой работе решена задача решения систем линейных уравнений «матричным методом».

В ходе тестирования был получен результат решения систем линейных уравнений «матричным методом», по которому видно, что результат метода совпадает с достаточной точностью.

Программа является полностью работоспособной, что подтверждается результатами её тестированием.

Данная программа была написана на языке Delphi 7.0. При разработке программы были учтены все требования к программе и выполнены в полной мере.

При разработке данной программы я закрепил знания по программированию в среде Delphi 7.0, также получил некоторые новые знания при разработке этой программы.


Список используемой литературы


1.Абрамовица М. Справочник по специальным формулам и функциям / М. Абрамовица, И. Стиган. - М.: Наука, 2010. - 832 с.

.Боглаев Ю.П. Вычислительная математика и программирование / Ю.П. Боглаев. - М.: Высшая школа, 2011. - 554 с.

. Березин И.С., Жидков Н.П. Методы вычислений т.2 / И.С. Березин.- М.: Физматгиз, 2012.- 264 с.

. Вычислительная математика / Н.И. Данилина, Н.С. Дубровская, О.П. Кваша, Г.С. Смирнов. - М.: Высшая школа, 2011.- 472 с.

.Гаврилов М.В. Информатика и ИТ: учебное пособие / М.В. Гаврилов. - М: Гардарик, 2010. - 656 с.

.Данилина Н.И., Дубровская Н.С. Численные методы для техникумов / Н.И. Данилина, Н.С. Дубровская. - М.: Высшая школа, 2012. - 368 с.

.Демидович Б.П. Основы вычислительной математики / Б.П. Демидович, И.А. Марон. - М.: Наука, 2011. - 664 с.

.Киреев В.И., Пантелеев А.В. Численные методы в примерах и задачах / В.И. Киреев, А.В. Пантелеев. - М.: Высшая школа, 2010. - 480 с.

.Кузнецов В.В. Основы объектно-ориентированного программирования в Delphi: учебное пособие / В.В. Кузнецов, И.В. Абдрашитова. - Томск: ТУСУР, 2010. - 180 с.

.Марчук Г.И. Методы вычислительной математики / Г.И. Марчук.- М.: Наука, 2010. - 456 с.

.Поршнев С.В. Вычислительная математика. Курс лекций / С.В. Поршнев. - С-Пб.: БХВ-Петербург, 2012.- 320 с.

.Пирумов У.Г. Численные методы / У.Г. Пирумов. - М.: Издательство МАИ, 2010. - 188 с.


Приложение А

ObrMatU1;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, Grids, StdCtrls, XPMan, Menus;= class(TForm): TButton;: TButton;: TEdit;: TLabel;: TStringGrid;: TLabel;: TXPManifest;: TStringGrid;: TLabel;: TMainMenu;: TMenuItem;: TMenuItem;: TMenuItem;Button1Click(Sender: TObject);Button2Click(Sender: TObject);N1Click(Sender: TObject);N2Click(Sender: TObject);N3Click(Sender: TObject);

{ Private declarations }

{ Public declarations };: TForm1;ObrMatM, Unit2;

{$R *.dfm}TForm1.Button1Click(Sender: TObject);n,col,row:integer;:=strtoint(edit1.Text);

tab1.ColCount:=n+1; // Колонки в таблице.RowCount:=n; // Количество строк в таблице.ColCount:=2; // Колонки в таблице.RowCount:=n; // Количество строк в таблице

col:=0;row:=0 to n do.Cells[col,row]:='X('+inttostr(row+1)+')';; end;TForm1.Button2Click(Sender: TObject);a,b,c:Tmatrix;f,x:Tmass;:Real;,k,j:integer;:=strtoint(edit1.Text);

Setlength(a,n,n); //транспонированная матрица A

for k:=0 to n-1 doj:=0 to n-1 do begin[k,j]:=strtofloat(Tab1.Cells[k,j]);

end;(b,n,n);//присоединенная матрица В(n,a,b); // вычисление присоединенной матрицы(c,n,n); //обратная матрица С

for k:=0 to n-1 doj:=0 to n-1 do[k,j]:=strtofloat(Tab1.Cells[j,k]);//исходная матрица

end;(n,det,c);//вычисление определителяc[n-1,n-1]=0 then Showmessage('Обратная матрица не существует');

for k:=0 to n-1 doj:=0 to n-1 do

begin[k,j]:=b[k,j]/det;//деление на определитель;

//нахождение корней(f,n);//массив сободных членов

for k:=0 to n-1 do begin[k]:=strtofloat(Tab1.Cells[n,k]);;(x,n);//массив корней

Resh(n,b,f,x);//нахождение корней

for j:=0 to n-1 do.Cells[1,j]:=floattostrF(x[j],ffFixed,5,3);; end;TForm1.N1Click(Sender: TObject);.Showmodal;;TForm1.N2Click(Sender: TObject);i: Integer;i := 0 to Tab1.ColCount - 1 do Tab1.Cols[i].Clear;i := 0 to Tab2.ColCount - 1 do Tab2.Cols[i].Clear;.Clear;;TForm1.N3Click(Sender: TObject);Form1.Close; end;.


Теги: Решение систем линейных уравнений матричным методом  Курсовая работа (теория)  Математика
Просмотров: 37537
Найти в Wikkipedia статьи с фразой: Решение систем линейных уравнений матричным методом
Назад