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

Вычислить площадь фигуры ограниченной заданными функциями - C++

Восстановить пароль Регистрация
 
alex-rapro
0 / 0 / 0
Регистрация: 27.11.2013
Сообщений: 42
29.06.2015, 12:16     Вычислить площадь фигуры ограниченной заданными функциями #1
Доброго времени суток, программисты
Прошу помощи переделать программу из MatLAB, в С++ Заранее всем спасибо!

Вычислить площадь фигуры ограниченной функциями f1(x)=arcsin(x) и f2(x)=sin(2x) на отрезке [0, -0838] методом левых прямоугольников с погрешностью 0.001

Matlab M
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
81
clear
 
clc
 
a=0; b=0.838;h=0.001; %Задание границ интервала и шага интегрирования
 
x=a:h*10:b; % Задание интервала изменения аргумента х
 
D=F1(x);% Обращение к подпрограмме-функции f1(x)=arcsin(x)
 
C=F2(x);%Обращение к подпрограмме-функции f2(x)=sin(2x)
 
stem(x,C,'r','LineWidth',2); hold
 
stem(x,D,'w','LineWidth',2') ;
 
R1=Pr(@F1,a,b,h);
 
R2=Pr(@F2,a,b,h);
 
SS=R2-R1; %Вычисление площади области, ограниченной графиками функций
 
disp('Площадь фигуры ограниченной функциями f1(x)=arcsin(x) и на отрезке [0; 0.838] равна')
 
disp(SS)%Подпрограмма-функция, выполняющая численное интегрирование методом левых прямоугольников
 
function S=Pr(F,a,b,h);
 
n=(b-a)/h;
 
S=0;
 
for i=1:n-1
 
   x(i)=a+h*(i-1);
 
   S=S+F(x(i));
 
    end
 
S=S*h;
 
function Fa=F1(x);
 
Fa=asin(x) ;
 
function Fs=F2(x);
 
Fs=sin(2*x) ;
 
%Численное решение дифференциального уравнения 1-го порядка Методом Эйлера
clear
clc
a=-2; b=5;% левая и правая границы интервала
M=280;% число точек разбиения
y0=1;%начальные условия
f=@(x,y) y./2.^(x.^2)+sin(2.^x);% задание правой части дифференциального уравнения y' = x*y/2
h=(b-a)/M; %шаг изменения аргумента
X=a:h:b; %Задание массива значений аргумента Х
%Вычисление значений функции в узловых точках методом Эйлера
 Y(1)=y0;
 
for j=1:M
 
Y(j+1)=Y(j)+h*f(X(j),Y(j));
 
end
 
disp('Решение дифференциального уравнения')
 
disp('        X             Y')
 
R=[X' Y'];
 
disp(R)
 
set(gcf,'color','white')
 
plot(X,Y,'LineWidth',3)
 
grid
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.06.2015, 12:16     Вычислить площадь фигуры ограниченной заданными функциями
Посмотрите здесь:

C++ Вычислить площадь фигуры ограниченной линиями
C++ Составить программу приближенного вычисления площади фигуры, ограниченной заданными линиями
C++ Площадь фигуры ограниченной кусочно-линейной функцией и осью абсцисс
C++ Обработка массивов. Программа, которая вычисляет приближенно площадь фигуры, ограниченной частью кривой
C++ Проблема с циклом. Найти площадь фигуры ограниченной линиями.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
S_el
1906 / 1501 / 295
Регистрация: 15.12.2013
Сообщений: 5,912
29.06.2015, 12:52     Вычислить площадь фигуры ограниченной заданными функциями #2
alex-rapro, показывайте наработки.
alex-rapro
0 / 0 / 0
Регистрация: 27.11.2013
Сообщений: 42
30.06.2015, 09:16  [ТС]     Вычислить площадь фигуры ограниченной заданными функциями #3
S_el, получилось только задать переменные, решить диф. уравнения и создать цикл, остальное не понятно, как из матлаба в С++ переделать. Поэтому обратился к вам, форумчанинам.
Stanis
52 / 41 / 8
Регистрация: 16.12.2012
Сообщений: 144
30.06.2015, 11:12     Вычислить площадь фигуры ограниченной заданными функциями #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Вот написал , попробуй , но не знаю правильно считает или нет .

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
#include <iostream>
#include <math.h>
#include <iomanip>
 
using std::endl;
using std::cout;
using std::cin;
using std::setprecision;
 
int main()
{
    double sArcSin=0,sSin=0; //переменные обозначающие площади соотв функций
    double width=0.001;//ширина шага    
    double x,y;
    cout<<"Input range  \nx = ";//ввод диапазона от 0 до 1 
    cin>>x;
    cout<<"y = ";
    cin>>y;
    
    for(double i=x;i<y;i+=width) //считаем площади
        {
            sArcSin+=asin(i);
            sSin+=sin(2*i);
        }
    sArcSin*=width;
    sSin*=width;
    cout<<"Square of function arcsin(x) on distance from "<<x<<" to "<<y<<"  = "<<setprecision(5)<<sArcSin<<endl;//площадь arcsin
    cout<<"Square of function sin(2x) on distance from "<<x<<" to "<<y<<"  = "<<setprecision(5)<<sSin<<endl<<endl;//площадь sin
    cout<<"***Solution***\nSquare of function sin(2x)-arcsin(x) on distance from "<<x<<" to "<<y<<" = "<<setprecision(5)<<sSin-sArcSin<<endl<<endl;//площадь искомой фигуры
    system("pause");
    return 0;
}
alex-rapro
0 / 0 / 0
Регистрация: 27.11.2013
Сообщений: 42
30.06.2015, 11:36  [ТС]     Вычислить площадь фигуры ограниченной заданными функциями #5
Stanis, спасибо! Не могу понять, почему он в ответе пишет "nan"?
Миниатюры
Вычислить площадь фигуры ограниченной заданными функциями  
Stanis
52 / 41 / 8
Регистрация: 16.12.2012
Сообщений: 144
30.06.2015, 11:48     Вычислить площадь фигуры ограниченной заданными функциями #6
потому что диапазон задается от 0 до 1 наверное
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,154
Завершенные тесты: 1
30.06.2015, 11:48     Вычислить площадь фигуры ограниченной заданными функциями #7
Интересное кино.
Вы задали x от 1 до 15
А что такое asin(x) при x>1 ?????????????
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.06.2015, 16:01     Вычислить площадь фигуры ограниченной заданными функциями
Еще ссылки по теме:

Вычислить приближенно площадь фигуры, ограниченной функцией y=x^2 и прямой y=5 x/2, разбивая изменения x на 100 частей C++
C++ Составить программу приближенного вычисления площади фигуры, ограниченной заданными линиями
Вычислить объем фигуры, у которой в основании сектор окружности с заданными параметрами C++

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

Или воспользуйтесь поиском по форуму:
alex-rapro
0 / 0 / 0
Регистрация: 27.11.2013
Сообщений: 42
30.06.2015, 16:01  [ТС]     Вычислить площадь фигуры ограниченной заданными функциями #8
zss, точно, вообще ерунду прогнал, извиняюсь.
Yandex
Объявления
30.06.2015, 16:01     Вычислить площадь фигуры ограниченной заданными функциями
Ответ Создать тему
Опции темы

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