Методические указания по выполнению курсовой работы (1018767), страница 4
Текст из файла (страница 4)
Отрезок интегрирования делится на nравных частей длины h=(b-a)/h. Обозначим x0=a, x1=x0+h, ...xi=x0+i·h, ... xn=b, yi=f(xi). Заменяя на каждом отрезке длиной hподинтегральную функцию f(x) отрезком прямой, проходящейчерез точки yi,yi+1, получаем формулу трапеций:bn −1hh⎛⎞yi + y n ⎟∫ f ( x)dx ≈ 2 ( y 0 + 2 y1 + 2 y 2 + ... + 2 y n−1 + y n ) = 2 ⎜⎝ y 0 + 2∑⎠i =1aМетод Симпсона. Предусматривает интерполяцию подинтегральной функции параболой второго порядка, проводимой через три соседние точки yi-1, yi, yi+1. Поэтому отрезок интегрирова--30ния следует разделить на четное число частей. В этом случаеформула Симпсона имеет вид:bh( y0 + 4 y1 + 2 y2 + ...
+ 4 yn −1 + yn ) =f(x)dx≈∫3an −1h⎛⎞= ⎜ y0 + ∑ (3 + (−1)i +1 ) yi + yn ⎟3⎝⎠i =1О точности вычислений. Оценка погрешности вычисленияопределенного интеграла делается по формулам Рунге. Практически требуется выбор надлежащего шага разбиения h. Тогда алгоритм вычисления сводится к следующему. Выбираются шаги h1и h2, причем h2<h1. Используя эти шаги, по какому-либо методувычисляют величины интеграла A1=A(h1) и A2=A(h2), которыесуть приближения к истинному значению A. Если A1 и A2 оказываются близкими по некоторому критерию точности, то за искомое значение принимается A2. В противном случае выбираетсяновый шаг h3<h2 и снова вычисляется значение A3=A(h3), котороесравнивается с A2. Удобно принимать hi+1=hi/2, (метод двойногопересчета).
Значение A считается найденным, если выполняетсяусловиеA − AiAi +1 − Ai ≤ ε при Ai +1 ≤ 1 или i +1≤ ε при Ai +1 > 1Ai +1Если эти условия не выполняются, то процесс уменьшенияшага продолжается. Таким образом, реализация указанного метода сводится к вычислению определенного интеграла при заданном шаге h1 и при шаге h2=h1/2, что удобно оформить в виде процедуры или функции. Полученные значения сравниваются и, если условия достижения заданной точности не выполняются, тоцикл Do-Loop продолжается.Пример: интегрирование методом срединных треугольников.Public Function IntegrFunc(ByVal Left, Rigth As Double, N As Long) As DoubleDim summ, pas As Doublepas = (Rigth - Left) / NXI = Left + pas / 2summ = 0i = 0-31For i = 1 To Nsumm = summ + xfunc(XI)XI = XI + pasNext iIntegrFunc = summ * pasEnd FunctionPrivate Sub IntegrCom_Click()Dim eps,Integral1,Integral2,R,Del,Left,Rigth As DoubleDim Nnn As Longeps = 0.000001Nnn = 24Left = Val(LeftText)Rigth = Val(RigthText)Integral1 = IntegrFunc(Left, Rigth, Nnn)DoNnn = 2 * NnnIntegral2 = IntegrFunc(Left, Rigth, Nnn)If Abs(Integral2) <= 1 Then R = 1 Else R = Integral2Del = Abs((Integral1 - Integral2) / R)Integral1 = Integral2Loop Until Del < epsIntegText = Str(Integral2)Nnn = 24End SubМетоды Монте-Карло.
С развитием вычислительной техники все чаще применяются статистические методы. Их применение наиболее целесообразно при вычислении кратных интегралов, а также при решении некоторых физических задач. Разновидность одного из статистических методов сводится к тому, чтопри интегрировании функции на отрезке методом прямоугольников в качестве узла разбиения x0 выбирается случайное число,распределенное на интервале интегрирования [a,b]. ПроводитсяN вычислений со случайными узлами xj, результат усредняется ипринимается за приближенное значение интеграла:bb−a N∫ f ( x)dx ≈ N ∑ f ( x j )j =1aПогрешность вычисления интеграла ε зависит от числа испытаний N: ε≅N1/2.-32Пример: Вычисление определенного интеграла методом Монте-Карло:Private Sub Com_Monte_Int_Click()Dim x1, x2, ff, xx, sf, MonteInt As DoubleMonteInt = 0Int_List.ClearFor i = 0 To numx1 = A + i * dx2 = x1 + dsf = 0For j = 1 To 1000Randomizexx = x1 + Rnd(i) * dff = xfunc(xx)sf = sf + ffNext jsf = sf / 1000sf = sf * dMonteInt = MonteInt + sfInt_List.AddItem (Str(x1 + d / 2) +Str(MonteInt))Next iEnd Sub1.2.3.4.5.""+БИБЛИОГРАФИЧЕСКИЙ СПИСОКИндришенок В.И., Певцов Е.Ф., Русанов К.Е.
Информатика:Практикум по программированию: Основы программированияна VISUAL BASIC 6.0 // Методические указания по выполнению лабораторных работ. Московский государственный институт радиотехники, электроники и автоматики (ТехническийУниверситет). М.: 2001, 32 с.Глушаков С.В., Мельников И.В., Сурядный А.С. Программирование в среде Windows: Учебный курс / Харьков: Фолио;Ростов-н/Д: Феникс; Киев: Абрис, 2000. – 487 с.Волченков Н.Г. Программирование на Visual Basic 6: В 3-х ч.М.: ИНФРА-М, 2000.Стивенс Р. Тестирование и отладка программ на Visual Basic:Пер. с англ. – М.: ДМК Пресс, 2001. – 384 с.Ракитин В.И., Первушин В.Е. Практическое руководство пометодам вычислений с приложением программ для персональных компьютеров: Учеб.
пособие. – М.: Высш. шк., 1998. –383с..