|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 veilong 于 2019-10-15 23:53 编辑
- import math
- from sympy import *
- def solve_c(θ,α):
- """
- 求解曲线系数c
- θ为过渡角度,用弧度
- α为斜线段角度
- """
- c1,c2,c3,c4,c5,c6,c7=symbols('c1:8')
- eq1 = c1*(1/4 - 1/(2 * math.pi))-c4
- eq2 = c1/(4*math.radians(1/4*θ))-c3
- eq3 = c1*math.pi-16*c2*math.radians(1/4*θ)**2
- eq4 = c2*math.radians(1/2*θ)**2+c3*math.radians(1/2*θ)+c4+c6/(2 * math.pi)-c7
- eq5 = 2*c2*math.radians(1/2*θ)+c3-c5/(4*math.radians(1/4*θ))
- eq6 = 16*c2*math.radians(1/4*θ)**2-c6*math.pi
- eq7 = 5.298-c5/4-c7
- sol = solve((eq1,eq2,eq3,eq4,eq5,eq6,eq7),(c1,c2,c3,c4,c5,c6,c7))
- return sol
- c = solve_c(19,85)
- #c1=c[c1]
复制代码
运行后得{c1: 2.06084003807692, c2: 58.8751760609687, c3: 6.21460191754672, c4: 0.187217130537599, c5: 8.53515996192307, c6: 2.06084003807692, c7: 3.16421000951923}
加上c1=c[c1]这句则报错:name 'c1' is not defined
尝试将symbols中的c1换为x,y,z中之一则正确取得值。
请高手不吝解答,谢谢!
本帖最后由 XiaoPaiShen 于 2019-10-16 09:29 编辑
- import math
- from sympy import *
- def solve_c(θ,α):
- """
- 求解曲线系数c
- θ为过渡角度,用弧度
- α为斜线段角度
- """
- c1,c2,c3,c4,c5,c6,c7=symbols('c1:8')
- eq1 = c1*(1/4 - 1/(2 * math.pi))-c4
- eq2 = c1/(4*math.radians(1/4*θ))-c3
- eq3 = c1*math.pi-16*c2*math.radians(1/4*θ)**2
- eq4 = c2*math.radians(1/2*θ)**2+c3*math.radians(1/2*θ)+c4+c6/(2 * math.pi)-c7
- eq5 = 2*c2*math.radians(1/2*θ)+c3-c5/(4*math.radians(1/4*θ))
- eq6 = 16*c2*math.radians(1/4*θ)**2-c6*math.pi
- eq7 = 5.298-c5/4-c7
- sol = solve((eq1,eq2,eq3,eq4,eq5,eq6,eq7),(c1,c2,c3,c4,c5,c6,c7))
- return sol
- c = solve_c(19,85)
- c1,c2,c3,c4,c5,c6,c7=symbols('c1:8')
- print(c[c1])
复制代码
|
|