Численное интегрирование

Автор работы: Пользователь скрыл имя, 07 Февраля 2015 в 19:19, реферат

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

Численное интегрирование — вычисление значения определённого интеграла. Под численным интегрированием понимают набор численных методов для нахождения значения определённого интеграла.
Численное интегрирование применяется, когда:
Сама подынтегральная функция не задана аналитически. Например, она представлена в виде таблицы (массива) значений в узлах некоторой расчётной сетки.

Вложенные файлы: 1 файл

Donskov (3).docx

— 363.70 Кб (Скачать файл)

 

 

 

 

 

 

Площади фигур, найденных методами указанных выше в Microsoft Excel VBA:

 

 

VBA

   

VBA

 

3,367890

Лев.прям

3,289116

Лев.прям

3,526029

Прав.прям

3,605394

Прав.прям

3,446811

Сред.прям

3,446664

Сред.прям

3,446959

Трап.

3,447255

Трап.

3,446861

Симпс.

3,446863

Симпс.


 

 

 

 

 

 

 

Ниже указаны коды VBA для каждого метода последовательно и сама подынтегральная функция:

 

Function integral(x)

integral = Tan(x ^ 2)

End Function

 

Function LevPram(a, b, n)

Dim x, S, Y, h As Double

Dim i As Integer

If b < a Then

        MsgBox "a äîëæíî áûòü ìåíüøå b"

        Exit Function

End If

h = (b - a) / n

S = 0

For i = 0 To n - 1

x = a + i * h

Y = integral(x)

S = S + Y

Next i

LevPram = S * h

End Function

 

Function PravPram(a, b, n)

Dim x, S, Y, h As Double

Dim i As Integer

If b < a Then

        MsgBox "a äîëæíî áûòü ìåíüøå b"

        Exit Function

End If

h = (b - a) / n

S = 0

For i = 1 To n

x = a + i * h

Y = integral(x)

S = S + Y

Next i

PravPram = S * h

End Function

 

 

Public Function SrednPram(a As Double, b As Double, n As Integer) As Double

Dim x, S, Y, h As Double

Dim i As Integer

If b < a Then

        MsgBox "a äîëæíî áûòü ìåíüøå b"

        Exit Function

End If

h = (b - a) / n

S = 0

x = a

For i = 1 To n

x = x + h / 2

Y = integral(x)

S = S + Y

x = x + h / 2

Next i

SrednPram = S * h

End Function

 

Function Strap(a As Double, b As Double, n As Integer) As Double

Dim x, S, Y, h As Double

Dim i As Integer

If b < a Then

        MsgBox "a äîëæíî áûòü ìåíüøå b"

        Exit Function

End If

h = (b - a) / n

S = 0

For i = 1 To n - 1

x = a + i * h

Y = integral(x)

S = S + Y

Next i

 

 

S = 2 * S + integral(a) + integral(b)

Strap = S * h / 2

End Function

 

 

 

 

 

Function SSimps(a As Double, b As Double, n As Integer) As Double

Dim x, S, Y, h As Double

Dim i As Integer

If b < a Then

        MsgBox "a äîëæíî áûòü ìåíüøå b"

        Exit Function

End If

If n / 2 <> Int(n / 2) Then

        MsgBox "n äîëæíî áûòü ÷åòíûì"

       Exit Function

       End If

h = (b - a) / n

S = 0

For i = 1 To n - 1 Step 2

x = a + i * h

Y = integral(x)

S = S + 4 * Y

Next i

For i = 2 To n - 2 Step 2

x = a + i * h

Y = integral(x)

S = S + 2 * Y

Next i

S = S + integral(a) + integral(b)

SSimps = S * h / 3

End Function

 

 

Вывод

Площади фигур я нашел методами: прямоугольником (левым, правым, средним), трапецией и методом Симпсона. В итоге все найденные мною площади численно совпали, как это видно на представленных таблицах.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2. Решение нелинейных уравнений

 

2.1 Теория

Решением или корнями уравнения Y(x)=0, называются такие значения аргумента х, при которых значение функции Y(x) становится равным нулю (равенство обращается в верное тождество).  Только 2 класса уравнений – линейное ax + b = 0 и квадратное ax2 + bx + c = 0 – имеют в общем случае аналитическое решение в виде формул.

В различных инженерных и исследовательских задачах часто возникает необходимость нахождения одного или нескольких решений уравнений вида

F(x)=0

где F(x) - некоторая известная функция независимой переменной x. В описание функции F(x) могут входить параметры, имеющие постоянные значения в каждой конкретной реализации функции. Например, функция:

F(x)=ax2+bx+c

определяет множество многочленов второго порядка. Описание многочлена содержит одну независимую переменную – аргумент x, значения которой принадлежат диапазону [X0 , Xk] и три параметра a, b, c, не зависящие друг от друга.

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

Численное решение нелинейного уравнения обычно осуществляется в 2 этапа:

1 этап – отделение корней  состоит в выделении на заданном интервале изменения аргумента [X0 , Xk] подынтервалов, содержащих только один корень. Для отделения корней обычно выполняется вычисление таблицы значений функции и (или) построение её графика;

2 этап - уточнение корней выполняется на каждом промежутке, содержащем один корень, выделенном на первом этапе исследования поведения функции. Для уточнения значения корня выбирается один из 3

численных методов. Наиболее часто используются метод половинного деления (дихотомии), метод хорд, метод касательных (Ньютона) и др.

 

 

2.2 Постановка  задачи

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

Трансцендентными уравнениями называются уравнения, неприводимые к виду алгебраических. В частности, это уравнения, в которые входят тригонометрические, логарифмические и т.п. функции. Иногда для того, чтобы отличить эти уравнения от дифференциальных или интегральных уравнений их называют "конечными".

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

Алгоритмы численных методов решения нелинейных уравнений имеютитерационный характер. То есть при использовании таких алгоритмов решениенаходится за несколько последовательно выполняемых шагов. На каждом шаге итерации точность решения увеличивается.

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

Такие функции либо не имеют аналитических описаний, а задаются числовыми таблицами (таблично-заданные, табличные, решетчатые функции), либо получены как результат решения задачи интерполяции.

В таблицы, получаемые обычно при проведении каких-либо экспериментальных исследований, записываются значения аргумента и соответствующие им значения исследуемой функции. На основании таблицы значений функции необходимо определить значение её корня, т.е. найти значение аргумента, при котором значение функции будет равно нулю.

 

 

 

 

 

 

 

 

 

2.3 Решение

Уравнение 1:

h

0,5

 

x3+3.1x-9.4=0

E=

0,000005

 

 

 

x

y

y(vba)

-2,00

-23,60

-23,60

-1,50

-17,43

-17,43

-1,00

-13,50

-13,50

-0,50

-11,08

-11,08

0,00

-9,40

-9,40

0,50

-7,73

-7,73

1,00

-5,30

-5,30

1,50

-1,38

-1,38

2,00

4,80

4,80

2,50

13,98

13,98

3,00

26,90

26,90

3,50

44,33

44,33

4,00

67,00

67,00

4,50

95,68

95,68

3,80

0,82

0,82

4,00

0,89

0,89

4,20

0,95

0,95

     

 

 

 

 

 

 

Метод Дихотомии(половинного деления):

 

a

b

c

F( a )

F( b )

F( c )

Метод Дихотомии

Дихотомия(VBA)

0

1,50000

2,00000

1,75000

-1,37500

4,80000

1,38438

0,50

1,6314678192

1

1,50000

1,75000

1,62500

-1,37500

1,38438

-0,07148

0,25

 

2

1,62500

1,75000

1,68750

-0,07148

1,38438

0,63667

0,13

 

3

1,62500

1,68750

1,65625

-0,07148

0,63667

0,27774

0,06

 

4

1,62500

1,65625

1,64063

-0,07148

0,27774

0,10193

0,03

 

5

1,62500

1,64063

1,63281

-0,07148

0,10193

0,01492

0,02

 

6

1,62500

1,63281

1,62891

-0,07148

0,01492

-0,02836

0,01

 

7

1,62891

1,63281

1,63086

-0,02836

0,01492

-0,00674

0,00

 

8

1,63086

1,63281

1,63184

-0,00674

0,01492

0,00409

0,00

 

9

1,63086

1,63184

1,63135

-0,00674

0,00409

-0,00132

0,00

 

10

1,63135

1,63184

1,63159

-0,00132

0,00409

0,00138

0,00

 

11

1,63135

1,63159

1,63147

-0,00132

0,00138

0,00003

0,00

 

12

1,63135

1,63147

1,63141

-0,00132

0,00003

-0,00065

0,00

 

13

1,63141

1,63147

1,63144

-0,00065

0,00003

-0,00031

0,00

 

14

1,63144

1,63147

1,63145

-0,00031

0,00003

-0,00014

0,00

 

15

1,63145

1,63147

1,63146

-0,00014

0,00003

-0,00006

0,00

 

16

1,63146

1,63147

1,63147

-0,00006

0,00003

-0,00001

0,00

 

17

1,63147

1,63147

1,63147

-0,00001

0,00003

0,00001

корень= 1,631468 за 17 шагов

 

18

1,63147

1,63147

1,63147

-0,00001

0,00001

0,00000

корень= 1,631467 за 18 шагов

 


 

 

Код VBA для метода Дихотомии:

 

Function dix(a As Double, b As Double, e As Double)

10 c = (a + b) / 2

If ff(a) * ff(c) < 0 Then b = c Else a = c

If Abs(a - b) <= e Then dix = c Else GoTo 10

dix = Format(c, "0.000000")

End Function

 

 

 

 

 

 

 

 

 

 

 

 

Метод Ньютона:

 

X

F(x)

F'(x)

Метод Ньютона

Метод Ньютона(VBA)

2,00000

4,80000

15,10000

0

0,31788079

1,631467158

1,68212

0,57417

11,58858

1

0,04954603

 

1,63257

0,01227

11,09589

2

0,00110547

 

1,63147

0,00001

11,08506

3

корень= 1,63146715843216 за 3 шагов

 

1,63147

0,00000

11,08506

4

корень= 1,63146715843203 за 4 шагов

 

1,63147

0,00000

11,08506

5

корень= 1,63146715843203 за 5 шагов

 

1,63147

0,00000

11,08506

     

1,63147

0,00000

11,08506

     

1,63147

0,00000

11,08506

     

1,63147

0,00000

11,08506

     

1,63147

0,00000

11,08506

     

 

 

 

Код VBA для метода Ньютона:

 

Function Newton(x0 As Double, e As Double)

x = x0

x1 = x - ff(x) / fd(x)

While Abs(x1 - x) >= e

x = x1

x1 = x - ff(x) / fd(x)

Wend

Newton = Format(x1, "0.000000")

End Function

 

 

 

 

 

 

 

Информация о работе Численное интегрирование