Вычисление суммы. Рекуррентные формулы.

Условие задачи: Для x, изменяющегося в интервале от x0 до xk с шагом h, вычислить значения бесконечной суммы y(x) с точностью e=0.00001. Вычисление суммы. Рекуррентные формулы. - student2.ru

e = 0.000001: n = 1

For x = xh To xk Step dx

y = 0: i = 0: u = 1

While Abs(u) > e : y = y + u : u = (x) ^ 2 / (i + 1) * u : i = i + 1

Wend : n = n + 1

Next x

Вычисление чисел Фибоначчи.

Sub Fib1()

ActiveCell.FormulaR1C1 = "1"

Range("A2").Select

ActiveCell.FormulaR1C1 = "2"

Range("A3").Select

ActiveCell.FormulaR1C1 = "=R[-2]C+R[-1]C"

Range("A3").Select

Selection.AutoFill Destination:=Range("A3:A20"), Type:=xlFillDefault: Range("A3:A20").Select

18. Нахождение «сигнальной» матрицы В = sign(A).

Sub matAB()

Dim a(3, 3) As Integer : Dim b(3, 3) As Integer

Dim i, j As Integer : Dim s1, s2 As String

For i = 1 To 3 : For j = 1 To 3

If a(i, j) > 0 Then: b(i, j) = 1: Else

If a(i, j) = 0 Then: b(i, j) = 0: Else: b(i, j) = -1: End If

End If: Range(s1).Cells = b(i, j): Next: Next: End Sub

19. Решение уравнений вида f(x) = 0. Метод Ньютона.

При x=а f’(x)*f ’’(x)<0 – функция убывающая и f’(x)*f ’’(x)>0-функция возрастающая.

Расчетная формула Ньютона имеет вид:

Вычисление суммы. Рекуррентные формулы. - student2.ru

Вычисления ведутся до тех пор, пока |xn-xn-1|<E

While Abs(f(x)) > 0.01

i = i + 1

x = x - f(x) / f1(x)

Wend

End Sub

20. Решение уравнений вида f(x) = 0. Метод деления отрезка пополам.

Алгоритм:

1. Ввести данные (а, b, е)

2. Если нужная точность достигнута (|b-a|<2е), переходим у пункту6

3. Взять середину очередного отрезка c=(a+b)/2

4. Если значение функции в точках а и с одного знака (f(а)*f (с)>0), то в качестве следующего отрезка взять другую половину а=с, иначе b=c.

5. Перейти к пункту 2

6. Напечатать ответ (a+b)/2

x = Del(a, b, eps)

Function Del(a As Double, b As Double, e As Double) As Double

Dim x As Double, n As Integer

If fun(a) * fun(b) <= 0 Then

n = 0: While (b - a) > e: n = n + 1 : x = (a + b) / 2

If fun(a) * fun(x) <= 0 Then

b = x: Else: a = x: End If

Range("B5").Cells = n : Del = (a + b) * 0.5

Wend: Else: MsgBox ("a,b=?")

Exit Function : End If : End Function

21. Решение уравнений вида f(x) = 0. Метод хорд.

Xn+1= Xn-(f(Xn)(b- Xn))/(f(b)-f(Xn))

Xn+1= Xn-(f(Xn)(Xn-а))/(f(Xn)-f(a))

| Xn+1- Xn|<Ɛ

x = Hor(a0, b0, eps)

Function Hor(a As Double, b As Double, e As Double) As Double: Dim x As Double, x0 As Double, n As Integer: If fun(a) * fun(b) <= 0 Then

n = 0: x0 = a: x = b: While Abs(x0 - x) > e

n = n + 1: x0 = x: x = b - fun(b) * (b - a) / (fun(b) - fun(a)): If fun(a) * fun(x) <= 0 Then: b = x : Else : a = x: End If : Hor = x: Wend : Else MsgBox ("a,b=?"): Exit Function : End If : End Function

22. Решение систем линейных уравнений итерационнымиметодами. Метод простой итерации.

Нормой вектора B и матрицы А называют соответственно следующие числа:Вычисление суммы. Рекуррентные формулы. - student2.ru ;

Вычисление суммы. Рекуррентные формулы. - student2.ru

количество итераций m: m≥ Вычисление суммы. Рекуррентные формулы. - student2.ru

|x(m)- x(m-1)| ≤ Вычисление суммы. Рекуррентные формулы. - student2.ru

Xn+1= Xn-(f(Xn)(b- Xn))/(f(b)-f(Xn))

Xn+1= Xn-(f(Xn)(Xn-а))/(f(Xn)-f(a))

|Xn+1-Xn|<Е

Алгоритм:

1) Преобразуем исходную систему к виду x=αx+β.

2) Находим норму матрицы.

3) Если |α| < 1, то переходим к пункту 4.

4) Задается начальное приближение и ε

5) Рассчитывается количество итераций i.

6) Вычисляется очередная итерация xi+1=n(xi)

7) Если |x(m)- x(m-1)| ≤ Вычисление суммы. Рекуррентные формулы. - student2.ru, то процесс закончен, иначе переход к пункту 6.

x = Hor(a0, b0, eps)

Call Iter(eps, x, n)

For i = 1 To 4

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) * x0(j) : Next j

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

End If : Next i : Loop Until Not l : End Sub

Наши рекомендации