Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Найти интеграл методами правых прямоугольников и Симпсона (http://forum.oszone.net/showthread.php?t=292461)

kadett46 11-12-2014 19:16 2442902

Найти интеграл методами правых прямоугольников и Симпсона
 
Составить программу вычисления определенного интеграла методами правых прямоугольников и Симпсона с помощью вызова двух различных функций и оценить погрешность.



СРОЧНО! Заранее благодарю.
Вот что-то есть, не знаю правильно ли
Код:

#include <vcl.h>
#include <iostream>
#include <conio.h>
#include <math.h>

using namespace std;

double f(double x, double dx){

    return ((exp(x)*dx)/x);
}

double f1(double x, double dx1){

    return ((exp(x)*dx1)/x);
}

int main(){

    const int N = 1000; //число точок
    double pogr;
   
    double a, b;
    do{
        cout << "Enter the interval of integration through the gap: ";
        cin >> a >> b;
    }while(a >= b);

    double dx1 = (b - a) / (N - 1);
    double sum1 = 0;
    for (double x = a; x < (b + dx1 / 2); x += dx1)
        sum1 += dx1 * f1(x,dx1);

    double dx = (b - a) / (N - 1);
    double sum = 0;
    for (double x = a; x < (b + dx / 2); x += dx)
        sum += dx * f(x,dx);
    cout << "Method rectangles: " << sum << endl;

    sum = 0;
    for (int i = 1; i < N - 1; ++i){
        double x = a + i * dx;
        if (i % 2 == 0)
            sum += 2 * f(x,dx);
        else
            sum += 4 * f(x,dx);
    }

    pogr=((dx1 / 3) * (a + sum + b))-(sum1);

    cout << "Simpson's method: " << (dx / 3) * (a + sum + b) << endl;

    cout << "Error: " << pogr << endl;

    //cout << "The exact value: " << b * b * b - a * a * a << endl;

    getch();
}


lxa85 12-12-2014 03:19 2443034

Показательная интегральная функция...
раз
два
три
четыре
пять


Время: 07:29.

Время: 07:29.
© OSzone.net 2001-