Прямые методы решения систем линейных алгебраических

advertisement
Лабораторная работа № 2.3
РЕШЕНИЕ СИСТЕМ ЛИНЕЙНЫХ АЛГЕБРАИЧЕСКИХ УРАВНЕНИЙ
ПРЯМЫЕ МЕТОДЫ.
Дана система линейных алгебраических уравнений
a
x
a
x


a
x
b
11
1
12
2
1
n
n
1
a
x
a
x


a
x
b
21
1
22
2
2
n
n
2
.













a
x
a
x


a
x
b
n
1
1
n
2
2
n
n
n
n
Требуется найти решение системы.
В дальнейших рассмотрениях вектор-столбец правых частей удобn
1- й столбец расширенной матрицы:
нее рассматривать как
i1
,
,n
). При ссылках на строки мы будем иметь в виду
ai,n1 bi (
строки расширенной матрицы.
Метод Гаусса (метод исключений).
Будем решать систему методом исключений, путем сведения матрицы системы к треугольной.
Выполняем исключения в первом столбце:
i10
1
10
- если a
, найдем такую строку i , для которой a
. Переста-
вим строки 1 и i;
a
1
1- строку 2 заменим линейной комбинацией строк: строка 2
a
2
10
строка 1
;
2
1; в результате получим a
a
1
1- строку 3 заменим линейной комбинацией строк: строка 3
i2
,
,n
)заменяем комбинацией
a
3
1и т.д.; строку i (
строка 1
a
i1
1
1 - строка 1
строка ia
.
Завершив исключения в столбце 1, переходим к столбцу 2 и т.д.
1мы получим систему с треугольной
После исключения в столбце n
матрицей.
Недостаток такого подхода - большое число умножений. Например,
n 2умно2
1 нам потребуется выполнить 2
для исключения элемента a
жения.
Модифицируем метод:
- строку 2
заменим
комбинацией
где
3
строка 2
-
строка 1*u,
u
a
2
1a
1
1;
- строку 3
заменим
комбинацией
строка 3
-
строка 1*u,
где
u
a
3
1a
1
1 и д.
Теперь число умножений сократилось вдвое.
Заметим, что вместо вычисления множителя u для каждой строки
i2
,
,
n
)
1
1 и затем из строки i(
мы можем строку 1 разделить на a
i1
вычитать строку 1, умноженную на a
. Число операций умножения -
деления при этом не изменится.
В наших рассмотрениях мы не учитывали характерную особенность
метода исключений - быстрое нарастание вычислительной погрешности.
Коэффициенты системы (числа вещественного типа) представляются в
компьютере с некоторой погрешностью. Результаты арифметических
операций над числами также получаются с некоторой погрешностью. В
процессе вычислений погрешность будет возрастать. Оценим (грубо) результирующую погрешность. Рассмотрим такую упрощенную модель:
- пусть при вводе коэффициентов мы допустили погрешность, не
превосходящую ;
- пусть все исключения выполняются только путем вычитания строк
(без умножения на множитель u) и все операции выполняются точно.
Тогда: после исключения в столбце 1 погрешность коэффициентов
матрицы может достигать величины
2
,
после исключения в столбце 2
 и т.д. После исключения в столбце n
1погрешность
- величины 4
n

1
коэффициента может достигать величины 2
.
Полученная грубая оценка характеризует скорость нарастания по-
грешности - если порядок системы увеличивается на 10, вычислительная погрешность может увеличиться в 1000 раз.
Для того, чтобы компенсировать этот недостаток, будем поступать
следующим образом:
- исключение в столбце k начинаем с того, что среди элементов
столбца, начиная с главной диагонали и ниже, отыскиваем максимальный по абсолютной величине элемент. Пусть
a
a
xa
,
,n
g
k m
ik, ik
;
- строки gи k меняем местами.
В этом случае
4
a
ik
a

a
; u


1
, i

k

1
,

,
n
.
kk
ik
a
kk
Таким образом, в процессе исключений (строка i заменяется суммой строка i – u*строка k) строку k и накопленную вычислительную
погрешность мы будем умножать на множитель, не превосходящий 1.
g
k называется главным (или ведущим) элементом, метод
Элемент a
исключения - методом Гаусса с выбором главного (ведущего) элемента.
Поиск главного элемента позволяет нам решить еще одну задачу:
g
k 0
если a
, то определитель матрицы системы = 0, система не имеет
единственного решения. Ввиду наличия вычислительной погрешности
g
k 0следует заменить условием
условие a
a
g
k .
При выполнении
этого условия процесс вычислений прекращается.
Схема алгоритма исключения приобретает вид
Метод Гаусса с выбором главного элемента.
Вход: расширенная матрица системы линейных алгебраических
уравнений.
Выход: матрица системы, приведенная к треугольному виду.
,
,n
1
Для k1
выполняем исключение в столбце k:
ищем главный элемент, пусть
если
a
g
k  ,то
a
a
xa
,
,n
g
k m
ik, ik
;
выход - матрица системы вырожденная;
переставляем строки g и k ;
k
k;
полагаем строка k = строка k / a
для
ik
1
,
,n полагаем
строка i = строка i – aik*строка k.
Все операции над строками следует начинать со столбца k - элеk
1равны 0.
менты в столбцах 1
По завершении исключения вычисляем решение системы (обратный ход):
n
n , то матрица системы вырождена, выход;
- если a
na
n
,n
1 a
n
n;
- полагаем x
- для
in
1
,
,
1
полагаем
n
x
a
i a
i,n
1 
ijx
j.
ji1
5
Метод Жордана.
Будем проводить исключение коэффициентов
при неизвестных не только под, но и над главной диагональю. Исключеk
1
,2
,
,n
). В результате по
ние будем проводить для всех столбцов (
завершении исключения матрица системы будет сведена к единичной
матрице, на месте вектор-столбца правых частей мы получим решение
системы. Обратный ход не требуется.
Такой вариант метода Гаусса называется методом Жордана (схемой Жордана).
Подчеркнем: главный элемент в столбце, как и ранее, выбирается
начиная с главной диагонали и ниже - перестановка строк k и g при g<k
недопустима.
Схема алгоритма исключения приобретает вид
Метод Жордана с выбором главного элемента.
Вход: расширенная матрица системы линейных алгебраических уравнений.
Выход: решение системы в n+1 столбце расширенной матрицы.
Для
k1
,
,nвыполняем
исключение в столбце k:
ищем главный элемент, пусть
если
a
g
k  ,то
a
a
xa
,
,n
g
k m
ik, ik
;
выход - матрица системы вырожденная;
переставляем строки g и k ;
k
k;
полагаем строка k = строка k / a
для
i 1n полагаем
строка i = строка i – aik*строка k.
Все операции над строками следует начинать со столбца k - элеk
1равны 0.
менты в столбцах 1
Выбор главного элемента "по строкам", “по всей матрице”: в тех случаях, когда коэффициенты системы существенно различаются по порядку величины (наблюдается большой разброс коэффициентов), может оказаться удобным проводить выбор главного элемента
не "по столбцам", а "по строкам" или даже "по всей матрице".
Рассмотрим особенности работы алгоритмов Гаусса и Жордана при
выборе главного элемента "по всей матрице". Пусть при исключении в
6
столбце k мы имеем
a
a
xa
g
h m
ij ,
ik
,
,n
,
jk
,
,n
.
Для того, чтобы элемент a
g
h оказался на главной диагонали, следует переставить строки k и g и столбцы k и h. При перестановке строк
решение системы не изменится. Перестановка столбцов k и h изменит
решение: теперь позиция k вектора решения соответствует переменной
x
h
k. При исключении в следующем столбце
, позиция h - переменной x
снова потребуется перестановка столбцов и т.д.
Чтобы фиксировать перестановки столбцов и затем восстановить
естественный порядок следования неизвестных в векторе решения вве(1
,2,
,n)
. Индекс вектора - номер
дем вспомогательный вектор L
позиции в векторе решений, значение компоненты - номер неизвестного,
соответствующего этой позиции. Например, 53означает, что в пози3
ции 5 указано значение неизвестного x
. Перед началом исключения

i, i
1
,
,n(т.е. все x
i "стоят на своих местах"). При перестановке
i
столбцов матрицы переставляются и соответствующие компоненты вектора L, в нашем случае - компоненты k и h. Таким образом, вектор L
отслеживает соответствие "позиция - номер неизвестного". Все другие
действия, предусмотренные алгоритмом исключения, остаются неизg
h , матрица вырождена; строку k делим на a
менными: если a
k
k;
выполняем исключение в столбце k и т.д.
По окончании исключения полагаем:
- для метода Гаусса:
a
n
,n
1a
n
,n
1 a
n
n;
n
a
a
i,n
1a
i,n
1 
ij a
j,n
1
(
in
1
,
,
1
)
;
ji1
x
[i] a
[
i,n
1
]
(
i1
,
,n
)
;
- для метода Жордана:
x
[i] a
[i,n
1
]
(
i1
,
,n
).
Метод прогонки. Метод разработан для поиска решения систем
линейных уравнений с трехдиагональной матрицей. Система уравнений
с трехдиагональной матрицей имеет вид:
7
b
x

c
x
1
1
1
2

f1
a
x

b
x
c
x
2
1
2
2
2
3

f2
a
x
b
x
c
x
3
2
3
3
3
4

f3
(2)


















a
x
b
x

c
x
fn
n

1
n

2
n

1
n

1
n

1
n

1
a
x

b
x
fn
n
n

1
n
n
К решению систем с трехдиагональной матрицей сводятся многие
практические задачи: решение краевых задач для дифференциальных
уравнений, задача сплайн-интерполяции и др.
В памяти компьютера система представляется тремя векторами:
B
(
b
,
,b
) - главная диагональ; A
(a
,
,a
)
, C
(c
,
,c
)1
n
2
n
1
n
1
(
f
,
,f
) - вектор правых ча1
n
диагонали, параллельные главной; F
стей.
Перейдем к решению системы. Из первого уравнения мы можем
x
2через x
3через x
выразить x
1, затем из второго уравнения 1и
т.д. Из последнего уравнения определяем x
и по нему все
1
x
i2
,
,n
). Задача сводится к определению коэффициентов, выраi (
i через x
жающих x
1.
Более простым оказывается поиск коэффициентов, связывающих
x
x
i1. Положим
i и
x
,
i u
i v
ix
i1
i1
,
,n
1
.
(3)
Первое уравнение системы (2) определяет
f1 c
b
x
x
;
x
 1x
1
1c
1
2f
1
1
2,
b
1 b
1
сопоставив это выражение с выражением (3) при i1
, получаем
f1
c
1
u
v
1 ;
1 .
(4)
b
b
1
1
Выразим (выражение (3)) x
i и подставим в i-е уравнеi1 через x
ние системы (2)
a
u
x
b
i(
i
1v
i
1
i)
ix
i c
ix
i,
i
1f
откуда получаем
fi a
c
iu
i1
i
x

x
i
i1.
b
i a
iv
i1 b
i a
iv
i1
Сопоставив последнее выражение с выражением (3), получаем
8
fi a
iu
i1
u
;
i
b

a
v
i
i i1
c
i
v
i
.
b

a
i
iv
i1
(5)
Рекуррентные формулы (4) и (5) позволяют вычислить коэффициi,v
i для
енты u
i
1
,
,n

1
.
Из (3) имеем
x
n
1u
n
1v
n
1x
n.
Подставив это выражение в последнее уравнение системы (2), получим
f

a
u
n
n
n

1
a
(
u

v
x
)

b
x

f
;x

.
n
n

1
n

1
n
n
n
n
n
b

a
v
n
n
n

1
Из выражения (3) для
in
1
,
,
1
получаем
значения x
i.
Рассмотренный метод решения системы (2) называется методом
прогонки.
Метод квадратного корня. Метод применим только к системам
уравнений с симметричной матрицей (на комплексной плоскости - с эрмитовой матрицей). Пусть требуется решить систему уравнений
A
xb
(6)
1
,
,n
ij a
ji, i,j
и матрица системы А симметрична: a
.
Симметричная матрица А может быть представлена в виде произведения трех матриц
t
,
A
S
D
S
(7)
ij 0
где S - верхняя треугольная матрица ( s
, если
D - диагональная матрица с элементами
j  i );
d
1
ii 
;
t - транспонированная матрица S
stij sji .
S
,
,n
Соотношение (7) для k1
определяет равенства
k
2
a

d
,

kk
ii s
ik
i
1
k
.
a
d
k
1
,
,n

kj 
ii s
iks
ij, j
i
1
Для k1получаем
d

sign
(
a
);
11
11
s
 a
;
11
11
s
a
s
d
), j
2
,
,n
1
j
1
j (
11
11
для
k
2
,
,nполучаем
9
k

1

2
a

d
sign

d
s
;

kk
kk
i
i
i
k

i
1


k

1
2
s
 a

d
kk
kk
ii s
ik;
i
1
k

1


a
 (s
s

d
s
s
d
), j
k
1
,
,n
.

kj 
k
j
i
i
i
j
kk
i
k

 kk
i
1


Представление матрицы А в виде (7) сводит решение системы (6) к
решению трех систем с треугольными либо диагональными матрицами
t
S
zb
;
D
yz
;
S
xy.
Решение последних систем получается обратным ходом метода
Гаусса:
y
b
s
d
);
1
1(
11
11
i
1


b
 s
y

d
y

i
i
kk
ks
ki (
ii d
ii),

k
1


i2
,
,n
;
x
;
ny
ns
nn
n



s
x

y

s
x

i
i
ik
k

 ii,
k
i
1


in
1
,
,1
.
Метод требует примерно вдвое меньше арифметических операций,
чем метод Гаусса.
Определитель матрицы А вычисляется по формуле
n
2
d
e
tA

d
iis
ii .
i1
ЗАДАНИЯ
1. Составить программу решения m систем линейных алгебраических уравнений порядка n с общей матрицей
AX1 = B1, AX2 = B2, ..., AXm = Bm
методом Гаусса (Жордана) с выбором ведущего элемента по столбцам.
Входными параметрами программы являются: n - порядок системы; m - число систем и расширенная матрица A порядка n*(n+m), в
первых n столбцах которой располагаются коэффициенты при неизвестных (матрица A), а в следующих m столбцах - правые части систем.
10
Выходным параметром программы является матрица X размером
n*m, в столбцах которой располагаются m решений систем линейных
уравнений.
Исходные данные вводятся из файла. В файл результатов записываются: исходная матрица системы; матрица решений X; контроль решения - матрица U=A*X и матрица правых частей B в виде
ui1, …, uim :: bi1, …, bim (i=1, …, n).
2. Составить программу решения m систем линейных алгебраических уравнений порядка n с общей матрицей
AX1 = B1, AX2 = B2, ..., AXm = Bm
методом Гаусса (Жордана) с выбором ведущего элемента по строкам.
Входными параметрами программы являются: n - порядок системы; m - число систем и расширенная матрица A порядка n*(n+m), в
первых n столбцах которой располагаются коэффициенты при неизвестных (матрица A), а в следующих m столбцах - правые части систем.
Выходным параметром программы является матрица X размером
n*m, в столбцах которой располагаются m решений систем линейных
уравнений.
Исходные данные вводятся из файла. В файл результатов записываются: исходная матрица системы; матрица решений X; контроль решения - матрица U=A*X и матрица правых частей B в виде
ui1, …, uim :: bi1, …, bim (i=1, …, n).
3. Составить программу решения m систем линейных алгебраических уравнений порядка n с общей матрицей
AX1 = B1, AX2 = B2, ..., AXm = Bm
методом Гаусса (Жордана) с выбором ведущего элемента по всей матрице.
Входными параметрами программы являются: n - порядок системы; m - число систем и расширенная матрица A порядка n*(n+m), в
11
первых n столбцах которой располагаются коэффициенты при неизвестных (матрица A), а в следующих m столбцах - правые части систем.
Выходным параметром программы является матрица X размером
n*m, в столбцах которой располагаются m решений систем линейных
уравнений.
Исходные данные вводятся из файла. В файл результатов записываются: исходная матрица системы; матрица решений X; контроль решения - матрица U=A*X и матрица правых частей B в виде
ui1, …, uim :: bi1, …, bim (i=1, …, n).
4. Составить программу вычисления обратной матрицы для матрицы произвольного порядка n методом Гаусса (Жордана) с выбором ведущего элемента по столбцам.
Порядок и коэффициенты исходной матрицы вводятся из файла. В
файл результатов записываются: исходная матрица; обратная матрица;
произведение исходной матрицы на обратную.
5. Составить программу вычисления обратной матрицы для матрицы произвольного порядка n методом Гаусса (Жордана) с выбором ведущего элемента по строкам.
Порядок и коэффициенты исходной матрицы вводятся из файла. В
файл результатов записываются: исходная матрица; обратная матрица;
произведение исходной матрицы на обратную.
6. Составить программу вычисления обратной матрицы для матрицы произвольного порядка n методом Гаусса (Жордана) с выбором ведущего элемента по всей матрице.
Порядок и коэффициенты исходной матрицы вводятся из файла. В
файл результатов записываются: исходная матрица; обратная матрица;
произведение исходной матрицы на обратную.
12
7. Составить программу вычисления определителя для матрицы
произвольного порядка n методом Гаусса с выбором ведущего элемента по всей матрице.
Порядок и коэффициенты исходной матрицы вводятся из файла.
8. Для аппроксимации произвольной функции y = f(x) на некотором отрезке [a, b] с помощью интерполяционного многочлена степени
n
Pn(x) = c0 + c1x + ... + cnxn
в n+1 точках xi[a, b], i = 0, ..., n вычисляют значения функции yi =
f(xi), а затем решают систему n+1 линейных уравнений
yi = Pn(xi), i = 0, ..., n
относительно неизвестных коэффициентов ck. Написать программу, реализующую этот алгоритм.
Входными параметрами программы будут: внешняя функция f(x);
концы отрезка a, b; n - число узлов интерполяции; а выходными параметрами - коэффициенты интерполяционного полинома ck, k = 0, ..., n.
Провести численные эксперименты для функций y = e-x и y = sin10x
на отрезке [0, 1].
9. Ищется зависимость величины y от величины x в виде полинома m-ой степени
y  Pm(x) = a0 + a1x + a2x2 + ... +amxm.
Для этой цели определяют экспериментально значения yi в n точках xi, i = 1, ..., n, где n>m. Коэффициенты полинома определяются из
условия минимума среднеквадратичного отклонения
1n
2
m
in
S
(
a
,
a
,
.
.
.
,
a
)

m
i
n
(x
0 1
m
(P
m
i)y
i)
n
i1
Приравняв к нулю частные производные функции S получаем систему
из m+1 линейных уравнений относительно неизвестных коэффициентов a0, a1, ..., am
13
n
dS
d
2

(
P
(
x
)

y
)

0
;
k

0
,...,
m
.

m
i
i
da
da
k
k
i

1
Такой метод нахождения коэффициентов аппроксимирующего полинома называется методом наименьших квадратов.
Вывести формулы для системы линейных уравнений, которым удовлетворяют коэффициенты ak, и составить программу, которая для заданных n экспериментальных точек xi, yi, i = 1, ..., n находит m+1 коэффициент ak, k = 0, ..., m аппроксимирующего полинома m-ой степени.
Провести численные эксперименты для функций y = e-x, y = sin10x
на отрезке [0, 1].
10. Для численного определения коэффициентов характеристического многочлена матрицы A произвольного порядка n
det(A - E) = p0 + p1 +p22 + ... + pnn
использовать следующий прием: найти методом Гаусса n+1 значение
определителя в n+1 точке 1, 2, ..., n+1, а затем решить систему из
n+1 уравнений с n+1 неизвестными p0, p1, ..., pn методом Гаусса (см.
задачу 8). Составить соответствующую программу, в которой входными
параметрами являются матрица A и ее порядок n, а выходными - коэффициенты характеристического многочлена pi, i = 0, ..., n.
Порядок и коэффициенты исходной матрицы вводятся из файла.
11. Составить рекурсивную процедуру вычисления определителя
матрицы методом разложения по строке (столбцу). Используя процедуру
вычислить определитель заданной матрицы. Порядок и коэффициенты
матрицы вводятся из файла.
12. Составить программу решения системы линейных уравнений
методом Гаусса для трехдиагональной матрицы.
Порядок и коэффициенты матрицы (главная и соседние с ней диагонали), вектор правых частей вводятся из файла. В файл результатов
выдаются: исходная система, решение системы, результат подстановки
14
решения в систему в виде “левая часть = правая часть”.
13. Составить программу вычисления обратной матрицы методом
Гаусса для трехдиагональной матрицы.
Порядок и коэффициенты матрицы (главная и соседние с ней диагонали) вводятся из файла. В файл результатов выдаются: исходная
матрица, обратная матрица, произведение исходной матрицы на обратную.
14. Составить программу решения системы линейных уравнений
методом Гаусса для пятидиагональной матрицы.
Порядок и коэффициенты матрицы (главная и соседние с ней диагонали), вектор правых частей вводятся из файла. В файл результатов
выдаются: исходная система, решение системы, результат подстановки
решения в систему в виде “левая часть = правая часть”.
15. Составить программу вычисления обратной матрицы методом
Гаусса для пятидиагональной матрицы.
Порядок и коэффициенты матрицы (главная и соседние с ней диагонали) вводятся из файла. В файл результатов выдаются: исходная
матрица, обратная матрица, произведение исходной матрицы на обратную.
16. Составить программу решения системы уравнений Ax = b для
симметричной матрицы A методом квадратного корня.
Порядок и коэффициенты матрицы, вектор правых частей вводятся
из файла. В файл результатов выдаются: исходная система, решение
системы, результат подстановки решения в систему в виде “левая часть
= правая часть”.
17. Составить программу вычисления определителя симметричной
15
матрицы методом квадратного корня. Порядок и коэффициенты матрицы вводятся из файла.
18. Составить программу обращения симметричной матрицы методом квадратного корня.
Порядок и коэффициенты матрицы вводятся из файла. В файл результатов выдаются: исходная матрица, обратная матрица, произведение исходной матрицы на обратную.
19. Составить программу вычисления определителя пятидиагональной симметричной матрицы методом квадратного корня. Порядок и
коэффициенты матрицы вводятся из файла.
20. Доказать, что для симметричной трехдиагональной теплицевой
матрицы
b1 a 0 00 0
a b a 00 0
 2

A0 a b3 a0 0



0 0 0 0a bn


главные миноры которой отличны от нуля, справедливо разложение
T
A
L
D
L
где
16
a0000 1/10 00
a000 0 1/00
1   2 
L02a00; D0 0 1/30
  
  
0n1a 01/n
 
и величины i определяются рекуррентными соотношениями:
1 = b1; i = a2/(bi - i-1), i = 2, ..., n-1.
Использовать это разложение для вычисления определителя матрицы A.
21. Для симметричной трехдиагональной теплицевой матрицы
A
использовать разложение, описанное в задаче 20, для решения системы
уравнений Ax = b.
Порядок и коэффициенты матрицы, вектор правых частей вводятся
из файла. В файл результатов выдаются: исходная система, решение
системы, результат подстановки решения в систему в виде “левая часть
= правая часть”.
22. Для симметричной трехдиагональной теплицевой матрицы
17
A
использовать разложение, описанное в задаче 20, для вычисления обратной матрицы.
Порядок и коэффициенты матрицы вводятся из файла. В файл результатов выдаются: исходная матрица, обратная матрица, произведение исходной матрицы на обратную.
23. Использовать разложение, описанное в задаче 20, для составления подпрограммы-функции, вычисляющей f() = det(A - E) для
симметричной трехдиагональной теплицевой матрицы A. Найти все n
корней уравнения f() = 0
с помощью пошагового разбиения отрезка
a-2b    a+2b, где b = max(bi), i = 1, ..., n сначала на 1000 равных
интервалов, затем - последовательного удвоения числа разбиений до
тех пор, пока число интервалов, на концах которых знаки функции различны, не станет равным порядку матрицы A.
24. Составить программу решения системы уравнений Ax = b для
трехдиагональной матрицы A методом прогонки.
Порядок и коэффициенты матрицы (главная и соседние с ней диагонали), вектор правых частей вводятся из файла. В файл результатов
выдаются: исходная система, решение системы, результат подстановки
решения в систему в виде “левая часть = правая часть”.
25. Составить программу обращения трехдиагональной матрицы
методом прогонки.
Порядок и коэффициенты матрицы (главная и соседние с ней диагонали) вводятся из файла. В файл результатов выдаются: исходная
матрица, обратная матрица, произведение исходной матрицы на обратную.
26. Дана краевая задача для линейного дифференциального уравнения
y’’ + p(x)y’ + q(x)y = f(x); y(a) = ya; y(b) = yb.
18
Для численного решения задачи разбиваем отрезок интегрирования
[a, b] на n равных интервалов, ищем решение в узлах xi = a+ih, i = 0,
1, ..., n, h=(b-a)/n. Для вычисления производных используем приближенные формулы
y y
y 2
yy
y
'i  i1 i1; y
''i  i1 2i i1; i1
,
,n
1
, y
(x
.
i y
i)
2
h
h
Краевая задача сводится к решению системы линейных уравнений с
трехдиагональной матрицей
y

2
y
y
y

y
i

1
i
i

1
i

1
i

1

p

q
y
f
;i

1
,

,
n

1
;
i
i
i
i
2
2
h
h
y

y
;y

y
;
0
a
n
b
p
p
(
x
);
q
q
(
x
);
f
f
(
x
).
i
i
i
i
i
i
Составить программу, входными параметрами которой будут функции p(x), q(x), f(x), параметры a, b, n; а выходными - значения функции yi в узлах xi. Для решения системы линейных уравнений использовать метод прогонки.
27. Составить программу решения краевой задачи
y’’ = x + y; y(0) = 0; y(1) = 0,
разбив отрезок [0, 1] на 100 равных интервалов и сведя краевую задачу к решению системы линейных алгебраических уравнений методом
прогонки.
Сравнить найденное решение с точным
y = sh(x)/sh(1) - x.
ЛИТЕРАТУРА
1. Крячков А.В., Сухинина И.В., Томшин В.К. Программирование на
С и С++, практикум. М.: Изд-во Радио и связь, 1997.
2. Касьянов В.Н., Сабельфельд В.К. Сборник заданий по практикуму
на ЭВМ. М.: Наука, 1986.
3. Мак-Кракен. Численные методы и их программирование на
ФОРТРАНЕ.
4. Форсайт Дж., Молер К. Численное решение систем линейных
уравнений. М., МИР, 1969.
19
5. Воеводин В.В. Линейная алгебра. М., 1974.
6. Воеводин В.В. Вычислительные основы линейной алгебры. М.,
ФМЛ, 1977.
7. Форсайт Дж., Малькольм М., Моулер К. Машинные методы
математических вычислений. М., МИР, 1980.
8. Воеводин В.В., Кузнецов Ю.А. Матрицы и вычисления. М., МЛ, 1984.
20
Download