Вернуться   Форум программистов > Форум Программирование > Форум C++

C++

Программирование на C++

Ответ
 
Старый 24.03.2009, 14:50   #1
molodzo
Новичок
 
Регистрация: 24.03.2009
Сообщений: 1
molodzo пока не определено
По умолчанию Ошибка в задаче: Найти мин. k, которое будет удовлетворять условию: fabs(правая часть - левая часть) < 10^(-15)

Задача:

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;
}
molodzo вне форума  
Старый 09.04.2009, 22:09   #2
Airhand
Пользователь
 
Регистрация: 20.10.2004
Адрес: Ukraine, Dnepropetrovsk
Сообщений: 87
Airhand пока не определено
По умолчанию RE: помогите найти ошибку...

Во-первых, замени long double на long.
Во-вторых, проверь свои вычисления. Я например, не вижу в условии,
чтобы правая часть была равна: 0,5*((1/(1-4х))^(1,5)+(1/(1+4x))^(1,5))
Дело в том, что компилятор сначало считает 1/(1-4х), а потом возводит его в степень.
Airhand вне форума  
Старый 10.04.2009, 19:21   #3
palva
Местный
 
Регистрация: 31.03.2001
Сообщений: 1,467
palva пока не определено
По умолчанию RE: помогите найти ошибку...

операция ^ это не возведение в степень, это "исключающее или" или иначе XOR

си это вам не бейсик.
palva вне форума  
Старый 13.04.2009, 18:14   #4
Airhand
Пользователь
 
Регистрация: 20.10.2004
Адрес: Ukraine, Dnepropetrovsk
Сообщений: 87
Airhand пока не определено
По умолчанию RE: помогите найти ошибку...

Цитата:
операция ^ это не возведение в степень, это "исключающее или" или иначе XOR
си это вам не бейсик.
Плохо ты знаеш математику. Мы пользовались операцией ^ для описания формулы, а не для языка С++. Если где-то он юзал эту операцию в С++, так покажи, а не разводи тут опусы про Бейсик, которого я вообще не знаю.
P.S. Не отвечал так долго потаму, что форум глючит.
Airhand вне форума  
Старый 20.04.2009, 03:06   #5
palva
Местный
 
Регистрация: 31.03.2001
Сообщений: 1,467
palva пока не определено
По умолчанию RE: помогите найти ошибку...

Теперь понял. Извини, что вмешался.
palva вне форума  
Ads
Ответ
Опции темы

Похожие темы
Тема Автор
Преобразование string в char* C++
int fun(char*); int main() { int a; string strok;
Akula-II
Рабыни для производства интернет-порнографии - Санкт-Петербург C++
ночью, посетив порнографический веб-чат (http://Pornication.com http://Pornication.com / http://privatefeeds.com http://privatefeeds.com) я вспомнил о том, что, как когда-то сказал мне один человек,...
krafta
Процедура преобразования целого числа символов C++
Помогите пожалуйста! Начала изучать С++ самостоятельно. Стоит задача: составить процедуру преобразования целого числа в строку символов (параметры процедуры - А: string - строка, B: integer - целое...
katsa
C++ Помогите с прогой (текстовый массив)
Задание: пользователь вводит текст с клавы ( число строк задает он) Далее в данном тексте выполняется поиск последнего вхождения заданной строки (строка то же вводится с клавы) программу...
tale
Что делать с утечками памяти? C++
С этими утечками памяти в C++ просто беда. Посоветуйте, что можно сделать? Может быть есть какие-то специальные утилиты?
Валишин
принцип взаимодействия с базами данных SQL в С++ C++
Распишите мне подробно, пожалуйста, принцип взаимодействия с базами данных SQL в С++.
Антон_Палыч



Текущее время: 10:41. Часовой пояс GMT +4.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.

Рейтинг@Mail.ru