
metodichka_2_semestr
.pdfАлгоритм подпрограммы DLINA1
1.Задать начальное значение переменной L1 .
2.При помощи оператора цикла, в котором параметр цикла i изменяется от 1
до N , вычислить:
а) величину x a h(i 1) .
б) значение функции |
f1 x |
в точке |
x : z1 f1 (x ) . |
в) значение функции |
f1 x |
в точке |
x h : z2 f1 (x ) . |
г) длину отрезка аппроксимируемой кривой Li , используя формулу (1)
д) длину всей аппроксимируемой кривой, используя формулу (2)
Алгоритм подпрограмм (DLINA2, DLINA3, DLINA4).
Длину кривой L2 функции вычислять, используя формулу (3).
Интеграл в данной подпрограмме определять методами трапеций,
прямоугольников или Симпсона.
Алгоритм головной программы
1.Задать количество участков разбиения отрезка a,b (N 100,200,500) .
2.Вычислить шаг, на котором будет вычисляться отрезок аппроксимируемой кривой h (b a) / N .
3.Вычислить длину кривой L1 первым способом (вызывая подпрограмму
DLINA1).
4. Вычислить длину кривой L2 , вторым способом (вызывая подпрограммы
DLINA2, DLINA3, DLINA4).
5. Вывести результаты вычислений.
Таблица 1
2

№п/п |
f1 (x) |
a |
b |
№п/п |
f1 (x) |
a |
b |
|
|
|
|
|
|
|
|
1 |
sin(x) |
0 |
π |
16 |
x2 cos(x) |
0.1 |
0.75 |
|
|
|
|
|
|
|
|
2 |
sin2 (x) |
0 |
π/4 |
17 |
x sin(2x) |
0.3 |
0.9 |
|
|
|
|
|
|
|
|
3 |
sin(x2 ) |
0 |
|
18 |
4x3 x |
0.7 |
1.3 |
4 |
cos(x) |
0 |
π/2 |
19 |
2x3 x2 3x |
2.5 |
3.1 |
5 |
cos2 (x) |
π/2 |
π |
20 |
x cos2 (x) |
0 |
π/2 |
|
|
|
|
|
|
|
|
6 |
cos(x2 ) |
π/10 |
2π/5 |
21 |
2xsin( x / 2) |
0 |
1 |
|
|
|
|
|
|
|
|
7 |
sin(x) / x |
0.001 |
π/2 |
22 |
sin(x)cos(x) |
0 |
π/2 |
|
|
|
|
|
|
|
|
8 |
sin(x x3 ) |
π/4 |
3π/4 |
23 |
sin(xcos(x)) |
0.3 |
0.7 |
|
|
|
|
|
|
|
|
9 |
cos(sin( x)) |
0 |
π/2 |
24 |
cos(x2 3) |
-1.2 |
-0.1 |
|
|
|
|
|
|
|
|
10 |
sin(cos(x)) |
π/2 |
π |
25 |
x5 x |
0.2 |
1.1 |
11 |
xsin(x) |
0 |
π/3 |
26 |
2x4 2x3 x |
-0.1 |
2.2 |
12 |
xcos(x) |
π/2 |
π |
27 |
cos( / 3 x) |
0 |
π/2 |
|
|
|
|
|
|
|
|
13 |
ex |
-1 |
1 |
28 |
(x2 2)cos(x) |
-0.2 |
π |
14 |
xex |
-0.3 |
1.3 |
29 |
sin(x / 1) |
0 |
π |
15 |
ex sin( x) |
-π |
0 |
30 |
cos(3x 1) |
π/6 |
π/3 |
Лабораторная работа № 4
Решение систем линейных уравнений методом Гаусса
Системы линейных уравнений используются во многих областях науки и техники являются наиболее часто встречающимися типами математических
задач. В общем виде система |
n уравнений с n |
неизвестными записывается |
||||||
следующим образом: |
|
|
|
|
|
|||
|
|
|
a11x1 a12 x2 |
... a1n xn |
b1; |
|
||
|
|
|
a21x1 |
a22 x2 |
... a2n xn |
b2 ; |
|
|
|
|
|
an1x1 |
an2 x2 |
... ann xn |
bn . |
(1) |
|
Здесь |
x ,..., x |
n |
– неизвестные величины; |
aij ,i, j 1,...,n, bi ,i 1,...,n |
||||
1 |
|
|
– заданные |
2
действительные числа . Система (1) может быть записана также в матричном виде:
AX b, |
(2) |
|
|
где X x1,..., xn , b (b1,...,bn ) – вектора в n -мерном пространстве, |
A aij – |
линейный оператор в этом пространстве т.е. матрица размерности n n .
Доказывается, что если определитель матрицы не равен нулю, то система (1)
имеет единственное решение. Ниже будем полагать, что это условие выполняется.
Существуют два основных класса методов для решения систем линейных уравнений – прямые и итерационные. Прямые методы характеризуются тем, что при абсолютной точности вычислений точное решение системы может быть получено с помощью конечного числа арифметических операций.
Итерационные методы характеризуются тем, что даже при абсолютной точности вычислений за конечное число арифметических операций может быть получено только приближённое решение системы, хотя возможно и очень близкое к точному. Однако при реальных вычислениях на компьютерах указанное различие теряет свой смысл; для многих задач итерационные методы оказываются более предпочтительными, нежели прямые.
Рассмотрим сначала прямые методы. Наиболее известным является метод Гаусса, поскольку другие методы являются, как правило, его модификацией.
Алгоритм метода Гаусса состоит из следующей последовательности шагов.
1. Исключение неизвестной x1 из всех уравнений (1), кроме первого. Полагая
a11 0, из первого уравнения имеем:
2

x |
1 |
(a |
x |
... a x |
n |
) |
b1 . |
|
|
|
|||||||
1 |
a11 |
12 |
2 |
1 n |
a11 |
(3) |
||
|
|
|
|
|
Если a11 0 , то переставим строки матрицы A так, чтобы в левом верхнем углу оказался не нулевой элемент. В первом столбце такой элемент всегда найдется,
иначе det A 0 .
Переставив соответствующим образом элементы матрицы А и вектора b ,
придём к системе (1) с a11 0 . Далее, подставляя (3) во |
2 е,...,n e уравнения |
||||||||||||||||||
(1), получаем систему вида: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
a11x1 a12 x2 ... a1n xn b1; |
|
|
|||||||||||||||
|
|
a(1) x |
... a(1) x |
n |
b(1) |
; |
|
|
|
||||||||||
|
|
22 |
2 |
|
|
|
2n |
|
|
|
|
2 |
|
|
|
|
|||
|
|
a(1) x |
... a(1) x |
n |
b(1) |
, |
|
|
(4) |
||||||||||
|
|
n2 |
2 |
|
|
|
nn |
|
|
|
|
n |
|
|
|
||||
где элементы матрицы |
aij(1) |
,2 i, j n |
и вектора |
b(1) |
,2 i n |
определяются |
|||||||||||||
|
|
|
|
|
|
i |
|
|
|||||||||||
формулами |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
a(1) |
a |
|
|
1 |
a |
|
|
a |
1j |
, |
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
ij |
|
ij |
|
a11 |
i 1 |
|
|
|
|
|
|
|
(5) |
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
b(1) b |
1 |
|
a |
|
b |
, |
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
||||||||||
|
i |
|
i |
|
a11 |
i 1 |
|
|
|
1 |
|
|
|
|
|
|
(6) |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2.Исключение неизвестной x2 из всех уравнений (4), кроме первого и второго.
Полагая a22(1) 0 , из второго уравнения имеем
2
x |
1 |
(a |
(1) |
x |
... a |
(1) |
x ) |
b(1) |
|
||
|
|
23 |
|
2 |
. |
|
|||||
a(1) |
|
|
|
||||||||
2 |
|
|
3 |
2n |
n |
a(1) |
(7) |
||||
|
22 |
|
|
|
|
|
|
22 |
|
Если a22(1) 0 , то выполним, как и выше , перестановку строк со второй по n ю
так, что переставив элементы |
aij(1) |
,2 i, j n |
, получим |
a(1) |
0 |
. Очевидно, это |
|
|
22 |
|
всегда возможно, поскольку в противном случае det A 0 . Далее, подставляя (7)
в 3 e,...,n e уравнения (4), получаем систему вида
a11 x1 ... |
|
|
... a1n xn |
b1 |
|
|
|
a(1) |
x ... |
|
... a(1) |
x |
b(1) |
|
|
22 |
2 |
|
2n |
n |
2 |
|
|
|
a(2) |
x |
... a(2) |
x |
b(2) |
|
|
|
33 |
3 |
3n |
n |
3 |
|
|
|
|
||||||
|
a(2) |
x |
... a(2) |
x |
b(2) |
, |
(8) |
|
n3 |
3 |
nn |
n |
n |
|
где элементы матрицы |
aij(2) |
,3 i, j |
n |
и вектора |
b(2) ,3 i n |
определяются |
||||||
|
|
|
i |
|
||||||||
формулами |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
a(2) |
a(1) |
|
1 |
|
a(1) |
a(1) |
; |
|
||
|
|
ij |
ij |
|
|
|
a22(1) |
i 2 |
2j |
|
|
|
|
|
b(2) |
b(1) |
|
1 |
|
a(1) |
b(1) . |
|
|||
|
|
|
|
|
|
|||||||
|
|
i |
i |
|
|
a22(1) |
i 2 |
2 |
|
(9) |
Далее, продолжая процесс исключения, переставляя при необходимости строки так, чтобы
a(2) |
0,...,a( n 2) |
0 |
33 |
n 1,n 1 |
|
после (n-1) шага, получаем систему уравнений
2

a11 x1 ... |
|
... a1n xn |
b1; |
|
|
a(1) |
x ... |
... a(1) |
x |
b(1) |
; |
22 |
2 |
2n |
n |
2 |
|
|
|||||
|
|
a(n 1) x b(n 1) |
|||
|
|
nn |
|
n n |
(10) |
с верхней треугольной матрицей.
Преобразование исходной системы (1) к системе (10) называется прямым ходом.
Процедура нахождения неизвестных из (10) называется обратным ходом.
Соответствующий |
алгоритм |
очевиден и состоит в последовательном |
нахождении переменных x1,..., xn |
по формулам |
b(n 1)
xn n ; ann(n 1)
x |
|
1 |
(b(n 2) |
a(n 2) |
x ); |
|
a(n 2) |
||||||
n 1 |
|
n 1 |
n 1,n |
n |
||
|
|
n 1,n 1 |
|
|
|
x1 1 (b1 a1n xn ... a12 x2 ).
a11
В силу сложности алгоритма метода Гаусса вычислительные ошибки могут приводить к значительной потере точности решения. Для уменьшения вычислительной погрешности целесообразно производить перестановку строк матрицы так, что ведущий элемент на k-м шаге исключения был наибольшим по модулю среди элементов k-го столбца матрицы, которые участвуют в дальнейшем исключении т.е.
a(k 1) |
max |
a(k 1) |
, |
1 k n, |
kk |
k i n |
ik |
|
|
|
|
|
|
2
где |
a(0) |
a |
. Кроме |
того, для оценки вычислительной погрешности |
i1 |
i1 |
|||
целесообразно решить |
систему уравнений с двойной точностью и сравнить |
полученный результат с тем, который получается при использовании одинарной точности.
Задание
1.В качестве варианта взять расширенные матрицы систем алгебраических уравнений в таблице 1.
2.С помощью блок-схемы численного решения системы линейных уравнений методом Гаусса составить Фортран-программу и произвести вычисления.
Таблица 1
|
1 8 -2 3 1 |
|
|
|
|
3 |
9 |
-1 4 6 |
|
|
|
|
|
0 3 -7 -2 -2 |
|
|
|
|
1 |
6 -2 2 -1 |
|
|
|||||||||||||||||||
1 |
6 2 0 3 4 |
2 |
|
-1 2 |
8 3 -4 |
|
|
|
3 |
1 2 0 6 3 |
|
4 |
|
9 |
2 0 3 4 |
|
|
||||||||||||||||||||||||
-1 4 6 0 3 |
|
-1 -2 2 6 -7 |
|
|
|
-8 4 2 0 -3 |
|
|
-1 3 2 7 0 |
|
|
||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||
|
3 -2 1 -9 -7 |
|
|
|
|
5 |
-2 1 0 1 |
|
|
|
|
|
1 -4 1 0 7 |
|
|
|
|
3 |
-2 8 -2 -5 |
|
|
||||||||||||||||||||
|
|
|
-1 7 3 |
2 |
5 |
|
|
|
|
1 |
-3 -6 0 -4 |
|
|
|
|
|
0 -2 3 6 -1 |
|
|
|
|
|
|
-2 -9 1 4 3 |
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||
|
|
|
-8 -2 1 |
3 -6 |
|
|
6 |
|
1 |
2 |
-1 6 5 |
|
|
|
|
|
|
6 -1 1 -3 5 |
|
|
|
8 |
|
-1 -2 8 3 -9 |
|
|
|
|
|||||||||||||
5 |
|
|
|
-1 2 3 7 8 |
|
|
|
-8 4 |
2 -1 -3 |
|
|
7 |
|
|
-1 7 2 -2 3 |
|
|
|
|
-1 -2 2 6 -7 |
|
|
|
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||
|
|
|
3 |
-2 -8 -2 1 |
|
|
|
|
1 |
-4 1 0 -7 |
|
|
|
|
|
3 -2 7 -1 2 |
|
|
|
|
|
|
5 |
-2 1 0 1 |
|
|
|
|
|||||||||||||
|
|
3 |
1 -2 7 |
-1 |
|
|
|
2 8 -1 -3 2 |
|
|
|
1 -3 -7 2 -1 |
|
|
|
-1 6 0 2 -6 |
|
||||||||||||||||||||||||
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||
|
|
7 |
-2 0 |
-3 -3 |
|
|
|
-2 1 7 3 4 |
|
|
|
0 2 2 -6 4 |
|
|
|
|
8 -2 1 3 1 |
|
|||||||||||||||||||||||
9 |
|
|
|
|
1 |
-6 2 1 |
1 |
|
10 |
|
|
|
1 -2 -2 8 -5 |
|
11 |
|
|
|
|
-8 -4 2 0 3 |
|
|
12 |
|
|
|
-2 1 -2 6 2 |
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||
|
|
-3 2 9 |
1 |
-4 |
|
|
|
6 -2 1 -1 3 |
|
|
|
-1 -4 1 0 -6 |
|
|
|
-3 2 -8 -2 5 |
|
2
|
|
-1 6 -1 2 -4 |
|
|
|
1 0 -7 -2 -3 |
|
|
2 1 -2 7 -1 |
|
|
|
-3 9 1 -4 -5 |
||||||||||
13 |
|
8 -2 1 3 5 |
14 |
|
|
-1 2 1 5 -5 |
15 |
|
6 1 -2 1 2 |
|
16 |
1 -2 7 -3 -3 |
|||||||||||
|
-2 1 -2 7 1 |
|
|
-7 3 1 -1 -2 |
|
-1 4 -2 0 4 |
|
-1 0 2 -6 -5 |
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
3 0 8 -2 -3 |
|
|
|
1 -4 -1 0 6 |
|
|
-3 1 6 0 3 |
|
|
|
8 -2 1 4 1 |
|
|
||||||||
|
|
2 -3 -2 8 -4 |
|
|
|
|
2 |
8 -1 -4 1 |
|
|
|
|
1 2 -7 -3 -4 |
|
|
|
0 -6 3 2 -7 |
|
|
||||
|
|
|
|
|
|
|
|
||||||||||||||||
17 |
|
-7 2 2 1 5 |
|
|
18 |
|
-1 -3 9 2 |
-2 |
|
|
19 |
|
-1 2 0 -6 9 |
|
|
|
9 -2 0 3 -4 |
|
|
||||
|
1 -4 -1 1 2 |
|
|
|
0 |
-2 -2 6 |
-4 |
|
|
|
-7 4 -2 0 -8 |
|
20 |
|
|
1 3 0 -7 0 |
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
-3 -1 9 0 -6 |
|
|
|
|
5 |
-2 1 1 |
-1 |
|
|
|
|
1 -4 1 0 -7 |
|
|
|
1 -2 8 -2 5 |
|
|
2
Блок-схема численного решения системы линейных уравнений методом
Гаусса с выбором ведущего элемента по столбцу:
2
Лабораторная работа №5
Решение систем линейных алгебраических уравнений методом простых
итераций
Задание:
Привести систему линейных алгебраических уравнений (Таблица 1,
Лабораторная работа №4) к виду, допускающему применение метода простых итераций, Составить, отладить и просчитать для полученных исходных данных программу решения системы методом простых итераций.
Основным конечным методом, используемым на практике, является метод исключения (метод Гаусса). Он имеет то преимущество, что теоретически с его помощью можно решить любую невырожденную систему уравнений.
Итерационные методы, в частности метод простых итераций, сходится только для специальных систем уравнений. Однако когда итерационные методы сходятся, они обычно предпочтительнее: так как время вычислений
пропорционально n2 на итерацию ( n —порядок системы), а для Гаусса — n3 ;
если для решение системы потребуется менее n итераций, то затраты машинного времени будут меньше; ошибки округления при итерационном методе меньше; в методе Гаусса при достаточно больших n округления могут привести к бессмысленному результату.
Рассмотрим особенности применения метода простых итераций при решении систем линейных алгебраических уравнений
2