找回密码
 欢迎注册
楼主: gxqcn

[讨论] 三角形外心坐标公式

[复制链接]
发表于 2012-7-24 12:23:04 | 显示全部楼层
对称的公式是:

http://en.wikipedia.org/wiki/Circumscribed_circle

4103
wayne 发表于 2012-7-24 11:44

gxqcn,为什么赞叹wayne的结果,而不赞叹我的求解结果?
难道你不觉得我在11楼的回复是正确的吗?
这个公式当中应该有一个奇排列和偶排列的符号,但是我就是直接推出来了!
我坦白地说,我的回复是正确的,如果mathematica软件计算正确的话!
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-7-24 12:38:14 | 显示全部楼层
本帖最后由 mathematica 于 2012-7-24 12:41 编辑

b=x1^2(y2-y3)+x2^2(-y1+y3)+x3^2(y1-y2) +(y1 - y2) (y1 - y3) (y2 - y3)
d=-y1^2(x2-x3)-y2^2(-x1+x3)-y3^2(x1-x2) -(x1 - x2) (x1 - x3) (x2 - x3)

a=2 (x1(y2-y3)+x2 (-y1+y3)+x3 (y1-y2) )
横坐标是
b/a
纵坐标是
d/a
mathematica 发表于 2012-7-24 10:17

这个结果难道不好不直接吗?
如果有人不相信可以验算一下
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-7-24 12:47:00 | 显示全部楼层

b= x1^2(y2-y3)+x2^2(-y1+y3)+x3^2(y1-y2)+(y1-y2)(y1-y3)(y2-y3)
d=-y1^2(x2-x3)-y2^2(-x1+x3)-y3^2(x1-x2)-(x1-x2)(x1-x3)(x2-x3)
a= 2(x1(y2-y3)+x2(-y1+y3)+x3(y1-y2))
=-2(y1(x2-x3)+y2(-x1+x3)+y3(x1-x2))

横坐标是b/a,纵坐标是d/a
还有比这更直接的结果吗?

评分

参与人数 1贡献 +9 鲜花 +9 收起 理由
gxqcn + 9 + 9 谢谢你的推导

查看全部评分

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-7-24 12:51:08 | 显示全部楼层
如果有人能联想到两个三维矢量的矢量积的行列式的形式的展开的求解结果,
就能想明白为什么上面的看起来不对称!其实是对称的
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2012-7-24 13:13:41 | 显示全部楼层
当然,明眼人一下子就可看出是轮换对称式,
只是,直接利用你推导的公式,似乎并不利于编程计算。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-7-24 13:39:10 | 显示全部楼层
当然,明眼人一下子就可看出是轮换对称式,
只是,直接利用你推导的公式,似乎并不利于编程计算。
gxqcn 发表于 2012-7-24 13:13


怎么个不利法?
公式直接带进去,然后不就行了吗?
不就是给出三个点,然后求出横坐标纵坐标就行了吗?
不是很简单,我不明白怎么个不利于编程!
要是我用matlab的话,四五行代码就够了!
不能明白你说的不利于
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2012-7-24 13:50:04 | 显示全部楼层
这么说吧,我们仅看乘法指令的次数,
你的b和d各需8次,a需要3次,共需 8*2+3=19 次乘法运算。

而若用3#的方案,则需 3+3+3*2=12次乘法运算。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-7-24 14:34:45 | 显示全部楼层
26# mathematica
mathematica给的公式刚好在我给的那个链接里有.
应该是一致的,我没做进一步的核实.
===========
不过mathematica要注意,gxqcn老大在这里关注的是运算的高效性和模块的简洁性.
并不是什么MATLAB几行代码的事情.
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-7-24 14:41:38 | 显示全部楼层
这么说吧,我们仅看乘法指令的次数,
你的b和d各需8次,a需要3次,共需 8*2+3=19 次乘法运算。

而若用3#的方案,则需 3+3+3*2=12次乘法运算。
gxqcn 发表于 2012-7-24 13:50

P1,P2,P3 为三角形三顶点,  

d1 = - (P2–P1)·(P1–P3)    // 此为矢量运算:减法、内积;  
d2 = - (P3–P2)·(P2–P1)    // 所得为标量  
d3 = - (P1–P3)·(P3–P2)      
这儿每次内积用了两次乘法,共计6次
c1 = d2*d3  
c2 = d3*d1  
c3 = d1*d2  
c = c1 + c2 + c3
这儿用了3次乘法
则,其外接圆半径及圆心为:  
r = 1/2 sqrt( (d1+d2)*(d2+d3)*(d3+d1)/c )   
center = {(c2+c3)P1 + (c3+c1)P2 + (c1+c2)P3}/2c
这儿至少用了7次乘法(除以2c算一次乘法,每个点有两个分量)

总计6+3+7=16次乘法
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2012-7-24 14:48:11 | 显示全部楼层
哦,确实,一次内积需要两次乘法。我少算了。
除法我们都有,就没做统计了。
我比较追求形式上的简洁,便于记忆,甚至手算。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-4-25 12:30 , Processed in 0.050320 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表