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

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

Войти
Регистрация
Восстановить пароль
 
slevin_45
1 / 1 / 0
Регистрация: 17.12.2013
Сообщений: 66
#1

Метод Симпсона - C++

15.03.2014, 23:21. Просмотров 744. Ответов 5
Метки нет (Все метки)

Неверно считает.Помогите найти ошибку.
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
#include<iostream>
#include<math.h>
using namespace std;
void metodSympsona(double a,double b)
{
        double x[41],y[41],iks[41],igrik[41],m,h,integral,s,sum=0;int i,j,k;
    cout<<"vvedite kolvo x m";
    cin>>k;
        switch(k)
    {
    case 1:
        m=10;
        break;
    case 2:
        m=20;
        break;
    case 3:
        m=40;
        break;
    default:
        cout<<"Vibrano nedopustimoe zna4enie";
        }
        h=(b-a)/m;
        for(i=1;i<m;i++)
        {
            x[i]=a+(i-1)*h;
            y[i]=0.1*pow(x[i],3)+pow(x[i],2)-10*sin(x[i]);
            iks[i]=(x[i]+x[i+1])/2;
            igrik[i]=0.1*pow(iks[i],3)+pow(iks[i],2)-10*sin(iks[i]);
        }
        for(i=1;i<m;i++)
        {
            s=y[i]+4*igrik[i]+y[i+1];
                sum=sum+s;
        }
        integral=h/6*s;
        cout<<integral;
}
int main (void)
{
    double a=-4,b=2;
    metodSympsona(a,b);
    system("pause");
    return(0);
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.03.2014, 23:21
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Метод Симпсона (C++):

Метод симпсона - C++
Подскажите в чем ошибка ?? почему отрицательные значения выводятся??? //Metod simpsona #include &lt;iostream&gt; #include &lt;math.h&gt; ...

метод симпсона - C++
метод симпсона?

Метод Симпсона - C++
Суть задачи такова:Составить программу численного интегрирования функции y=x^2 на интервале методом Симпсона.Оценить точность...

Не работает метод Симпсона - C++
Не понимаю один момент. Если указываю в последней строчке так, то все работает, но препод говорит это неправильно, если указываю как...

СЛАУ. Метод обратной матрицы, метод Гаусса, метод Крамера, метод Зейделя - C++
Помогите ребят. Не могу построить алгоритмы для этих методов Язык C++

Метод медиан из трех элементов VS улучшенный быстрый метод сортировки(метод Бентли-Макилроя) - C++
Здравствуйте! Дали весьма интересное задание. Сравнить два вышеуказанных метода сортировки для массива из 10000 элементов, результаты...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
nullpointer
46 / 46 / 5
Регистрация: 30.03.2009
Сообщений: 522
16.03.2014, 00:05 #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
float function(float x){
    return sin(x);
}
 
float simpson(float left_gr, float right_gr, int n){
    float ksi = 0.0;
    float delta_x = 0.0;
    float simpson_integral = 0.0;
    int m = 2 * n;
 
    delta_x = (right_gr - left_gr) / m;
    simpson_integral = function(left_gr) + function(right_gr);
    ksi = left_gr;
 
    for (int i = 1; i < m; ++i){
        ksi += delta_x;
        if ((i % 2) == 0){
            simpson_integral += 2 * function(ksi);
        }
        else{
            simpson_integral += 4 * function(ksi);
        }
    }
 
    return simpson_integral * delta_x / 3;
}
0
slevin_45
1 / 1 / 0
Регистрация: 17.12.2013
Сообщений: 66
16.03.2014, 00:10  [ТС] #3
Ресурс можете скинуть откуда писался код.
Я нашёл отличный алгоритм в вики.Но там как-то слишком грубо всё делается(погрешность большая).Там сразу весь график приравнивается к пораболе.У меня в методе происходит разбиение на малые отрезки и потом их суммирование.Но почему-то выдаёт ошибку.
0
nullpointer
46 / 46 / 5
Регистрация: 30.03.2009
Сообщений: 522
16.03.2014, 00:14 #4
slevin_45, никакого ресурса нет, писал несколько лет назад лабораторку по численным методам, все по лекциям сделано.
0
slevin_45
1 / 1 / 0
Регистрация: 17.12.2013
Сообщений: 66
16.03.2014, 00:23  [ТС] #5
Беда..
0
nullpointer
46 / 46 / 5
Регистрация: 30.03.2009
Сообщений: 522
16.03.2014, 00:30 #6
slevin_45, на википедии же есть составная квадратурная формула (где используются только известные значения функции) по ней и написана программа
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.03.2014, 00:30
Привет! Вот еще темы с ответами:

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

Формула Симпсона - C++
Программа из методички, по теме формула Симпсона. Не могу понять, как получается сама функция Симпсона (double simp). Сначала мы...

интеграл методом Симпсона - C++
нужно посчитать интеграл: ∫32(1/(x*lgx))dx кол-во разбиений - 36 шаг вычисления первообразной - 0,2 результат выдать с точностью ...

Интеграл методом Симпсона - C++
Вообщем на форуме есть такая програма, спасибо её автору: ouble Simpson(double (*Fx)(double)) { double I,x,h,a,b; ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
16.03.2014, 00:30
Ответ Создать тему
Опции темы

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