Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 26.11.2017
Сообщений: 3

Численное интегрирование методом трапеций

26.11.2017, 14:21. Показов 2173. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Найти ошибки в программе
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
#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <cmath>
#include <math.h>
#include <cstdlib>
using namespace std;
 
float f(float x)
{
    return 1/sqrt(pow(x,2)-3);
}
 
float fpr(float a, float b)
{
    return max( abs(3*pow(a,2)/pow(-3+pow(a,2), 5/2)-1/pow(-3+pow(a,2), 3/2)), abs(3*pow(b,2)/pow(-3+pow(b,2), 5/2)-1/pow(-3+pow(b,2), 3/2))  );
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "rus");
 
    float a,b, n, h, trap, t=0.000001;
    
    cout<<"Метод трапеций"<<endl<<endl;
 
    cout<<"Введите нижний предел  a="; cin>>a;
    cout<<"Введите верхний предел  b="; cin>>b;
    
 
    h=sqrt( (12*t)/((b-a)*fpr(a,b)) );
    n=(b-a)/h;
    
    float sum, sum2=0;
    for(int i=1; i<n; i++)
    {
        sum=f(a+i*h);
        sum2=sum+sum2;
    }   
 
    trap=0.5*(f(a)+f(b))*h+sum2*h;
    
    cout<<endl<<"Интеграл равен: "<<trap<<endl;
system("pause");
return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.11.2017, 14:21
Ответы с готовыми решениями:

Численное интегрирование по формуле трапеций
Доброго времени суток форумчане, обращаюсь к вам за помощью, прошу сильно камнями не кидаться. В общем суть проблемы такова:...

Численное интегрирование (метод трапеций). Как гарантировать нужную точность?
#include &lt;cmath&gt; #include &lt;iostream&gt; #define PI 3.1415926535 /*----подинтегральная функция---*/ static double INTEGR(const...

Интегрирование методом прямоугольников и трапеций
Такой вопрос, писал программу, которая вычисляет определенный интеграл методом трапеций и прямоугольников. Получил ответ, но нужно...

7
2487 / 1151 / 709
Регистрация: 25.04.2016
Сообщений: 3,315
26.11.2017, 14:46
Ни тегов, ни комментариев... Я тут чего-то накатал, и оно не работает, а вы разберитесь чего я накатал, а потом найдите и исправьте ошибки. Да еще и написано на с++, но лежит почему-то в теме про си.
0
 Аватар для _SayHello
874 / 535 / 175
Регистрация: 30.07.2015
Сообщений: 1,739
26.11.2017, 14:46
EdwardA, не компилируется или что?
0
0 / 0 / 0
Регистрация: 26.11.2017
Сообщений: 3
26.11.2017, 14:50  [ТС]
Да, моя ошибка я перепутал тему написано действительно в C++, моя проблема в том что выдает ошибки max идентификатор не найден, недопустимые локальные определения и я не понимаю в чем проблема
0
2487 / 1151 / 709
Регистрация: 25.04.2016
Сообщений: 3,315
26.11.2017, 15:55
первое, что бросается в глаза, в функции float fpr(float a, float b) вместо закрывающей фигурной скобки } стоит обычная.

Добавлено через 16 минут
Вернее ее там вообще нет.

В целом, вот подправленный код:
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
#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <cmath>
//#include <math.h>
#include <cstdlib>
using namespace std;
 
float f (float x)
{
    return 1/sqrt(pow(x,2)-3);
}
 
float fpr(float a, float b)
{
    return max( abs(3*pow(a,2)/pow(-3+pow(a,2), 5/2)-1/pow(-3+pow(a,2), 3/2)), abs(3*pow(b,2)/pow(-3+pow(b,2), 5/2)-1/pow(-3+pow(b,2), 3/2))  );
}
 
//int _tmain(int argc, _TCHAR* argv[])
int main (void)
{
    setlocale(LC_ALL, "rus");
 
    float a,b, n, h, trap, t=0.000001;
 
    cout<<"Метод трапеций\n"<<endl;
 
    cout<<"Введите нижний предел  a="; cin>>a;
    cout<<"Введите верхний предел  b="; cin>>b;
 
 
    h=sqrt( (12*t)/((b-a)*fpr(a,b)) );
    n=(b-a)/h;
 
    float sum, sum2=0;
    for(int i=1; i<n; i++)
    {
        sum=f(a+i*h);
        sum2 += sum;
    }
 
    trap=0.5*(f(a)+f(b))*h+sum2*h;
 
    cout << "\nИнтеграл равен: " << trap << endl;
    system("pause");
    exit(0);
}
Добавлено через 7 минут
Ошибка может возникать из-за локализации, поскольку в русском языке в числах с точкой вместо точки используется запятая.
0
505 / 317 / 236
Регистрация: 18.02.2013
Сообщений: 754
26.11.2017, 16:34
Функция fpr реализована с потерей точности: 5/2=0, а не ожидаемые 2.5
0
0 / 0 / 0
Регистрация: 26.11.2017
Сообщений: 3
26.11.2017, 17:06  [ТС]
подскажите как поправить
0
505 / 317 / 236
Регистрация: 18.02.2013
Сообщений: 754
26.11.2017, 17:10
5./2 примерно так
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.11.2017, 17:10
Помогаю со студенческими работами здесь

Численное интегрирование системы дифференциальных уравнений методом Адамса
как перевести код из С в С++ код на решение численного интегрирования системы дифференциальных уравнений методом Адамса. #include...

Численное интегрирование системы дифференциальных уравнений методом Рунге - Кутта
Доброго времени суток. Пытаюсь разработать функцию для численного интегрирования систем дифференциальных уравнений методом Рунге-Кутта. При...

Не могу найти ошибку в коде (Численное интегрирование методом Симпсона)
Нужно предусмотреть обработку ситуации, когда заданная точность не может быть достигнута. Пытаюсь прервать выполнение расчётов при помощи...

Численное интегрирование
Помогите пожалуйста. Нужно написать программу для вычисления интегральных функций ctgx пятью методам: 1. Метод Симпсона 2. Средних ,...

Численное интегрирование
Разработать программу «Численное интегрирование» различными методами: 1) по формуле трапеций; 2) по формуле Гаусса; 3) по формуле...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru