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

Матричный метод решения систем линейных алгебраических уравнений с ненулевым определителем. Примеры вычисления определителя матрицы. Блок-схема программы, описание объектов. Графический интерфейс, представляющий собой стандартный набор компонентов Delphi.

Рубрика Математика
Вид курсовая работа
Язык русский
Дата добавления 29.06.2014
Размер файла 1,4 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru

Введение

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

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

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

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

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

Матричный метод решения (метод решения через обратную матрицу) систем линейных алгебраических уравнений с ненулевым определителем состоит в следующем.

Пусть дана система линейных уравнений с неизвестными (над произвольным полем):

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

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

A = , B = , X =

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

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

Так как , получаем . Правая часть этого уравнения даст столбец решений исходной системы. Условием применимости данного метода (как и вообще существования решения неоднородной системы линейных уравнений с числом уравнений, равным числу неизвестных) является не вырожденность матрицы A. Необходимым и достаточным условием этого является неравенство нулю определителя матрицы A:

.

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

1.2 Ввод формул

Пусть для матрицы А порядка n на n существует обратная матрица . Умножим обе части матричного уравнения слева на (порядки матриц  и В позволяют произвести такую операцию, смотрите статью операции над матрицами, свойства операций). Имеем . Так как для операции умножения матриц подходящих порядков характерно свойство ассоциативности, то последнее равенство можно переписать как , а по определению обратной матрицы (E - единичная матрица порядка n на n), поэтому

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

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

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

Рассмотрим матричный метод на примерах. В некоторых примерах мы не будем подробно описывать процесс вычисления определителей матриц, при необходимости обращайтесь к статье вычисление определителя матрицы.

Пример.

С помощью обратной матрицы найдите решение системы линейных уравнений .

Решение.

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

.

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

,

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

Мы знаем, что для матрицы обратная матрица может быть найдена как , где - алгебраические дополнения элементов 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

Главное меню окна программы.

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

Пример 1.

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

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

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

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

3

2

-1

4

2

-1

5

23

1

7

-1

5

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

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

X(1)

2.000

X(2)

1.000

X(3)

4.000

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

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

=



Далее найдём союзную матрицу, транспонируем её и подставим в формулу для нахождения обратной матрицы.

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

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

Итак, 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 с.

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

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

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

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

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

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

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

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

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

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

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

Приложение А

unit ObrMatU1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Grids, StdCtrls, XPMan, Menus;

type

TForm1 = class(TForm)

Button1: TButton;

Button2: TButton;

Edit1: TEdit;

Label1: TLabel;

Tab1: TStringGrid;

Label2: TLabel;

XPManifest1: TXPManifest;

Tab2: TStringGrid;

Label5: TLabel;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure N1Click(Sender: TObject);

procedure N2Click(Sender: TObject);

procedure N3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

uses ObrMatM, Unit2;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

var n,col,row:integer;

begin

n:=strtoint(edit1.Text);

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

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

tab2.ColCount:=2; // Колонки в таблице

tab2.RowCount:=n; // Количество строк в таблице

col:=0;

for row:=0 to n do

begin

tab2.Cells[col,row]:='X('+inttostr(row+1)+')';

end; end;

procedure TForm1.Button2Click(Sender: TObject);

var a,b,c:Tmatrix;f,x:Tmass;

det:Real;

n,k,j:integer;

begin

n:=strtoint(edit1.Text);

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

for k:=0 to n-1 do

for j:=0 to n-1 do begin

a[k,j]:=strtofloat(Tab1.Cells[k,j]);

end;

Setlength(b,n,n);//присоединенная матрица В

Peresch(n,a,b); // вычисление присоединенной матрицы

Setlength(c,n,n); //обратная матрица С

for k:=0 to n-1 do

for j:=0 to n-1 do

begin

c[k,j]:=strtofloat(Tab1.Cells[j,k]);//исходная матрица

end;

Opr(n,det,c);//вычисление определителя

if c[n-1,n-1]=0 then Showmessage('Обратная матрица не существует');

for k:=0 to n-1 do

for j:=0 to n-1 do

begin

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

end;

//нахождение корней

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

for k:=0 to n-1 do begin

f[k]:=strtofloat(Tab1.Cells[n,k]);

end;

Setlength(x,n);//массив корней

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

for j:=0 to n-1 do

begin

tab2.Cells[1,j]:=floattostrF(x[j],ffFixed,5,3);

end; end;

procedure TForm1.N1Click(Sender: TObject);

begin

Form2.Showmodal;

end;

procedure TForm1.N2Click(Sender: TObject);

var i: Integer;

begin

for i := 0 to Tab1.ColCount - 1 do Tab1.Cols[i].Clear;

for i := 0 to Tab2.ColCount - 1 do Tab2.Cols[i].Clear;

Edit1.Clear;

end;

procedure TForm1.N3Click(Sender: TObject);

begin Form1.Close; end;

end.


Подобные документы

  • Сущность и содержание метода Крамера как способа решения квадратных систем линейных алгебраических уравнений с ненулевым определителем основной матрицы. Содержание основных правил Крамера, сферы и особенности их практического применения в математике.

    презентация [987,7 K], добавлен 22.11.2014

  • Основные действия над матрицами, операция их умножения. Элементарные преобразования матрицы, матричный метод решения систем линейных уравнений. Элементарные преобразования систем, методы решения произвольных систем линейных уравнений, свойства матриц.

    реферат [111,8 K], добавлен 09.06.2011

  • Основные правила решения системы заданных уравнений методом Гаусса с минимизацией невязки и методом простых итераций. Понятие исходной матрицы; нахождение определителя для матрицы коэффициентов. Пример составления блок-схемы метода минимизации невязок.

    лабораторная работа [264,1 K], добавлен 24.09.2014

  • Задачи вычислительной линейной алгебры. Математическое моделирование разнообразных процессов. Решение систем линейных алгебраических уравнений большой размерности. Метод обратной матрицы и метод Гаусса. Критерии совместности и определенности системы.

    курсовая работа [220,0 K], добавлен 21.10.2011

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

    реферат [66,4 K], добавлен 14.08.2009

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

    курсовая работа [59,8 K], добавлен 27.03.2011

  • Изучение основ линейных алгебраических уравнений. Нахождение решения систем данных уравнений методом Гаусса с выбором ведущего элемента в строке, в столбце и в матрице. Выведение исходной матрицы. Основные правила применения метода факторизации.

    лабораторная работа [489,3 K], добавлен 28.10.2014

  • Характеристика способов решения систем линейных алгебраических уравнений (СЛАУ). Описание проведения вычислений на компьютере методом Гаусса, методом квадратного корня, LU–методом. Реализация метода вращений средствами системы программирования Delphi.

    курсовая работа [118,4 K], добавлен 04.05.2014

  • Основные понятия теории систем уравнений. Метод Гаусса — метод последовательного исключения переменных. Формулы Крамера. Решение систем линейных уравнений методом обратной матрицы. Теорема Кронекер–Капелли. Совместность систем однородных уравнений.

    лекция [24,2 K], добавлен 14.12.2010

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

    контрольная работа [397,2 K], добавлен 13.12.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.