- 注册时间
- 2009-2-12
- 最后登录
- 1970-1-1
- 威望
- 星
- 金币
- 枚
- 贡献
- 分
- 经验
- 点
- 鲜花
- 朵
- 魅力
- 点
- 上传
- 次
- 下载
- 次
- 积分
- 23973
- 在线时间
- 小时
|
发表于 2021-4-24 09:00:56
|
显示全部楼层
点到直线的距离公式是有的. 比如设直线方程的截距式为$ax-by+d=0, cy-az+e=0, bz-cx+f=0$, 那么 点${x,y,z}$到直线的距离$l = \sqrt{\frac{(ax-by+d)^2+(cy-az+e)^2+(bz-cx+f)^2}{a^2+b^2+c^2}} =r$
所以,为了解方程,我们可以设函数$g(x,y,z)=(a x-b y+1)^2+(-a z+c y+1)^2+(b z-c x+1)^2-r^2 (a^2+b^2+c^2)$, 问题就成了 解四元二次多项式方程组了 $g(x_i,y_i,z_i) = 0. i\in Z, 1<=i<=4$
这种情况,我们就不指望有简洁的代数解了. 但是对于给定的数值解,还是非常容易解出来的,比如
- {d,e,f}={1,1,1};
- g[x_,y_,z_]:=(a x-b y+d)^2+(c y-a z+e)^2+(b z-c x+f)^2-R(a^2+b^2+c^2);
- pts=RandomInteger[{-100,100},{4,3}];
- Solve[g @@@ pts == 0,{a,b,c,R},Reals]
复制代码
随机跑几遍,基本上发现解有0,2,4组.
. |
|