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

Возможное округление при нахождении 2-й производной. При повышении точности программа начинает возвращать 0. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Detours http://www.cyberforum.ru/cpp-beginners/thread377979.html
Всем привет, я сам пишу на C#-пе, но вот понадобилось написать перехват функции, скачал с офф. сайта библиотечку Detours, но проблема в том что там экспресс версия в которой только исходы и те не компилируются (видимо не полные). Кто знает где скачать уже готовые *.dll ,*.lib файлы ? З.Ы Пытался сам править таблицу импорта по примерам, но по каким то причинам не работает, может Detours...
C++ Написать простенькие программы по работе с файлами. Программа 1. Входной файл содержит какой-нибудь текст. Прочитать файл и вывести текст на экран. Программа 2. Входной файл содержит некоторый текст. Запросить у пользователя слово. Вывести на экран количество встречающихся слов в тексте. Примечание к 1 и 2: программы имеют консольный вид. http://www.cyberforum.ru/cpp-beginners/thread377968.html
Блок-схема по матрице!!! C++
Преобразовать матрицу размерностью m x n таким образом,чтобы каждый столбец был упорядочен по убыванию!
C++ Проверка нажатия клавиши (тетрис)
Всем привет. Пишу тетрис. Как параллельно со всем прочим проверять, не была ли нажата определенная клавиша? Слышал о функции GetKeyState, но не знаю, как её грамотно применить. Не подскажете? ) Спасибо.
C++ Задача с палиндромом. http://www.cyberforum.ru/cpp-beginners/thread377944.html
Помогите решить вот такую задачу (на С): Даны натуральные числа N и M. В диапазоне N до M найти все палиндромы, которые при возведении в квадрат так же дают палиндром. P.S. Для решения нужно использовать условные операторы, циклы; нельзя использовать массив. Возможно можно использовать какие-то новые библиотеки (я лично знаю только stdio.h и math.h).
C++ Внести единую упорядоченность в последовательность Такая вот задача: Дано действительные числа {c}_{1}, \: ..., \: {c}_{p}, \: {d}_{1}, \: ... \: {d}_{q} \: ({c}_{1} \leq {c}_{2} \: ... \leq {c}_{p}, \: {d}_{1} \leq {d}_{2} \: ... \: \leq {d}_{q}), внести единую упорядоченность в {c}_{1}, \: ..., \: {c}_{p}, \: {d}_{1}, \: ... \: {d}_{q}, получив {f}_{1}, \: {f}_{2}, \: ..., \: {f}_{p + q} такие, что {f}_{1} \leq {f}_{2} \: ... \leq {f}_{p +... подробнее

Показать сообщение отдельно
Перцев Роман
0 / 0 / 0
Регистрация: 02.10.2010
Сообщений: 10
05.11.2011, 01:04     Возможное округление при нахождении 2-й производной. При повышении точности программа начинает возвращать 0.
Итак, здравствуйте.
Такая проблема.
Существует формула для нахождения 2-й производной функции:
http://www.cyberforum.ru/cgi-bin/latex.cgi?f''(x) = (f(x + h) - 2f(x) + f(x - h)) / (h^2)
Так выглядит ее реализация в виде функции:
C++
1
2
3
4
double SndDiff(double (*func)(double arg), double arg, double accur)
{
            return ((func(arg + accur) - (2. * func(arg)) + func(arg - accur)) / (pow(accur, 2.)));
}
где arg - аргумент функции, а accur - точность вычисления.

При подаче в функцию указателя на функцию, реализующую вычисление многочлена 2-го порядка (например, http://www.cyberforum.ru/cgi-bin/latex.cgi?x^2 + 6x - 3), и accur>=0.0000001, на выходе получаю нормальное значение, принимая во внимание погрешность (в данном примере аналитическое значение производной равно 2 при любом аргументе). Но если accur<=0.00000001, то на выходе получаю 0.(0) (ноль и ноль в периоде).

С остальными типами функций (тригонометрическими, а также с многочленами порядков, выше 2-го) функция работает как надо (проверял в Maple).

Пробовал переделать функции для работы с long double, копался в <float.h>, обойтись без pow(), но ничего не помогло.

Жду ваших советов!
Заранее спасибо!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 14:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru