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

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

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

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

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

Donskov (3).docx

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

 

 

 

 

 

 

 

 

 

 

 

 

 

Метод Хорд:

 

a

b

c

F( a )

F( b )

F( c )

Метод Хорд

Метод хорд(VBA)

0

1,50000

2,00000

1,61134

-1,37500

4,80000

-0,22118

 

1,631466899

1

1,50000

1,61134

1,63268

-1,37500

-0,22118

0,01343

0,021342

 

2

1,63268

1,61134

1,63146

0,01343

-0,22118

-0,00012

0,001222

 

3

1,63146

1,61134

1,63147

-0,00012

-0,22118

 

0,00000

0,000011

 

4

1,63147

1,61134

1,63147

0,00000

-0,22118

0,00000

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

 

5

1,63147

1,61134

1,63147

0,00000

-0,22118

0,00000

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

 

6

1,63147

1,61134

1,63147

0,00000

-0,22118

0,00000

корень= 1,6314671584 за 6 шагов

 

 

 

 

Код VBA для метода Хорд:

 

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

Dim c As Double

If ff(a) * ff(b) > 0 Then

MsgBox ("Èíòåðâàë âûáðàí íåïðàâèëüíî")

Exit Function

End If

Do

c = a - (b - a) / (ff(b) - ff(a)) * ff(a)

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

Loop Until Abs(b - a) < e

Horda = Format(c, "0.000000")

End Function

 

 

 

 

 

 

 

 

 

 

 

 

Уравнение 2:

h

0,5

 

e-x=2-x2

E=

0,000005

 

 

 

x

y

y(vba)

-1,00

1,72

1,72

-0,50

-0,10

-0,10

0,00

-1,00

-1,00

0,50

-1,14

-1,14

1,00

-0,63

-0,63

1,50

0,47

0,47

2,00

2,14

2,14

2,50

4,33

4,33

3,00

7,05

7,05

3,50

10,28

10,28

4,00

14,02

14,02

4,50

18,26

18,26

5,00

23,01

23,01

5,50

28,25

28,25

6,00

34,00

34,00

6,50

40,25

40,25

7,00

47,00

47,00

     

 

 

 

 

 

 

 

 

 

 

 

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

 

a

b

c

F( a )

F( b )

F( c )

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

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

0

1,00000

1,50000

1,25000

-0,63212

0,47313

-0,15100

0,50

1,3159732819

1

1,25000

1,50000

1,37500

-0,15100

0,47313

0,14346

0,25

 

2

1,25000

1,37500

1,31250

-0,15100

0,14346

-0,00820

0,13

 

3

1,31250

1,37500

1,34375

-0,00820

0,14346

0,06653

0,06

 

4

1,31250

1,34375

1,32813

-0,00820

0,06653

0,02889

0,03

 

5

1,31250

1,32813

1,32031

-0,00820

0,02889

0,01028

0,02

 

6

1,31250

1,32031

1,31641

-0,00820

0,01028

0,00102

0,01

 

7

1,31250

1,31641

1,31445

-0,00820

0,00102

-0,00359

0,00

 

8

1,31445

1,31641

1,31543

-0,00359

0,00102

-0,00129

0,00

 

9

1,31543

1,31641

1,31592

-0,00129

0,00102

-0,00013

0,00

 

10

1,31592

1,31641

1,31616

-0,00013

0,00102

0,00045

0,00

 

11

1,31592

1,31616

1,31604

-0,00013

0,00045

0,00016

0,00

 

12

1,31592

1,31604

1,31598

-0,00013

0,00016

0,00001

0,00

 

13

1,31592

1,31598

1,31595

-0,00013

0,00001

-0,00006

0,00

 

14

1,31595

1,31598

1,31596

-0,00006

0,00001

-0,00002

0,00

 

15

1,31596

1,31598

1,31597

-0,00002

0,00001

-0,00001

0,00

 

16

1,31597

1,31598

1,31598

-0,00001

0,00001

0,00000

0,00

 

17

1,31597

1,31598

1,31597

-0,00001

0,00000

0,00000

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

 

18

1,31597

1,31598

1,31597

0,00000

0,00000

0,00000

корень= 1,3159742355 за 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)

1,50000

0,47313

2,77687

   

1,3159737778

1,32962

0,03246

2,39466

0

0,17038255

 

1,31606

0,00021

2,36393

1

0,01355561

 

1,31597

0,00000

2,36373

2

0,00008806

 

1,31597

0,00000

2,36373

3

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

 

1,31597

0,00000

2,36373

4

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

 

1,31597

0,00000

2,36373

5

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

 

1,31597

0,00000

2,36373

6

корень= 1,3159737778   за 6 шагов

 

1,31597

0,00000

2,36373

7

корень= 1,3159737778   за 7 шагов

 

1,31597

0,00000

2,36373

8

корень= 1,3159737778   за 8 шагов

 

1,31597

0,00000

2,36373

9

корень= 1,3159737778   за 9 шагов

 

 

Код 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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Метод Хорд:


 

a

b

c

F( a )

F( b )

F( c )

Метод Хорд

Метод Хорд(VBA)

0

1,00000

1,50000

1,28596

-0,63212

0,47313

-0,06992

 

1,315973976

1

1,00000

1,28596

1,32152

-0,63212

-0,06992

0,01316

0,035562

 

2

1,32152

1,28596

1,31589

0,01316

-0,06992

-0,00019

0,005632

 

3

1,31589

1,28596

1,31597

-0,00019

-0,06992

0,00000

0,000082

 

4

1,31597

1,28596

1,31597

0,00000

-0,06992

0,00000

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

 

5

1,31597

1,28596

1,31597

0,00000

-0,06992

0,00000

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

 

6

1,31597

1,28596

1,31597

0,00000

-0,06992

0,00000

корень= 1,3159737778 за 6 шагов

 

 

Код VBA для метода Хорд:

 

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

Dim c As Double

If ff(a) * ff(b) > 0 Then

MsgBox ("Èíòåðâàë âûáðàí íåïðàâèëüíî")

Exit Function

End If

Do

c = a - (b - a) / (ff(b) - ff(a)) * ff(a)

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

Loop Until Abs(b - a) < e

Horda = Format(c, "0.000000")

End Function

 

 

 

 

 

Вывод

Корни нелинейного уравнения я нашел 3-мя способами: метод Дихотомии, метод Ньютона, метод Хорд. В итоге, решив данные уравнения я получил корни равные 1,631466899; 1,315973976.

 

 

3. Интерполяция таблично заданных функций

 

3.1 Теория

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

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

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

Ограниченность информации, представленной такими таблицами, в ряде случаев требует получить значения функций Y(Xj ) (j=1,2,…,m) в точках Хj, не совпадающих с узловыми точками таблицы Хi (i=0,1,2,…,n). В таких случаях необходимо определить некоторое аналитическое выражение F(Х) для вычисления приближенных значений исследуемой функции Y(X) в произвольно задаваемых точках Х. Формула  f = F(Х), используемая для определения приближенных значений функции Y(X), называется эмпирической формулой или уравнением регрессии yна x, а функция F(Х) - аппроксимирующей функцией (от латинского approximo- приближаюсь).

Близость вычисляемых значений аппроксимирующей функции F(Хi )к табличным значениям аппроксимируемой функции Y(Xi ) обеспечивается выбором критерия, соответствующего алгоритму аппроксимации.

В зависимости от выбранного критерия для построения аппроксимирующих функций используются два класса методов:

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

- методы аппроксимации, в которых критерием является минимизация "расстояния" между заданной и аппроксимирующей функциями в узлах таблицы.

 

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

Простейшая задача интерполяции заключается в следующем: на отрезке [a;b] заданы (n+1) точек которые называются узлами интерполяции, а также заданы значения некоторой функции f(x) в этих точках.

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