- Учителю
- Урок Обработка экспериментальных данных
Урок Обработка экспериментальных данных
Александр Георгиевич Задорожный
Учитель информатики и ИКТ
МБОУ СОШ № 125
с углубленным изучением математики
г.Снежинска
При обработке экспериментальных данных по физике, химии, биологии часто возникает необходимость получения аналитической зависимости между исследуемыми параметрами и определение неизвестных величин.
Например, при определении сопротивления проводника с помощью регулируемого источника питания получают ряд значений напряжения и силы тока на реостате для одного и того же значения сопротивления. Используя эти результаты, необходимо вычислить значение этого сопротивления. Схема и примерные данные показаны на рисунке.
Метод наименьших квадратов позволяет выполнить данную задачу наиболее точно.
Пусть Y= U, X= I, a = R.
Y= a X - аналитическая зависимость тока от напряжения при неизвестном сопротивлении.
∑ ( Yi- a Xi) 2 = min - это требование метода наименьших квадратов при расчете неизвестного сопротивления.
= 2 * ∑ Xi ( Yi- a Xi) - берем производную от выражения ∑ ( Yi- a Xi) 2 = min для получения значения параметра, удовлетворяющего требованию методу наименьших квадратов.
∑ XiYi- a ∑ Xi2 = 0, в правой части уравнения 0, т.к. берем производную от постоянной величины.
а = ∑ Xi Yi / ∑ Xi 2 - выражение для неизвестного коэффициента, полученное из экспериментальных данных по методу наименьших квадратов для линейной зависимости. Для зависимости Y=aX+b формулы для расчета получаются аналогично формуле Y=aX.
Привожу окончательный результат расчета неизвестных коэффициентов а и b.
a= (N * SXY - SX * SY) / (N * SX2 - SX * SX): b = SY / N - а * SX / N ,
где SXY=∑ Xi Yi , SX =∑ Xi, SY=∑ Yi, SX2= ∑ Xi 2 , N - число точек. Эти формулы используются для расчета в программе. Переменными pX, pY обозначены значения отклонения по осям X и Y в % от выбранного случайным образом шумового коэффициента. Переменными AM, BM обозначены вычисляемые по методу МНК значения а и b , а переменной sh - обозначен шаг изменения аргумента.
Метод наименьших квадратов для Y= aX+b
Dim X, Y, pX, pY, XM, YM, Xmin, Xmax, Ymin, Ymax, A, B, AM, BM, SH, XT, SXY, SX2, SX, SY,
MasX(1 To 101), MasY(1 To 101) As Single, I, N As Long
P
Label1 Метод наименьших квадратовrivate Sub Command1_Click()
N = Val(Text3.Text): Picture1.Cls: pX = Val(Text4.Text): pY = Val(Text5.Text)
XM = Val(Text2.Text): A = Val(Text1.Text): B = Val(Text9.Text): SH = 2 * XM / N
P
Label2 Y=a*X+bicture1.Scale (-XM, XM)-(XM, -XM)
SXY = 0: SX2 = 0: SX = 0: SY = 0: N = 0
'
Коэффициент А
X Max
Число точек
Max отклонение X
Max отклонение Y
А MNK
1
10
30
20
20
Коэффициент BГенерация точек
For XT = -XM To XM Step SH
N = N + 1: X = (XT + 0.01 * pX * (2 * Rnd - 1)):
Y
B MNK
1T = A * XT + B
Y = (YT + 0.01 * pY * (2 * Rnd - 1)): Picture1.PSet (X, Y)
SXY = SXY + X * Y: SX2 = SX2 + X ^ 2: SX = SX + X:
SY = SY + Y
Next XT
A
Picture1M = (N * SXY - SX * SY) / (N * SX2 - SX * SX):
BM = SY / N - AM * SX / N
YM = AM * XM + BM: Text6.Text = Str(AM):
Text10.Text = Str(BM)
'Ось X , Y
Picture1.Line (-XM, -XM * AM + BM)-(XM, YM)
For I = -XM To XM
Picture1.PSet (I, 0): Picture1.Print I
P
Command1 Вычислить
Text.boxicture1.PSet (0, I): Picture1.Print I
Next I
End Sub
Вид программы в VB 6.0 показан ниже.
Данная программа иллюстрирует полезность метода наименьших квадратов в обработке реальных экспериментальных данных. Данные нужно разместить на диске С в корневом каталоге с именем Data.txt . Формат данных x1 y1 x2 y2 …. Для запуска программы обработки нажимаем кнопку «данные». Программа обработки данных приведена ниже.
Private Sub Command2_Click()
Picture1.Cls
Open "C:\Data.txt" For Input As #1
N = 1: Input #1, X, Y
Xmin = X: Xmax = X: Ymin = Y: Ymax = Y: MasX(1) = X: MasY(1) = Y
While Not EOF(1)
Input #1, X, Y
N = N + 1: MasX(N) = X: MasY(N) = Y
If Xmin > X Then Xmin = X
If Ymin > Y Then Ymin = Y
If Xmax < X Then Xmax = X
If Ymax < Y Then Ymax = Y
Wend
Text3.Text = Str(N)
Close #1
Text3.Text = N: Picture1.Cls: XM = Xmax
Picture1.Scale (-XM, XM)-(XM, -XM)
SXY = 0: SX2 = 0: SX = 0: SY = 0
'Генерация точек
For I = 1 To N
X = MasX(I): Y = MasY(I)
Picture1.PSet (X, Y)
SXY = SXY + X * Y: SX2 = SX2 + X ^ 2:
Next I
AM = SXY / SX2: BM = 0
YM = AM * XM + BM: Text6.Text = Str(AM): Text10.Text = Str(BM)
'Ось X , Y
Picture1.Line (-XM, -XM * AM + BM)-(XM, YM)
For I = -XM To XM Step 2
Picture1.PSet (I, 0): Picture1.Print I
Picture1.PSet (0, I): Picture1.Print I
Next I
End Sub
Программа обрабатывает линейные зависимости Y=aX+b с коэффициентом b=0. Данная программа является полигоном для изучения обработки экспериментальных данных. Она позволяет школьникам самим с ее помощью выполнять большой объем вычислений и почувствовать мощь вычислительных методов. Особенно это может пригодиться в исследовательской деятельности при подготовке работ учащимися для участия в научно-практической конференции.
3А.Г. Задорожный