(окончание). Системы линейных алгебраических уравнений

advertisement
Лекция 4
2 октября 2006
B-сплайны
Сплайны с локальным носителем. (B-сплайны). В последнее время в вычислительной
практике широкое распространение получили B-сплайны (от английского слова bell —
колокол). Эти сплайны сосредоточены на конечном носителе. Они используются как для
интерполяции функций, так и в качестве базисных функций при построении методов типа
конечных элементов.
В данной лекции ограничимся наиболее распространенными случаями B-сплайнов
порядков 1, 2 и 3.
Определение. B-сплайном степени N – 1 дефекта 1 относительно узлов {t i }innN называется
функция
BN 1, n (t )  BN 1 (tn , tn 1 ,
n N
, tn  N , t )  ( 1) N (t N  n  tn ) 
i n
N 1
(ti  t )max
n N
 (ti  t j )
j n
j i
N 1 , t  t

i
N 1  (ti  t )
(ti  t )max

0,
t

t

i.

Вообще говоря, определяется такой сплайн с точностью до постоянного числового
множителя, выбором этого множителя можно обеспечить полезные свойства сплайна. При
указанном выборе коэффициента получается нормализованный сплайн.
Для простоты выкладок рассмотрим равномерную сетку tni  tn  i.
Рассмотрим несколько частных случаев В-сплайнов.
1. N = 2. В этом случае сплайн строится наиболее просто.
B1, n (t )  B1 (tn , tn1, tn2 , t ) 


(tn  t )max
(tn1  t )max
(tn 2  t )max
 2 



 (tn  tn1 )(tn  tn  2 ) (tn 1  tn )(tn 1  tn  2 ) (tn  2  tn )(tn  2  tn 1 ) 
1
  (tn  t )max  2(tn 1  t )max  (tn  2  t ) max  ,

или
1
  (tn  t  2tn 1  2t  tn  2  t )  0, t  tn

t  tn 1
 1 (0  2t  2t  t
, tn  t  tn 1

n 1
n 2  t )  1 
B(t )   

1
t  tn 1
, tn 1  t  tn  2
 (0  0  tn  2  t )  1 


0,
t  tn  2
Это функция «крышка» или «крышечка». Она часто используется в качестве базисной
функции в методах конечных элементов.
Рассмотрим случай B-сплайна 2-го порядка, задаваемого формулой:
 2
x ;


1  2 x  x 2 ;

S k ( x)  

2
2  x ;


2
(1  x ) ;

x
x
x
x
t  t k 2
t k 1  t k 2
t  t k 1
t k  t k 1
t  tk
t k 1  t k
t  t k 1
, t  [t k  2 , t k 1 ];
,
t  [t k 1 , t k ];
,
t  [t k , t k 1 ];
t k  2  t k 1
, t  [t k 1 , t k  2 ].
При t  t k  2 , t  t k  2 , S k ( x )  0. Построенный сплайн обладает следующими
свойствами:
1) S t (t k 2 )  S t (t k  2 )  0;
2) S (t k 1 )  S (t k 1 )  1;
3) S (t k 2 )  S (t k  2 )  0.
При интерполяции функций можно поступить таким способом. Заметим, что для
интерполяции с помощью кубического сплайна необходимо потребовать выполнения
условия
bi 1 S i 1  bi S i  bi 1 S i 1  f i ,
где b — коэффициенты интерполяции, S — B-сплайн, индекс указывает на точку носителя,
в которой сплайн достигает своего максимума. Система таких соотношений, естественно,
дополняется граничными условиями. Известно, что получившаяся система для определения
коэффициентов разложения будет иметь трехдиагональную матрицу с диагональным
преобладанием при выполнении ограничения на длины соседних шагов: они должны
1  13
различаться не более чем в
раза.
2
2. N = 4 (кубический B-сплайн) имеет вид:
B3, n (t ) 


1
(tn  t )3max  4(tn 1  t )3max  6(tn  2  t )3max  4(tn  3  t )3max  (tn  4  t )3max ,
6 4
или, после несложных упрощений:
t  tn ,
0,
 1

(t  tn )3 ,
tn  t  tn 1 ,
 6 4
1
1
1
1
 
(t  tn 1 ) 
(t  tn 1 ) 2 
(t  tn 1 )3 , tn 1  t  tn  2 ,
3
 6 2 2
2
24

1
1
 1  1 (t
 t) 
(tn 3  t )2 
(tn 3  t )3 , tn  2  t  tn 3 ,
3
 6 2 2 n  3
2
2 4

 1 (tn  4  t )3 ,
tn  3  t  tn  4 ,
 6 4
0,
t  tn  4 .

Базисные сплайны заданной степени являются линейно независимыми функциями и
образуют базис в функциональных пространствах, что можно использовать для
представления с их помощью других функций этих же пространств.
Любая, например, кусочно-постоянная функция на отрезке, составленном из равных
интервалов, может быть единственным образом представлена как линейная комбинация
В-сплайнов нулевой степени, любая кусочно-линейная функция — В-сплайнов первой
степени и т. д. Базисные сплайны играют существенную роль при построении численных
методов решения задач математической физики, например, метода конечных элементов в
теории приближения функций, при решении задач компьютерной графики.
Для аппроксимации функции имеем соотношение
f (t ) 
N
 ak Sk (t ),
k 0
а для коэффициентов a k получаем систему уравнений. Действительно, умножив
последнее равенство на S l (x), получим
( f (t ), S k (t )) 
l 2

a k ( S k , S l ),
k l 2
где (a, b)   a(t )b(t ) dt , в силу пересечения носителей лишь у сплайнов, чьи номера
отличаются не более чем на 2. (Носителем функции является отрезок, на котором она
отлична от тождественного нуля.) Интеграл, стоящий в левой части равенства, легко
считается, а все интегралы, входящие в правую часть, легко берутся аналитически. Таким
образом, получаем, что базис из таких сплайнов близок к ортоганальному.
Для B-сплайна степени 3 имеем
 3
x ;


2
3
1  3x  3x  3x ;
Bk ( x)  
4  6 x 2  3 x 3 ;


(1  x) 3 ;

x
x
x
x
t  t k 2
t k 1  t k  2
t  t k 1
t k  t k 1
t  tk
t k 1  t k
t  t k 1
, t  [t k 2 , t k 1 ];
,
t  [t k 1 , t k ];
,
t  [t k , t k 1 ];
t k  2  t k 1
, t  [t k 1 , t k  2 ].
Для интерполяции функции с помощью B-сплайна 3-й степени также приходится
решать линейную систему, определяющую коэффициенты разложения.
Заметим, что для интерполяции с помощью кубического сплайна нам необходимо потребовать
выполнения условия
bi 1S i 1  bi S i  bi 1S i 1  f i ,
где b — коэффициенты интерполяции, S — B-сплайн, индекс указывает на точку носителя,
в которой сплайн достигает своего максимума. Система таких соотношений, естественно,
дополняется граничными условиями. Известно, что получившаяся система для определения
коэффициентов разложения будет иметь трехдиагональную матрицу с диагональным
преобладанием при выполнении ограничения на длины соседних шагов: они должны
различаться не более, чем в
1 13
2
раза, что существенно при реализации методов решения
ОДУ с автоматическим выбором шага.
Численное решение систем линейных алгебраических уравнений
К численному решению систем линейных алгебраических уравнений (СЛАУ) сводятся
многие задачи математической физики. Математические модели, представляющие собой
СЛАУ большой размерности, встречаются в математической экономике, биологии и т. п.
Теория получения приближенных решений СЛАУ — часть вычислительной линейной
алгебры. Сама вычислительная линейная алгебра, по-видимому, является наиболее
обширной темой во всем курсе вычислительной математики. По прикладной линейной
алгебре существует обширная литература (например, [1–5]), а программы, реализующие
наиболее популярные алгоритмы вычислительной линейной алгебры, являются
неотъемлемой частью прикладного программного обеспечения, в частности, современных
математических пакетов.
2.1 Постановка задачи
Рассмотрим СЛАУ вида
Au  f ,
где А — невырожденная (detA ≠ 0) квадратная матрица размером n × n
 a11

a
A   21

 a
 n1
a12
a22
an 2
(2.1)
a1n 

a2 n 
,


ann 
u  {u1, , un }T — вектор-столбец решения, f  { f1, , f n }T — вектор-столбец правой
части.
Так как матрица системы невырожденная,   det A  0 , то решение системы (2.1)
существует и единственно.
Из курса линейной алгебры [6] известно правило Крамера нахождения решения. Так,
каждый компонент вектора неизвестных может быть вычислен как

ui  i ,

где Δi — определитель матрицы, получаемой из А заменой i столбца столбцом правых
частей. Однако несложные арифметические оценки позволяют понять, что использование
этой формулы приводит к неоправданно большим затратам машинного времени [3]. Так,
например, если одно слагаемое в Δ вычисляется за 10–6 сек, то время расчета для n = 100
на существующих в момент написания книги компьютерах будет измеряться годами.
На самом деле в настоящее время с помощью компьютеров численно решаются СЛАУ
намного более высокого порядка (примерно до n ≈ 106). Такие решения осуществляются
при помощи прямых или итерационных численных методов.
Прямые методы позволяют в предположении отсутствия ошибок округления (при
проведении расчетов на идеальном, т. е. бесконечноразрядном компьютере) получить
точное решение задачи за конечное число арифметических действий. Итерационные
методы, или методы последовательных приближений, позволяют вычислить
последовательность {uk}, сходящуюся к решению задач при k → ∞ (на практике,
разумеется, ограничиваются конечным k, в зависимости от требуемой точности).
Однако неточность в задании правых частей и элементов матрицы А может приводить к
значительным погрешностям при вычислении решения (2.1). В первой главе на примере
было показано, что такое явление наблюдается в случае плохо обусловленной системы.
Остановимся подробнее на важном вопросе оценки погрешности решения СЛАУ.
Для этого напомним некоторые сведения из функционального анализа, которые
понадобятся в дальнейшем.
Согласованные нормы векторов и матриц
В векторном n-мерном линейном нормированном пространстве введем следующие нормы
вектора:
кубическая: u 1  max ui ,
(2.2а)
1i n
n
октаэдрическая:
u
2
  ui ,
(2.2б)
i 1
евклидова (в комплексном случае — эрмитова):
1
2
1
 n
2
(2.2в)
u 3    ui   (u,u) 2 .
 i 1

Рассмотрим квадратную матрицу А и связанное с ней линейное преобразование v  Au,
где v, u  Ln (Ln — n-мерное линейное нормированное пространство). Норма матрицы
определяется как действительное неотрицательное число, характеризующее это
преобразование и определяющееся как
Au
А  sup
.
u
u 0
(2.3)
Укажем некоторые свойства нормы матрицы:
АB  A  B ,
А   A ,
AB  A  B ,
A  0 тогда и только тогда, когда А = 0.
Заметим, что норму матрицы (2.3) называют подчиненной норме вектора. Говорят, что
норма матрицы А согласована с нормой вектора u, если выполнено условие
Au  A u .
Нетрудно видеть, что подчиненная норма согласована с соответствующей метрикой
векторного пространства. В самом деле
А  sup
Au
u 0
u

Au
u
, откуда Au  A  u .
Согласованные с введенными выше нормами векторов нормы матриц будут определяться
следующим образом:
n
A 1  max  aij ,
1 i  n
j 1
n
A
A
2
3
 max  aij ,
1 j  n

i 1
max i ( A * A) .
1i  n
Покажем, как получается выражение для согласованной нормы матрицы
A 1,
соответствующей норме вектора u 1 .
Вычислим норму вектора Au 1 :
Au 1  max
i
 aij u j
j
 max( aij u j ) 
i
j
 (max  aij ) max u j  (max  aij ) u 1 ,
i
j
j
i
j
откуда
Au 1
 max  aij . По определению нормы матрицы, как точной верхней грани
u1
i
j
Au
, max  aij  A 1 , если существует вектор, на котором точная верхняя
j
u
i
грань достигается.
Покажем, что таким вектором является, например, vk  {signak1, ,signakn }T , при этом
допустим, что максимум в последнем неравенстве достигается при i = k.
Поскольку v k  k , то  akj v j   akj  max  aij .
отношения
j
Тогда, в соответствии
Av 1  max  aij .
i
i
j
с
j
выражением
для
первой
нормы
вектора,
получаем
j
Таким образом, точная верхняя грань в рассмотренном неравенстве достижима и
действительно A 1  max  aij .
j
Для третьей нормы (2.2в) А 3  sup
u
Au
u
3
3
 sup
u
( Au, Au)
(u , u )
 sup
u
( A * Au, u)
(u, u)
.
Заметим, что матрица B = А*А — симметричная. Без ограничения общности
предположим, что все собственные числа матрицы различны. Матрица обладает всеми
действительными собственными значениями, и каждому собственному числу
соответствует собственный вектор. Все собственные векторы взаимно ортогональны.
Можно рассмотреть ортонормированную систему собственных векторов ω1 , , ωn ;
1, , n — соответствующие им собственные значения. Любой вектор u можно
представить в виде своего разложения по базису из собственных векторов:  i ωi . Кроме
i
того, ( A * A) ωi  i ωi . Поэтому
( A * Au, u)
sup
 sup
(u, u)
u 0
u 0
(  ω ,  ω )
 i i i i i  sup
u 0
i (i ωi , i ωi )
 i i2
 i2

max i ( A * A), причем точная
верхняя грань достигается при u  ω i . Действительно
sup
u
A * Aωi , ωi
 sup i ( A*A)  max i ( A * A), т.к. A * Aωi  i ωi ,
u
(ωi ωi )
u
откуда ( A * Aωi , ωi )  i (ωi , ωi ),
( A * Aωi , ωi )
 i .
(ωi , ωi )
В важном частном случае симметричной (самосопряженной) матрицы А имеем
iA* A  i
A2
2
 iA , поэтому A 3  max iA .
i
Прямые методы решения СЛАУ
Сложность численного решения рассматриваемых СЛАУ определяется видом матрицы А.
Легко найти решение системы с диагональной матрицей, в этом случае система
распадается на n линейных уравнений, каждое из которых содержит лишь одну
неизвестную величину. Для диагональной системы очевидны явные формулы
uk  f k / akk , k  1  n.
В случае верхнетреугольной матрицы
 a11 a12

0 a22
A

 0
0

a1n 

a2 n 


ann 
из последнего уравнения получаем un  f n / ann , (aii ≠ 0, т.к.   det A  0 ).
Решая систему линейных уравнений с треугольной матрицей «снизу вверх», для uk имеем
1
uk 
( f k  aknun  ak ,n 1un 1   ak ,k 1uk 1 ),
akk
1
или uk  akk
( fk 
n
 akju j ),
k  n  1, n  2,
,1.
j k 1
Можно оценить количество арифметических действий, затрачиваемых на решение такой
системы. Оно составляет O(n2).
Пусть теперь система уравнений имеет матрицу общего вида. Стандартная схема такого
решения разделяется на два этапа: прямой ход — приведение матрицы к
верхнетреугольному виду — и обратный — вычисление решения системы.
Метод исключения Гаусса
Рассматривается система уравнений
 a11u1  a12u2   a1nun  f1 ,
a u  a u   a u  f ,
 21 1 22 2
2n n
2


 an1u1  an 2u2   annun  f n .
Прямой ход метода Гаусса состоит в следующем.
Положим, что a11  0 и исключим u1 из всех уравнений, начиная со второго, для чего ко
второму уравнению прибавим первое, умноженное на a21 / a11  21, к третьему
прибавим первое, умноженное на a31 / a11  31 и т. д. После этих преобразований
получим эквивалентную систему:
 a11u1  a12u2   a1nun  f1 ,

a122u2   a12 nun  f 21 ,




a1n 2u2   a1nnun  f n1 ,

в которой коэффициенты и правые части определяются следующим образом:
aij1  aij  i1a1 j ; f i1  f i   i1 f1 ; i, j  2, , n.
Теперь положим а 122  0 .
Аналогично, вычислив множители второго шага ai12 / a122  i 2 (i  3, , n) , исключаем u2
из последних (n – 2) уравнений системы. В результате преобразований получим новую
эквивалентную систему уравнений
a11u1  a12u2  a13u3   a1nun  f1

1
1
1
1
 a22u2  a23u3   a2 nun  f 2

2
a33
u3   a32nun  f32



2

an23u3   ann
un  f n2

в которой
aij2  aij1  i 2 a12 j ;
ui (i  k  1,
fi 2  fi1  i 2 f21 ;
i, j  3,
, n . Продолжая алгоритм, т.е. исключая
, n) , приходим на n – 1 шаге к системе с треугольной матрицей
a11u1  a12u2  a13u3   a1nun  f1

a122u2  a123u3   a12 nun  f 21


2
a33
u3   a32nun  f32



( n 1)

ann
un  f n( n1) .

Обратный ход метода Гаусса позволяет определить решение системы линейных
уравнений. Из последнего уравнения системы находим un; подставляем это значение в
предпоследнее уравнение, получим un–1. Поступая так и далее, последовательно находим
un–2, un–3,…, u1.
Вычисления компонент вектора решения проводятся по формулам
( n1)
un  fn( n1) / ann
,
…
uk 
1
( k 1)
akk
( f k( k 1)  ak( k,k1)1uk 1 
( k 1)
 akn
un ), k  n  1, n  2,
,1,
…
u2 
1
( f 21  a123u3 
1
a22
 a12 nun ),
1
( f1  a12u2   a1nun ).
a11
Этот алгоритм прост и легко реализуем при условии, что a11  0, a22  0,  Количество
арифметических действий прямого хода 2/3n3, обратного n2. Это уже приемлемая для
современных компьютеров величина.
u1 
Download