python科学计算库sympy初步使用
1.申明变量:
import sympy R22_X = sympy.symbols('x') R22_Y = sympy.symbols('y')
2.设置函数表达式:
R22=((R22_X-52)**2+(R22_Y-8)**2)-33**2
3.求解:
res22=sympy.solve(R22,[ R22_Y])
4.代值:
val=res22[1].evalf(subs = {R22_X:1})
完整代码:
import sympy R22_X = sympy.symbols('x') R22_Y = sympy.symbols('y') R22=((R22_X-52)**2+(R22_Y-8)**2)-33**2 res22=sympy.solve(R22,[ R22_Y]) print(res22[0]) R33_X = sympy.symbols('x1') R33_Y = sympy.symbols('y1') R33=((R33_X)**2+(R33_Y)**2)-22**2 res33=sympy.solve(R33,[ R33_Y]) print(res33[0]) # # f3= li=[] for i in range(19,52): R22_data={ "x":i, "y":res22[1].evalf(subs = {R22_X:i}) } # print(R22_data) for i2 in range(-11,11): R33_data={ "x":i2, "y":res33[0].evalf(subs = {R33_X:i2}) } l=((R22_data["x"]-R33_data["x"])**2+(R22_data["y"]-R33_data["y"])**2)**0.5 li.append([R22_data,R33_data,l]) # li.sort() lx=sorted(li, key=lambda x: x[2]-55) for u in lx: print(u)