Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 21, 2014 12:36:40

AndrewS95H
Зарегистрирован: 2014-12-07
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Вычисление значения функции с заданной точностью

Нужна помощь, вот задание: Написать программу на языке Python вычисляющую данное значение с заданной точностью
E=0.001 (точность - разность предыдущего значения итерации и текущего)
Я написал вот такой код, который, говорят, слишком замороченный, да и я не уверен в его правильности:

#! /usr/bin/env/python
import math
from math import factorial
x=float(raw_input('Write x:'))
stepen = 0
g = 3
answer = 1
e = 0.001
znam = factorial(g)
while (E < 0.001 ):
   stepen += 2
   argstepen= x** int(stepen)
   stepen += 2
   argfact = float(argstepen) / int(znam)
   answer = answer - argfact
   it1 = float(answer)
   print (answer)
   g += 2
   znam = factorial(g)
   argstepen = x** int(stepen)
   argfact = float(argstepen) / int(znam)
   answer = answer + argfact
   g += 2
   znam = factorial(g)
   print 'ANSWER:'
   print (answer)
   e =  float(it1 - it2)
   print 'E:'
   print (e)

В чем дело? Какой код правильнее? Заранее спасибо.

Прикреплённый файлы:
attachment Функция.PNG (5,0 KБ)

Офлайн

#2 Дек. 21, 2014 14:58:03

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10015
Репутация: +  857  -
Профиль   Отправить e-mail  

Вычисление значения функции с заданной точностью

Это на рекуррентное соотношение задача.

>>> def f(x, eps):
...     s = 0
...     n = 1
...     sl, psl = 1, 0
...     while abs(sl - psl) >= eps:
...         s += sl
...         psl = sl
...         sl *= -x * x / (n * n + 3 * n + 2)
...         n += 2
...     return s
... 
>>> f(2.5, 0.001)
0.23937956415653147
>>> import math
>>> math.sin(2.5) / 2.5
0.23938885764158263
>>>



Отредактировано py.user.next (Дек. 21, 2014 15:00:10)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version