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

Решение интеграла (необходимо немного изменить код) - C++

Восстановить пароль Регистрация
 
Максим1827
0 / 0 / 0
Регистрация: 06.12.2012
Сообщений: 64
09.12.2012, 15:01     Решение интеграла (необходимо немного изменить код) #1
есть код, как я думал правильный (он компилируется без ошибок)! Но в итоге выдает решение интеграла равно 0, что я думаю не есть правильно, поэтому прошу помочь разобраться в ошибке.
вот сам интеграл http://www.cyberforum.ru/cgi-bin/latex.cgi?\int_{x^2+y^2}^{x^2+y^2+z^2}arctg\frac{sin(t)}{t^2+1}dt ниже привожу код программы, который необходимо исправить!заранее спасибо!
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<stdio.h>
#include<conio.h>
#include<math.h>
 
float Integ(float k)
 
{
return atan(sin(k)/(pow(k,2)+1));
}
 
float S2n(int n,float a, float b)
 
{
int i=1;
float sum=0,h;
h=(b-a)/(2*n);
for(i=1;i<=(2*n-1);i++)
sum+=(3+pow(-1,i+1))*Integ(a+i*h);
return h/3*(Integ(a)+Integ(b)+sum);
}
 
void main()
{
float a,b,x,y,z,e=0.001;
int n=20;
a=pow(x,2)+pow(y,2);
b=pow(x,2)+pow(y,2)+pow(z,2);
while(fabs(S2n(4*n,a,b)-S2n(2*n,a,b))>=e)
 
{
n*=2;
}
 
printf("S4n=%f",S2n(4*n,a,b));
getch();
}
Добавлено через 13 часов 19 минут
вверх

Добавлено через 1 час 33 минуты
вверх
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.12.2012, 15:01     Решение интеграла (необходимо немного изменить код)
Посмотрите здесь:

Немного подправить код C++
C++ Немного не понятен код
Необходимо изменить код программы. C++
C++ решение интеграла
C++ нужно немного изменить программу)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ternsip
 Аватар для Ternsip
660 / 188 / 6
Регистрация: 10.05.2012
Сообщений: 595
09.12.2012, 15:03     Решение интеграла (необходимо немного изменить код) #2
Максим1827, Не пишите код в столбик ! Делайте отступы (TAB)
Максим1827
0 / 0 / 0
Регистрация: 06.12.2012
Сообщений: 64
09.12.2012, 15:04  [ТС]     Решение интеграла (необходимо немного изменить код) #3
не понял какие отступы?

Добавлено через 32 секунды
это решит мою проблему?
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
09.12.2012, 15:17     Решение интеграла (необходимо немного изменить код) #4

Не по теме:

в коде отступы, вряд ли это ее решит, просто людям будет удобней в коде разбираться.


Желательно дописать, каким методом находится интеграл (прямоугольников, трапеций, Симпсона и т.д.)
Максим1827
0 / 0 / 0
Регистрация: 06.12.2012
Сообщений: 64
09.12.2012, 15:19  [ТС]     Решение интеграла (необходимо немного изменить код) #5
в след. раз сделаю)
методом симпсона находится интеграл!
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
09.12.2012, 15:24     Решение интеграла (необходимо немного изменить код) #6
Не вижу, где Вы вводите x,y,z. Их нужно вводить, т.к. интервал должен быть известен.
Максим1827
0 / 0 / 0
Регистрация: 06.12.2012
Сообщений: 64
09.12.2012, 15:28  [ТС]     Решение интеграла (необходимо немного изменить код) #7
по условию мне необходимо найти именно такой интеграл, и значения x y и z не даны, я не думал что их ввод обязателен
как мне тогда быть?
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
09.12.2012, 15:30     Решение интеграла (необходимо немного изменить код) #8
Думаю, их нужно ввести
Максим1827
0 / 0 / 0
Регистрация: 06.12.2012
Сообщений: 64
09.12.2012, 15:32  [ТС]     Решение интеграла (необходимо немного изменить код) #9
ну а вы не могли бы мне написать код их ввода и где его расположить
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
09.12.2012, 15:45     Решение интеграла (необходимо немного изменить код) #10
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
#include<stdio.h>
#include<conio.h>
#include<math.h>
 
float Integ(float k) 
{
 return atan(sin(k)/(pow(k,2)+1));
}
 
float S2n(int n,float a, float b)
{
 int i=1;
 float sum=0,h;
 h=(b-a)/(2*n);
 for(i=1;i<=(2*n-1);i++)
  sum+=(3+pow(-1,i+1))*Integ(a+i*h);
 return h/3*(Integ(a)+Integ(b)+sum);
}
 
int main()
{
 float a,b,x,y,z,e=0.001;
 printf("Input x,y,z: ");
 scanf("%f%f%f",&x,&y,&z); 
 int n=20;
 a=pow(x,2)+pow(y,2);
 b=pow(x,2)+pow(y,2)+pow(z,2);
 while(fabs(S2n(4*n,a,b)-S2n(2*n,a,b))>=e)
 {
  n*=2;
 }
 printf("S4n=%f",S2n(4*n,a,b));
 getch();
 return 0;
}
Только: алгоритм на правильность не проверял; нужно вводить корректные данные, т.е. чтобы интервал, на котором нужно интегрировать, был правильным.
Максим1827
0 / 0 / 0
Регистрация: 06.12.2012
Сообщений: 64
09.12.2012, 15:50  [ТС]     Решение интеграла (необходимо немного изменить код) #11
сейчас проверю

Добавлено через 12 секунд
спасибо!

Добавлено через 4 минуты
все работает,ошибок нет, но ответ опять 0
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
09.12.2012, 15:52     Решение интеграла (необходимо немного изменить код) #12
Может, поэкспериментировать с вводом?
Миниатюры
Решение интеграла (необходимо немного изменить код)  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.12.2012, 16:00     Решение интеграла (необходимо немного изменить код)
Еще ссылки по теме:

Нужно немного изменить код (сумма от последнего отрицательного элемента массива до первого положительного) C++
C++ Поправить немного код
не могу изменить программу для немного другого условия C++

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

Или воспользуйтесь поиском по форуму:
Максим1827
0 / 0 / 0
Регистрация: 06.12.2012
Сообщений: 64
09.12.2012, 16:00  [ТС]     Решение интеграла (необходимо немного изменить код) #13
все!есть!работает!кстати я пробовал так вводить, но видимо надо было перезагрузить компилятор!теперь все работает!Спасибо огромное!
Yandex
Объявления
09.12.2012, 16:00     Решение интеграла (необходимо немного изменить код)
Ответ Создать тему
Опции темы

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