Лабораторная работа №2 «аппроксимация».
Цель работы: научиться применять формулы метода наименьших квадратов для функционального описания массива экспериментальных данных.
Расчетные формулы
Пример работы программы
Const n = 12
Dim x(n), Y(n) As Variant
Private Sub CommandButton1_Click()
Stdef = Worksheets(3).Range("f25").Value
For i = 1 To n
x(i) = Worksheets(3).Cells(i + 2, 1).Value
Y(i) = Worksheets(3).Cells(i + 2, 2).Value
Next i
For i = 1 To n
Worksheets(3).Cells(i + 2, 3).Value = x(i)
Worksheets(3).Cells(i + 2, 4).Value = Y(i) + Stdef * (Rnd() - 0.5)
Y(i) = Worksheets(3).Cells(i + 2, 2).Value
Next i
End Sub
Private Sub CommandButton2_Click()
For i = 1 To n
x(i) = Worksheets(3).Cells(i + 2, 1).Value
Y(i) = Worksheets(3).Cells(i + 2, 2).Value
Stdef = Worksheets(1).Range("f25").Value
Worksheets(3).Cells(i + 2, 3).Value = x(i)
Worksheets(3).Cells(i + 2, 4).Value = Y(i)
Next i
End Sub
Private Sub CommandButton3_Click()
For i = 1 To n
x(i) = Worksheets(3).Cells(i + 2, 1).Value
Y(i) = Worksheets(3).Cells(i + 2, 4).Value
Worksheets(3).Cells(i + 2, 5).Value = x(i)
Next i
s1 = 0
s2 = 0
s3 = 0
s4 = 0
For i = 1 To n
s1 = s1 + x(i) * Y(i)
s2 = s2 + x(i)
s3 = s3 + Y(i)
s4 = s4 + x(i) ^ 2
Next i
A = (n * s1 - s2 * s3) / (n * s4 - s2 ^ 2)
Worksheets(3).Cells(29, 2).Value = A
s5 = 0
For i = 1 To n
s5 = s5 + (Y(i) - A * x(i))
Next i
b = s5 / n
Worksheets(3).Cells(30, 2).Value = b
For i = 1 To n
Y(i) = (A * x(i) + b)
Worksheets(3).Cells(i + 2, 5).Value = x(i)
Worksheets(3).Cells(i + 2, 6).Value = Y(i)
Next i
For i = 1 To n
yt = Worksheets(3).Cells(25, 2).Value
Y(nz) = Worksheets(3).Cells(29, 2).Value
Pogr = Abs((yt - Y(nz)) / yt)
Worksheets(3).Cells(29, 4).Value = Pogr
Next i
For i = 1 To n
yt = Worksheets(3).Cells(26, 2).Value
Y(nz) = Worksheets(3).Cells(30, 2).Value
Pogr = Abs((yt - Y(nz)) / yt)
Worksheets(3).Cells(30, 4).Value = Pogr
Next i
End Sub
Private Sub CommandButton4_Click()
For i = 1 To n
Worksheets(3).Cells(i + 2, 5).Value = ""
Worksheets(3).Cells(i + 2, 6).Value = ""
Next i
Worksheets(3).Cells(29, 2).Value = ""
Worksheets(3).Cells(30, 2).Value = ""
Worksheets(3).Cells(29, 4).Value = ""
Worksheets(3).Cells(30, 4).Value = ""
End Sub
Индивидуальные задания
Уровень А
Вариант №1 A=-1 B=1
Обозначим степень дефектности, равную 0, получим отсутствие погрешности в расчете.
Максимальная степень дефектности, которая сохраняет тенденцию данных восстановленного ряда =250
Уровень Б
Количество точек исходного ряда увеличить в 2 раза.
Максимальная степень дефектности = 400
Вывод:
Метод аппроксимации – является методом восстановления исходных коэффициентов, по которым строился ряд данных, при искажении (с помощью датчика случайных чисел) одной точки, нескольких точек или целого диапазона.
Чем выше значение дефектности, тем сильнее изменяются числа и соответственно выше погрешность.
Значения А и В можно рассчитывать до тех пор пока линия тренда не изменит свое направление с монотонно возрастающего на монотонно убывающее. Это происходит только в том случае, если дефект настолько высок, что метод аппроксимации не способен его восстановить. При добавлении линии тренда на восстановленный график она совпадает с ним.
Увеличение колличества точек в 2 раза увеличило помехоустойчивость расчетной формулы приблизительно в 1,6 раза(до степени дефектности 400 линия тренда восстанавливается в правильном направлении)
