Квадратурные формулы Ньютона-Котеса

Содержание

Слайд 2

Квадратурные формулы Ньютона-Котеса Назаров Максим Вячеславович

Квадратурные формулы Ньютона-Котеса

 

Назаров Максим Вячеславович

Слайд 3

Квадратурные формулы Ньютона-Котеса Назаров Максим Вячеславович

Квадратурные формулы Ньютона-Котеса

 

Назаров Максим Вячеславович

Слайд 4

Квадратурные формулы Ньютона-Котеса Назаров Максим Вячеславович

Квадратурные формулы Ньютона-Котеса

 

Назаров Максим Вячеславович

Слайд 5

Квадратурные формулы Ньютона-Котеса Назаров Максим Вячеславович

Квадратурные формулы Ньютона-Котеса

 

Назаров Максим Вячеславович

Слайд 6

Квадратурные формулы Ньютона-Котеса Назаров Максим Вячеславович

Квадратурные формулы Ньютона-Котеса

 

Назаров Максим Вячеславович

Слайд 7

Квадратурные формулы Ньютона-Котеса Назаров Максим Вячеславович

Квадратурные формулы Ньютона-Котеса

 

Назаров Максим Вячеславович

Слайд 8

Программа #include #include using namespace std; double function(double x) { //return

Программа

#include
#include
using namespace std;
double function(double x) {
//return 2 *

pow(x, 4) + pow(x, 3) + 2 * pow(x, 2) + 3 * x + 24;
return pow(sin(x), 2);
}
double d2f(double x) {
//return 24 * pow(x, 2) + 6 * x + 4;
return 2 * cos(2 * x);
}
double d4f(double x) {
//return 48;
return -8 * cos(2 * x);
}
double d5f(double x) {
//return 0;
return 16 * sin(2 * x);
}
double maxOf(double a, double b, double (*function)(double)) {
double eps = (b - a) / 10000;
double max = function(a);
for (double x = a; x <= b; x += eps) {
if (function(x) > max) max = x;
}
return max;
}

Назаров Максим Вячеславович

Слайд 9

Программа double NewtonCotes(double a, double b, int degree, int n) {

Программа

double NewtonCotes(double a, double b, int degree, int n) {
int

H[10][10] = {
1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
1, 4, 1, 0, 0, 0, 0, 0, 0, 0,
1, 3, 3, 1, 0, 0, 0, 0, 0, 0,
7, 32, 12, 32, 7, 0, 0, 0, 0, 0,
19, 75, 50, 50, 75, 19, 0, 0, 0, 0,
41, 216, 27, 272, 27, 216, 41, 0, 0, 0,
751, 3577, 1323, 2989, 2989, 1323, 3577, 751, 0, 0,
989, 5888, -928, 10496, -4540, 10496, -928, 5888, 989, 0,
2857, 15741, 1080, 19344, 5778, 5778, 19344, 1080, 15741,
2857
};
double k[10] = {1, 1.0 / 2, 1.0 / 3, 3.0 / 8, 2.0 / 45, 5.0 / 288,
1.0 / 140, 7.0 / 17280, 4.0 / 14175, 9.0 / 89600};
double result, sum;
double h = (b - a) / (degree * n);
result = 0;
for (int j = 0; j < n; j++) {
sum = 0;
for (int i = 0; i <= degree; i++)
sum += H[degree][i] * function(a + (i + j * degree) * h);
result += k[degree] * sum * h;
}
return result;
}

Назаров Максим Вячеславович

Слайд 10

Программа void inaccuracy(double a, double b, int k, int N) {

Программа

void inaccuracy(double a, double b, int k, int N) {
switch

(k) {
case 1:
cout << (-pow((b - a) / N, 3) / 12) * d2f(maxOf(a, b, d2f));
break;
case 2:
cout << (-pow((b - a) / N, 5) / 90) * d4f(maxOf(a, b, d4f));
break;
case 3:
cout << (-3 * pow((b - a) / N, 5) / 80) * d4f(maxOf(a, b, d4f));
break;
case 4:
cout << (-8 * pow((b - a) / N, 7) / 945) * d5f(maxOf(a, b, d5f));
break;
case 5:
cout << (-275 * pow((b - a) / N, 7) / 12096) * d5f(maxOf(a, b, d5f));
break;
case 6:
cout << (-8 * pow((b - a) / N, 9) / 1400) * d5f(maxOf(a, b, d5f));
break;
}
}
int main() {
double a, b;
int n, k;
cout << "Input integrating interwall: " << endl;
cin >> a >> b;
cout << "Input N: " << endl;
cin >> n;
cout << "Input k - order of Newton Cortez method" << endl;
cin >> k;
if (k < 7) {
cout << "Result " << NewtonCotes(a, b, k, n) << " Inaccurracy ";
inaccuracy(a, b, k, n);
} else
cout << "result " << NewtonCotes(a, b, k, n) << endl;
}

Назаров Максим Вячеславович

Слайд 11

Пример вывода Input integrating interwall: 2 4 Input N: 4000 Input

Пример вывода

Input integrating interwall:
2 4
Input N:
4000
Input k - order of Newton

Cortez method
3
Result 0.56346 Inaccurracy 4.79811e-18

Назаров Максим Вячеславович

Слайд 12

Трудоемкость Назаров Максим Вячеславович

Трудоемкость

Назаров Максим Вячеславович

Слайд 13

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

Выводы

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

задачи, код программы, а также вычислил трудоемкость алгоритма.

Назаров Максим Вячеславович

Слайд 14

Источники Демидович, Б.П. Основы вычислительной математики / Б.П. Демидович, И.А. Марон.

Источники

Демидович, Б.П. Основы вычислительной математики / Б.П. Демидович, И.А. Марон. –

: Главная редакция физико-математической литературы издательства "Наука", 1966. – с.

Назаров Максим Вячеславович