|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
我想求两条直线的焦点,但这两条直线没有规律。
我是这样写的,去第一组数据的两个点构建直线,然后取第二组数据的两个数据构建直线,然后求他们的解,求出来的解需要在他们中间。代码如下:
for i in range(0,len(xv1)-1):
x1 = xv1[i]
y1 = yv1[i]
x2 = xv1[i + 1]
y2 = yv1[i + 1]
for j in range(0,len(xv2)-1):
x3 = xv2[j]
y3 = yv2[j]
x4 = xv2[j + 1]
y4 = yv2[j + 1]
xzh = Symbol('xzh')
yzh = Symbol('yzh')
eq1 = Eq((yzh - y1) * (x2 - x1) - (y2 - y1) * (xzh - x1), 0)
eq2 = Eq((yzh - y3) * (x4 - x3) - (y4 - y3) * (xzh - x3), 0)
sol=solve([eq1,eq2],[xzh,yzh])
if x1<=float(sol[xzh])<=x2 and x3<=float(sol[xzh])<=x4 and y1<=float(sol[yzh])<=y2 and y4<=float(sol[yzh])<=y3:
print(sol[xzh])
但是程序运行的速度非常慢,而且报了TypeError: list indices must be integers or slices, not Symbol错误,想知道应该怎么改进一下,希望大佬能给点建议,怎么修改一下能使程序运行的速度更快而且不会报错,谢谢 |
|