Есть два вопроса, один несовершеннолетний и одна из основных. Недостатком является то, что расширение написано в терминах (1+x)^alpha
, а не x^alpha
, поэтому ваш i**k
действительно должен быть (i-1)**k
. Делая это превращает ваш выход
1.41920471191 1.0
5.234375 1.41421356237
, где вы можете увидеть, как подозрительно закрыть свой ответ на sqrt(1)
является sqrt(2)
в
1.0 1.0
1.41920471191 1.41421356237
, который намного лучше. К сожалению, остальные члены до сих пор не очень хорошо:
5.234375 1.73205080757
155.677841187 2.0
2205.0 2.2360679775
17202.2201691 2.44948974278
91687.28125 2.64575131106
376029.066696 2.82842712475
1273853.0 3.0
и увеличения числа членов суммированный от 10 до 100 делает вещи еще хуже:
1.0 1.0
1.4143562059 1.41421356237
1.2085299569e+26 1.73205080757
3.68973817323e+43 2.0
9.21065601505e+55 2.2360679775
3.76991761647e+65 2.44948974278
2.67712017747e+73 2.64575131106
1.16004174256e+80 2.82842712475
6.49543428975e+85 3.0
Но это и следовало ожидать, потому что, как страница, которую вы связаны объясняет, что это только гарантированно сходится, когда абсолютное значение х меньше 1. Таким образом, мы можем сделать хорошую работу получать корни малых чисел:
>>> i = 0.7
>>> sum(binomical(0.5, k) * (i-1) ** k for k in range(10))
0.8366601005565644
>>> i**0.5
0.8366600265340756
и мы можно попробовать масштабирование вещи вниз, чтобы иметь дело с другими номерами:
>>> i0 = 123.0
>>> i = i0/(20**2)
>>> sum(binomical(0.5, k) * (i-1) ** k for k in range(50))
0.5545268253462641
>>> _*20
11.090536506925282
>>> i0**0.5
11.090536506409418
или принять ряд Тейлора вокруг другой точки и т.д.
Общий вынос в том, что ряд Тейлора имеют radius of convergence - возможно, ноль ! - в пределах которых они дают правильные результаты. На странице серии Wikipedia Taylor есть раздел «Приближение и конвергенция», который охватывает это.
(приписка Нет "с" в "бином":. ^)
Оно 'python' вы должны пометить его как' python'. – ja72
О какой момент вы хотите взять серию Тейлора? Если вы берете его о 'x = 0', он не определен. – ja72
Удивительно, что ошибка от «x = 1» становится больше, чем больше терминов рассматриваются. – ja72