ArcLength
詳細とオプション
- ArcLengthは,長さあるいは曲線長としても知られている.
- 一次元の領域を,1以上の任意の次元に埋め込むことができる.
- デカルト座標における曲線
のArcLengthは
である. - 一般的な座標チャートでは,パラメトリック曲線
のArcLengthは
で与えられる.ただし,
は測定基準である. - ArcLength[x,{t,tmin,tmax}]では,x がスカラーの場合は,ArcLengthはパラメトリック曲線{t,x}の長さを返す.
- ArcLengthの第3引数の座標チャートは,CoordinateChartDataの第1引数と同じように,3つの成分{coordsys,metric,dim}で指定することができる.dim を省略した短縮形を使うこともできる.
- 次は,使用可能なオプションである.
-
AccuracyGoal Infinity 目標とする絶対確度の桁数 Assumptions $Assumptions パラメータについての仮定 GenerateConditions Automatic パラメータについての条件を生成するかどうか PerformanceGoal $PerformanceGoal パフォーマンスのどの局面について最適化するか PrecisionGoal Automatic 目標とする精度の桁数 WorkingPrecision Automatic 内部計算に使用する精度 - 積分の記号極限は,実数であり順序付けられているものとみなされる.記号座標チャートのパラメータは,CoordinateChartDataの"ParameterRangeAssumptions"特性によって与えられる範囲内であるとみなされる,
- ArcLengthはGeometricSceneの記号領域と一緒に使うことができる.
例題
すべて開く すべて閉じる例 (3)
ArcLength[Line[{{0, 0}, {1, 1}, {2, 0}}]]ArcLength[Circle[{x, y}, r]]ArcLength[{Sin[θ], Cos[θ]}, {θ, 0, 2Pi}]ArcLength[{1, t, t}, {t, 0, 2Pi}, "Cylindrical"]スコープ (16)
特別な領域 (3)
Line:
ℛ = Line[{{0, 0}, {1, 2}, {1, 0}, {2, 2}}];
ArcLength[ℛ]Region[ℛ]ArcLength[Line[{{0}, {1}}]]ArcLength[Line[{{0, 0, 0}, {1, 1, 1}, {0, 0, 1}}]]1DのSimplexのみが有意な弧長を有する:
ℛ = Simplex[{{0, 0}, {1, 1}}];
ArcLength[ℛ]Region[ℛ]ArcLength[Simplex[{{0}, {1}}]]ArcLength[Simplex[{{0, 0, 0}, {1, 1, 1}}]]ArcLength[Circle[{Subscript[c, x], Subscript[c, y]}, r]]Region[Circle[{0, 0}, 1]]ArcLength[Circle[{Subscript[c, x], Subscript[c, y]}, {Subscript[r, x], Subscript[r, y]}]]Region[Circle[{0, 0}, {3, 2}]]数式定義領域 (2)
ImplicitRegionとして表された円の弧長:
ArcLength[ImplicitRegion[x^2 + y^2 == 1, {x, y}]]ArcLength[ImplicitRegion[x^2 + 2y^2 == 1, {x, y}]]ParametricRegionとして表された円の弧長:
ArcLength[ParametricRegion[{Cos[θ], Sin[θ]}, {{θ, 0, 2π}}]]ArcLength[ParametricRegion[{(1 - t^2/1 + t^2), (2t/1 + t^2)}, {t}]]メッシュ領域 (2)
MeshRegionの弧長:
MeshRegion[{{0, 0}, {1, 0}, {2, 1 / 2}, {2, -1 / 2}}, Line[{1, 2, 3, 4, 2}]]ArcLength[%]MeshRegion[{{0, 0, 0}, {0, 1, 1}, {1, 0, 0}, {1, 1, 1}}, Line[{1, 2, 3, 4, 1}]]ArcLength[%]1DでのBoundaryMeshRegionの弧長:
BoundaryMeshRegion[{{0}, {1}}, Point[{{1}, {2}}]]ArcLength[%]派生領域 (4)
ℛ = RegionIntersection[Circle[{1, 0}, 1], Disk[]];Show[Graphics[{LightBlue, EdgeForm[Gray], Disk[], Gray, Circle[{1, 0}, 1]}], HighlightMesh[DiscretizeRegion[ℛ], 1]]ArcLength[ℛ]Subscript[ℛ, 1] = Circle[];
Subscript[ℛ, 2] = Triangle[{{-3 / 2, 0}, {3 / 2, 0}, {0, 11 / 10}}];
Subscript[ℛ, 3] = RegionIntersection[Subscript[ℛ, 1], Subscript[ℛ, 2]];Show[Graphics[{LightBlue, EdgeForm[Gray], Subscript[ℛ, 2], Gray, Subscript[ℛ, 1]}], HighlightMesh[DiscretizeRegion[Subscript[ℛ, 3]], 1]]ArcLength[Subscript[ℛ, 3]]ℛ = TransformedRegion[Line[{{0, 0}, {1, 0}, {1, 1}, {0, 0}}], ShearingTransform[30Degree, {1, 0}, {0, 1}]];DiscretizeRegion[ℛ, {{0, 2}, {-1, 1}}]ArcLength[ℛ]RegionBoundaryの大きさ:
ℛ = RegionBoundary[Disk[{1, 2}, 3]]Region[ℛ]ArcLength[ℛ]パラメトリック式 (5)
ArcLength[{Exp[-t / 10], t}, {t, 0, ∞}, "Polar"]ParametricPlot[CoordinateTransform[ "Polar" -> "Cartesian", {Exp[-t / 10], t}]//Evaluate, {t, 0, 50}, PlotRange -> All]ArcLength[x ^ 2, {x, a, b}]ArcLength[{1, t, 2t}, {t, 0, Pi}, {{"OblateSpheroidal", {2}}, "Euclidean"}]ArcLength[{t ^ 2, Pi / 2, Pi / 4, t}, {t, 0, 2Pi}, "Hyperspherical"]ArcLength[{t, a t}, {t, 0, ∞}, {"Stereographic", "Sphere"}, Assumptions -> a∈Reals]オプション (7)
AccuracyGoal (1)
Region[ℛ = ImplicitRegion[x ^ 4 + y ^ 4 == 1, {x, y}]]s1 = ArcLength[ℛ]The AccuracyGoalオプションを使ってデフォルトの絶対許容範囲を変えることができる.以下では,確度の目標基準を超えると弧長の計算が停止する:
s2 = ArcLength[ℛ, AccuracyGoal -> 1]Assumptions (1)
GenerateConditions (1)
PrecisionGoal (1)
目標とする精度の有効桁数はPrecisionGoalで指定できる:
Table[ArcLength[ImplicitRegion[x ^ 4 + y ^ 4 == 1, {x, y}], PrecisionGoal -> prec], {prec, 1, 5}]ListPlot[%, PlotRange -> All]PerformanceGoal (1)
Region[ℛ = ImplicitRegion[x ^ 4 + y ^ 4 == 1, {x, y}]]PerformanceGoal"Speed"を使って素早く弧長を計算しようとする:
(s1 = ArcLength[ℛ, PerformanceGoal -> "Speed"])//TimingPerformanceGoal"Performance"を使って正しい精度の桁数ができるだけ多くなるように試みる:
(s2 = ArcLength[ℛ, PerformanceGoal -> "Quality"])//Timingsexact = -(3^1 / 4 MeijerG[{{(1/3), (2/3), (5/6), 1, (4/3)}, {}}, {{(1/12), (5/12), (7/12), (3/4), (13/12)}, {}}, 1]/16 Sqrt[2] π^7 / 2 Gamma[(5/4)]);s1 - sexacts2 - sexactWorkingPrecision (2)
機械演算を使ってArcLengthを計算する:
ArcLength[ImplicitRegion[x ^ 6 + y ^ 6 - x y == 1, {x, y}], WorkingPrecision -> MachinePrecision]ArcLength[ImplicitRegion[x ^ 6 + y ^ 6 - x y == 1, {x, y}]]30桁精度でArcLengthを求める:
ArcLength[{a Cos[t], a Sin[t], a Sin[t]}, {t, 0, 2Pi}, WorkingPrecision -> 30]アプリケーション (8)
curve = ParametricRegion[{x, Sin[x]}, {{x, 0, 1}}];ArcLength[curve]ArcLength[Sin[x], {x, 0, 1}]knot = KnotData["SolomonSeal", "SpaceCurve"]ArcLength[knot[t], {t, 0, 2Pi}]{a, e} = {"SemimajorAxis", "Eccentricity"} /. Entity["Planet", "Jupiter"]["OrbitRules"]//NArcLength[{(a(1 - e^2)/1 + e Cos[θ]), θ}, {θ, 0, 2Pi}, "Polar"]ArcLength[{ArcCosh[1 / e], ν}, {ν, 0, 2Pi}, {{"Elliptic", a e}}]graphics = KnotData["SolomonSeal", "KnotDiagram"]ArcLength /@ Cases[graphics, _Line, -1]Total[%]横断する距離に従って,リサージュ(Lissajous)曲線に彩色する:
c[t_] = {Cos[3t], Sin[5t]};
total = ArcLength[c[t], {t, 0., 2Pi}];
ParametricPlot[c[t], {t, 0, 2Pi}, PlotStyle -> Thick, ColorFunctionScaling -> False, ImageSize -> 300, ColorFunction -> (Hue[0.6ArcLength[c[t], {t, 0, #3}] / total]&), PlotLegends -> BarLegend[{Hue[0.6# / total]&, {0, total}}]]横断距離の比によって,球面上のヴィヴィアーニ(Viviani)曲線に彩色する:
viv[t_] := {-(Sin[t]/2), -Sin[(t/2)], (1/2) (1 + Cos[t])};
fraclen[a_] = ArcLength[viv[t], {t, 0, 4Pi a}] / ArcLength[viv[t], {t, 0, 4Pi}];
Show[ParametricPlot3D[viv[t], {t, 0, 4Pi}, PlotStyle -> Thick, ColorFunction -> (Hue[0.6fraclen[#4]]&), PlotLegends -> BarLegend[{Hue[0.6#]&, {0, 1}}, LegendMarkerSize -> Small]], Graphics3D[{Gray, Opacity[.5], Sphere[]}], PlotRange -> All]r = Circle[{0, 0}, 1];Integrate[x^2y^2, {x, y}∈r] / ArcLength[r]Polygonの外周の長さを計算する:
p = Polygon[Table[If[EvenQ[ii], 3, 2]{Cos[2π ii / 16], Sin[2π ii / 16]}, {ii, 0, 15}]];
Region[p]ArcLength[RegionBoundary[N@p]]特性と関係 (6)
ArcLengthは非負の数量である:
ArcLength[{Sin[θ], Cos[θ]}, {θ, 0, 2π}]ArcLength[{Sin[θ], Cos[θ]}, {θ, 0, -2π}]ArcLength[r]は,任意の一次元領域については,RegionMeasure[r]と等しい:
{ArcLength[Line[{{0, 0}, {1, 1}}]], RegionMeasure[Line[{{0, 0}, {1, 1}}]]}{ArcLength[Circle[]], RegionMeasure[Circle[]]}パラメトリック形式についてのArcLengthは,積分として定義される:
ArcLength[{Sin[θ], 2Cos[θ]}, {θ, 0, 2π}]Integrate[Sqrt[Sin'[θ]^2 + (2 Cos'[θ])^2], {θ, 0, 2π}]ArcLength[x,t,c]はRegionMeasure[x,{t},c]に等しい:
ArcLength[{t ^ 2, Pi / 2, Pi / 4, t}, {t, 0, 2Pi}, "Hyperspherical"]RegionMeasure[{t ^ 2, Pi / 2, Pi / 4, t}, {{t, 0, 2Pi}}, "Hyperspherical"]% == %%1D領域については,ArcLengthはその領域上での1の積分として定義される:
ℛ = Circle[{1, 2}, {3, 4}];{ArcLength[ℛ], Integrate[1, x∈ℛ]}2D領域の外周は,そのRegionBoundaryのArcLengthである:
ℛ = RegionBoundary[Disk[{0, 0}, 1]];ArcLength[ℛ]考えられる問題 (2)
パラメトリック形式,すなわちArcLengthは,場合によっては,複数の被覆の長さを計算することができる:
ArcLength[{Cos[θ], Sin[θ]}, {θ, 0, 4π}]ArcLength[ParametricRegion[{Cos[θ], Sin[θ]}, {{θ, 0, 4π}}]]ArcLength[Circle[{0, 0}, 1]]一次元以外の次元の領域の長さはUndefinedである:
{ArcLength[Point[{0, 0}]], ArcLength[Disk[]]}{RegionDimension[Point[{0, 0}]], RegionDimension[Disk[]]}テキスト
Wolfram Research (2014), ArcLength, Wolfram言語関数, https://reference.wolfram.com/language/ref/ArcLength.html (2019年に更新).
CMS
Wolfram Language. 2014. "ArcLength." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2019. https://reference.wolfram.com/language/ref/ArcLength.html.
APA
Wolfram Language. (2014). ArcLength. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/ArcLength.html
BibTeX
@misc{reference.wolfram_2026_arclength, author="Wolfram Research", title="{ArcLength}", year="2019", howpublished="\url{https://reference.wolfram.com/language/ref/ArcLength.html}", note=[Accessed: 16-September-2026]}
BibLaTeX
@online{reference.wolfram_2026_arclength, organization={Wolfram Research}, title={ArcLength}, year={2019}, url={https://reference.wolfram.com/language/ref/ArcLength.html}, note=[Accessed: 16-September-2026]}