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)

 

posted @ 2020-12-04 09:03  sunny开始学坏  阅读(624)  评论(0编辑  收藏  举报