総合幾何学

Wolfram言語は解析幾何学に対して広範なサポートを提供するだけではなく,座標独立の自動化された根拠に適した形式で総合幾何シーンの記号的表現もサポートする.
シーンの表現と可視化 
総合幾何シーンはWolfram言語ではGeometricSceneで表現される.シーンには名前付きの点および数量を表すパラメータの他,記号的な2D領域およびそれらのパラメータに関するアサーションで構成される仮定を含む.これらの仮定に付随する幾何学な定理や推測を表すために結果を加えることもできる.そのシーンに現れるすべてのパラメータの座標と値を指定することによって,シーンの特定の例を表すことができる.同じシーンの複数の例は1つのGeometricSceneオブジェクトで表すことができる.
GeometricScene[{p1,p2,},{hyp1,hyp2,}]
記号的点 pi についての仮定 hypi によって定義された二次元の抽象的幾何シーン
GeometricScene[{{p1,p2,},{k1,k2,}},hyps]
仮定が記号的なスカラー値 ki に依存するシーン
GeometricScene[{p1{x1,y1},p2{x2,y2},},hyps]
それぞれの点について目児的な座標を持つ幾何シーンの特定の例
GeometricScene[{{p1{x11,y11},},{p1{x21,y21},},},hyps]
シーンの複数の例の集合
GeometricScene[,,{con1,con2,}]
シーンと,それについての結論 coni
GeometricScene[{scene1,scene2,}]
複数のシーンの例を1つのシーンオブジェクトにまとめる
幾何シーンのラッパー
最も簡単な幾何シーンは,点のリストと仮定のリストだけから構成されるものである.
直径を辺とする内接三角形があるシーン:
RandomInstanceを使ってシーンの特定な例を見付けることによって,幾何シーンを可視化することができる.
RandomInstance[scene]
シーンのランダムな例を求める
RandomInstance[scene,n]
n 個の例を求める
幾何シーンの例を求める関数
シーンのランダムな例を表示する:
次はシーンの例をいくつか求める:
幾何シーンの仮定として,多数の2D領域が使える.幾何シーンの仮定に現れる領域はすべて非縮退であり,そのシーンの例で表示される.
AngleBisector[{p,q,r}]
p q r を二等分する無限直線
Circle[p,r]
p を中心とする半径 r の円
CircleThrough[{p1,p2,}]
pi を通る円
Circumsphere[{p1,p2,p3}]
pi に外接する球
Disk[p,r]
p を中心とする半径 r の塗り潰された円板
HalfLine[{p,q}]
p から始まって点 q を通過する半直線
InfiniteLine[{p,q}]
p と点 q を通過する無限直線
Insphere[{p1,p2,p3}]
三角形 p1 p2 p3の辺に内接する球
Line[{p1,p2,}]
複数の点 pi をこの順で通過する線分
Midpoint[{p,q}]
線分 p q の中点
PerpendicularBisector[{p,q}]
線分 p q の垂直二等分線
Point[p]
p
Polygon[{p1,p2,}]
頂点 pi を持つ多角形
RegionBoundary[reg]
領域 reg の境界
RegionCentroid[reg]
領域 reg の重心
RegionNearest[reg,p]
p に最も近い,領域 reg の点
Triangle[{p,q,r}]
頂点 pqr の三角形
TriangleCenter[{p,q,r},spec]
spec によって指定された三角形 p q r の中心
TriangleConstruct[{p,q,r},spec]
spec によって指定された三角形 p q r で定義された,構築された幾何領域
GeometricSceneでサポートされる2D領域
次はもう少し複雑な幾何シーンである:
仮定は,シーンの要素について定義された幾何学量を含む,幾何学的なアサーションや方程式である場合もある.
ArcLength[reg]
領域 reg の弧長
Area[reg]
領域 reg の面積
EuclideanDistance[p,q]
p と点 q の間のユークリッド距離
Perimeter[reg]
領域 reg の周長
PlanarAngle[{p,q,r}]
p q r の測度
PolygonAngle[poly,p]
頂点 p における多角形 poly の頂角
RegionDistance[reg,p]
p から領域 reg までの距離
RegionMeasure[reg]
領域 reg の測度
SignedRegionDistance[reg,p]
p から領域 reg までの符号付きの距離
TriangleMeasurement[{p,q,r},spec]
spec によって指定された三角形 p q r の測度
GeometricSceneでサポートされる幾何学量
preg
p が領域 reg の要素であるというアサーション
x1
領域/幾何学量 xi が等しいというアサーション
GeometricAssertion[objs,prop]
オブジェクト objs が特性 prop を満足するというアサーション
GeometricStep[hyps,label]
複数の仮定からなるステップ
RegionMember[reg,p]
p が領域 reg のメンバーであるというアサーション
GeometricSceneでサポートされるアサーション
ブラーマグプタの定理のシーン描写である:
GeometricSceneもスタイルをサポートする.
Style[objs,opts]
スタイルを指定する
GeometricStylingRules
パターンにマッチする構造すべてにスタイルを付ける
GeometricScene内のスタイル指定
多角形を完全に解体する:
正三角形を構築する:
推測を求める
Wolfram言語は次のようなシーン描写を使って,幾何シーンに対して成り立つ可能性のある推測を求めることができる.
FindGeometricConjectures[scene]
scene に対して成り立つ可能性のある推測を求める
FindGeometricConjectures[{scene1,scene2,}]
scenei の複数の例に対して成り立つ可能性のある推測を求める
FindGeometricConjectures[scenes,patt]
形式 patt の推測を求める
FindGeometricConjectures[scenes,patt,n]
n 個までの推測を求める
幾何シーンの推測を求める関数
タレスの定理を調べる:
パップスの六角形定理を調べる:
Kosnitaの定理を調べる:
FinslerHadwigerの定理を調べる:
幾何学的推論
Wolfram言語はGeometricSolveValues等の関数を使って,幾何学的シーンに対して論理的推論を行うことができる.
GeometricSolveValues[scene,expr]
scene によって定義された記号幾何学量 expr について解く
GeometricSolveValues[scene,{expr1,expr2,}]
scene によって定義された複数の数量 expr1,expr2, について解く
幾何学的シーンの値について解く関数.
以下のシーンの四角形 の面積を求める:
一般的なシーンとそのシーンの特定のインスタンス両方の三角形の面積を求める:
幾何オブジェクトに対する推論はGeometricTestを使って行うことができる.
GeometricTest[obj,prop]
幾何オブジェクト objprop を満足するかどうかを判定する
GeometricTest[{obj1,obj2,},prop]
objiprop を満足するかどうかを判定する
GeometricTest[objs,prop1,prop2,]
objs が各 propi を満足するかどうかを判定する
幾何オブジェクトが与えられた特性を満足するかどうかを判定する関数.
3点が共線かどうかを判断する:
抽象的な3点が共線になる条件を求める:
単一のオブジェクトに対して複数の述語が成り立つ条件を求める: