- •Рабочее задание
- •Варианты заданий к лабораторной работе 1
- •Отделение корней уравнения
- •Результат
- •Уточнение корней методом половинного деления
- •Текст программы
- •Текст программы
- •Текст программы
- •Результат
- •Определитель
- •Обратные матрицы
- •Текст процедуры обращения матриц
- •Метод Гаусса-Жордана
- •Текст процедуры
- •Текст процедуры
- •Метод Зейделя
- •Текст процедуры метода Зейделя
- •Расчет определенного интеграла методом Симпсона
- •Текст функции расчета определенного интеграла
- •Расчет определенного интеграла с эаданной точностью
- •Текст программы
- •Текст программы
- •Интерполяционный многочлен Лагранжа
- •Текст функции расчета многочлена Лагранжа
Текст процедуры
метода Гаусса-Жордана с выбором главного элемента
procedure gj(n:integer;a:matr;var x:vec);
var i,j,k,nomj,nomk,m:integer;max,u:real; r:vecin;
begin for i:=1 to n do r[i]:=i;
for i:=1 to n do
begin max:=a[i,i];nomj:=i;nomk:=i;
for j:=i+1 to n do for k:=i+1 to n do
if abs(max)<abs(a[j,k]) then
begin max:=a[j,k];nomj:=j;nomk:=k
end;
m:=r[nomk];r[nomk]:=r[i];r[i]:=m;
for j:=1 to n do
begin u:=a[j,nomk];a[j,nomk]:=a[j,i];a[j,i]:=u;
end; for k:=1 to n+1 do
begin u:=a[nomj,k];a[nomj,k]:=a[i,k];a[i,k]:=u/max
end; for j:=1 to n do
if i<>j then for k:=n+1 downto 1 do
a[j,k]:=a[j,k]-a[j,i]*a[i,k]
end;
for i:=1 to n do x[r[i]]:=a[i,n+1];
end;
Рабочее задание
Составить программу решения систем линейных уравнений методом Гаусса-Жордана с выбором главного элемента. В программе предусмот-реть вычисление определителя системы. Организовать контрольный вы-вод исходных данных и вывод результатов в отдельные окна.
Написать отчет, содержащий:
- вариант задания;
- принятые обозначения;
- программу решения;
- результаты.
Варианты заданий к лабораторной работе 3
1. Программу решения системы уравнений дополнить проверкой резуль-
татов. Определить минимальную и максимальную ошибки. Исходные
данные вводить типизированными константами.
2. Программу решения системы уравнений дополнить проверкой резуль-
татов. Определить минимальную и максимальную ошибки. Исходные
данные вводить файлами.
3. В программе предусмотреть решение любого заранее неизвестного ко-
личества систем уравнений. Для продолжения или прекращения счета
организовать диалог с ЭВМ. Ввод коэффициентов уравнений с клави-
атуры.
4. В программе предусмотреть решение любого заранее неизвестного ко-
личества систем уравнений. Для продолжения или прекращения счета
организовать диалог с ЭВМ. Ввод коэффициентов уравнений чтением
файла данных.
5. В программе предусмотреть остановку и вывод промежуточных значе-
ний коэффициентов после исключения очередной неизвестной. Ввод
коэффициентов уравнений с клавиатуры.
6. В программе предусмотреть остановку и вывод промежуточных значе-
ний коэффициентов после исключения очередной неизвестной. Ввод
коэффициентов уравнений чтением файла данных.
7. Составить программу многократного решения системы уравнений для
определения коэффициента устойчивости системы уравнений
ky= |xni - xsi k|/(n2d) ,
где xni - решение исходной системы,
xsi k - решение системы при замене ak n+1 на ak n+1 + d ,
d - малое число.
8. Составить программу многократного решения системы уравнений для
определения коэффициента устойчивости матрицы системы
ky= |xsi k |/(n2d) ,
где xsi k - решение системы уравнений с вектором правой части, у кото-
рой ak n+1 = d а остальные элементы равны 0. Величина d малая и
вводится с клавиатуры.
9. Составить программу решения системы линейных уравнений, в кото-
рых правые части обозначены вектором-столбцом bi. Программу запи-
сать с использованием процедуры.
10.Составить программу решения системы линейных уравнений, в кото
рых правые части обозначены вектором-столбцом bi. Программу запи-
сать без использования процедуры.
11.Составить процедуру решения системы линейных уравнений методом
Гаусса без выбора главного элемента (Ю. А. Ивашкин, Вычислитель-
ная техника в инженерных расчетах, стр. 198) .
12.Составить программу решения системы линейных уравнений методом
Гаусса без выбора главного элемента ( Ю. А. Ивашкин, Вычислитель-
ная техника в инженерных расчетах, стр. 198) без использования про-
цедуры.
13.Составить программу ( без процедуры ) решения за один запуск трех
систем линейных уравнений, различающихся лишь правой частью.
14.Составить программу (с использованием процедуры) решения за один
запуск трех систем линейных уравнений, различающихся лишь правой
частью.
15.Программу ( без процедуры ) решения системы линейных уравнений
дополнить проверкой на обусловленность. Результаты проверки запи-
сать в строковую переменную, значениями которой будут: “решение
получено” или “ система плохо обусловлена”.
16.Процедуру решения системы линейных уравнений дополнить провер-
кой на обусловленность. Результаты проверки записать в строковую
переменную, значениями которой будут: “решение получено” или
“система плохо обусловлена”.
Лабораторная работа 4
ИТЕРАЦИОННЫЕ МЕТОДЫ РЕШЕНИЯ СИСТЕМ
ЛИНЕЙНЫХ УРАВНЕНИЙ
Перед применением итерационных методов исходная система линей-ных уравнений (3.1) должна быть преобразована к виду:
xi=x1, x2, x3, . . .xn), i=1n . (4.1)
Такая запись системы позволяет вычислять последующие приближе-ния корней по по их известным предыдущим приближениям. Подставляя на каждом шаге в правую часть вновь рассчитанные приближения полу-чают последовательности значений искомых неизвестных.
Если эти последовательности стремятся к предельным значениям, то итерационный процесс называется сходящимся, а сами пределы яв-ляются решением заданной системы уравнений.
Для сходимости итерационного процесса достаточно, чтобы модули диагональных элементов системы были больше сумм модулей коэффи-циентов соответствующих строк или столбцов:
|ai i|> |ai k| , при in и ik
или (4.2)
|ak k|> |ai k| , при k=1n и ik .
Эти условия являются достаточными для сходимости метода, но они не являются необходимыми, т.е. для некоторых систем итерация сходит-ся и при нарушении условий (4.2).
Расчетная система (4.1) записывается в виде:
xi=xi+(ai n+1- ai kxk)/ci , i=1n . (4.3)
Делитель ci принимается равным сумме модулей элементов i-ой стро-ки матрицы системы:
|ci|= |ai k| , i=1n . (4.4)
Знак делителя ci полагается совпадающим с знаком диагонального элемента ai i .Развернутая форма расчетных уравнений выглядит следу-ющим образом:
x1=x1+(a1 n+1-a1 1x1-a1 2x2-...-a1 nxn)/c1 ,
x2=x2+(a2 n+1-a2 1x1-a2 2x2-...-a2 nxn)/c2 , (4.5)
. . . . . . . . . . .
xn=xn+(an n+1-an 1x1-an 2x2-...-an nxn)/cn .
Из итерационных методов наиболее употребительными являются метод простой итерации и метод Зейделя. Метод Зейделя отличается более быстрой сходимостью. Ограничимся изложением метода Зейделя.