dlsh 发表于 2021-12-2 21:37:43

直线交点在圆上,实在不知道程序错在哪里


\!\(\*OverscriptBox["o", "_"]\) = o = 0;
\!\(\*OverscriptBox["c", "_"]\) = c = 1;
\!\(\*OverscriptBox["a", "_"]\) = 1/a;
\!\(\*OverscriptBox["b", "_"]\) = 1/b;
\!\(\*OverscriptBox["t", "_"]\) = 1/t; b = t^2; h = a + b + c;
\!\(\*OverscriptBox["h", "_"]\) =
\!\(\*OverscriptBox["a", "_"]\) +
\!\(\*OverscriptBox["b", "_"]\) +
\!\(\*OverscriptBox["c", "_"]\); m = (a + h)/2;
\!\(\*OverscriptBox["m", "_"]\) = (
\!\(\*OverscriptBox["a", "_"]\) +
\!\(\*OverscriptBox["h", "_"]\))/2;
k := (a - b)/(
\!\(\*OverscriptBox["a", "_"]\) -
\!\(\*OverscriptBox["b", "_"]\));
\!\(\*OverscriptBox["k", "_"]\) := 1/k;(*复斜率定义*)

\!\(\*OverscriptBox["Jd", "_"]\) := -((a1 - k1
\!\(\*OverscriptBox["a1", "_"]\) - (a2 - k2
\!\(\*OverscriptBox["a2", "_"]\)))/(k1 - k2));
(*复斜率等于k1,过点A1与复斜率等于k2,过点A2的直线交点*)
Jd := -((k2 (a1 - k1
\!\(\*OverscriptBox["a1", "_"]\)) - k1 (a2 - k2
\!\(\*OverscriptBox["a2", "_"]\)))/(k1 - k2));
FourPoint := ((
\!\(\*OverscriptBox["c", "_"]\) d - c
\!\(\*OverscriptBox["d", "_"]\)) (a - b) - (
\!\(\*OverscriptBox["a", "_"]\) b - a
\!\(\*OverscriptBox["b", "_"]\)) (c - d))/((a - b) (
\!\(\*OverscriptBox["c", "_"]\) -
\!\(\*OverscriptBox["d", "_"]\)) - (
\!\(\*OverscriptBox["a", "_"]\) -
\!\(\*OverscriptBox["b", "_"]\)) (c - d));(*过两点A和B、C和D的交点*)

\!\(\*OverscriptBox["FourPoint", "_"]\) := -(((c
\!\(\*OverscriptBox["d", "_"]\) -
\!\(\*OverscriptBox["c", "_"]\) d) (
\!\(\*OverscriptBox["a", "_"]\) -
\!\(\*OverscriptBox["b", "_"]\)) - ( a
\!\(\*OverscriptBox["b", "_"]\) -
\!\(\*OverscriptBox["a", "_"]\) b) (
\!\(\*OverscriptBox["c", "_"]\) -
\!\(\*OverscriptBox["d", "_"]\)))/((a - b) (
\!\(\*OverscriptBox["c", "_"]\) -
\!\(\*OverscriptBox["d", "_"]\)) - (
\!\(\*OverscriptBox["a", "_"]\) -
\!\(\*OverscriptBox["b", "_"]\)) (c - d)));
Duichengdian := (
\!\(\*OverscriptBox["a", "_"]\) b - a
\!\(\*OverscriptBox["b", "_"]\) +
\!\(\*OverscriptBox["p", "_"]\) (a - b))/(
\!\(\*OverscriptBox["a", "_"]\) -
\!\(\*OverscriptBox["b", "_"]\));(*P关于AB的对称点*)

\!\(\*OverscriptBox["Duichengdian", "_"]\) := (a
\!\(\*OverscriptBox["b", "_"]\) -
\!\(\*OverscriptBox["a", "_"]\) b + p (
\!\(\*OverscriptBox["a", "_"]\) -
\!\(\*OverscriptBox["b", "_"]\)))/(a - b);
o1 = Jd;
\!\(\*OverscriptBox["o1", "_"]\) =
\!\(\*OverscriptBox["Jd", "_"]\);
d = a b (
\!\(\*OverscriptBox["a", "_"]\) -
\!\(\*OverscriptBox["o1", "_"]\)) + o1;
\!\(\*OverscriptBox["d", "_"]\) =
\!\(\*OverscriptBox["a", "_"]\)
\!\(\*OverscriptBox["b", "_"]\) (a - o1) +
\!\(\*OverscriptBox["o1", "_"]\); e = a c (
\!\(\*OverscriptBox["a", "_"]\) -
\!\(\*OverscriptBox["o1", "_"]\)) + o1;
\!\(\*OverscriptBox["e", "_"]\) =
\!\(\*OverscriptBox["a", "_"]\)
\!\(\*OverscriptBox["c", "_"]\) (a - o1) +
\!\(\*OverscriptBox["o1", "_"]\);
x = Duichengdian;
\!\(\*OverscriptBox["x", "_"]\) =
\!\(\*OverscriptBox["Duichengdian", "_"]\);
q = -(k/x);
\!\(\*OverscriptBox["q", "_"]\) = 1/q; p = -(k/x);
\!\(\*OverscriptBox["p", "_"]\) = 1/p;
s = FourPoint;
\!\(\*OverscriptBox["s", "_"]\) =
\!\(\*OverscriptBox["FourPoint", "_"]\);
s1 = -k (
\!\(\*OverscriptBox["e", "_"]\) -
\!\(\*OverscriptBox["o1", "_"]\)) + o1; s2 = -k (
\!\(\*OverscriptBox["d", "_"]\) -
\!\(\*OverscriptBox["o1", "_"]\)) + o1;
Simplify[{1, o1,
\!\(\*OverscriptBox["o1", "_"]\), , d,
\!\(\*OverscriptBox[
RowBox[{"d", "\"}], "_"]\), e,
\!\(\*OverscriptBox[
RowBox[{"e", "\"}], "_"]\), , x,
\!\(\*OverscriptBox["x", "_"]\)}]
Simplify[{2, p,
\!\(\*OverscriptBox["p", "_"]\), , q,
\!\(\*OverscriptBox[
RowBox[{"q", "\"}], "_"]\), , s,
\!\(\*OverscriptBox["s", "_"]\)}]
Simplify[{3, k, -((s - o1)/(
\!\(\*OverscriptBox["e", "_"]\) -
\!\(\*OverscriptBox["o1", "_"]\))), , k, k, -((s - o1)/(
\!\(\*OverscriptBox["d", "_"]\) -
\!\(\*OverscriptBox["o1", "_"]\))), -((d - o1)/(
\!\(\*OverscriptBox["s", "_"]\) -
\!\(\*OverscriptBox["o1", "_"]\))), , -((s - o1)/(
\!\(\*OverscriptBox["d", "_"]\) -
\!\(\*OverscriptBox["o1", "_"]\))) + (d - o1)/(
\!\(\*OverscriptBox["s", "_"]\) -
\!\(\*OverscriptBox["o1", "_"]\))}](*验证S在圆O1上*)
Simplify[{(s - o1) (
\!\(\*OverscriptBox["s", "_"]\) -
\!\(\*OverscriptBox["o1", "_"]\)), , (x - o1) (
\!\(\*OverscriptBox["x", "_"]\) -
\!\(\*OverscriptBox["o1", "_"]\)), (o1 - a) (
\!\(\*OverscriptBox["o1", "_"]\) -
\!\(\*OverscriptBox["a", "_"]\)), , (e - o1) (
\!\(\*OverscriptBox["e", "_"]\) -
\!\(\*OverscriptBox["o1", "_"]\)), (d - o1) (
\!\(\*OverscriptBox["d", "_"]\) -
\!\(\*OverscriptBox["o1", "_"]\)), x
\!\(\*OverscriptBox["x", "_"]\)}]
Simplify[{(s - o1) (
\!\(\*OverscriptBox["s", "_"]\) -
\!\(\*OverscriptBox["o1", "_"]\)) - (x - o1) (
\!\(\*OverscriptBox["x", "_"]\) -
\!\(\*OverscriptBox["o1", "_"]\))}]
Simplify[{k, k, -((a - o1)/(
\!\(\*OverscriptBox["d", "_"]\) -
\!\(\*OverscriptBox["o1", "_"]\)))}]
Simplify[{s1, s2, , s1 - s2}]
(*验证S在圆O1上*)



最后的S点错误,三次都不同,不知道错在哪里

TSC999 发表于 2021-12-3 20:40:53

你的运行结果中没有共轭字符出现,复制你的代码在我的 mathematica 9.0 上运行,运行结果中就有共轭字符出现(简化不彻底)。不知是何原因。
你在程序最前面加上一条清除所有变量的指令,看看每次运行情况是不是都一样。

TSC999 发表于 2021-12-5 19:24:34

本帖最后由 TSC999 于 2021-12-5 19:31 编辑

为查找问题,把程序弄到最简,如下图。
这个程序首次运行有问题 (结果中有共轭复数),但是第二次、第三次、.....运行就一直正常了。
估计问题出在图中的蓝色字符上。


下图是首次运行结果与再次运行结果的比较:

TSC999 发表于 2021-12-5 19:52:39

本帖最后由 TSC999 于 2021-12-5 20:15 编辑

A 点、P 点的位置在哪里? 程序中只表明它们都在单位圆上,但是并没有具体位置的定义。这也许是导致 s 出错的原因?

s的结果是稳定的,并没有三次运行的结果都不相同。S点位于 O1 圆上的判定依据是什么?

dlsh 发表于 2021-12-5 21:33:52

如果S在O1上,S与A到O1的距离平方相等 或者-(s-o1)/(e'-o1')=kqe,-(d-o1)/(s'-o1')=kpd,为简化用撇号代替共轭

TSC999 发表于 2021-12-6 09:39:01

本帖最后由 TSC999 于 2021-12-6 18:37 编辑

为了查找程序中的计算错误,画出下图。

给定 A、T 的坐标,其它点的坐标都可按程序计算出来。在图中实测各点坐标,发现有的点 (例如 D、E 、X、O1、S 点) 计算与实测不符。

AD、AE长度的计算值也与实测值不一样。



以下是换一种方法计算 O1、D、E 、X、P、Q、S 各点的坐标以及 AD、AE 的长度,结果全都与实测值相符合:

o1= - 0.4280947 + I 0.2345752
d = - 0.587453 - I 0 .26846
e =   0.092019 + I 0 .323577
x = - 0.950037 + I 0 .312138
p =   0.942956 + I 0 .332918
q = - 0.136446 - I 0 .990647
s =   0.0313717 - I 0 .0252913
AD = 0.920377
AE = 0.920111

终于发现原程序中的错误是求 o1 的那条语句,应改为o1=Simplify , m , k, a ]];原程序中的o1=Simplify]; 是不对的。这个错误不但造成计算结果不对,并且发生程序开头不能加上清除所有变量语句的奇怪现象。
改正这个错误后,一切问题都解决了。下页是更正后的正确程序代码。


TSC999 发表于 2021-12-6 18:24:10

Clear["Global`*"]; (*设三角形ABC的外接圆为单位圆,C 点在正 x 轴上*)

\!\(\*OverscriptBox[\(o\), \(_\)]\) = o = 0;
\!\(\*OverscriptBox[\(c\), \(_\)]\) = c = 1;

\!\(\*OverscriptBox[\(a\), \(_\)]\) = 1/a; b = t^2;
\!\(\*OverscriptBox[\(b\), \(_\)]\) = 1/b;
\!\(\*OverscriptBox[\(t\), \(_\)]\) = 1/t;
\!\(\*OverscriptBox[\(p\), \(_\)]\) = 1/p;
h = a + b + c(*当三角形外心在坐标原点时此式成立*);

\!\(\*OverscriptBox[\(h\), \(_\)]\) =
\!\(\*OverscriptBox[\(a\), \(_\)]\) +
\!\(\*OverscriptBox[\(b\), \(_\)]\) +
\!\(\*OverscriptBox[\(c\), \(_\)]\); m = (a + h)/2;(* M是A、H的中点*)
\!\(\*OverscriptBox[\(m\), \(_\)]\) = (
\!\(\*OverscriptBox[\(a\), \(_\)]\) +
\!\(\*OverscriptBox[\(h\), \(_\)]\))/2;
k := (a - b)/(
\!\(\*OverscriptBox[\(a\), \(_\)]\) -
\!\(\*OverscriptBox[\(b\), \(_\)]\));
\!\(\*OverscriptBox[\(k\), \(_\)]\) := 1/k;(*复斜率定义*)
Jd := -((k2 (a1 - k1
\!\(\*OverscriptBox[\(a1\), \(_\)]\)) - k1 (a2 - k2
\!\(\*OverscriptBox[\(a2\), \(_\)]\)))/(k1 - k2));

\!\(\*OverscriptBox[\(Jd\), \(_\)]\) := -((a1 - k1
\!\(\*OverscriptBox[\(a1\), \(_\)]\) - (a2 - k2
\!\(\*OverscriptBox[\(a2\), \(_\)]\)))/(k1 - k2));
(*复斜率等于k1且经过A1点的直线,与复斜率等于k2且经过A2点的直线,两直线的交点*)
FourPoint := ((
\!\(\*OverscriptBox[\(c\), \(_\)]\) d - c
\!\(\*OverscriptBox[\(d\), \(_\)]\)) (a - b) - (
\!\(\*OverscriptBox[\(a\), \(_\)]\) b - a
\!\(\*OverscriptBox[\(b\), \(_\)]\)) (c - d))/((a - b) (
\!\(\*OverscriptBox[\(c\), \(_\)]\) -
\!\(\*OverscriptBox[\(d\), \(_\)]\)) - (
\!\(\*OverscriptBox[\(a\), \(_\)]\) -
\!\(\*OverscriptBox[\(b\), \(_\)]\)) (c - d));

\!\(\*OverscriptBox[\(FourPoint\), \(_\)]\) := -(((c
\!\(\*OverscriptBox[\(d\), \(_\)]\) -
\!\(\*OverscriptBox[\(c\), \(_\)]\) d) (
\!\(\*OverscriptBox[\(a\), \(_\)]\) -
\!\(\*OverscriptBox[\(b\), \(_\)]\)) - ( a
\!\(\*OverscriptBox[\(b\), \(_\)]\) -
\!\(\*OverscriptBox[\(a\), \(_\)]\) b) (
\!\(\*OverscriptBox[\(c\), \(_\)]\) -
\!\(\*OverscriptBox[\(d\), \(_\)]\)))/((a - b) (
\!\(\*OverscriptBox[\(c\), \(_\)]\) -
\!\(\*OverscriptBox[\(d\), \(_\)]\)) - (
\!\(\*OverscriptBox[\(a\), \(_\)]\) -
\!\(\*OverscriptBox[\(b\), \(_\)]\)) (c - d)));
(*过A、B点的直线与过C、D点的直线的交点*)
Duichengdian := (
\!\(\*OverscriptBox[\(a\), \(_\)]\) b - a
\!\(\*OverscriptBox[\(b\), \(_\)]\) +
\!\(\*OverscriptBox[\(p\), \(_\)]\) (a - b))/(
\!\(\*OverscriptBox[\(a\), \(_\)]\) -
\!\(\*OverscriptBox[\(b\), \(_\)]\));(*P关于直线AB的镜像点*)

\!\(\*OverscriptBox[\(Duichengdian\), \(_\)]\) := (a
\!\(\*OverscriptBox[\(b\), \(_\)]\) -
\!\(\*OverscriptBox[\(a\), \(_\)]\) b + p (
\!\(\*OverscriptBox[\(a\), \(_\)]\) -
\!\(\*OverscriptBox[\(b\), \(_\)]\)))/(a - b);
(*右边语句错了,不但计算结果不对,并且发生程序开头不能加上清除所有变量语句的奇怪现象o1 =Simplify[ Jd[a b, m, \
-a t, a]];Overscript =Simplify[a b, m, -a \
t, a]];*)
o1 = Simplify[ Jd[-k, m, k, a]];

\!\(\*OverscriptBox[\(o1\), \(_\)]\) = Simplify[
\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[-k, m, k, a]];
Print["o1=", o1, ",    \!\(\*OverscriptBox[\(o1\), \(_\)]\)=",
\!\(\*OverscriptBox[\(o1\), \(_\)]\)];
d = Simplify[ a b (
\!\(\*OverscriptBox[\(a\), \(_\)]\) -
\!\(\*OverscriptBox[\(o1\), \(_\)]\)) + o1];

\!\(\*OverscriptBox[\(d\), \(_\)]\) = Simplify[
\!\(\*OverscriptBox[\(a\), \(_\)]\)
\!\(\*OverscriptBox[\(b\), \(_\)]\) (a - o1) +
\!\(\*OverscriptBox[\(o1\), \(_\)]\)];
Print["d=", d, ",    \!\(\*OverscriptBox[\(d\), \(_\)]\)=",
\!\(\*OverscriptBox[\(d\), \(_\)]\)];
e = Simplify[ a c (
\!\(\*OverscriptBox[\(a\), \(_\)]\) -
\!\(\*OverscriptBox[\(o1\), \(_\)]\)) + o1];

\!\(\*OverscriptBox[\(e\), \(_\)]\) = Simplify[
\!\(\*OverscriptBox[\(a\), \(_\)]\)
\!\(\*OverscriptBox[\(c\), \(_\)]\) (a - o1) +
\!\(\*OverscriptBox[\(o1\), \(_\)]\)];
Print["e=", e, ",    \!\(\*OverscriptBox[\(e\), \(_\)]\)=",
\!\(\*OverscriptBox[\(e\), \(_\)]\)];
x = Simplify];
\!\(\*OverscriptBox[\(x\), \(_\)]\) = Simplify[
\!\(\*OverscriptBox[\(Duichengdian\), \(_\)]\)];
Print["x=", x, ",    \!\(\*OverscriptBox[\(x\), \(_\)]\)=",
\!\(\*OverscriptBox[\(x\), \(_\)]\)];
q = Simplify[-(k/x)];
\!\(\*OverscriptBox[\(q\), \(_\)]\) = Simplify; p =
Simplify[-(k/x)];
\!\(\*OverscriptBox[\(p\), \(_\)]\) = Simplify;
Print["p=", p, ",    \!\(\*OverscriptBox[\(p\), \(_\)]\)=",
\!\(\*OverscriptBox[\(p\), \(_\)]\)];
Print["q=", q, ",    \!\(\*OverscriptBox[\(q\), \(_\)]\)=",
\!\(\*OverscriptBox[\(q\), \(_\)]\)];
s = Simplify];
\!\(\*OverscriptBox[\(s\), \(_\)]\) = Simplify[
\!\(\*OverscriptBox[\(FourPoint\), \(_\)]\)];
s1 = Simplify[-k (
\!\(\*OverscriptBox[\(e\), \(_\)]\) -
\!\(\*OverscriptBox[\(o1\), \(_\)]\)) + o1]; s2 = Simplify[-k (
\!\(\*OverscriptBox[\(d\), \(_\)]\) -
\!\(\*OverscriptBox[\(o1\), \(_\)]\)) + o1];
Print["s=", s, ",    \!\(\*OverscriptBox[\(s\), \(_\)]\)=",
\!\(\*OverscriptBox[\(s\), \(_\)]\)];
Print["s1=", s1];
Print["s2=", s2];
Print["s1-s2=", Simplify];
Print["。。。。。。。。。。。。。。。。。。。。。。。。。。"];
Simplify[{1, o1,
\!\(\*OverscriptBox[\(o1\), \(_\)]\), , d,
\!\(\*OverscriptBox[\(\(d\)\(\ \)\), \(_\)]\), e,
\!\(\*OverscriptBox[\(\(e\)\(\ \)\), \(_\)]\), , x,
\!\(\*OverscriptBox[\(x\), \(_\)]\)}]
Simplify[{2, p,
\!\(\*OverscriptBox[\(p\), \(_\)]\), , q,
\!\(\*OverscriptBox[\(\(q\)\(\ \)\), \(_\)]\), , s,
\!\(\*OverscriptBox[\(s\), \(_\)]\)}]
Simplify[{3, k, -((s - o1)/(
\!\(\*OverscriptBox[\(e\), \(_\)]\) -
\!\(\*OverscriptBox[\(o1\), \(_\)]\))), , k,
k, -((s - o1)/(
\!\(\*OverscriptBox[\(d\), \(_\)]\) -
\!\(\*OverscriptBox[\(o1\), \(_\)]\))), -((d - o1)/(
\!\(\*OverscriptBox[\(s\), \(_\)]\) -
\!\(\*OverscriptBox[\(o1\), \(_\)]\))), , -((s - o1)/(
\!\(\*OverscriptBox[\(d\), \(_\)]\) -
\!\(\*OverscriptBox[\(o1\), \(_\)]\))) + (d - o1)/(
\!\(\*OverscriptBox[\(s\), \(_\)]\) -
\!\(\*OverscriptBox[\(o1\), \(_\)]\))}](*验证S在圆O1上*)
Simplify[{4, (s - o1) (
\!\(\*OverscriptBox[\(s\), \(_\)]\) -
\!\(\*OverscriptBox[\(o1\), \(_\)]\)), , (x - o1) (
\!\(\*OverscriptBox[\(x\), \(_\)]\) -
\!\(\*OverscriptBox[\(o1\), \(_\)]\)), (o1 - a) (
\!\(\*OverscriptBox[\(o1\), \(_\)]\) -
\!\(\*OverscriptBox[\(a\), \(_\)]\)), , (e - o1) (
\!\(\*OverscriptBox[\(e\), \(_\)]\) -
\!\(\*OverscriptBox[\(o1\), \(_\)]\)), (d - o1) (
\!\(\*OverscriptBox[\(d\), \(_\)]\) -
\!\(\*OverscriptBox[\(o1\), \(_\)]\)), x
\!\(\*OverscriptBox[\(x\), \(_\)]\)}]
Simplify[{5, (s - o1) (
\!\(\*OverscriptBox[\(s\), \(_\)]\) -
\!\(\*OverscriptBox[\(o1\), \(_\)]\)) - (x - o1) (
\!\(\*OverscriptBox[\(x\), \(_\)]\) -
\!\(\*OverscriptBox[\(o1\), \(_\)]\))}]
Simplify[{6, k, k, -((a - o1)/(
\!\(\*OverscriptBox[\(d\), \(_\)]\) -
\!\(\*OverscriptBox[\(o1\), \(_\)]\)))}]
Simplify[{7, s1, s2, , s1 - s2}](*验证S在圆O1上*)



部分运行结果如下:

dlsh 发表于 2021-12-6 20:20:55

谢谢老朋友,找了很久没有发现,的确是那句错了,也可以改成 o1=Simplify, a ]];你的计算结论还说明S是△APQ的垂心,其它结果可能还可以发现新的几何关系,奇怪为什么原来的错误程序P和Q点的表达式却是正确的?是否可能不利用T点来证明?写了一封信给你,你注意查收。

dlsh 发表于 2021-12-6 21:41:58

下面是用向量商的结果

Clear["Global`*"](*v=-1/a^2;*)
b = a^2 v^2;(*这句是根据AD=AE判定O1在角DAE平分线上,由Factor^2-a^2b c]可以推出*)

\!\(\*OverscriptBox["o", "_"]\) = o = 0;
\!\(\*OverscriptBox["c", "_"]\) = c = 1;
\!\(\*OverscriptBox["a", "_"]\) = 1/a; b = a^2 v^2;
\!\(\*OverscriptBox["b", "_"]\) = 1/b;
\!\(\*OverscriptBox["v", "_"]\) = 1/v; h = a + b + c;
\!\(\*OverscriptBox["h", "_"]\) =
\!\(\*OverscriptBox["a", "_"]\) +
\!\(\*OverscriptBox["b", "_"]\) +
\!\(\*OverscriptBox["c", "_"]\); m = (a + h)/2;
\!\(\*OverscriptBox["m", "_"]\) = (
\!\(\*OverscriptBox["a", "_"]\) +
\!\(\*OverscriptBox["h", "_"]\))/2;
o1 = (h - a v)/(1 - v);
\!\(\*OverscriptBox["o1", "_"]\) = (
\!\(\*OverscriptBox["h", "_"]\) -
\!\(\*OverscriptBox["a", "_"]\)
\!\(\*OverscriptBox["v", "_"]\))/(1 -
\!\(\*OverscriptBox["v", "_"]\));(*假设
\!\(\*OverscriptBox["O1H", "\"]\)/
\!\(\*OverscriptBox["O1A", "\"]\)=v*)
k := (a - b)/(
\!\(\*OverscriptBox["a", "_"]\) -
\!\(\*OverscriptBox["b", "_"]\));
\!\(\*OverscriptBox["k", "_"]\) := 1/k;(*复斜率定义*)

\!\(\*OverscriptBox["Jd", "_"]\) := -((a1 - k1
\!\(\*OverscriptBox["a1", "_"]\) - (a2 - k2
\!\(\*OverscriptBox["a2", "_"]\)))/(k1 - k2));
(*复斜率等于k1,过点A1与复斜率等于k2,过点A2的直线交点*)
Jd := -((k2 (a1 - k1
\!\(\*OverscriptBox["a1", "_"]\)) - k1 (a2 - k2
\!\(\*OverscriptBox["a2", "_"]\)))/(k1 - k2));
FourPoint := ((
\!\(\*OverscriptBox["c", "_"]\) d - c
\!\(\*OverscriptBox["d", "_"]\)) (a - b) - (
\!\(\*OverscriptBox["a", "_"]\) b - a
\!\(\*OverscriptBox["b", "_"]\)) (c - d))/((a - b) (
\!\(\*OverscriptBox["c", "_"]\) -
\!\(\*OverscriptBox["d", "_"]\)) - (
\!\(\*OverscriptBox["a", "_"]\) -
\!\(\*OverscriptBox["b", "_"]\)) (c - d));(*过两点A和B、C和D的交点*)

\!\(\*OverscriptBox["FourPoint", "_"]\) := -(((c
\!\(\*OverscriptBox["d", "_"]\) -
\!\(\*OverscriptBox["c", "_"]\) d) (
\!\(\*OverscriptBox["a", "_"]\) -
\!\(\*OverscriptBox["b", "_"]\)) - ( a
\!\(\*OverscriptBox["b", "_"]\) -
\!\(\*OverscriptBox["a", "_"]\) b) (
\!\(\*OverscriptBox["c", "_"]\) -
\!\(\*OverscriptBox["d", "_"]\)))/((a - b) (
\!\(\*OverscriptBox["c", "_"]\) -
\!\(\*OverscriptBox["d", "_"]\)) - (
\!\(\*OverscriptBox["a", "_"]\) -
\!\(\*OverscriptBox["b", "_"]\)) (c - d)));
Duichengdian := (
\!\(\*OverscriptBox["a", "_"]\) b - a
\!\(\*OverscriptBox["b", "_"]\) +
\!\(\*OverscriptBox["p", "_"]\) (a - b))/(
\!\(\*OverscriptBox["a", "_"]\) -
\!\(\*OverscriptBox["b", "_"]\));(*P关于AB的对称点*)

\!\(\*OverscriptBox["Duichengdian", "_"]\) := (a
\!\(\*OverscriptBox["b", "_"]\) -
\!\(\*OverscriptBox["a", "_"]\) b + p (
\!\(\*OverscriptBox["a", "_"]\) -
\!\(\*OverscriptBox["b", "_"]\)))/(a - b);
   (* o1=Jd[ - b c,m,-a t,a];
\!\(\*OverscriptBox["o1", "_"]\)=
\!\(\*OverscriptBox["Jd", "_"]\)[- b c,m,-a t,a];o1=Jd;
\!\(\*OverscriptBox["o1", "_"]\)=
\!\(\*OverscriptBox["Jd", "_"]\);*)
d = a b (
\!\(\*OverscriptBox["a", "_"]\) -
\!\(\*OverscriptBox["o1", "_"]\)) + o1;
\!\(\*OverscriptBox["d", "_"]\) =
\!\(\*OverscriptBox["a", "_"]\)
\!\(\*OverscriptBox["b", "_"]\) (a - o1) +
\!\(\*OverscriptBox["o1", "_"]\); e = a c (
\!\(\*OverscriptBox["a", "_"]\) -
\!\(\*OverscriptBox["o1", "_"]\)) + o1;
\!\(\*OverscriptBox["e", "_"]\) =
\!\(\*OverscriptBox["a", "_"]\)
\!\(\*OverscriptBox["c", "_"]\) (a - o1) +
\!\(\*OverscriptBox["o1", "_"]\);
x = Duichengdian;
\!\(\*OverscriptBox["x", "_"]\) =
\!\(\*OverscriptBox["Duichengdian", "_"]\);
q = -(k/x);
\!\(\*OverscriptBox["q", "_"]\) = 1/q; p = -(k/x);
\!\(\*OverscriptBox["p", "_"]\) = 1/p;
s = FourPoint;
\!\(\*OverscriptBox["s", "_"]\) =
\!\(\*OverscriptBox["FourPoint", "_"]\);
s1 = -k (
\!\(\*OverscriptBox["e", "_"]\) -
\!\(\*OverscriptBox["o1", "_"]\)) + o1; s2 = -k (
\!\(\*OverscriptBox["d", "_"]\) -
\!\(\*OverscriptBox["o1", "_"]\)) + o1;
Simplify[{1, o1,
\!\(\*OverscriptBox["o1", "_"]\), , d,
\!\(\*OverscriptBox[
RowBox[{"d", "\"}], "_"]\), e,
\!\(\*OverscriptBox[
RowBox[{"e", "\"}], "_"]\), , x,
\!\(\*OverscriptBox["x", "_"]\)}]
Simplify[{2, p,
\!\(\*OverscriptBox["p", "_"]\), , q,
\!\(\*OverscriptBox[
RowBox[{"q", "\"}], "_"]\), , s,
\!\(\*OverscriptBox["s", "_"]\)}]
Simplify[{3, k, -((s - o1)/(
\!\(\*OverscriptBox["e", "_"]\) -
\!\(\*OverscriptBox["o1", "_"]\))), , k, k, -((s - o1)/(
\!\(\*OverscriptBox["d", "_"]\) -
\!\(\*OverscriptBox["o1", "_"]\))), -((d - o1)/(
\!\(\*OverscriptBox["s", "_"]\) -
\!\(\*OverscriptBox["o1", "_"]\))), , -((s - o1)/(
\!\(\*OverscriptBox["d", "_"]\) -
\!\(\*OverscriptBox["o1", "_"]\))) + (d - o1)/(
\!\(\*OverscriptBox["s", "_"]\) -
\!\(\*OverscriptBox["o1", "_"]\))}](*验证S在圆O1上*)
Simplify[{4, (s - o1) (
\!\(\*OverscriptBox["s", "_"]\) -
\!\(\*OverscriptBox["o1", "_"]\)), (x - o1) (
\!\(\*OverscriptBox["x", "_"]\) -
\!\(\*OverscriptBox["o1", "_"]\)), (o1 - a) (
\!\(\*OverscriptBox["o1", "_"]\) -
\!\(\*OverscriptBox["a", "_"]\)), , (e - o1) (
\!\(\*OverscriptBox["e", "_"]\) -
\!\(\*OverscriptBox["o1", "_"]\)), (d - o1) (
\!\(\*OverscriptBox["d", "_"]\) -
\!\(\*OverscriptBox["o1", "_"]\)), x
\!\(\*OverscriptBox["x", "_"]\)}]
Simplify[{5, (s - o1) (
\!\(\*OverscriptBox["s", "_"]\) -
\!\(\*OverscriptBox["o1", "_"]\)) - (x - o1) (
\!\(\*OverscriptBox["x", "_"]\) -
\!\(\*OverscriptBox["o1", "_"]\))}]
Simplify[{6, k, k, -((a - o1)/(
\!\(\*OverscriptBox["d", "_"]\) -
\!\(\*OverscriptBox["o1", "_"]\)))}]
Simplify[{7, s1, s2}]
Simplify^2 - a^2 b c]
Factor^2 - a^2 b c]




TSC999 发表于 2021-12-6 21:44:22

收到了您发给我邮箱的邮件。还没有来得及看各个附件的内容。关于向量商、共轭比的说法,我也觉得不如称为复斜率更简单、清晰,容易被人接受。您以前那篇论文,内容太少了,完全能把内容扩充十倍以上,主要是列出用于机器证明的公式,构图的方法。
我对复斜率的理解见下图。

页: [1] 2
查看完整版本: 直线交点在圆上,实在不知道程序错在哪里