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

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

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

Интеграл на интервале до определенной точности - C++

23.11.2014, 15:17. Просмотров 178. Ответов 0
Метки нет (Все метки)

Пишу программу вычисления определенного интеграла методом среднедних прямоугольников
asin(sqrt(x/(x+1)) на интервале [0:3] цикл по J пренципиально не хочет идти((( выводит первое значение для заданного n (кол-во разбиений интервала). Помогите плс в чем проблема??? Просто вычисляет значение интеграла нормально, но не с той точностью с которой требуется. (0.001).


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
#include<iostream>
#include<math.h>
#include<conio.h>
long double IG(long double);
using namespace std;
void main()
{setlocale(0,".1251"); /* язык*/
cout<<"Метод средних прямоугольников"<<endl;
_getch();
long double h,S=0,I3=0; /* h-ратояние при разбиении отрезка S-сумма интегралов I3-значение интеграла в опр точке*/
long double L,K=0,n=50000; /*n-колво разбиений интервала, К-в неё занесем промежуточное значение */
long double SF=0; 
long double x3=0;L=0;
for(int j=1;SF<0.001;j++) /*цикл в котором должно менятся кол-во разбиений отрезка если нам не подойдет точность*/
{h=(3-0)/n; S=0; 
for(int i=1;i<=n;i++)/*цикл в котором вычисляется сумма интегралов при заданном n*/
{
I3=IG(x3+h/2); 
x3=0+h*(i-1); /*следующий отрезок при том же n*/
S=S+I3; /*запоминаем сумму для сл прохождения */
};
K=S*h; /*готовое приближенное значение интеграла на промежутке*/
cout<<'\n'<<S*h<<endl;
SF=fabs(L-K); /*разница полученного готового интеграла теперешнего к предыдущему по модулю */
cout<<SF<<endl<<n<<endl;
n=n*2; /*меняем число разбиений интервала*/
L=K; /*запоминаем теперешнее значение готового интеграла*/
}
_getch();
}
long double IG(long double x)
{
    long double I;
    I=asin(sqrt(x/(1+x))); /*сама функция*/
    return I;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.11.2014, 15:17     Интеграл на интервале до определенной точности
Посмотрите здесь:

Приближенно вычислить интеграл от функции y=exp(-x) в заданном интервале, используя формулу прямоугольников - C++
Выручите пожалуйста! Необходимо написать прогу на экзамен в крайне короткие сроки(желательно до завтра) Задание - Приближенно вычислить...

Нажатие определенной клавиши на клавиатуре = Запуск определенной функции - C++
Здравствуйте. У меня такой вопрос: как при нажатии, к примеру, клавиши &quot;1&quot; на клавиатуре запустить нужную мне функцию (Окно с меню...

Ошибка точности - C++
Некоторая double переменная x равна 3.4. Домножив её на 1000, я получил 3400 (printf говорит, что всё верно), затем приведя её к типу int я...

Не точности вычисления C++ - C++
double N=1.0100000000000000; N=(N-floor(N))*10; cout&lt;&lt;N; Выводит: 0.10000000000000009 - что ни есть правильно (добавляет 9 в...

Точности вычислений double - C++
Вот у меня возникла проблема при подсчете ряда тейлора в заданном интервале. Проблема заключается в том, что когда я ввижу интервал и...

Вычисление точности числа - C++
Здравствуйте, прошу вас помочь мне разобраться с такой вот задачкой: Есть такое уравнение(прикрепил). Нужно её как-то ввести и при...

Вычисления до заданной точности - C++
Исправьте ошибку пожалуйста! #include &lt;stdio.h&gt; #include &lt;math.h&gt; #include &lt;conio.h&gt; int fact(int x) { if(x&lt;=1) return 1; ...

Потеря точности у double - C++
Салют! Ситуация следующая - есть необходимость работать с изображением, а точнее - с его градиентом/направлением градиента. Для...

Арифметика неограниченной точности - C++
Здравствуйте! Создаю класс BigInt для чисел больших int. Число разбивается на массив, где каждый его элемент - отдельный разряд входящего...

Вычисление машинной точности - C++
Помогите пожалуйста!!! Есть такая задачка/ Требуется найти наибольшее а , такое что 1+а=1, кто-нибудь знает, как это можно сделать?


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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