一个程序员一年只拿一万,因为他每个月只投入50元的精力到工作学习中。求如果这个精力产生的效益x.
from sympy import *
x=Symbol('x')
def get_fx():
result=10000
for i in range(1,13):
result-=50*(1+x)**i
return result
def get_diff_fx():
fx=get_fx()
diff_fx=fx.diff(x)
return diff_fx
def get_fx_value(fx,x,limit_val):
return limit(fx,x,limit_val)
def newton_iter():
x0=0.2
prec=0.0001
for i in range(15):
fx=get_fx_value(get_fx(),x,x0)
if abs(fx)<=prec:
break
diff_fx=get_fx_value(get_diff_fx(),x,x0)
x0-=fx/diff_fx
print((i,x0,round(fx,10)))
newton_iter()
|