Урок Обработка экспериментальных данных

Автор публикации:

Дата публикации:

Краткое описание: ...


Александр Георгиевич Задорожный

Учитель информатики и ИКТ

МБОУ СОШ № 125

с углубленным изучением математики

г.Снежинска

При обработке экспериментальных данных по физике, химии, биологии часто возникает необходимость получения аналитической зависимости между исследуемыми параметрами и определение неизвестных величин.

Например, при определении сопротивления проводника с помощью регулируемого источника питания получают ряд значений напряжения и силы тока на реостате для одного и того же значения сопротивления. Используя эти результаты, необходимо вычислить значение этого сопротивления. Схема и примерные данные показаны на рисунке.



[pic]

Метод наименьших квадратов позволяет выполнить данную задачу наиболее точно.

Пусть Y= U, X= I, a = R.

Y= a X - аналитическая зависимость тока от напряжения при неизвестном сопротивлении.

∑ ( Yi- a Xi) 2 = min - это требование метода наименьших квадратов при расчете неизвестного сопротивления.

[pic] = 2 * ∑ Xi ( Yi- a Xi) - берем производную от выражения ∑ ( Yi- a Xi) 2 = min для получения значения параметра, удовлетворяющего требованию методу наименьших квадратов.

XiYi- aXi2 = 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+b

icture1.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

1

T = 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

Picture1

M = (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

P [pic] icture1.PSet (I, 0): Picture1.Print I

P

Command1 Вычислить

Text.box

icture1.PSet (0, I): Picture1.Print I

Next I

End Sub


Вид программы в VB 6.0 показан ниже.


[pic]



Данная программа иллюстрирует полезность метода наименьших квадратов в обработке реальных экспериментальных данных. Данные нужно разместить на диске С в корневом каталоге с именем 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)

I [pic] nput #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

А.Г. Задорожный