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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
KPUCTUHA
Сообщений: n/a
#1

Вычислени двойного интеграла методом Симпсона - C++

05.04.2010, 21:07. Просмотров 1325. Ответов 0
Метки нет (Все метки)

Надо вычислить интеграл методом симпсона. Внешний интеграл в пределах от -1 до 1 , а внутренний от -(1-g^4)^4 до (1-g^4)^4. Программа вместа результата выдает NAN. Как я понимаю дело в том что при подсчете внутреннего интеграла методом симпсона получаем не число, а функцию.
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
#include <iostream>
#include <math.h>
#include <stdio.h>
 #define PI 3.1415926536
 #define eps 0.001
 using namespace std;
double x=0.5;
double y=0.5;
double F(double t, double g)
{double R,l;
    l=1-t*t*t*t-g*g*g*g;
    R=sqrt((t-x)*(t-x)+(g-y)*(g-y));
    return( sqrt(l)*(t-x)/((g-y)*R));
 
}
double q (double g)
{return sqrt(sqrt(1-g*g*g*g));
}
double simp1 (double a, double b,double (*f) (double t, double g))
{double u, w,h,sn,st;
int n=2;
double k;
u=(*f) (a, k)+(*f) (b, k);
w=(*f) ((a+b)/2, k);
h=(b-a)/n;
sn=h/3.0*(u+4.0*w);
do
{st=sn;
 u=u+2*w; h=h/2; w=0;
 for(int i=1;i<=n; i++)
 w=w+(*f) (a+(2*i-1)*h, k);
sn=h/3.0*(u+4.0*w); n=n*2;
}
while(fabs(st-sn)>eps);
return sn;
}
 
double simp2(double c, double d)
{double rc, rd,u, w,h,sn,st,r,a,b;
int n=2;
double k;
k=c; b=q(k); a=-q(k); rc=simp1(a,b,F);
k=d; b=q(k); a=-q(k); rd=simp1(a,b,F);
k=c+d/2.0;
w=simp1(a,b,F);
u=rc+rd; h=(d-c)/n;
sn=h/3.0*(u+4.0*w);
do
{st=sn;
 u=u+2*w; h=h/2; w=0;
 for(int i=1;i<=n; i++)
 {k=c+(2*i-1)*h; b=q(k);
 r=simp1(a,b,F); w=w+r;
 }
sn=h/3.0*(u+4.0*w); n=n*2;
}
while(fabs(st-sn)>eps);
return sn;
}
 
int main()
{
cout<<simp2(-1,1);
}
Подскажите что не так :-)) Заранее спасибо))
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.04.2010, 21:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вычислени двойного интеграла методом Симпсона (C++):

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

Нахождение интеграла методом Симпсона - C++
http://i016.***********/0910/b7/f79e34604977.jpg имеется функция double Simpson(double (*Fx)(double)) { double I; ...

Нахождение интеграла методом Симпсона - C++
Что не так? #include&lt;iostream&gt; #include&lt;cmath&gt; #include&lt;conio.h&gt; #include&lt;stdio.h&gt; using namespace std; double f(double...

Составить программу для вычисления определенного интеграла методом Симпсона - C++
ПОМОГИТЕ ПОЖАЛУЙСТА Составить программу для вычисления определенного интеграла методом Симпсона. Вид подынтегральной функции F(x)...

Решение двойного интеграла - C++
S S ( dxdy/(24+x^2 + y^2)^(1/2) ) G:x^2 + y^2 &lt;=25 G Добавлено через 2 часа 1 минуту Я тут написал программу, но не уверен....

Решение двойного интеграла C++ - C++
Помогите решить двойной интеграл, методом прямоугольников. По матану еще не прошли интегралы, по С++ уже задают, понятия не имею как это...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.04.2010, 21:07
Привет! Вот еще темы с ответами:

м. Симпсона. Не выводит на экран значение интеграла - C++
Здравствуйте! подскажите пожалуйста, почему у меня не выводит значение &quot;I1&quot; на экран. ввожу а и б, дальше кол-во разбиений, после...

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

Найти площадь фигуры методом трапеций и методом Симпсона - C++
Доброе время суток Я студент поэтому прошу не нападать мне нужно написать код для тапазойдного и симпсон методов зама задача такая...

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


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

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