Использование современной компьютерной техники и программного обеспечения для решения прикладных задач в области геодезических измерений
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
µ уравнение системы (4.1) на и вычтем его из второго уравнения системы. (Первое и второе уравнения берем уже после перестановки, если она была необходима). Результат вычитания равен:
Так как
,
фактически исключается из второго уравнения (именно для достижения такого результата и было выбрано значение ).
Определим теперь новые коэффициенты
.
Тогда второе уравнение системы приобретает вид
(4.2)
Заменим второе из первоначальных уравнений уравнением (4.2) и введем множитель для третьего уравнения
.
Умножим первое уравнение на этот множитель и вычтем его из третьего. Коэффициент при снова становится нулевым, и третье уравнение приобретает вид
(4.3)
где
.
Если теперь в исходной системе уравнений (4.1) заменить третье уравнение на (4.3), то новая система выглядит так:
(4.4)
Эти новые уравнения полностью эквивалентны исходным уравнениям с тем преимуществом, что входит только в первое уравнение и не входит ни во второе, ни в третье. Таким образом, два последних уравнения представляют собой систему из двух уравнений с двумя неизвестными; если теперь найти решение этой системы, т.е. определить и , то результат можно подставить в первое уравнение и найти . Иначе говоря, задача сведена к решению системы из двух уравнений с двумя неизвестными.
Попытаемся теперь исключить из двух последних уравнений. Если, то снова мы переставим уравнения так, чтобы было отлично от нуля (если и , то система вырождена и либо вовсе не имеет решения, либо имеет бесчисленное множество решений).
Введем новый множитель
.
Умножим второе уравнение полученной системы (4.4) на и вычтем его из третьего. Результат вычитания равен
В силу выбора
.
Полагая, что
окончательно получим
(4.5)
Третье уравнение полученной системы (4.4) можно заменить уравнением (4.5), после чего система уравнений приобретает следующий вид:
(4.6)
Такая система уравнений (4.6) иногда называется треугольной из-за своего внешнего вида.
Для решения необходимо определить из третьего уравнения системы (4.6), подставить этот результат во второе уравнение и определить. Полученные значения и подставить в первое уравнение и определить. Этот процесс, который обычно называется обратной подстановкой (обратный ход), определяется формулами:
(4.7)
.
Необходимо отметить, если , то система уравнений вырождена.
Теперь можно обобщить этот метод на случай системы из n уравнений с n-неизвестными. Ниже записана система уравнений, приведенная к треугольному виду (4.8).
(4.8)
Формулы для вычисления неизвестных (обратный ход) будут иметь вид:
(4.9)
4.2 Постановка задачи
Решение системы линейных алгебраических уравнений методом Гаусса.
4.3 Исходные данные
4.4 Блок-схема алгоритма
Процедура для решения СЛАУ методом Гаусса
4.5 Текст программы
Program Zadacha6;
Uses CRT;
Type matrix=array [1..10,1..10] of real;
vector=array [1..10] of real;
Var
i,j:integer;
a:matrix;
x,b:vector;
t1,t:text;
Procedure Gaus (Var a:matrix; Var b:vector; x:vector);
Var k,i,j,q:integer;
d:real;
t:text;
Begin
For i:=1 to 4 do
a[i,5]:=B[i];
Assign(t,reshenie.txt);
Rewrite(t);
Writeln(Reshenie sistemu lineinix algebraicheskix yravnenii);
Writeln((kolichestvo yravnenii 4));
Writeln(sistema yravnenii:);
Writeln(t,Решение системы линейных алгебраических уравнений);
Writeln(t,(количество уравнений 4));
Writeln(t,Система уравнений:);
For i:=1 to 4 do
Begin
For j:=1 to 4 do
Write(t,a[i,j]:6:1);
Writeln(t,b[i]:6:1);
End;
For i:=1 to 4 do
Begin
For j:=1 to 4 do
Write(a[i,j]:6:1);
Writeln(b[i]:6:1);
End;
For i:=1 to 4 do Begin
d:=a[i,i];{Поиск максимума в столбце}
q:=i;
For j:=i to 4 do
If abs(a[j,i])>abs(d) then
Begin
D:=a[j,i];
q:=j;
End;
{Обмен строк}
If i<>q Then
Begin
For j:=i to 5 do
Begin
D:=a[i,j];
a[i,j]:=a[q,j];
a[q,j]:=d;
End;
End;
{Создание строки}
For j:=5 downto i do
a[i,j]:=a[i,j]/a[i,i];
{зануление столбцов, вычисление А}
For k:=i+1 to 4 do
For j:=5 downto i do
a[k,j]:=a[k,j]-a[i,j]*a[k,i];
End;{Обратный ход}
x[4]:=a[4,5];
For i:=4-1 downto 1 do begin
D:=0;
For j:=4 downto i+1 do
d:=d+a[i,j]*x[j];
x[i]:=a[i,5]-d;
end;
Writeln(t,Вектор Х:);
Writeln(Vector X:);
For i:=1 to 4 do
Write(t, x[i]:5:3, );
Writeln(t);
close(t);
Begin
For i:=1 to 4 do
Write(x[i]:5:3, );
Writeln;
End;
End;
Begin
Clrscr;
assign(t1,clay.txt);
reset(t1);
For i:=1 to 4 do
For j:=1 to 4 do
Read(t1,a[i,j]);
For i:=1 to 4 do read(t1,b[i]);
Gaus(a,b,x);
Readkey; End.
4.6 Содержание фаила clay.txt
1 -2 2 0
0 2 5 5
7 5 4 9
3 2 1 3
13 29 50 17
{Вводятся коэффициенты ("а" 4х4)}
{Вводятся результаты уравнений ("b" 1х4)}
4.7 Результаты решения
Рис. 4.2 Результаты в Turbo Pascal.
Содержание фаила reshenie.txt
Решение системы линейных алгебраических уравнений
(количество уравнений 4)
Система уравнений:
1.0 -2.0 2.0 0.0 13.0
0.0 2.0 5.0 5.0 29.0
7.0 5.0 4.0 9.0 50.0
3.0 2.0 1.0 3.0 17.0
Вектор Х:
3.000 -0.500 4.500 1.500
4.8 Табличные вычисления MS Excel
Рис. 4.3Проверка в MS Excel
Рис. 4.4 Проверка в MS Excel в режиме отображения формул
4.9 Вычисления в MathCad