Перейти к содержанию

Информационные технологии в лингвистике/Лингвистика в электронных энциклопедиях/Песочница

Корректность алгоритмов

[править]
Определение. Вычислительный алгоритм - точное предписание действий над входными данными, задающее вычислительный процесс, направленный на преобразование произвольных входных данных x∈X в полностью определенный этими входными данными результат.


Определение. Вычислительный алгоритм называется корректным, если:
  1. Он позволяет после выполнения конечного числа элементарных для вычислительной машины операций преобразовать любое входное x∈X в результат y.
  2. Результат y устойчив по отношению к малым возмущениям входных данных.
  3. Результат y обладает вычислительной устойчивостью.


2. - это устойчивость по входнымм данным. Означает то, что результат непрерывным образом зависит от входных данных при условии, что отсутствует вычислительная погрешность.

Определение. Алгоритм называется вычислительно устойчивым, если вычислительная погрешность результата стремитсяк нулю при εM→0 (εm - машинная погрешность)


Если алгоритм устойчив по входным данным и вычислительно устойчив, то он называется устойчивым.

Определение. Вычислительный алгоритм называют хорошо обусловленным, если малые относительные погрешности округления (характеризуемые числом εM) приводят к малой относительной вычислительной погрености δ(y∗) результата y∗


Если δ(y∗)≤νAεM, то νA - число обусловленности алгоритма. Алгоритм плохо обусловлен, если νA≫1.

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

[править]
{a11x1+a12x2+...+a1mxm=b1…am1x1+am2x2+...+ammxm=bm
A=(a11…a1m⋮⋱⋮am1…amm)x=(x1⋮xm)b=(x1⋮xm)

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

Определение. ‖x‖ называется нормой вектора x, если обладает свойствами:
  1. ‖x‖≥0, ‖x‖=0⇔x=0
  2. ‖Ax‖=|A|‖x‖∀x∀A
  3. ‖x+y‖≤‖x‖+‖y‖∀x,y


Три варианта задания нормы:

‖x‖1=∑i=1m|xi|,‖x‖2=(∑i=1m|xi|2)12,‖x‖∞=max⁡1≤i≤m|xi|

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

Определение. Сходимость по норме: {x(n)}n=1∞ - последовательность векторов x(n)→x при n→∞, если Δ(x(n))=‖x(n)−x‖→0 при n→∞.


Норма матрицы ‖A‖=max⁡x≠0‖Ax‖‖x‖. Свойства:

  1. ‖A‖≥0‖A‖=0⇔A=0
  2. ‖AA‖=|A|‖A‖∀A,A
  3. ‖A+B‖≤‖A‖+‖B‖
  4. ‖A⋅B‖≤‖A‖⋅‖B‖
  5. ‖Ax‖≤‖A‖⋅‖x‖(‖x‖≠0⇒‖Ax‖‖x‖≤‖A‖−из определения)
‖A‖1=max⁡1≤j≤m∑i=1m|aij|,‖A‖2=max⁡1≤j≤mλj(ATA),‖A‖∞=max⁡1≤j≤m∑i=1m|aji|

Это подчиненные нормы ‖A‖E=∑i,j=1m‖aij‖2

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

[править]

\begin{lemma} Δ(x∗)≤‖A−1‖⋅‖r‖, где r=b−Ax∗ \end{lemma}

Доказательство. x−x∗=e=A−1r⇒Δ(x∗)=‖x−x∗‖=‖A−1r‖≤‖A−1‖⋅‖r‖


Теорема. x∗ - точное решение системы Ax∗=b∗, где b∗ - приближенное к b.

Тогда верно: Δ(x∗)≤νΔΔ(b∗)δ(x∗)≤νδδ(b∗), где νΔ=‖A−1‖,νδ=‖A−1‖⋅‖b‖/‖x‖

Доказательство. Здесь r=b−Ax∗=b−b∗. Из леммы: Δ(x∗)≤‖A−1‖⋅Δ(b∗). Разделим на ‖x‖: Δ(x∗)‖x‖≤‖A−1‖⋅‖b‖‖x‖⋅Δ(b∗)‖b‖

νΔ=‖A−1‖ - абсолютное число обусловленности для Ax=b. νδ=νδ(x)=‖A−1‖⋅‖b‖‖x‖ - естественное число обусловленности (относительное). max⁡x≠0νδ(x)=‖A−1‖⋅‖A‖=ν(A)=cond(A) - число обусловленности.


Теорема. δ(x∗)≤cond(A)⋅δ(b∗). Факты:
  1. cond(E)=1(E−1=E,‖E‖=1)
  2. cond(A)≥1(E=A−1A,‖E‖≤‖A−1‖⋅‖A‖)
  3. ∀A≠0:cond(AA)=cond(A)(‖AA‖⋅‖AA−1‖=|A|‖A‖⋅|A|−1‖A−1‖)
Теорема. x∗ - точное решение. A∗x∗=b - приближено заданная матрица A∗. Тогда δ∗(x∗)≤cond(A)⋅δ(A∗), где δ∗(x∗)=‖x−x∗‖‖x∗‖,δ(A∗)=‖A−A∗‖‖A‖
Доказательство. r=b−Ax∗=A∗x∗−Ax∗=(A∗−A)x∗

δ∗(x∗)=‖x−x∗‖‖x∗‖≤‖A−1‖⋅‖(A∗−A)x∗‖/‖x∗‖≤‖a−1‖⋅‖A∗−A‖⋅‖x∗‖‖x∗‖=cond(A)⋅δ(A∗)


Метод Гаусса

[править]

Прямой ход:

1-й шаг - пусть a11≠0. Найдем μ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(k−1)≠0,νik=aik(k−1)akk(k−1),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(m−1)xm=bm(m−1)

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

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

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

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

k. Qk=2(m−k)2+3(m−k)

Q=∑k=1n−1Qk=2∑k=1m−1(m−k)2+3∑k=1m−1(m−k)=2∑k=1m−1k2+3∑k=1m−1k=2(m−1)m(2m−1)6+3(m−1)m2≈23m3

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

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

[править]

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

M1=(100…0−μ2110…0−μ3101…0…−μm100…1)M2=(100…0010…00−μ321…0…0−μm20…1)
Mm−1=(10…0001…0000…00…00…−μm,m−11)
A(1)=M1A,b(1)=M1b,A(m−1)=Mm−1A(m−2),b(m−1)=Mm−1b(m−2)

Начальная система: Mm−1⋅...⋅M2⋅M1⋅Ax=Mm−1⋅...⋅M2⋅M1⋅b.

Mm−1⋅...⋅M2⋅M1⋅A - верхняя треугольная матрица =A(m−1).

L=M1−1M2−1...Mm−1−1=(100...0μ2110...0μ31μ321...0…μm1μm2μm3...1)

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

  1. det⁡Mi=1
  2. Mi - нижние треугольные матрицы
  3. Mi−1 - тоже, только у μ вместо <<->> стоит <<+>>

A=LU

Теорема. Если все главные миноры матрицы A≠0, то ∃! нижняя треугольная матрица L вида (1) и верхняя треугольная матрица U такие, что A=LU.

Использование:

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

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

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

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

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

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

[править]

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

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

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

L=(l110…0l21l22…0…lm1lm2…lmm)
l112=a11li1l11=ai1i=2,m‾l212+l222=ai2li1l21+li2l22=ai2i=3,m‾…lk12+lk22+...+lkk2=akkli1lk1+...+liklkk=aiki=k+1,m‾…lm12+...+lmm2=amm⇒
⇒l11=a11li1=ai1/l11i=2,m‾l22=ai2−l212li2=(ai2−li1l21)/l22i=3,m‾…lkk=akk−lk12−...−lk,k−12lik=(aik−li1lk1−...−li,k−1lk,k−1)/lkki=k+1,m‾…lmm=amm−lm12−...−lm,m−12

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

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

[править]
b1x1+c1x2=d1a2x1+b2x2+c2x3=d2…aixi−1+bixi+cixi+1=di…am−1xm−2+bm−1xm−1+cm−1xm=dm−1amxm−1+bmxm=dm

Вывод:

x1=A1x2+β1A1=−c1b1β1=d1b1x2=A2x3+β2A2=−c2b2+a2A1β2=d2−a2β1b2+a2A1…xi=Aixi+1+βiAi=−cibi+aiAi−1βi=di−aiβi−1bi+aiAi−1…xm−1=Am−1xm+βmm−1
m:am(am−1xm+βm−1)+bmxm⇒xm=βm=dm−amβm−1bm+amAm−1

Алгоритм

Прямой ход:i=1Ai=−ciγiβi=diγiγi=bii=2..m−1Ai=−ciγiβi=di−aiβi−1γiγi=bi+aiAi−1i=mβi=di−aiβi−1γiγi=bi+aiAi−1
Обратный ход:i=mxm=bmi=m−1..1xi=aixi+1+βi

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

Теорема. Пусть |bk|≥|ak|+|ck|,|b'k|>|ak|,(1≤k≤m). Тогда γi≠0 и Ai≤1 ∀i=1,2,...,m
Доказательство. γ1=b1≠0,|A1|=|c1||b1|≤1

Пусть γk−1≠0 и |λk−1|≤1 для некоторого k>1. Тогда |γk|=|bk+akAk−1|≥|bk|−|ak||Ak−1|≥|bk|−|ak|>0, |γk|≥|ck|⇒γk≠0 и |Ak|=|ck||γk|≤1


Тяпикина

[править]

Накохова

[править]

Ивницкий

[править]

Струкова

[править]

При создании страниц важно завлечь посетителя. Не забывайте, что в среднем человек находится на веб-странице 3—5 секунд, если он за это время не нашёл нужного, то он уходит со страницы. Следовательно, страницы должны быть:

1.Полезными. Отсутствие сути никаким оформлением не прикроешь. Обратное неверно. Пример — Библиотека Мошкова 2.Небольшими. Даже если контент интересен, то 10 экранных страниц интересного контента на одной странице сайта это слишком. 2—3 экрана это максимум. Большие страницы лучше разбить на несколько и связать гипертекстовыми ссылками. 3.Структурными. Структурный текст лучше воспринимается, и в нём легче найти необходимую информацию. Самое важное должно быть выделено. Не злоупотребляйте выделением — когда выделено всё, значит ничто не выделено.


Калугина

[править]

Шульц

[править]

Байчоров

[править]

Татар

[править]

Ганзикова

[править]