|
uk702
Post time 2023-4-22 09:31
本帖最后由 uk702 于 2023-4-22 09:44 编辑 复数 + MMA 就简单了。
- Clear[e, f];
- (* 假设 O 为单位正方形的中心且位于原点,正方形的边长为 2,小写字母对应各个点的复数,复数 v' 表示 v 的共轭复数 *)
- o'=o=0; b=-1-I;b'=-1+I;c=1-I;c'=1+I;d=1+I;d'=1-I;a=-1+I;a'=-1-I;
- r=Sqrt[2]; p=r(Cos[u] + Sin[u] I); p'=r(Cos[u] - Sin[u] I);
- (* 过 A、B 两点的复斜率定义 *)
- k[a_, b_] := (a - b)/(a' - b');
- k'[a_, b_] := 1/k[a, b];
- (* 复斜率 k1 且过点 A1 与复斜率 k2 且过点 A2 的直线交点 *)
- Jd'[k1_, a1_, k2_, a2_] := -((a1 - k1 a1' - (a2 - k2 a2'))/(k1 - k2));
- Jd[k1_, a1_, k2_, a2_] := -((k2 (a1 - k1 a1') - k1 (a2 - k2 a2'))/(k1 - k2));
- sol = Solve[{k[p, e] == k[d, b], k[e, a] == k[b, a]}, {e, e'}];
- {e, e'} = {e, e'} /. Last[sol];
- sol = Solve[{k[p, f] == k[a, c], k[d, f] == k[d, c]}, {f, f'}];
- {f, f'} = {f, f'} /. Last[sol];
- q = Jd[k[a,d], a, k[e, f], e]; q' = Jd'[k[a,d], a, k[e, f], e];
- Simplify[k[o, p] / k[p, q]]
Copy the Code
输出 -1,表示 OP 与 PQ 垂直,也就是 PQ 与圆相切。 |
|