Форум сайта python.su
0
Нужна помощь, вот задание: Написать программу на языке 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)
Прикреплённый файлы:
Функция.PNG (5,0 KБ)
Офлайн
857
Это на рекуррентное соотношение задача.
>>> 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)
Офлайн