- •Часть 1.
- •Встроенные функции для работы с файловой системой.
- •Работа с текстовыми файлами.
- •Объект Application. Основные свойства и методы.
- •Объект Workbook. Основные свойства и методы.
- •Объект Worksheet. Основные свойства и методы.
- •Объект Worksheet. Основные события.
- •Объект Range. Общая характеристика.
- •Работа с макросами в Ecxel.
- •Метод Activate(). Метод AutoFill(). Метод Consolidate().
- •Метод Delete(). Метод с префиксом Fill. Метод Find().
- •Метод GoalSeek(). Метод Insert(). Метод Justify().
- •Метод Merge(). Метод Parse(). Метод Replace(). Метод Select() .
- •Метод Copy(). Метод Sort(). Метод SubTotal().
- •Работа с диаграммами (объект Chart).
- •Табулирование функции и построение графика.
- •Вычисление суммы. Рекуррентные формулы.
- •Вычисление чисел Фибоначчи.
- •Решение систем линейных уравнений итерационными методами. Метод простой итерации.
- •Решение систем линейных уравнений итерационными методами. Метод Зейделя.
- •Численное интегрирование. Метод прямоугольников с недостатком.
- •Численное интегрирование. Метод прямоугольников с избытком.
- •Численное интегрирование. Метод трапеций.
- •Поиск минимума функции вида f(X). Метод деления отрезка пополам.
- •Поиск минимума функции вида f(X). Метод «Золотого сечения».
- •1 Билет.
- •2 Билет
Решение систем линейных уравнений итерационными методами. Метод простой итерации.
Систему линейных алгебраических уравнений можно записать виде ax=b (1)-матричная форма.
Метод пр.ит.применяется для нахождения корней системы лин.уравнений с заданной точностью. Число шагов (итераций) определяется выбором начального приближения, x1 (0), x2(0)…xn(0), погрешностью и зависит от коэффициента матрицы системы.
Для проведения итерационного процесса система записывается в виде: x=αx+β, где α=ε-zA, β=zB.
Матрица z выбирается так, чтобы выполнялось достаточное условие сходимости метода пр.итерации. ||α||=q < 1.
Нормой вектора B и матрицы А называют соответственно следующие числа: ;
(2)
Процесс последовательного приближения по методу пр.итераций может быть построении в соответствии с формулой: x(m+1)= αx(m)+ β (3), где начальное приближение – есть столбец свободных элементов
x(0)=
Если |α| < 1 то последовательность x(m) сходится по норме к истинному решению x, и справедливы следующие оценки:
|x(m)-x|≤ |x(m)- x(m-1)| (4);
|x(m)-x|≤ |x(1)- x(0)| (5)
Из (5) следует, что для достижения требуемой точности ε необходимо выполнить количество итераций m: m≥ (6)
Если требуемая точность достигнута |x(m)- x(m-1)| ≤ , то процесс последовательного решения x прекращаем.
Существует формула, задающая уравнение прямой, проходящей через 2 точки со следующими координатами (2). Уравнение (3) . Тогда уравнение хорды будет следующее(4)
Найдем значение x=x1, для которого y=0 и выразим x1 .
X1=a-(f(a)(b-a))/(f(b)-f(a))
Теперь наш корень находится на отрезке [x1;b]. Применим метод хорд к этому отрезку. Проведем хорду, соединяющую точки А1( x1, f(x1)) и B0 (b, f(a)) и найдем x2-точку пересечения хорды А1 В0 с осью х. Получится следующая формула: X2= X1-(f(X1)(b- X1))/(f(b)-f(X1))
Продолжая этот процесс, получаем рекуррентную формулу вычисления приближений корня:
Xn+1= Xn-(f(Xn)(b- Xn))/(f(b)-f(Xn))
В этом случае конец b отрезка [a, b] остается неподвижным, а а перемещается. Вычисления продолжаются до тех пор, пока не достигнем Е. | Xn+1- Xn|<Е
f(a)<0, f(b)>0, f(a)>0, f(b)<0,
f’(x)>0, f ’’(x)<0 f’(x)<0, f ’’(x)>0
Соединим точки A0(a, f(a)) и B0(b, f(b)) хордой A0B0.
Точку пересечения хорды с осью х будем считать первым приближением корня. В этом случае неподвижным концом отрезка будет а. Уравнение хорды A0B0 :
(y-f(b))/(f(a)-f(b))= (x-b)/(a-b)
y=0 : x1 = b-(f(b)(b-a))/(f(b)-f(a))
x € [a; x1]
Проводим следующую хорду и вычисляем X2
X2= X1-(f(X1)(X1-а))/(f(X1)-f(а))
Xn+1= Xn-(f(Xn)(Xn-а))/(f(Xn)-f(a))
| Xn+1- Xn|<Е
Private Function fun(x As Double) As Double
fun = x * Cos(x) + 0.9 * Sin(x) - 0.1
End Function
Sub Макрос3()
Dim a As Double, a0 As Double, b As Double, b0 As Double, eps As Double, x As Double, i, n As Integer
eps = CDbl(InputBox("точность"))
Range("B2").Cells = eps:a = CDbl(InputBox("a"))
a0 = a:Range("B3").Cells = a:b = CDbl(InputBox("b"))
b0 = b:Range("B4").Cells = b:x = Hor(a0, b0, eps)
Range("C6").Cells = x:Range("C7").Cells = fun(x)
End Sub: 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 : Range("C5").Cells = n: Hor = x: Wend : Else
MsgBox ("a,b=?"): Exit Function : End If : End Function
Алгоритм:
Преобразуем исходную систему к виду x=αx+β.
Находим норму матрицы.
Если |α| < 1, то переходим к пункту 4.
Задается начальное приближение и ε
Рассчитывается количество итераций i.
Вычисляется очередная итерация xi+1=n(xi)
Если |x(m)- x(m-1)| ≤ , то процесс закончен, иначе переход к пункту 6.
Sub Макрос4()
Dim eps As Double, x(4) As Double : Dim i, n As Integer
eps = 0.0000001 : Range("B7").Cells = eps
Call Iter(eps, x, n)
Range("B10").Cells = x(1) : Range("C10").Cells = x(2)
Range("D10").Cells = x(3) : Range("E10").Cells = x(4)
Range("F10").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) * x0(j) : Next j
If Abs(x(i) - x0(i)) > e Then : l = True
End If : Next i : Loop Until Not l : End Sub