Я сейчас пишу приложение для калькулятора. Я пытаюсь написать производную оценку в него. Формула ниже - простой способ сделать это. Обычно на бумаге вы использовали бы наименьшее возможное значение h, чтобы получить наиболее точную оценку. Проблема в том, что двойники не справляются с добавлением действительно небольших чисел к сравнительно огромным числам. Например, 4 + 1E-200 приведет к 4,0. Даже если h был всего лишь 1E-16, 4 + 1E16 фактически даст вам правильное значение, но, делая математические вычисления, оно является неточным, поскольку что-либо после 16-го места теряется и округление не может происходить правильно. Я слышал, что общее правило для дублей 1E-8 или 1E-7. Проблема в том, что большие числа не будут работать, поскольку 2E231 + 1E-8 будет просто 2E23, 1E-8 будет потеряно из-за проблем с размером.
f'(x)=(f(x+h)-f(x))/h as x approaches 0
Когда я проверяю f (x) = x ^ 2 в точке 4, то f '(4), это должно быть ровно 8
теперь я понимаю, что, вероятно, никогда не получу точно 8, но мне кажется, что наиболее точным является 1E-7 или 1E8.
Самое смешное, что от 1E-9 до 1E-11 дают одинаковый ответ.
Вот список ч и результатов для f(x)=x^2 at x=4
1E-7 8.000000129015916
1E-8 7.999999951380232
1E-9 8.000000661922968
1E-10 8.000000661922968
1E-11 8.000000661922968
1E-12 8.000711204658728
Вот мои вопросы:
- Какой лучший способ выбрать h, очевидно, имеет смысл 1E-8 или 1E-7, но как я могу выбрать h на основе x, чтобы он работал с любым числом, даже если x равно 3.14E203 или 2E-231.
- Сколько десятичных знаков точности я должен учитывать.
- Есть ли у вас какие-либо представления о том, как это делают техасские инструменты, TI 83, 84 и Inspire могут численно вычислять производные до 12 десятичных знаков или с точностью до точности и почти всегда быть правы, но максимальная точность их чисел в любом случае равна 12 цифрам, и эти калькуляторы не являются CAS, поэтому на самом деле они ничего не выводят
- Логично, что где-то между 1E-7 и 1E-8 есть число, которое даст мне более точный результат, есть ли способ найти это число или, по крайней мере, приблизиться к нему.
ОТВЕТИЛ
Большое спасибо, БобГ. Приложение в настоящее время планируется в 2 формах, приложение командной строки ПК. И приложение для Android. Вы будете упомянуты в особой благодарности к частям страницы About. Если вы хотите, это будет с открытым исходным кодом, но я не буду публиковать ссылки на сайт проекта, пока я не исправлю некоторые очень очень большие ошибки. На данный момент я называю это Mathulator, но название, скорее всего, изменится, потому что на него уже есть авторские права, и это звучит глупо. Я понятия не имею, когда будет запущен кандидат на релиз, в настоящий момент я не знаю, когда он будет стабильным. Но это будет очень мощно, если я смогу реализовать все, что хочу. Спасибо еще раз. Счастливого программирования.