Почему этот результат точнее, чем другой результат, полученный эквивалентными функциями?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Почему этот результат точнее, чем другой результат, полученный эквивалентными функциями?

Сообщение Anonymous »

У меня следующий вопрос: почему myf(x) дает менее точные результаты, чем myf2(x). Вот мой код на Python:

Код: Выделить всё

from math import e, log

def Q1():
n = 15
for i in range(1, n):
#print(myf(10**(-i)))
#print(myf2(10**(-i)))
return

def myf(x):
return ((e**x - 1)/x)

def myf2(x):
return ((e**x - 1)/(log(e**x)))
Вот результат выполнения myf(x):

Код: Выделить всё

1.0517091807564771
1.005016708416795
1.0005001667083846
1.000050001667141
1.000005000006965
1.0000004999621837
1.0000000494336803
0.999999993922529
1.000000082740371
1.000000082740371
1.000000082740371
1.000088900582341
0.9992007221626409
0.9992007221626409
myf2(x):

Код: Выделить всё

1.0517091807564762
1.0050167084168058
1.0005001667083415
1.0000500016667082
1.0000050000166667
1.0000005000001666
1.0000000500000017
1.000000005
1.0000000005
1.00000000005
1.000000000005
1.0000000000005
1.00000000000005
1.000000000000005
Я считаю, что это как-то связано с системой счисления с плавающей запятой в Python в сочетании с моей машиной. Натуральный логарифм числа Эйлера дает число с большей точностью, чем его эквивалентное число x в виде целого числа.

Подробнее здесь: https://stackoverflow.com/questions/662 ... -functions
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»