为什么我这代码算积分要好几秒才出结果?
import randomimport math
class Function:
global dx
dx = 0.000001
def __init__(self, cor_law="pow(x,2)"):
self.cor_law = cor_law
def getValue(self,x):
try:
y = eval(self.cor_law)
return y
except:
return "函数在该点处没意义"
def derivate(self,x0):
try:
y0 = self.getValue(x0)
x1 = x0 + dx
y1 = self.getValue(x1)
return(y1 - y0)/(x1 - x0)
except:
return "函数不可导"
def integral(self,up,down):
try:
s = 0
if up > down:
while down < up:
yi = self.getValue(down)
s += yi*dx
down += dx
else:
while up < down:
yi = self.getValue(up)
s -= yi*dx
up += dx
return s
except:
return "函数不可积"
if __name__ == "__main__":
fun = Function(cor_law='math.sin(x)')
print(fun.getValue(3.1415926))
print(fun.derivate(0))
print(fun.integral(3.14159, 0)) 效率不行呗
Python本来弱势就是效率 qiuyouzhi 发表于 2020-4-7 20:03
效率不行呗
Python本来弱势就是效率
{:10_245:}刚开始还以为电脑陷入了死循环呢。 用numpy不香吗{:10_245:} BngThea 发表于 2020-4-7 20:26
用numpy不香吗
还在摸索中 很多都不懂{:10_266:} cyrus白 发表于 2020-4-7 20:28
还在摸索中 很多都不懂
numpy和scipy底层都是c,速度很快
搞科学计算必备的 为毛不编译一下呢? Pyinstaller他不香吗?
页:
[1]