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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 29, средняя оценка - 4.62
~GiPeRPrOgEr~
0 / 0 / 0
Регистрация: 21.12.2010
Сообщений: 85
#1

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

14.04.2011, 16:45. Просмотров 4251. Ответов 5
Метки нет (Все метки)

Всех приветствую.Ситуация тяжелая(для меня по крайней мере), помогите пожалуйста с решением двойного интеграла, методом ячеек, просто здесь мои мат. познания заканчиваются.Если у кого-то есть время и желание, помогите пожалуйста, буду очень признателен.Если кто-то напишет на С, а не на С++, то ничего, с программированием нормально все у меня, перевести смогу. Заранее спасибо.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.04.2011, 16:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вычисление двойного интеграла методом ячеек (C++):

Вычисление интеграла методом трапеций - C++
Помогите плиз найти ошибки #include "stdafx.h" #include <iostream> #include <conio.h> using namespace std; void...

Вычисление интеграла методом трапеций - C++
Составить программу для вычисления определенного интеграция- лу: s=\int_{a}^{b}f(x)dx;согласно методу трапецийs=\left*h где...

Вычисление интеграла методом прямоугольников - C++
Помогите решить задачу! Необходимо использовать метод прямоугольников. Для построения прямоугольника использовать середину отрезка: ...

Вычисление интеграла методом трапеций - C++
Задали в вузе задачу решить интеграл методом трапеций... Всё бы хорошо, если бы не тот факт, что интегралы мы ещё не проходили и даже не...

Вычисление интеграла методом Монте-Карло - C++
Здравствуйте! Задача такая: пользователь в текстовом файле задает координаты точек (любое количество точек), программа считывает...

Вычисление интеграла методом Монте-Карло - C++
Нужно вычислить интеграл, как показано на первой картинке внизу темы. На второй картинке сам интеграл. Написал программу, но она выдает это...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
IrineK
Заблокирован
14.04.2011, 16:48 #2
А где интеграл?
0
IrineK
Заблокирован
14.04.2011, 17:02 #3
Тогда на общий вопрос - общий ответ:
0
Миниатюры
Вычисление двойного интеграла методом ячеек  
~GiPeRPrOgEr~
0 / 0 / 0
Регистрация: 21.12.2010
Сообщений: 85
14.04.2011, 22:08  [ТС] #4
Понимаете, мне прожка нужна на С++ которая будет вычислять любой подставленный интеграл, подставить в подинтегральную функцию я то смогу, а вот прогу не могу написать, не понимаю этот метод, или блок схема мне тоже подойдет,спасибо.
0
IrineK
Заблокирован
15.04.2011, 02:55 #5
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
#include <iostream>
#define m 1000  //кво разбиений по Х
#define n 1000  //кво разбиений по У
 
double f(double x, double y)
{   return x*x+x*y-y*y;     //наша функция 
}
 
int main()
{
    double a = 0.0, b = 5.0, c = 0.0, d = 8.0; //пределы интегрирования по х(a,b), y(c,d)
    double integral = 0.0;  //начальное значение интеграла
    int i,j;
 
    double dx = (b-a)/m;
    double dy = (d-c)/n;
    double x0,y0,x1,y1;
 
    for(i=1, x0=a; i<m+1; i++)
    {   x1 = x0+dx;
        for(j=1, y0=c; j<n+1; j++)
        {   y1 = y0+dy;
            integral += f((x0+x1)/2.,(y0+y1)/2.); //накопление интегральной суммы
            y0 = y1;
        }
        x0 = x1;
    }
 
    integral *= dx*dy;
    std::cout<<"\nI = "<<integral<<"\n"; //результат
 
    std::cin.get();
    return 0;
}

Считает интеграл от x^2+x*y-y^2 в пределах по Х от 0 до 5, по У от 0 до 8.
Прямое интегрирование дает -120.
При очень мелком разбиении ~ 1000 получаем практически точный ответ -120.
2
SanSanch
Сообщений: n/a
27.05.2013, 09:17 #6
IrineK, не знаю, где у Вас ошибка - на первый взгляд всё написано верно. Но результат выдаёт неправильный (может и у меня руки кривые, не обессудьте). Вот мой код:

C++
1
2
3
4
5
6
7
8
9
10
11
double methodCell(double xa, double xb, int n, double ya, double yb, int m) {
    double xh((xb-xa)/n);
    double yh((yb-ya)/m);
    double s(0);
    for (double xi = xa + xh/2; xi < xb; xi += xh) {
        for (double yi = ya + yh/2; yi < yb; yi += yh) {
            s += f(xi, yi);
        }
    }
    return xh * yh * s;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.05.2013, 09:17
Привет! Вот еще темы с ответами:

Вычисление определенного интеграла методом Гаусса СИ - C++
хелп

Вычисление интеграла методом Ньютона-Котеса - C++
Дан интеграл: \int_{0}^{\pi /2}\frac{x+sin(x)}{1+cos(x)} Методом Ньютона-Котеса вычислить интеграл (n=6) У меня такой код, но есть...

Вычисление определенного интеграла методом трапеции - C++
Помогите написать код, хоть убейте, но не пойму никак Решить задачу, организовав цикл с точностью \varepsilon = 10^{-2},\dots,10^{-6} ...

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
27.05.2013, 09:17
Ответ Создать тему
Опции темы

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