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

Интегралы - C++

Восстановить пароль Регистрация
 
Нестор Иванович
0 / 0 / 0
Регистрация: 26.05.2011
Сообщений: 3
26.05.2011, 19:36     Интегралы #1
Напишите программу, вычисляющую определенный интеграл на указанном пользователем промежутке и с указанным шагом разбиения этого промежутка, методом, выбранным пользователем. Подынтегральную функцию выбирает пользователь из следующих возможных: f(x)=cos(x)/(1+x).
Изображения
 
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.05.2011, 19:36     Интегралы
Посмотрите здесь:

Интегралы в С++ C++
Интегралы C++
C++ Интегралы
C++ интегралы
определенные интегралы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Нестор Иванович
0 / 0 / 0
Регистрация: 26.05.2011
Сообщений: 3
26.05.2011, 19:49  [ТС]     Интегралы #2
спасите....пожалуйста...единственная просьба напишите программку.....умоляю....
omenufa
1 / 1 / 0
Регистрация: 23.09.2010
Сообщений: 20
26.05.2011, 21:04     Интегралы #3
Метод трапеций:

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
#include "stdafx.h"
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#define _USE_MATH_DEFINES
#include <math.h>
#include <iostream>
using namespace std;
 
 
/*подынтегральная функция*/
inline double INTEGR(double x){
        
        return cos(x)/(1+x); 
            
        
}
 
/*----интегрирование методом трапеций---*/
double integral(double left, double right, double h)
{
        double sum=0;
        double runner;//разбиение отрезка интегрирования на множество частей (аппроксимация)
 
        /* формула трапеций*/
        for(runner=left+h;runner<right;runner+=h)
                sum+=INTEGR(runner);
        sum=(sum+0.5*(INTEGR(left)+INTEGR(right)))*h;
 
        return sum;
}
 
int main(){
        setlocale(LC_ALL,"rus_rus.1251");
        cout.precision(17);
        double a, b;//нижний и верхний пределы интегрирования
        double h;//высота трапеции
        double n=1;
        double x;
 
Z:       cout<<"Введите нижний предел интегрирования: "<<endl;
       cin>>a;
       if(!cin.good() || a==-1){
        cout<<"Ошибка!Некорректный ввод!Нажмите любую клавишу и введите нижний предел заново.\n";
        cin.clear();
        _flushall();
        _getch();
        goto Z;
    } 
Q:        cout<<"Введите верхний предел интегрирования: "<<endl;
        cin>>b;
       if(!cin.good() || b<=a || b==-1){
        cout<<"Ошибка!Некорректный ввод!Нажмите любую клавишу и введите верхний предел заново.\n";
        cin.clear();
        _flushall();
        _getch();
        goto Q;
    } 
       
       x=(b-a)/2;
       for(int i=1;i<=15;i++){
        h = x/n;
        n = n*4;
        cout<<integral(a,b,h)<<endl;}
        _getch();
        return 0;
}
Александр "КАС"
 Аватар для Александр "КАС"
1 / 1 / 0
Регистрация: 19.01.2011
Сообщений: 134
26.05.2011, 21:13     Интегралы #4
товарищ, можешь и другой использовать метод?
Yandex
Объявления
26.05.2011, 21:13     Интегралы
Ответ Создать тему
Опции темы

Текущее время: 21:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru