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

Материал из testwiki
Перейти к навигации Перейти к поиску

Постановка задачи

Дана СЛАУ:

{a11x1+a12x2+...+a1mxm=b1am1x1+am2x2+...+ammxm=bm
A=(a11a1mam1amm)x=(x1xm)b=(b1bm)

Ax=b Предполагаем, что A - невырожденная ( задача корректна). x*=(x1*xm*)T - приближенное решение задачи. Погрешность e=xx*. Невязка r=bAx*r=AxAx*=A(xx*)e=A1r

Шаблон:Определение Три варианта задания нормы:

x1=i=1m|xi|,x2=(i=1m|xi|2)12,x=max1im|xi|

Скалярное произведение: (x,y)=x1y1+...+xmym. Погрешности: δ(x*)=xx*x, Δ(x*)=xx*

Шаблон:Определение

Норма матрицы A=maxx0Axx. Свойства:

  1. A0A=0A=0
  2. αA=|α|AA,α
  3. A+BA+B
  4. ABAB
  5. AxAx(x0AxxAиз определения)
A1=max1jmi=1m|aij|,A2=max1jmλj(ATA),A=max1jmi=1m|aji|

Это подчиненные нормы AE=i,j=1maij2

Обусловленность задачи решения СЛАУ

Шаблон:Лемма

Шаблон:Доказательство

Шаблон:МатТеорема

Шаблон:Доказательство

Шаблон:МатТеорема

Шаблон:МатТеорема Шаблон:Доказательство

Методы решения

Метод Гаусса

Прямой ход:

1-й шаг - пусть a110. Найдем μi1=ai1a11,i=2,m. Из 2..m уравнений вычитаем первое, домноженное на μi1. Получаем:

a11x1+a12x2++a1mxm=b1a22(1)x2++a2m(1)xm=b2(1)am2(1)x2++amm(1)xm=bm(1)

aij(1)=aijμi1aij,bi(1)=biμi1b1

2-й шаг - пусть a22(1)0,μi2=ai2(1)a22(1)

k-й шаг: akk(k1)0,νik=aik(k1)akk(k1),i=k+1,m

За (m-1) шаг получаем:

a11x1+a12x2+a33x3++a1mxm=b1a22(1)x2+a33(1)x3++a2m(1)xm=b2(1)a33(2)x3++a2m(2)xm=b2(2)amm(m1)xm=bm(m1)

Обратный ход:

Из последнего уравнения находим xm, подставляем в предпоследнее, находим xm1. xm=bm(m1)/amm(m1),xk=(bk(k1)ak,k+1(k1)xk+1...akm(k1)xm)/akkk1,k=m1,1

Трудоемкость:

1. m-1 деление, (m-1)m умножений, (m-1)m вычитаний Q1=2(m1)2+3(m1)

k. Qk=2(mk)2+3(mk)

Q=k=1n1Qk=2k=1m1(mk)2+3k=1m1(mk)=2k=1m1k2+3k=1m1k=2(m1)m(2m1)6+3(m1)m223m3

Обратный ход: m2 операций. Необходимость выбора главных элементов: главный элемент не должен быть равен нулю. Если он близок к нулю, растет погрешность (это для ЭВМ).

Матричная форма метода Гаусса. (LU - разложение)

После первого шага получаем A(1)x=b(1). Введем:

M1=(1000μ21100μ31010μm1001)M2=(100001000μ32100μm201)
Mm1=(10000100000000μm,m11)
A(1)=M1A,b(1)=M1b,A(m1)=Mm1A(m2),b(m1)=Mm1b(m2)

Начальная система: Mm1...M2M1Ax=Mm1...M2M1b.

Mm1...M2M1A - верхняя треугольная матрица =A(m1).

L=M11M21...Mm11=(100...0μ2110...0μ31μ321...0μm1μm2μm3...1)

Свойства элементарных матриц:

  1. detMi=1
  2. Mi - нижние треугольные матрицы
  3. Mi1 - тоже, только у μ вместо "-" стоит "+"

A=LU

Шаблон:МатТеорема Использование:

  1. преобразуем b в b(m1)b(m1)=Mm1...M2M1b
  2. Решаем систему Ux=b(m1)

Количество действий: 23m3+2m2

Модификации Гаусса

  1. на k-м шаге в качестве главного элемента выбираем максимальный по модулю коэффициент aik,k и переставляем строки.
  2. на каждом шаге выбираем максимальный по модулю коэффициент из строк с номерами i=k..m и переставляем строки (столбцы)

Масштабирование - делим каждое уравнение на наибольший по модулю коэффициент.

Метод Холецкого

Ax=b, A - симметричная (A=AT), положительно определенная (x0:(Ax,x)>0 - скалярное произведение Ax на x) Проверка:

  1. Все главные миноры положительны
  2. |aii|>ji|aij| - диагональное преобладание
  3. |ajj|>ij|aij| - столбцовое преобладание

Специальное LU - разложение: A=LLT.

L=(l1100l21l220lm1lm2lmm)
l112=a11li1l11=ai1i=2,ml212+l222=ai2li1l21+li2l22=ai2i=3,mlk12+lk22+...+lkk2=akkli1lk1+...+liklkk=aiki=k+1,mlm12+...+lmm2=amm
l11=a11li1=ai1/l11i=2,ml22=ai2l212li2=(ai2li1l21)/l22i=3,mlkk=akklk12...lk,k12lik=(aikli1lk1...li,k1lk,k1)/lkki=k+1,mlmm=ammlm12...lm,m12

После получения этого разложения решаем Ly=b,LTx=y. Это решение требует 2m2 действий

Метод Прогонки

b1x1+c1x2=d1a2x1+b2x2+c2x3=d2aixi1+bixi+cixi+1=diam1xm2+bm1xm1+cm1xm=dm1amxm1+bmxm=dm

Вывод:

x1=α1x2+β1α1=c1b1β1=d1b1x2=α2x3+β2α2=c2b2+a2α1β2=d2a2β1b2+a2α1xi=αixi+1+βiαi=cibi+aiαi1βi=diaiβi1bi+aiαi1xm1=αm1xm+βmm1
m:am(am1xm+βm1)+bmxmxm=βm=dmamβm1bm+amαm1

Алгоритм

Прямой ход:

αi=ciγiβi=diγiγi=bi,i=1;αi=ciγiβi=diaiβi1γiγi=bi+aiαi1,i=2..m1;βi=diaiβi1γiγi=bi+aiαi1,i=m.

Обратный ход:

i=mxm=bmi=m1..1xi=aixi+1+βi

Количество операций: Q=8m.

Шаблон:МатТеорема

Шаблон:Доказательство