为什么按照这个代码算出来的结果不对?
vb吧
全部回复
仅看楼主
level 5
为什么按照这个代码算出来的结果不对?
2020年11月11日 07点11分 1
level 11
你这个主要是要把Do那一行改成
Do Until i > 1 And Abs(y) < 0.000001
改完之后m也可能过大溢出,下面是我自己写的一个代码图片
2020年11月11日 12点11分 2
懂了,谢谢大佬
2020年11月13日 00点11分
但是为什么改了之后m会过大溢出?
2020年11月13日 02点11分
@烟织青萝梦♬ 比如输入0.9就会发现,m还有n的值很大也没有达到计算精度,所以我的代码中并没有储存这两个整数
2020年11月13日 04点11分
@DiverAZAM 明白了,谢谢
2020年11月13日 15点11分
level 7
这是反正弦函数的麦克劳林展开式,按理说计算器的话直接通过保留展开式的前几项即可完成近似解,看你的算法应该是你的阈值设计有问题。通过保留你的项数来求解吧(也就是你的i):
代码主体:
sum = x
n = 1
tmp = 1
tmp1 = 1
Do While n < 10
tmp = tmp * 2 * n
tmp1 = tmp1 * (2 * n - 1)
sum = sum + tmp1 / tmp * x ^ (2 * n + 1) / (2 * n + 1)
n = n + 1
Loop
运行结果:
其中,通过修改n值,保留项数越多越精确。
2020年11月14日 15点11分 4
明白了,谢谢
2020年11月17日 06点11分
修改Do那一行的n值最多只有29,还是没有我那个精确,还是得用我那个[汗]
2020年11月17日 09点11分
@DiverAZAM 我那个算0.9999的话n值能到上千
2020年11月17日 10点11分
1