|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 id是什么 于 2018-9-12 15:47 编辑
本来想算一道微积分的题目.....结果发现算不对,一查是for循环算不精确……
def f(x):
return 1/2*(4-x**2)**(1/2)
for i in range(0,100000):
n = 4/100000
t += n
value += f(t)*n
结果出现复数了………………
正确答案应该是pai的
我一查,t循环着循环着就没算对,我不理解为什么会算错?
---
下面是循环一百次的:
for i in range(0,100):
n = 4/100
t += n
print(n,t)
0.04 -1.96
0.04 -1.92
0.04 -1.88
0.04 -1.8399999999999999
0.04 -1.7999999999999998
0.04 -1.7599999999999998
0.04 -1.7199999999999998
0.04 -1.6799999999999997
0.04 -1.6399999999999997
0.04 -1.5999999999999996
0.04 -1.5599999999999996
0.04 -1.5199999999999996
0.04 -1.4799999999999995
0.04 -1.4399999999999995
0.04 -1.3999999999999995
0.04 -1.3599999999999994
0.04 -1.3199999999999994
0.04 -1.2799999999999994
0.04 -1.2399999999999993
0.04 -1.1999999999999993
0.04 -1.1599999999999993
0.04 -1.1199999999999992
0.04 -1.0799999999999992
0.04 -1.0399999999999991
0.04 -0.9999999999999991
0.04 -0.9599999999999991
0.04 -0.919999999999999
0.04 -0.879999999999999
0.04 -0.839999999999999
0.04 -0.7999999999999989
0.04 -0.7599999999999989
0.04 -0.7199999999999989
0.04 -0.6799999999999988
0.04 -0.6399999999999988
0.04 -0.5999999999999988
0.04 -0.5599999999999987
0.04 -0.5199999999999987
0.04 -0.4799999999999987
0.04 -0.4399999999999987
0.04 -0.39999999999999875
0.04 -0.35999999999999877
0.04 -0.3199999999999988
0.04 -0.2799999999999988
0.04 -0.2399999999999988
0.04 -0.1999999999999988
0.04 -0.15999999999999878
0.04 -0.11999999999999877
0.04 -0.07999999999999877
0.04 -0.039999999999998766
0.04 1.2351231148954867e-15
0.04 0.040000000000001236
0.04 0.08000000000000124
0.04 0.12000000000000124
0.04 0.16000000000000125
0.04 0.20000000000000126
0.04 0.24000000000000127
0.04 0.28000000000000125
0.04 0.32000000000000123
0.04 0.3600000000000012
0.04 0.4000000000000012
0.04 0.44000000000000117
0.04 0.48000000000000115
0.04 0.5200000000000011
0.04 0.5600000000000012
0.04 0.6000000000000012
0.04 0.6400000000000012
0.04 0.6800000000000013
0.04 0.7200000000000013
0.04 0.7600000000000013
0.04 0.8000000000000014
0.04 0.8400000000000014
0.04 0.8800000000000014
0.04 0.9200000000000015
0.04 0.9600000000000015
0.04 1.0000000000000016
0.04 1.0400000000000016
0.04 1.0800000000000016
0.04 1.1200000000000017
0.04 1.1600000000000017
0.04 1.2000000000000017
0.04 1.2400000000000018
0.04 1.2800000000000018
0.04 1.3200000000000018
0.04 1.3600000000000019
0.04 1.400000000000002
0.04 1.440000000000002
0.04 1.480000000000002
0.04 1.520000000000002
0.04 1.560000000000002
0.04 1.600000000000002
0.04 1.6400000000000021
0.04 1.6800000000000022
0.04 1.7200000000000022
0.04 1.7600000000000022
0.04 1.8000000000000023
0.04 1.8400000000000023
0.04 1.8800000000000023
0.04 1.9200000000000024
0.04 1.9600000000000024
0.04 2.000000000000002
round可以用一下
- def f(x):
- return 1/2*(4-x**2)**(1/2)
- t=-2
- value=0
- for i in range(0,10**5):
- n = 4/10**5
- t += n
- t=round(t,5)
- value += f(t)*n
- print(value)
复制代码
|
|