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

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

Войти
Регистрация
Восстановить пароль
 
Kastaneda
Форумчанин
Эксперт С++
4511 / 2853 / 227
Регистрация: 12.12.2009
Сообщений: 7,249
Записей в блоге: 1
Завершенные тесты: 1
#1

И снова она - математика! - C++

09.02.2011, 18:07. Просмотров 958. Ответов 10
Метки нет (Все метки)

День добрый)
Сижу пишу контрольные, что-то совсем запарился. Не могу понять как нужно написать прогу. С кодом помогать не нужно, вопрос именно в алгоритме действий, под конец сесси совсем гоню...
Вычислить определенный интеграл:
И снова она - математика!
И снова она - математика!
И снова она - математика!
Пишу вообще на другом языке, но от примеров на сях не откажусь) Все не нужно, только самую суть ))
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.02.2011, 18:07     И снова она - математика!
Посмотрите здесь:

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

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

С++ и математика - C++
Задание вот это Чтобы открыть сейф, нужно ввести код – число, состоящее из семи двоек и троек. Сейф откроется, если двоек больше, чем...

Математика - C++
ПОмогите пожалуйста понять Square - квадрат, который характеризуется координатами левого верхнего угла и длиной стороны Rectangle -...

с++ и математика - C++
Здравствуйте. Как написать на си это?

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

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nameless One
Эксперт С++
5769 / 3418 / 255
Регистрация: 08.02.2010
Сообщений: 7,446
09.02.2011, 18:16     И снова она - математика! #2
Цитата Сообщение от Kastaneda Посмотреть сообщение
вопрос именно в алгоритме действий
так на третьем рисунке уже дана формула вычисления определенного интеграла. Чем не алгоритм?

Цитата Сообщение от Kastaneda Посмотреть сообщение
Пишу вообще на другом языке, но от примеров на сях не откажусь)
если не секрет, что за язык?
dxdy
97 / 97 / 5
Регистрация: 14.06.2010
Сообщений: 283
09.02.2011, 18:16     И снова она - математика! #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
сохранилась моя лабораторная работа за 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
81
82
83
84
85
86
87
88
89
90
#include <iostream>
#include <math.h>
#include <locale.h>
using namespace std;
const float p = 3.141592653;
 
float ingdv(float a, float b, float e, float (*f)(float,float,int));
float f1(float a, float b, int n);
float f2(float a, float b, int n);
float f3(float a, float b, int n);
 
int main()
{
    setlocale(LC_CTYPE,"Russian");
    float a,b,rez,e;
    printf("Введите A, B и точность вычисления\n");
    scanf("%f%f%f", &a,&b,&e);
    printf("\nРешение интеграла 3-мя методами:\n\n");
    rez = ingdv(a,p/b,e,f1);
    printf("Метод Трацеция %f\n",rez);
    rez = ingdv(a,p/b,e,f2);
    printf("Метод Прямоугольник %f\n",rez);
    rez = ingdv(a,p/b,e,f3);
    printf("Метод Симпсона %f\n\n",rez);
    return 0;
}
/*-----------------Метод трапеции-------------------*/
float f1(float a, float b, int n)
{
    float h,sum,x;
    int i;
    sum = 0;
    h=(b-a)/n;
    sum += sqrt(tan(a));
    for(i = 1; i < n; i++)
    {
        x = a + i*h;
        sum += 2*sqrt(tan(x));
    }
    x = a + n*h;
    sum += sqrt(tan(x));
    return(0.5*h*sum);
}
/*---------------Метод прямоугольника------------------*/
float f2(float a, float b, int n)
{
    float h,sum,x;
    int i;
    sum = 0;
    h=(b-a)/n;
    for(i = 1; i <= n; i++)
    {
        x = a + (i-0.5)*h;
        sum += sqrt(tan(x));
    }
    return h*sum;
}
/*----------------Метод Симпсона--------------------*/
float f3(float a, float b, int n)
{
    float h, sum,x;
    int i, k;
    sum = 0;
    h=(b-a)/n;
    sum += sqrt(tan(a));
    for(i = 1; i < n; i++)
    {
        x = a + i*h;
        if(i%2 == 0) {k = 2;}
        else {k = 4;}
        sum += k*sqrt(tan(x));
    }
    x = a + n*h;
    sum += sqrt(tan(x));
    return 0.333*h*sum;
}
/*-----------Общая функция-----------*/
float ingdv(float a, float b, float e, float (*f)(float,float,int))
{
    int n = 10;
    float p,k;
    k = f(a,b,n);
    do{
        p = k;
        k = f(a,b,2*n);
        n = n*2;
 
    }while(abs(p-k)<e);
    return k;
}
Kastaneda
Форумчанин
Эксперт С++
4511 / 2853 / 227
Регистрация: 12.12.2009
Сообщений: 7,249
Записей в блоге: 1
Завершенные тесты: 1
09.02.2011, 18:23  [ТС]     И снова она - математика! #4
Цитата Сообщение от Nameless One Посмотреть сообщение
так на третьем рисунке уже дана формула вычисления определенного интеграла. Чем не алгоритм?
У меня мозг перешел в энергосберегающий режим О_о
если не секрет, что за язык?
FORTRAN, но фортрановская ветка что-то вообще глухая, вот решил здесь написать (да простят меня админы))
dxdy, я так понимаю - "метод трапеций" это то, что мне нужно?
Nameless One
Эксперт С++
5769 / 3418 / 255
Регистрация: 08.02.2010
Сообщений: 7,446
09.02.2011, 18:28     И снова она - математика! #5
Цитата Сообщение от Kastaneda Посмотреть сообщение
У меня мозг перешел в энергосберегающий режим
не понял смысл этой фразы.
Цитата Сообщение от Kastaneda Посмотреть сообщение
dxdy, я так понимаю - "метод трапеций" это то, что мне нужно?
осмелюсь ответить вместо него - да, это именно то, что тебе нужно.
Kastaneda
Форумчанин
Эксперт С++
4511 / 2853 / 227
Регистрация: 12.12.2009
Сообщений: 7,249
Записей в блоге: 1
Завершенные тесты: 1
09.02.2011, 18:32  [ТС]     И снова она - математика! #6
Да, я уже вникаю сижу. Спасибо)

Не по теме:

Цитата Сообщение от Nameless One Посмотреть сообщение
не понял смысл этой фразы.
Учусь заочно, сессия 3 недели без выходных, каждый день с 8:30 и в среднем часов до 4-5. Почти каждый день экзамен или зачет. Три дня учиться осталось, мозги уже не соображают)))

easybudda
Эксперт С++
9460 / 5473 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
09.02.2011, 19:05     И снова она - математика! #7
Могу, конечно, ошибаться, но вроде бы

http://www.cyberforum.ru/cgi-bin/latex.cgi?\int_{a}^{b}(1-{x}^{2})dx = x - \frac{{x}^{3}}{3}\mid \begin{matrix} b\\  a \end{matrix}

не?
Kastaneda
Форумчанин
Эксперт С++
4511 / 2853 / 227
Регистрация: 12.12.2009
Сообщений: 7,249
Записей в блоге: 1
Завершенные тесты: 1
09.02.2011, 19:20  [ТС]     И снова она - математика! #8
easybudda, так оно и есть)))
Nameless One
Эксперт С++
5769 / 3418 / 255
Регистрация: 08.02.2010
Сообщений: 7,446
09.02.2011, 19:27     И снова она - математика! #9
Цитата Сообщение от easybudda Посмотреть сообщение
Могу, конечно, ошибаться, но вроде бы ...
Только http://www.cyberforum.ru/cgi-bin/latex.cgi?\left ( x \, - \, \frac{x^3}3 \right ) надо бы забрать в скобки
Kastaneda
09.02.2011, 20:01  [ТС]
  #10

Не по теме:

Nameless One, я несколько дней назад матан сдал, еще помню

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.02.2011, 03:47     И снова она - математика!
Еще ссылки по теме:

Дискретная математика - C++
Есть три программы по дискретной математике. Выложу сюда. Может кому-то пригодиться. До конца семестра думаю будет еще 1-2 по...

Математика в программировании - C++
Дорогие программисты, объясните мне пожалуйста, как математика отражается в программировании и такие разделы как арифметика, элементарная...

Математика и c++ (литература) - C++
Доброе время суток, друзья) Подскажите что можно почитать хорошего про программирование матриц, интегралов, производных, систем...

дискретная математика - C++
Применение дискретной математики в системах автоматизаций???

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


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

Или воспользуйтесь поиском по форуму:
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
10.02.2011, 03:47     И снова она - математика! #11
только позавчера сдал, порядок задается от 1 до 9
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
//NewtonCotes.h
#pragma once
 
#include <cmath>
 
namespace NewtonCotes {
    const double  r[9] = { 0.5, 1./3, 3./8, 2./45, 5./288, 1./140, 7./17280, 8./28350, 9./89600 };
    const int P[9][10] = { {    1,     1,    0,     0,     0,     0,     0,    0,    0,     0 },
                   {    1,     4,    1,     0,     0,     0,     0,    0,    0,     0 },
                   {    1,     3,    3,     1,     0,     0,     0,    0,    0,     0 },
                   {    7,    32,   12,    32,     7,     0,     0,    0,    0,     0 },
                   {   19,    75,   50,    50,    75,    19,     0,    0,    0,     0 },
                   {   41,   216,   27,   272,    27,   216,    41,    0,    0,     0 },
                   {  751,  3577, 1323,  2989,  2989,  1323,  3577,  751,    0,     0 }, 
                   {  989,  5888, -928, 10496, -4540, 10496,  -928, 5888,   989,    0 },
                   { 2857, 15741, 1080, 19344,  5778,  5778, 19344, 1080, 15741, 2857 }};
class Formula {
protected:
    int n; //порядок метода от 1 до 9 
    int L; //количество подинтервалов на которые разбиваем [x1,x2]
    double x1;
    double x2;
private:
    double H() const { return std::fabs(x2 - x1) / L; } //длинна подинтервалов на которые разбиваем[x1,x2]
    double h() const { return H() / n; } //растояние между узлами интерполяции на каждом подинтервале
    double Ym( double (*f)(double), double x, int m ) const { return f( x + h() * m ); }
    double Sum( double (*f)(double), double x ) const;
public:
    Formula( int _n = 1, int _L = 1, double X1 = 0, double X2 = 0 ) : n(_n), L(_L), x1(X1), x2(X2) { if(x1 > x2) { x1 = X2; x2 = X1; }}
    double IntegralSum( double (*f)(double) ) const; //передаем ф-ю которую будем интегрировать
    void SetNInterpolation( int N ) { n = N; }
    void SetNumberOfIntervals( int _L ) { L = _L; }
    void SetX1( double X1 ) { x1 = X1; }
    void SetX2( double X2 ) { x2 = X2; }
};
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//NewtonCotes.cpp
#include "NewtonCotes.h"
 
double NewtonCotes::Formula::Sum( double (*f)(double), double x ) const
{
    double s(0);
    for( int i = 0; i <= this->n; i++ )
    s += NewtonCotes::P[n-1][i] * NewtonCotes::Formula::Ym( f, x, i );
    return s;
}
 
double NewtonCotes::Formula::IntegralSum( double (*f)(double) ) const
{
    double I(0);
    for( int i = 0; i < this->L; i++ )
    I += NewtonCotes::r[n-1] * h() * Sum( f, this->x1 + i * H() );
    return I;
}
Добавлено через 12 минут
Yandex
Объявления
10.02.2011, 03:47     И снова она - математика!
Ответ Создать тему
Опции темы

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