Автор работы: Пользователь скрыл имя, 07 Февраля 2015 в 19:19, реферат
Численное интегрирование — вычисление значения определённого интеграла. Под численным интегрированием понимают набор численных методов для нахождения значения определённого интеграла.
Численное интегрирование применяется, когда:
Сама подынтегральная функция не задана аналитически. Например, она представлена в виде таблицы (массива) значений в узлах некоторой расчётной сетки.
Метод Хорд:
№ |
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.
Интерполяция - операция приближения функции, заданной в отдельных точках внутри некоторого заданного промежутка.
Интерполяцией называется замена таблично заданной функции на некотором интервале, другой функцией 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 ) обеспечивается выбором критерия, соответствующего алгоритму аппроксимации.
В зависимости от выбранного критерия для построения аппроксимирующих функций используются два класса методов:
- методы интерполяции, в которых критерием близости табличной и аппроксимирующей функции является точное совпадение их значений в узловых точках и
- методы аппроксимации, в которых критерием является минимизация "расстояния" между заданной и аппроксимирующей функциями в узлах таблицы.
Простейшая задача интерполяции заключается в следующем: на отрезке [a;b] заданы (n+1) точек которые называются узлами интерполяции, а также заданы значения некоторой функции f(x) в этих точках.