Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.12.2017, 19:57   #1
Вероника99
Форумчанин
 
Регистрация: 15.12.2013
Сообщений: 414
По умолчанию На основе сумы ряда вычислить определенный интеграл - C (СИ)

Здравствуйте. Прошу помочь разобраться с задачей: вычислить сумму:
Код:
S+= (pow(-1,k+1)*(pow(x,2*k-1)))/((2*k-1)*(fact(2*k+1)));
для значений х(0;1). Точность и шаг вводить с клавиатуры.
На основе полученных результатов вычислить определенный интеграл.
Вот что пока получилось:
Код:
float Count(float S,float x,float h,float k,float e)
{
    for(x=0;x<1;x+=h)
    {
        S+= (pow(-1,k+1)*(pow(x,2*k-1)))/((2*k-1)*(fact(2*k+1)));
    }
 
    return S;
}
int main()
{
    
    float S=0,e=0,h=0;
    float x=0,k=1;
    e=EnterE(e);
    h=EnterH(h);
    S=Count(S,x,h,k,e);
    printf("\nS = %f\n",S);
    return 0;
}
Помогите пожалуйста,разобраться с заданием:
1. Как при вычислении здесь учитывать точность?
2. Как основе сумы ряда вычислить определенный интеграл? От чего именно нужно брать интеграл?

Последний раз редактировалось Вероника99; 21.12.2017 в 20:42.
Вероника99 вне форума Ответить с цитированием
Старый 21.12.2017, 20:18   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Пишите лучше задание как дано, без своих интерпретации.

Цитата:
1. Как при высчислении здесь учитывать точность?
Начать вычислять ряд как требуется. Он скорее всего задает значение функции в точке. Точность можно учитывать стандартно - если модуль разности между следущим и ...

Цитата:
2. Как основе сумы ряда вычислить определенный интеграл?
А если открыть метод прямоугольников или трапеции и там поискать сумму?

Цитата:
От чего именно нужно брать интеграл?
От 0 до 1. Или вы про функцию? Ну так она задана рядом, надеюсь сходящимся.
p51x вне форума Ответить с цитированием
Старый 21.12.2017, 21:01   #3
Вероника99
Форумчанин
 
Регистрация: 15.12.2013
Сообщений: 414
По умолчанию

Ряд во вложенном файле.
Я просто не понимаю, какие данные из ряда брать как параметр f(а) и f(b) (cм.в коде).
Код:
long float fact(int N)
{
    if(N < 0) 
        return 0; 
    if (N == 0) 
        return 1; 
    else
        return N * fact(N - 1); 
}
float f(float x)
  {
  return (sqrt(exp(x)-1));
  }
float Count(float S,float x,float h,float k,float e)
{
	float S1=0,S2=0;
	do
	{
		S1= (pow(-1,k+1)*(pow(x,2*k-1)))/((2*k-1)*(fact(2*k+1)));
		k=k+h;
		S=S+S1;

	}while ((fabs(S1))>=e);

	    S2=((f(a)+f(b)+S1))*h/3; //вычисление интеграла по ф.Симпсона
	return S;
}
int main()
{
	
	SetConsoleCP(1251);
    SetConsoleOutputCP(1251); 
	float S=0,e=0,h=0;
	float x=0.9,k=0;
	e=EnterE(e);
	h=EnterH(h);
	S=Count(S,x,h,k,e);
	printf("\nS = %f\n",S);
	return 0;
}
Сейчас кстати выводит что-то типа -1.#IND00. Почему?
Изображения
Тип файла: jpg Снимок.JPG (10.3 Кб, 48 просмотров)
Вероника99 вне форума Ответить с цитированием
Старый 21.12.2017, 23:02   #4
Вероника99
Форумчанин
 
Регистрация: 15.12.2013
Сообщений: 414
По умолчанию

Никто не знает?((
Вероника99 вне форума Ответить с цитированием
Старый 22.12.2017, 16:15   #5
Вероника99
Форумчанин
 
Регистрация: 15.12.2013
Сообщений: 414
По умолчанию

Так все же какие параметры подставлять вместо а и b?
Код:
(f(a)+f(b)
Вероника99 вне форума Ответить с цитированием
Старый 22.12.2017, 16:40   #6
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

https://ru.wikipedia.org/wiki/%D0%A4...BE%D0%BD%D0%B0

Цитата:
Формулой Симпсона называется интеграл от интерполяционного многочлена второй степени на отрезке [a,b]: ... где f(a), f((a+b)/2) и f(b) — значения функции в соответствующих точках (на концах отрезка и в его середине).
Прочитайте уже что-нибудь про то, что копи-пастите у других.
p51x вне форума Ответить с цитированием
Старый 22.12.2017, 17:24   #7
Вероника99
Форумчанин
 
Регистрация: 15.12.2013
Сообщений: 414
По умолчанию

Т.е в функцию float f(float x) подставить интеграл от этой дроби и в
(f(a)+f(b) подставить (f(S)+f(S1)? Мне просто всегда более понятно,когда я вижу пример,а не теорию.
Вероника99 вне форума Ответить с цитированием
Старый 22.12.2017, 17:31   #8
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Ну так сходите в вики по ссылке, там даже графики есть. Вы не различаете границы параметра и суммы?
p51x вне форума Ответить с цитированием
Старый 22.12.2017, 17:59   #9
Вероника99
Форумчанин
 
Регистрация: 15.12.2013
Сообщений: 414
По умолчанию

а - это S1 в моей программе,а b - это S2? Я просто действительно не понимаю как выражение с задания сопоставить с этой формулой. а - это S1 в моей программе,а b - это S2,то тогда понятно,что я еще добавлю все опреации в соответсвии с формулой: деление на 6, множения и т.д
Изображения
Тип файла: jpg симп.JPG (21.4 Кб, 17 просмотров)
Вероника99 вне форума Ответить с цитированием
Старый 22.12.2017, 18:15   #10
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

НЕТ. СУММЫ НЕ ГРАНИЦЫ. У ВАС ПАРАМЕТР Х В КАКИХ ГРАНИЦАХ?
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вычислить определенный интеграл) iris_ka Помощь студентам 4 17.02.2012 15:03
очень нужно вычислить определенный интеграл и программу составить на его отыскание klubnika Помощь студентам 0 27.06.2011 01:48
определенный интеграл Vitek.i Помощь студентам 3 21.02.2011 11:20
вычислить определенный интеграл методом прямоугольников ronn Помощь студентам 3 27.05.2009 19:44
Определенный интеграл. J0n1cK Паскаль, Turbo Pascal, PascalABC.NET 1 16.04.2009 11:30