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

Проинтегрировать функцию методом правых прямоугольников - C++

Восстановить пароль Регистрация
 
zaqwerty
0 / 0 / 0
Регистрация: 14.12.2013
Сообщений: 108
19.05.2014, 06:21     Проинтегрировать функцию методом правых прямоугольников #1
Здравствуйте. Мне необходимо проинтегрировать одну из трех функций методом правых прямоугольников. Для этого мне необходимо построить одну из трех функций (по выбору) и указать на графике прямоугольники, которые строятся с определенным шагом. То есть должно получиться приблизительно так, как указано на рисунке.


Понимаю, все, что написано ниже, может сбить с толку. Мне нужен хотя бы алгоритм, позволяющий строить прямоугольники с определенным шагом.

Я написал программу, которые строит графики функции, выбранной пользователем. Код программы приведен ниже:
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
68
69
70
71
72
73
74
75
76
77
78
79
80
#include <stdio.h>
#include <graphics.h>
#include <math.h>
#include <locale>
const int X0=400;
const int Y0=400;
const float xmin=-10;
const float xmax=10;
int main()
{
setlocale(LC_ALL,"Russian");
float b,xmin=-10,xmax=10,h=0.001,a,x,y,c;
int l;
printf("Выберите график\n 1) y=a*x*x*x+b*x+c\n 2) y=a*cos(x+b)+c\n 3) y=a*log(fabs(x+b))+c;\n");
scanf("%d",&l);
if(l==1)
{
printf ("Введите значение a=");
scanf("%f",&a);
printf ("Введите значение b=");
scanf("%f",&b);
printf("Введите значение c=");
scanf("%f", &c);
initwindow(800,800);
line (X0,0,X0,799);
line (0,Y0,799,Y0);
 
for (x=xmin;x<=xmax;x+=h)
{
  y=a*x*x*x+b*x+c;
 
 putpixel(x+X0,-y+Y0, 3);
 
}
}
else
if(l==2)
{
   printf ("Введите значение a=");
scanf("%f",&a);
printf ("Введите значение b=");
scanf("%f",&b);
printf("Введите значение c=");
scanf("%f", &c);
initwindow(800,800);
line (X0,0,X0,799);
line (0,Y0,799,Y0);
 
for (x=xmin;x<=xmax;x+=h)
{
  y=a*cos(x+b)+c;
 
 putpixel(x+X0,-y+Y0, 4);
 
} }
else
if(l==3)
{
   printf ("Введите значение a=");
scanf("%f",&a);
printf ("Введите значение b=");
scanf("%f",&b);
printf("Введите значение c=");
scanf("%f", &c);
initwindow(800,800);
line (X0,0,X0,799);
line (0,Y0,799,Y0);
 
for (x=xmin;x<=xmax;x+=h)
{
  y=a*log(fabs(x+b))+c;
 
 putpixel(x+X0,-y+Y0, 5);
 
} }
else
{printf("Необходимо выбрать график 1, график 2 или график 3");}
getch();
return 1;
}
Формула для вычисления интеграла функции методом правых прямоугольников:
I=h*(y1+y2+...+yi),
где h - шаг построения прямоугольников на оси x,
i=1,...,n
yi - значение подынтегральной функции в каждой точке деления.
Изображения
 
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.05.2014, 06:21     Проинтегрировать функцию методом правых прямоугольников
Посмотрите здесь:

Вычесление интегралов методом правых прямоугольников C++
Вычислить интеграл f(x)=5x(кв.)-x+2 методом прямоугольников C++
C++ Интергал методом прямоугольников
Интегрирование методом прямоугольников и трапеций C++
Отрезок разбить на n частей, каждую часть проинтегрировать, либо методом трапеции C++
C++ Интеграл методом средних прямоугольников
Найти интеграл методами правых прямоугольников и Симпсона C++
C++ Вычислить интеграл методом прямоугольников

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

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

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