Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.82
Dimanchik
0 / 0 / 0
Регистрация: 31.03.2013
Сообщений: 6
#1

Нахождение интеграла методом Ньютона-Котеса - C++

31.03.2013, 21:06. Просмотров 2444. Ответов 1
Метки нет (Все метки)

Добрый вечер,Ребят, помогите пожалуйста написать код на С++ Нахождение интеграла методом Ньютона-Котеса
Для функции f(x)=(3*x^3)-(x^2)+3*x вычисляется определенный интеграл в заданный пределах от 2 до 5.Примерное число интервалов n...= 70.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.03.2013, 21:06
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Нахождение интеграла методом Ньютона-Котеса (C++):

Вычисление интеграла методом Ньютона-Котеса - C++
Дан интеграл: \int_{0}^{\pi /2}\frac{x+sin(x)}{1+cos(x)} Методом Ньютона-Котеса вычислить интеграл (n=6) У меня такой код, но есть...

Вычисление определенного интеграла и решение уравнений методом Ньютона. - C++
С методом дихотомии разобрался,но надо выполнить еще два задания.С заданной точностью найти корень уравнения методом Ньютона (секущих), при...

Програмно организовать метод решения интеграла методом Ньютона - C++
интеграл (Cos(x)*Cos(x))dx

Нахождение корней методом Ньютона - C++
Нужно написать программу вычисляющую корень полинома методом Ньютона. Подскажите, как можно описать функцию...

Нахождение интеграла методом Симпсона - C++
http://i016.***********/0910/b7/f79e34604977.jpg имеется функция double Simpson(double (*Fx)(double)) { double I; ...

Нахождение интеграла методом Симпсона - C++
Что не так? #include<iostream> #include<cmath> #include<conio.h> #include<stdio.h> using namespace std; double f(double...

1
Dimanchik
0 / 0 / 0
Регистрация: 31.03.2013
Сообщений: 6
02.04.2013, 20:47  [ТС] #2
Функтор....с некоторыми методами вычисления интеграла....



C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
/*
 2 * NewtonCotes.hpp
 3 *
 4 * 
 5 *  
 6 *  
 7 */
 8
 9#ifndef HPP_NEWTON_COTES
10#define HPP_NEWTON_COTES
11
12/*
13 * Note: My tests indicate that gcc -O3 should inline this function into the specific algorithms below
14 * resulting in identical code with the algorithms having the formula built in.
15 */
16template<typename T, typename F> T NewtonCotes(F f, T a, T b, unsigned int segments, unsigned int degree, unsigned int divisor, const T coeff[]){
17
18    T seg_step = (b - a)/segments;
19    T f_val = T(0);
20
21    for(unsigned int s = 0; s < segments; ++s){
22
23        T seg_a = a + seg_step*s;
24        T seg_b = seg_a + seg_step;
25        T f_subval = T(0);
26
27        for(unsigned int i = 0; i < degree + 1; ++i){
28            f_subval += coeff[i] * f(seg_a + i*(seg_b - seg_a)/degree);
29        }
30
31        f_val += ((seg_b - seg_a)/T(divisor)) * f_subval;
32    }
33
34    return f_val;
35}
36
37/*
38 * Simpsons Rule
39 */
40template<typename T, typename F> T Simpsons(F f, T a, T b, unsigned int segments){
41
42    const unsigned int degree = 2;
43    const unsigned int divisor = 6;
44    const T coeff[] = {1., 4., 1.};
45
46    return NewtonCotes<T, F>(f, a, b, segments, degree, divisor, coeff);
47}
48
49/*
50 * Simpsons 3/8 Rule
51 */
52template<typename T, typename F> T Simpsons3_8(F f, T a, T b, unsigned int segments){
53
54    const unsigned int degree = 3;
55    const unsigned int divisor = 8;
56    const T coeff[] = {1., 3., 3., 1.};
57
58    return NewtonCotes<T, F>(f, a, b, segments, degree, divisor, coeff);
59}
60
61/*
62 * Booles Rule
63 */
64template<typename T, typename F> T Booles(F f, T a, T b, unsigned int segments){
65
66    const unsigned int degree = 4;
67    const unsigned int divisor = 90;
68    const T coeff[] = {7., 32., 12., 32., 7.};
69
70    return NewtonCotes<T, F>(f, a, b, segments, degree, divisor, coeff);
71}
72
73#endif // HPP_NEWTON_COTES
Добавлено через 2 минуты
Полный рабочий пример с функтором....
для функции Ф(х)=sin(t)*sin(t) + cos(t)*cos(t)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include "NewtonCotes.hpp"
 2#include <iostream>
 3#include <cmath>
 4
 5#define Pi 3.14159265
 6
 7using namespace std;
 8
 9struct ConstTest{
10    float operator()(float t) { return 1;}
11};
12
13struct PythagorianTest{
14    float operator()(float t) {
15        return sin(t)*sin(t) + cos(t)*cos(t);
16    }
17};
18
19int main(){
20    cout<<"Simpsons: "<<Simpsons<float, PythagorianTest>(PythagorianTest(), 0, Pi, 10)<<endl;
21    cout<<"Simpsons3_8: "<<Simpsons3_8<float, PythagorianTest>(PythagorianTest(), 0, Pi, 10)<<endl;
22    cout<<"Booles: "<<Booles<float, PythagorianTest>(PythagorianTest(), 0, Pi, 10)<<endl;
23    return 0;
24}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.04.2013, 20:47
Привет! Вот еще темы с ответами:

Нахождение комплексных корней методом Ньютона - C++
Нужно решить уравнение с комплексной переменной z^n +1 = 0. Код вроде написал,но ищет неверно корни.Помогите,пожалуйста. Заголовочный...

Формулы Гаусса и Ньютона-Котеса - C++
Всем тем кто читает мою тему!!! Привет!!! Я очень надеюсь на вашу помощь,и искренне верю что кто-нибудь мне поможет!!! Народ...

Нахождение определенного интеграла методом Гаусса - C++
Помогите мне пожалуйста... Очень надо, горю...........

Нахождение корня целого числа методом Ньютона - C++
//Не судите строго, только начал изучать, подскажите как вторую формулу в цикл поместить))(где for и далее-не верно)Спасибо!// /* ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru