Автор работы: Пользователь скрыл имя, 18 Мая 2012 в 08:33, курсовая работа
Метод Гаусса решения систем линейных уравнений состоит в последовательном исключении неизвестных и описывается следующей процедурой.
С помощью элементарных преобразований над строками и перестановкой столбцов расширенная матрица системы может быть приведена к виду
Постановка задачи
Теоретическая часть
Методы решения примененные в программе
Метод Гаусса.
Метод Жордана-Гаусса.
Краткое описание среды визуальной разработки Delphi
Таблица основных обозначений программы.
Описание процедур и алгоритм роботы программы
Текст программы.
Файл-модуль unit1.pas
Файл-модуль unit2.pas
Файл проекта - Project1.dpr:
Результат работы программы.
Инструкция по работе с программой
Использованная Литература
i,j,k,l,nv,irow,
determ,pivot,hold,
{++++++++++++++++++++++++
procedure swap(var a,b: real);
var hold:real;
begin
hold:=a;
a:=b;
b:=hold
end;
{++++++++++++++++++++++++
{@@@@@@@@@@@@@@@@@@@@@@@@
procedure gausj2;
var i,j,k,l,l1:integer;
{========================
procedure gausj3;
var l:integer;
begin
if irow<>icol then
begin
determ:=-determ;
for l:=1 to n do
swap(b[irow,l],b[icol,l]
if nv>0 then
for l:=1 to nv do
swap(w[irow,l],w[
end
end;
{========================
begin
error:=false;
nv:=1;
n:=ncol;
for i:=1 to n do
begin
w[i,1]:=y[i];
index[i,3]:=0
end;
determ:=1.0;
for i:=1 to n do
begin
big:=0.0;
for j:=1 to n do
begin
if index[j,3]<>1 then
begin
for k:=1 to n do
begin
if index[k,3]>1 then
begin
error:=true;
exit;
end;
if index[k,3]<1 then
if abs(b[j,k])>big then
begin
irow:=j;
icol:=k;
big:=abs(b[
end
end
end
end;
index[icol,3]:=index[
index[i,1]:=irow;
index[i,2]:=icol;
gausj3;
pivot:=b[icol,icol];
determ:=determ*pivot;
b[icol,icol]:=1.0;
for l:=1 to n do
b[icol,l]:=b[icol,l]/
if nv>0 then
for l:=1 to nv do
w[icol,l]:=w[icol,l]/
for l1:=1 to n do
begin
if l1<>icol then
begin
t:=b[l1,icol];
b[l1,icol]:=0.0;
for l:=1 to n do
b[l1,l]:=b[l1,l]-
if nv>0 then
for l:=1 to nv do
w[l1,l]:=w[l1,l]-
end
end
end;
end;
{@@@@@@@@@@@@@@@@@@@@@@@@
begin
gausj2;
if error then exit;
for i:=1 to n do
begin
l:=n-i+1;
if index[l,1]<>index[l,2] then
begin
irow:=index[l,1];
icol:=index[l,2];
for k:=1 to n do
swap(b[k,irow],b[
end
end;
for k:=1 to n do
if index[k,3]<>1 then
begin
error:=true;
exit;
end;
for i:=1 to n do
coef[i]:=w[i,1];
end;
{************************
end.
program
Project1;
uses
Forms,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas';
{$R
*.res}
begin
Application.Initialize;
Application.Title := 'Gauss&J-Gauss';
Application.CreateForm(
Application.Run;
end.
Результаты
сохраненные
в файле:
2 1 1 |2
3 2 3 |6
6 5 4 |5
Gauss
X1=-7,4
X2=1,2
X3=2,2
J-Gauss
X1=-7,4
X2=1,2
Информация о работе Математические методы Метод Жардана-Гаусса