防止四舍五入,保持一定的准确度

时间:2018-04-07 11:03:11

标签: python-3.x rounding

我正在尝试应用Runge Kutta方法来解决ODE问题。问题是,python某个地方像疯子一样四舍五入,我不明白为什么或者是什么语法告诉python来绕过一切?我尝试将所有内容转换为import numpy as np def fn(x,y): return x-y def rk3 (y0,x): n = len (x) y = np.array([y0]*n) for j in range(n-1): h = x[j+1]-x[j] k1 = h * fn(x[j],y[j]) k2 = h * fn(x[j] + h / 3.0, y[j] + k1 / 3.0) k3 = h * fn(x[j] + 2.0*h /3.0, y[j] + 2.0*k2 /3.0) y[j+1] = y[j] + k1*1.0/4.0 + k3 *3.0/4.0 return y v = rk3(1, np.linspace(0,5,500)) 无效。我应该怎么做让python计算满足一定精度要求的一切?

{{1}}

1 个答案:

答案 0 :(得分:0)

错误是在rk3(1,np.linspace(0,5,500))中传递一个整数。如果更改为1.0,则根据需要将所有其他操作视为浮点运算。