- •Структура и содержание отчета
- •1. Теоретические сведения
- •2. Порядок выполнения работы
- •3. Задание к лабораторной работе
- •Лабораторная работа № 2 Тема: Решение нелинейных уравнений методом половинного деления
- •1. Теоретические сведения
- •1.1. Отделение корней нелинейных уравнений
- •1.2. Метод половинного деления.
- •2. Порядок выполнения работы
- •3. Задание к лабораторной работе
- •Лабораторная работа № 3 Тема: Решение нелинейных уравнений методом хорд
- •1. Теоретические сведения
- •2. Порядок выполнения работы
- •3. Задание к лабораторной работе
- •Лабораторная работа № 4 Тема: Решение нелинейных уравнений методом Ньютона (касательных)
- •1. Теоретические сведения
- •2. Порядок выполнения работы
- •3. Задание к лабораторной работе
- •Лабораторная работа № 5 Тема: Решение систем линейных уравнений методом главных элементов
- •2. Теоретические сведения
- •2. Порядок выполнения работы
- •3. Задание к лабораторной работе
- •Лабораторная работа № 6 Тема: Решение систем линейных уравнений методом итераций
- •1. Теоретические сведения
- •2. Порядок выполнения работы
- •3. Задание к лабораторной работе
- •Лабораторная работа № 7 Тема: Решение систем линейных уравнений методом Зейделя
- •1. Теоретические сведения
- •2. Порядок выполнения работы
- •3. Задание к лабораторной работе
- •Лабораторная работа № 8 Тема: Решение систем нелинейных уравнений методом итераций
- •1. Теоретические сведения
- •2. Порядок выполнения работы
- •3. Задание к лабораторной работе
- •Лабораторная работа № 9 Тема: Решение систем нелинейных уравнений методом Ньютона
- •Теоретические сведения
- •Порядок выполнения работы
- •3. Задание к лабораторной работе
- •Лабораторная работа № 10 Тема: Решение обыкновенных дифференциальных уравнений методом Эйлера
- •1. Теоретические сведения
- •2. Порядок выполнения работы
- •Задание к лабораторной работе
- •Лабораторная работа № 11 Тема: Решение обыкновенных дифференциальных уравнений модифицированным методом Эйлера
- •1. Теоретические сведения
- •2. Порядок выполнения работы
- •3. Задание к лабораторной работе
- •Лабораторная работа № 12 Тема: Решение обыкновенных дифференциальных уравнений методом Рунге-Кутта
- •1. Теоретические сведения
- •1.1. Метод Рунге-Кутта
- •1.2. Точность методов приближенного вычисления
- •2. Порядок выполнения работы
- •3. Задание к лабораторной работе
- •Лабораторная работа № 13 Тема: Интерполяционный многочлен Лагранжа
- •1. Теоретические сведения
- •2. Порядок выполнения работы
- •3. Задание к лабораторной работе
- •Лабораторная работа № 14 Тема: Интерполяционные многочлены Ньютона
- •1. Теоретические сведения
- •2. Порядок выполнения работы
- •3. Задание к лабораторной работе
Лабораторная работа № 5 Тема: Решение систем линейных уравнений методом главных элементов
Цель работы: Найти корни системы линейных уравнений методом главных элементов.
2. Теоретические сведения
Метод применяется для решения систем линейных уравнений. Пусть для определенности это система третьего порядка вида
,
(1)
где
неизвестные
элементы (корни системы),
элементы
расширенной матрицы системы.
Алгоритм решения системы включает два этапа.
1 этап
(прямой ход) состоит в последовательном
исключении неизвестных из уравнений,
начиная с
.
Из первого уравнения системы находим неизвестное
(2)
Это
возможно, если
не равен нулю. В
противном случае, необходимо провести
перестройку уравнений системы.
Таким образом, согласно (2), надо каждый элемент первой строки расширенной матрицы системы линейных уравнений разделить на диагональный элемент.
Затем подставляем
выражение (2) во все остальные уравнения
системы, исключая таким образом
из всех уравнений, кроме первого. В
результате исключения первого неизвестного
из всех уравнений все элементы первого
столбца преобразованной матрицы равны
нулю.
Неизвестное
выражаем
из другого уравнения и исключаем из
остальных уравнений и т.д.
В результате получим систему линейных уравнений с верхней треугольной матрицей, у которой все элементы нижней главной диагонали равны нулю.
2 этап (обратный ход) заключается в последовательном определении значений неизвестных, начиная с последнего.
Метод главных элементов является точным методом, и погрешность результата определяется только погрешностью округления при выполнении арифметических действий.
Известный метод Гаусса для решения систем линейных уравнений является частным случаем метода главных элементов.
2. Порядок выполнения работы
Использовать компьютерную программу из приложения для определения корней системы линейных уравнений.
Выполнить проверку, подстановкой значений корней в исходную систему.
Все вычисления проводить с четырьмя знаками в дробной части десятичного числа.
3. Задание к лабораторной работе
3.1 Выбрать систему линейных уравнений в соответствии с вариантом.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
3.2. Найти корни системы линейных уравнений.
3.3. Оформить отчет по лабораторной работе.
Приложение
program labrab5;
type
mat=array[1..20,1..21] of real;
vec=array[1..20] of real;
var a:mat;
x:vec;
i,n:integer;
s:real;
procedure matr(n:integer;var a:mat);
var
i,j:integer;
begin
cls;
for i:=1 to n do
begin
write('Ввод коэффициентов уравнения ',i);
writeln;
for j:=1 to n+1 do
begin
if j<n+1 then write('Введите коэффициент при X',j,' ')
else write('Введите свободный член ');
readln(a[i,j])
end;
writeln;
end;
end;
procedure gauss(n:integer; var a:mat; var x:vec;
var s:real);
var i,j,k,l,k1,n1:integer;
r:real;
begin
n1:=n+1;
for k:=1 to n do
begin
k1:=k+1;
s:=a[k,k];
j:=k;
for i:=k1 to n do
begin
r:=a[i,k];
if abs(r)>abs(s) then
begin
s:=r;
j:=i
end
end;
if s=0.0 then
begin
exit
end;
if j<>k then
begin
for i:=k to n1 do
begin
r:=a[k,i]; a[k,i]:=a[j,i]; a[j,i]:=r
end
end;
for j:=k1 to n1 do
a[k,j]:=a[k,j]/s;
for i:=k1 to n do
begin
r:=a[i,k];
for j:=k1 to n1 do
a[i,j]:=a[i,j]-a[k,j]*r
end
end;
if s<>0.0 then
for i:=n downto 1 do
begin
s:=a[i,n1];
for j:=i+1 to n do
s:=s-a[i,j]*x[j];
x[i]:=s
end
end;
begin
cls;
writeln('Решение систем линейных уравнений методом главных элементов');
writeln;
write('Введите порядок системы. ');
readln(n);
matr(n,a);
gauss(n,a,x,s);
if s<>0.0 then
for i:=1 to n do
writeln('X',i,'=',x[i]:8:4);
end.
