Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Voprosy_k_ekzamenu_2_semestr(1).doc
Скачиваний:
2
Добавлен:
20.11.2019
Размер:
1.65 Mб
Скачать
  1. Решение систем линейных уравнений итерационными методами. Метод Зейделя.

Представляет собой некоторую модификацию метода итераций. Основная его идея заключается в том, что при вычислении (k+1)- приближения неизвестного xi учитываются уже вычисленные ранее (k+1)- приближения переменных x1, x2,…, xi-1.

Метод Зейделя обладает более высокой скоростью сходимости. В координатной форме записи метод Зейделя имеет вид:

X1(k+1)=c11* x1(k) + c12 * x2(k) + … + c1n * xn(k) + d1

X2(k+1)=c21* x1(k) + c22 * x2(k) + … + c2n * xn(k) + d2

. . .

Xn(k+1)=cn1* x1(k) + cn2 * x2(k) + … + cnn * xn(k+1) + dn

X0-некоторое начальное приближение решения.

Условие окончания итерационного процесса упирается в точность | X(k+1)- X(k)|<=Е

Признаки сходимости метода Зейделя:

  1. Чтобы метод Зейделя сходился, достаточно, чтобы 1 или 2 норма матрицы удовлетворяли условиям:

  1. Ecли ||A||I=… норма матрицы по столбцам <=1, но хотя бы для одного i выполняется строгое неравенство , то метод Зейделя сходится.

  2. Если матрица А является симметричной и положительно определенной, то метод Зейделя сходится при любом начальном приближении.

Sub Макрос4()

Dim eps As Double, x(4) As Double

Dim i, n As Integer

eps = 0.0000001

Range("B7").Cells = eps

Call zeidel(eps, x, n)

Range("B11").Cells = x(1)

Range("C11").Cells = x(2)

Range("D11").Cells = x(3)

Range("E11").Cells = x(4)

Range("F11").Cells = n : End Sub

Метод Зейделя.

Sub Iter(e, x, n)

Dim x0(4) As Double, s As String

Dim i As Integer, j As Integer

Dim l As Boolean

Dim a(4, 4) As Double, b(4) As Double

For i = 1 To 4

a(i, 1) = Range("A" & Format(i + 1, "#0")).Cells

a(i, 2) = Range("C" & Format(i + 1, "#0")).Cells

a(i, 3) = Range("E" & Format(i + 1, "#0")).Cells

a(i, 4) = Range("G" & Format(i + 1, "#0")).Cells

b(i) = Range("J" & Format(i + 1, "###0")).Cells

x(i) = 0: Next i: n = 0

Do : n = n + 1: l = False

For i = 1 To 4 : x0(i) = x(i) : Next i

For i = 1 To 4 : x(i) = b(i) / a(i, i)

For j = 1 To i – 1 : x(i) = x(i) - a(i, j) / a(i, i) * x0(j) : Next j

For j = i + 1 To 4 : x(i) = x(i) - a(i, j) / a(i, i) * x(j) : Next j

If Abs(x(i) - x0(i)) > e Then : l = True : End If : Next i

Loop Until Not l : End Sub

  1. Численное интегрирование. Метод прямоугольников с недостатком.

Метод прямоугольников (левые, правые)

Во многих случаях достаточно знать приближенное значение определенного интеграла. Пусть y=f(x) непрерывна на отрезке [a,b] и нам требуется вычислить интеграл от a до b от функции f(x) по dx. Разобьем отрезок [a,b] на n частей [Xi-1, Xi], i=1,2…n. Внутри каждого отрезка [Xi-1,Xi] выберем какую-то точку Ti.Т.к. по определению интеграл–это предел интегральных сумм, то любая из интегральных сумм есть приближенное значение интеграла.

Суть метода прямоугольников заключается в том, что в качестве приближенного значения определенного интеграла берут интегральную сумму.

Если отрезок [a,b] разбить на равные части длинной h, то a=X0, X1=X0+h, X2=X0+2h…Xn-1=X0+(n-1)h, Xn=X0+nh=b, таким образом h=(b-a)/n.В качестве точке Ti выберем середины элементарных отрезков, т.е. Ti=Xi-1+h/2, где i=1…n. Таким образом формула метода прямоугольников выглядит (формула средних прямоугольников):

где h=(b-a)/n – шаг разбиения отрезков [a;b]

Абсолютная погрешность формулы прямоугольников на отрезке от a до b равна сумме погрешностей на каждом элементарном интервале.

Встречаются модификации метода прямоугольников:

-метод левых прямоугольников

-метод правых прямоугольников

-метод средних прямоугольников

Отличие от метода средних прямоугольников заключается в выборе точки Ti не в середине, а на левой и правой границах элементарных отрезков.

Абсолютная погрешность:

Function f(x) As Double

f = Sin(2 * x) * Cos(x) - 0.3 * x

End Function

Sub Макрос5()

Dim eps, a, b, xn, xm As Double

Dim i, n As Integer

eps = 0.000001

a = Range("B7").Cells

b = Range("B8").Cells

n = 0

xn = PrN(a, b, eps, n)

Range("B11").Cells = xn

Range("C11").Cells = n

End Sub

Метод прямоугольников с недостатком

Function PrN(a, b, e, n) As Double

Dim k As Currency

Dim s, s1, x, dx As Double

k = 1: s1 = 0: n = 0

Do

s = s1: k = k * 2: n = n + 1

dx = (b - a) / k

s1 = 0

For x = a To b - dx + e Step dx

s1 = s1 + f(x)

Next x

s1 = dx * s1

Loop Until Abs(s - s1) <= e

PrN = s1

End Function

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]