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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 33, средняя оценка - 4.76
molodzo
Сообщений: n/a
#1

Ошибка в задаче: Найти мин. k, которое будет удовлетворять условию: fabs(правая часть - левая часть) < 10^(-15) - C++

24.03.2009, 13:50. Просмотров 3999. Ответов 4
Метки нет (Все метки)

Задача:

k изменяется от 0 до бесконечности ((4k+1)! / [(2k)!]^2) * x^2k = =1/2*[(1-4x)^(-3/2) + (1+4x)^(-3/2)]

X принадлежит интервалу (-1/4 ; 1/4)

Найти мин. k, которое будет удовлетворять условию:
fabs(правая часть - левая часть) < 10^(-15)

Проблема в том, что прога не может найти такого числа! Как быть?

#include <stdio.h>
#include <iostream>
#include <conio.h>
using namespace std;

long fact(long double val)
{if (val==0) return 1;
else return (val*fact(val-1));
}

int _tmain()
{ double x, a, f;
double k = 1;
long double left = 0;
long double right = 0;
long double step =pow(0.1,15);
do
{
cout << "Vvedite x: ";
cin >> x;
}
while ((x>=0.25) || (x<=-0.25));

f = fact(2*k);
a = fact(4*k + 1) / pow(f, 2) * pow(x, 2 * k);
right = 0.5 * (pow((1/(1 - 4 * x)), 1.5) + pow((1/(1 + 4 * x)), 1.5));

do
{
left = ((4*(4*k+3)*(4*k+5)) / ((2*k+1)*(2*k+2))) * a * pow(x,2);
cout << "Left = " << left << endl;
cout << "Right = " << right << endl;
cout << "Fabs = " << (right - left) << endl;
cout << "k = " << k << endl;
a = left;
k++;
}
while (fabs(right - left) > step);

cout << "RESULTAT :";
cout << "k = " << k-1 << endl;
cout << "right = " << right << endl;
cout << "left = " << left << endl;
system("pause");
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.03.2009, 13:50
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка в задаче: Найти мин. k, которое будет удовлетворять условию: fabs(правая часть - левая часть) < 10^(-15) (C++):

Специальная правая часть - Дифференциальные уравнения
Не получается решить д.у. со специальной правой частью y-y''=-1

Кликаю по ярлыку - открывается соответствующие окно, которое на клики мышью (что левая, что правая кнопки) не реагирует - Windows 7
HyperZen, похожая проблема ( http://www.cyberforum.ru/windows7/thread613506.html ), при запуске win7 64, например, при загрузке системы...

Правая часть сайта залезает - HTML, CSS
Такая проблемка. Как только я на своем сайте захожу в раздел &quot; Форум &quot; и сразу же правая часть сайта,надвигается на сам форум.Это...

Постоянные коэффициенты, специальная правая часть - Дифференциальные уравнения
Ребят, может кто - то сможет помочь. Заранее всем спасибо ): Постоянные коэффициенты и со специальной правой частью. ...

Правая часть системы дифференциальных уравнений - Matlab
Здравствуйте! Задача следующая: Нужно решить систему дифференциальных уравнений методом Рунге-Кутты 4-го порядка; Проблема: В...

Пропадает правая часть хедера при масштабировании - HTML, CSS
Привет всем! ))) При масштабировании 110% и 125% пропадает правая часть хедера. Скролл отключать нельзя, так как он нужен в ширине...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Airhand
Сообщений: n/a
09.04.2009, 21:09 #2
Во-первых, замени long double на long.
Во-вторых, проверь свои вычисления. Я например, не вижу в условии,
чтобы правая часть была равна: 0,5*((1/(1-4х))^(1,5)+(1/(1+4x))^(1,5))
Дело в том, что компилятор сначало считает 1/(1-4х), а потом возводит его в степень.
palva
2614 / 1836 / 263
Регистрация: 08.06.2007
Сообщений: 6,995
Записей в блоге: 4
10.04.2009, 18:21 #3
операция ^ это не возведение в степень, это "исключающее или" или иначе XOR

си это вам не бейсик.
0
Airhand
Сообщений: n/a
13.04.2009, 17:14 #4
операция ^ это не возведение в степень, это "исключающее или" или иначе XOR
си это вам не бейсик.
Плохо ты знаеш математику. Мы пользовались операцией ^ для описания формулы, а не для языка С++. Если где-то он юзал эту операцию в С++, так покажи, а не разводи тут опусы про Бейсик, которого я вообще не знаю.
P.S. Не отвечал так долго потаму, что форум глючит.
palva
2614 / 1836 / 263
Регистрация: 08.06.2007
Сообщений: 6,995
Записей в блоге: 4
20.04.2009, 02:06 #5
Теперь понял. Извини, что вмешался.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.04.2009, 02:06
Привет! Вот еще темы с ответами:

Как найти записи, в которых часть полей повторяются, а часть - принципиально НЕ равны - MS Access
То есть, это должен быть запрос на повторение, но в него входят не просто записи с некоторыми повторяющимися полями, а такие записи у...

При запуске программы Tools916 обрезается правая часть - Windows 7
При запуске программы Tools916 обрезается правая часть. Знаю, что регулировка возможна, но не знаю как это сделать. Прошу помочь. Заранее...

Правая часть дифференциального уравнения - таблично заданная фунция - Matlab
Здравствуйте! Есть уравнение: y(t)''+2y(t)'+3y(t)=f(t) Знаю как решать в случае, если f(t) - аналитически заданная функция, например...

Левая часть сайта исчезает при увеличении масштаба - HTML, CSS
Здравствуйте. Подскажите пожалуйста из-за чего левая часть сайта при увеличении масштаба в браузере начинает исчезать?


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
20.04.2009, 02:06
Ответ Создать тему
Опции темы

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