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

Разработка программного продукта на языке Delphi 7.0. Матричный метод решения однородных и неоднородных систем линейных уравнений. Разработка интерфейса. Тестирование и описание объектов программы. Описание процесса вычисления определителей матриц.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 04.02.2015
Размер файла 366,1 K

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

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

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

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

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

Содержание

Введение

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

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

1.2 Вывод формул

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

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

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

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

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

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

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

Заключение

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

Приложение А

Введение

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

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

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

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

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

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

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

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

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

A = , X =

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

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

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

.

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

1.2 Ввод формул

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

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

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

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

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

Пример.

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

.

Решение.

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

.

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

,

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

Мы знаем, что для матрицы обратная матрица может быть найдена как

,

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

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

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

Ответ:

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.3 Описание объектов программы

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

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

Таблица №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

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

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

=3 - 14 + 10 - 1 - 105 + 4 = - 103;

Теперь вычислим алгебраические дополнения для элементов матрицы, состоящей из коэффициентов при неизвестных. Они нам понадобятся для нахождения обратной матрицы.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

На рисунке 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. Т Сухарев М.В. Delphi. Профессиональный подход: учебное пособие для студентов среднего профессионального образования / М.В.Сухарев. - М.: Наука и техника, 2010. - 600 с.

Приложение А

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.

Размещено на Allbest.ru


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

  • Сущность матричного метода. Разработка программы решения системы уравнений линейных алгебраических уравнений методом решения через обратную матрицу на языке программирования Delphi. Представление блок-схемы и графического интерфейса программного продукта.

    курсовая работа [1,0 M], добавлен 27.09.2014

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

    курсовая работа [193,7 K], добавлен 07.07.2013

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

    курсовая работа [137,3 K], добавлен 20.07.2010

  • Разработка программного продукта для решения систем линейных алгебраических уравнений методом Гаусса с помощью ЭВМ. Математическое описание объекта моделирования, начальные и граничные условия. Алгоритм реализации задачи. Использование модуля CRT.

    курсовая работа [269,6 K], добавлен 07.01.2016

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

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

  • Системы линейных алгебраических уравнений. Матричный метод решения систем линейных уравнений. Решение задачи математическим методом. Блок-схема алгоритма и листинг программы. Расчет трудоемкости разработки программы. Расчет себестоимости и цены программы.

    дипломная работа [144,8 K], добавлен 25.04.2012

  • Характеристика влияния компьютера на здоровье человека. Определение корней уравнения в Microsoft Excel с точностью до шестого знака после запятой. Решение системы линейных уравнений методом вычисления определителей и матричным способом в Microsoft Excel.

    контрольная работа [734,0 K], добавлен 19.03.2012

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

    курсовая работа [563,3 K], добавлен 12.07.2012

  • Сущность метода Гаусса при решении систем линейных уравнений. Элементарные преобразования этого метода. Краткое описание среды визуальной разработки Delphi. Описание основных применяемых процедур и алгоритм роботы программы по решению уравнений.

    курсовая работа [1,1 M], добавлен 29.08.2010

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

    курсовая работа [858,5 K], добавлен 01.12.2013

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