Использование современной компьютерной техники и программного обеспечения для решения прикладных задач в области геодезических измерений
окончательно получим
(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 Блок-схема алгоритма
|
Блок-схема процедуры «Gaus»:
Рис. 4.2 Блок-схема процедуры «Gaus»
4.5 Текст программы
Файл исходных данных
1 -1 1 -3
2 18 0 5
1 5 2 6
0 1 1 2
15 83 18 8
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 sistemy lineinygh algebraicheskigh uravneniy');
Writeln('(kolichestvo uravneniy 4)');
Writeln('Sistema uravneniy:');
Writeln(t,'Reshenie sistemy lineinygh algebraicheskigh uravneniy');
Writeln(t,'(kolichestvo uravneniy 4)');
Writeln(t,'Sistema uravneniy:');
For i:=1 to 4 do
Begin
For j:=1 to 4 do
Write(t,a[i,j]:6:1,'x[',j,'] ');
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,'x[',j,'] ');
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,'Vector X:');
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 Результаты работы программы
Рис.4.3 Результат работы программы
Reshenie sistemy lineinygh algebraicheskigh uravneniy
(kolichestvo uravneniy 4)
Sistema uravneniy:
1.0x[1] -1.0x[2] 1.0x[3] -3.0x[4] 15.0
2.0x[1] 18.0x[2] 0.0x[3] 5.0x[4] 83.0
1.0x[1] 5.0x[2] 2.0x[3] 6.0x[4] 18.0
0.0x[1] 1.0x[2] 1.0x[3] 2.0x[4] 8.0
Вектор Х:
-7.671 7.063 12.456 -5.759
4.7 Проверка в MS Excel
Рис.4.4 Проверка в MS Excel
Рис.4.5 Лист Excel в режиме отображения формул
4.8 Проверка в MathCad
Рис.4.6 Проверка методом Гаусса
Рис.4.7 Проверка методом Крамера
Рис.4.8 Проверка методом приведения матрицы к треугольному виду
Рис.4.9 Проверка с использованием обратной матрицы
4.9 Анализ результатов
На рис. 4.5 - 4.10 Выполнена проверка решения системы линейных алгебраических уравнений разными методами. Сравнивая полученные результаты с результатами работы программы и ее проверки в табличном редакторе MS Excel, можно сделать вывод о правильности работы программы и правильности выбора алгоритма решения поставленной задачи.
Заключение
В ходе выполнения курсовой работы было выполнено четыре задания: три типовые геодезические задачи («Обратная геодезическая задача», «Прямая угловая засечка», «Обратная геодезическая засечка»), и одна математическая задача «Решение системы линейных алгебраических уравнений методом Гаусса». Поставленные задачи решались с помощью языка программирования Turbo Pascal с последующей проверкой в математическом пакете MathCad 14.0 и табличном процессоре MS Excel 2007. Судя по полученным результатам и их проверки можно удостовериться в правильности работы предложенных программ.
Другие рефераты на тему «Программирование, компьютеры и кибернетика»:
Поиск рефератов
Последние рефераты раздела
- Основные этапы объектно-ориентированного проектирования
- Основные структуры языка Java
- Основные принципы разработки графического пользовательского интерфейса
- Основы дискретной математики
- Программное обеспечение системы принятия решений адаптивного робота
- Программное обеспечение
- Проблемы сохранности информации в процессе предпринимательской деятельности