首页 > 解决方案 > 托普利茨猜想的一般解

问题描述

Toeplitz 猜想: 平面上的每条连续简单闭合曲线都包含四个点,它们是正方形的顶点。

我试图找到(几乎)任何曲线f(x,y)=0的一般解决方案。

例如 :

(-1 + x^2 + y^2)^3 - x^2*y^3 = 0

ContourPlot[(-1 + x^2 + y^2)^3 == x^2*y^3, {x, -1.4, 1.4}, {y, -1.3, 1.5},
Frame -> False, PlotPoints -> 200]

在此处输入图像描述

求正方形的顶点一般有三个条件:

顶点坐标为(p1,k1),(p2,k2),(p3,k3),(p4,k4)

g[x_, y_] := (x^2 + y^2 - 1)^3 - x^2 y^3

1..顶点坐标满足心脏方程g(x,y)=0

eq1 = g[p1, k1] == 0;
eq2 = g[p2, k2] == 0;
eq3 = g[p3, k3] == 0;
eq4 = g[p4, k4] == 0;

2..所有边的长度相等。

eq5 = 
  EuclideanDistance[{p1, k1}, {p2, k2}] == 
  EuclideanDistance[{p2, k2}, {p3, k3}] == 
  EuclideanDistance[{p3, k3}, {p4, k4}] == 
  EuclideanDistance[{p1, k1}, {p4, k4}];

3..每个内角都是直角

angle1 = VectorAngle[{p4 - p1, k4 - k1}, {p2 - p1, k2 - k1}] == Pi/2;
angle2 = VectorAngle[{p1 - p2, k1 - k2}, {p3 - p2, k3 - k2}] == Pi/2;
angle3 = VectorAngle[{p4 - p3, k4 - k3}, {p2 - p3, k2 - k3}] == Pi/2;

我有 8 个方程8 个变量,我想使用Mathematica找到数值解

我试过了 :

NSolve[eq1 && eq2 && eq3 && eq4 && eq5 && angle1 && angle2 && angle3, 
{p1, p2, p3, p4, k1, k2, k3, k4}]

或者

FindRoot[{eq1 && eq2 && eq3 && eq4 && eq5 && angle1 && angle2 && angle3}, 
{{p1, 1}, {k1, 1}, {p2, 1}, {k2, 1}, {p3, 1}, {k3,1}, {p4, 1}, {k4, 1}}]

但是没有答案...

标签: wolfram-mathematicacomputational-geometry

解决方案


一旦你选择了两个点,其他两个点的位置就会随之而来。

如果您通过参数方程知道曲线,则从参数的两个值获得两个点。因此,您有一个包含两个未知数的两个方程组(表示点在曲线上)。

如果你没有参数方程,那么它就是四个未知数中的四个方程。


推荐阅读