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

Интеграл методом средних прямоугольников - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Меню в программе - бесконечный loop http://www.cyberforum.ru/cpp-beginners/thread1307674.html
Доброго всем дня. Разными способами пытаюсь сделать меню в программе. Если делать через switch, то всё нормально ровно до тех пор, пока не вводишь левое значение. Do while запускают бесконечный цикл...
C++ Работа с файлами необходима функция или просто счетчик С++ Здравствуйте задача состоит в слудующем есть файл база знаний в которой написаны автомобили и критерии к этому автомобилю База знаний 1 Мазда=Япония Справо Быстрый Музыка 2 Тойота=Япония Справо... http://www.cyberforum.ru/cpp-beginners/thread1307648.html
C++ Создание массива класса
Пишу курсовую, задание получил следующее: "Разработать приложение на С++, позволяющее, собирать, накапливать сведения о студентах и занятиях, посещаемых ими. Структура приложения должна включать...
Sublime & AStyleFormatter C++
Добрый день. Не получается настроить автоформат c++-файлов. Выставляю в настройках плагина стандарт GNU, в котором, если не ошибаюсь, разрешается писать функции так - void fn() { return; }, но все...
C++ Release/Debug http://www.cyberforum.ru/cpp-beginners/thread1307622.html
Здравствуйте! Пишу сложную расчётную программу. И мне важна скорость выполнения программы. И хотел бы проконсультироваться. Делал с помощью clock(). На debug мне программа выдавала, что выполняется...
C++ Составить програму с использованием функции a) функции находятся в этом же файле b) функции находятся в другом файле Даны N чисел. Какое из N чисел будет больше, если в каждом числе переставить крайние цифры? подробнее

Показать сообщение отдельно
bulavax
0 / 0 / 0
Регистрация: 16.11.2014
Сообщений: 21
22.11.2014, 22:57  [ТС]
#include<iostream>
#include<math.h>
#include<conio.h>
long double IG(double);
using namespace std;
void main()
{setlocale(0,".1251");
cout<<"Метод средних прямоугольников"<<endl;
_getch();
long double F=0,h,S=0,I3=0;
long double L,K,n=10;
long double SF=2;
long double x3=0;
for(int j=1;K<0.001;j++) /*вычисление до одной тысячной по точности*/
{h=(3-0)/n; /* в цикле j меняем кол-во разбиений интервала от 0 до 3*/
for(int i=1;i<=n;i++)
{
I3=IG(x3+h/2); /* считаем сумму интегралов что бы получить приближенное значение */
x3=0+h*(i-1); /* устанавливаем новый узел*/
S=S+I3; /*меняем сумму для сложения в сл. итерации*/
}
L=SF-S*h; cout<<"L"<<L<<'\n'; /*разность приближенного значения интеграла в прохождении теперешнем и предыдущем */
K=0.333*fabs(L); cout<<"K"<<K<<'\n'; /*треть разности значения по модулю*/
SF=S*h; /*меняем значение интеграла прошлого на теперешнего*/
cout<<n<<'\n';
cout<<"S*h"<<S*h<<'\n';
n=n*2 ; /*увеличиваем кол-во разбиений отрезка в 2 раза*/
}
_getch();
}
long double IG(double x)
{
long double I;
I=asin(sqrt(x/(1+x)));
return I;
} /*проблема в цикле по j я проверял на 300000 разбиений нормально считает сумму до тысячной*/

Добавлено через 14 минут
Результат суммы там гдето 4.9144 должен быть, а в этот результат для 1 или для второго прохождения цикла по j =(
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru