Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Численное интегрирование функций

.doc
Скачиваний:
24
Добавлен:
03.05.2015
Размер:
124.42 Кб
Скачать

Численное интегрирование функций

Необходимо вычислить определенный интеграл от функции f(x) в диапазоне

[Xmin, Xmax].

Метод прямоугольников

Вычисляется массив значений функции f(x) от Xmin до Xmax с некоторым шагом h. Задается значение шага h.

Y(i) = Xmin +i*h , I = 0,1,2,……..n.

Количество точек n = (Xmax - Xmin )/h .

Интеграл вычисляется как:

Метод трапеций

Вычисляется массив значений функции f(x) от Xmin до Xmax с некоторым шагом h. Задается значение шага h.

Y(i) = Xmin +i*h , I = 0,1,2,……..n.

Количество точек n = (Xmax - Xmin )/h .

Интеграл вычисляется как:

Метод Симпсона

Вычисляется массив значений функции f(x) от Xmin до Xmax с некоторым шагом h. Задается значение шага h.

Y(i) = Xmin +i*h , I = 0,1,2,……..n.

Количество точек n = (Xmax - Xmin )/h .

Интеграл вычисляется как:

Программирование численного интегрирования Excel VBA

Численное интегрирование функции f(X) = А*Х^2 + B*X + C = 0

Параметры функции

A =

2

Диапазон интегрирования

B =

8

Xmin =

-5

C =

1

Xmax =

5

Шаг вычисления

таблицы функции

dx =

1

n -количество отрезков

Шаг интегрирования

 

 

h=

0,001

n=

10000

X

f(X)

Интегрирование

Вычисление значения интеграла

-5

11

Методом

 

-4

1

прямоугольников

-3

-5

176,6266632

 

-2

-7

 

 

-1

-5

Методом

 

0

1

трапеций

 

1

11

176,6666718

 

2

25

 

 

3

43

Методом

 

4

65

Симсона

 

5

91

176,6364288

 

Для методо Симпсона

количество отрезков n

должно быть четным

Тексты программ в Excel VBA

Private Sub CommandButton1_Click()

‘Вычисление таблицы значений функции F(x) = A*X^2 + B*X + C

Dim A As Single, B As Single, C As Single

Dim X As Single, Xmin As Single, Xmax As Single, dX As Single, F As Single

Dim Xq(10) As Single, nq As Integer, i As Integer

'Ввод параметров

A =Лист1.Cells(3, 2).Value

B = Лист1.Cells(4, 2).Value

C = Лист1.Cells(5, 2).Value

Xmin = Лист1.Cells(4, 5).Value

Xmax = Лист1.Cells(5, 5).Value

dX = Лист1.Cells(8, 5).Value

‘Вычисление таблицы значений функции A*X^2 + B*X + C

'i – номер строки в таблице

i = 12

For X = Xmin To Xmax Step dX

F = A * X ^ 2 + B * X + C

Лист1.Cells(i, 1).Value = X

Лист1.Cells(i, 2).Value = F

i = i + 1

Next X

MsgBox " Вычисление таблицы значений функции завершено"

End Sub

Private Sub CommandButton2_Click()

‘Вычисление интеграла методом прямоугольников

Dim A As Single, B As Single, C As Single

Dim X As Single, Xmin As Single, Xmax As Single, h As Single, F As Single

Dim Y() As Single

Dim i As Integer, n As Integer, S As Single, Integral As Single

'Ввод параметров

A = Лист1.Cells(3, 2).Value

B= Лист1.Cells(4, 2).Value

C = Лист1.Cells(5, 2).Value

Xmin = Лист1.Cells(4, 5).Value

Xmax = Лист1.Cells(5, 5).Value

h = Лист1.Cells(10, 5).Value

‘Количество точек n

n = (Xmax - Xmin) / h

Лист1.Cells(10, 7).Value = n

ReDim Y(n)

‘Вычисление массива значений функции

For i = 0 To n

X = Xmin + i * h

Y(i) = A * X ^ 2 + B * X + C

Next i

‘Вычисление интеграла

S = 0

For i = 0 To n - 1

S = S + Y(i)

Next i

Integral = S * h

Лист1.Cells(14, 6).Value = Integral

MsgBox " Вычисление интеграла методом прямоугольников pfdthityj "

End Sub

Private Sub CommandButton3_Click()

‘Вычисление интеграла методом трапеций

Dim A As Single, B As Single, C As Single

Dim X As Single, Xmin As Single, Xmax As Single, h As Single, F As Single

Dim Y() As Single

Dim i As Integer, n As Integer, S As Single, Integral As Single

'Ввод параметров

A = Лист1.Cells(3, 2).Value

B = Лист1.Cells(4, 2).Value

C = Лист1.Cells(5, 2).Value

Xmin = Лист1.Cells(4, 5).Value

Xmax = Лист1.Cells(5, 5).Value

h = Лист1.Cells(10, 5).Value

‘Количество точек n

n = (Xmax - Xmin) / h

ReDim Y(n)

‘Вычисление массива значений функции

For i = 0 To n

X = Xmin + i * h

Y(i) = A * X ^ 2 + B * X + C

Next i

‘Вычисление интеграла

S = 0

For i = 1 To n - 1

S = S + Y(i)

Next i

Integral = h * (Y(0) + Y(n) + 2 * S) / 2

Лист1.Cells(18, 6).Value = Integral

MsgBox " Вычисление интеграла методом трапеций завершено"

End Sub

Private Sub CommandButton4_Click()

‘Вычисление интеграла методом Симпсона

Dim A As Single, B As Single, C As Single

Dim X As Single, Xmin As Single, Xmax As Single, h As Single, F As Single

Dim Y() As Single

Dim i As Integer, n As Integer, S As Single, Integral As Single

'Ввод параметров

A = Лист1.Cells(3, 2).Value

B = Лист1.Cells(4, 2).Value

C = Лист1.Cells(5, 2).Value

Xmin =Лист.Cells(4, 5).Value

Xmax = Лист1.Cells(5, 5).Value

h = Лист1.Cells(10, 5).Value

‘Количество точек n

n = (Xmax - Xmin) / h

ReDim Y( n)

‘Вычисление массива значений функции

For i = 0 To n

X = Xmin + i * h

Y(i) = A * X ^ 2 + B * X + C

Next i

‘Вычисление интеграла

S1 = 0

For i = 1 To n - 1 Step 2

S1 = S1 + Y(i)

Next i

S2 = 0

For i = 2 To n - 2 Step 2

S2 = S2 + Y(i)

Next i

Integral = h * (Y(0) + Y(2 * n) + 4 * S1 + 2 * S2) / 3

Лист1.Cells(22, 6).Value = Integral

MsgBox " Вычисление интеграла методом Симпсона завершено"

End Sub