DiscontinuousInterpolatingFunction[]
補間で値を求める近似不連続関数を表す.
DiscontinuousInterpolatingFunction
DiscontinuousInterpolatingFunction[]
補間で値を求める近似不連続関数を表す.
詳細とオプション
- DiscontinuousInterpolatingFunctionは不連続なデータを補間するために使われる.
- DiscontinuousInterpolatingFunctionはFunctionと同じように動作する.
- DiscontinuousInterpolatingFunction[…][x]は,特定の引数 x で近似不連続関数の値を求める.
- 実数の引数を3個まで取るDiscontinuousInterpolatingFunctionオブジェクトを構築してもよい.
- 範囲外の引数が与えられると,警告メッセージが発せられてから,外挿された値が返される.
- DiscontinuousInterpolatingFunctionオブジェクトの導関数をD,Derivative,Grad等の関数を使って取ることができる.
- EvaluateOnElementMeshは,結果をDiscontinuousInterpolatingFunctionオブジェクトについて返す.
- DiscontinuousInterpolatingFunctionは,ElementMeshに基づくInterpolatingFunctionオブジェクトをDiscontinuousInterpolatingFunctionオブジェクトに変換できる.
- DiscontinuousInterpolatingFunction[…][prop]は,DiscontinuousInterpolatingFunctionオブジェクトの特性 prop を返す.以下の特性を与えることができる.
-
"ElementMesh" 空間メッシュを返す "InterpolatingFunctions" 補間に使われる補間関数を返す "MarkerPriority" マーカーの優先度を返す "ValuesOnGrid" それぞれのメッシュ座標における関数値を返す
例題
すべて開く すべて閉じる例 (1)
<<NDSolve`FEM`要素マーカーが10と20であるマルチマテリアル要素メッシュを生成する:
bmesh = ToBoundaryMesh["Coordinates" -> {{0, 0}, {1, 0}, {1, 1 / 2}, {1, 1}, {0, 1}, {0, 1 / 2}}, "BoundaryElements" -> {LineElement[{{1, 2}, {2, 3}, {3, 4}, {4, 5}, {5, 6}, {6, 1}, {3, 6}}]}];
mesh = ToElementMesh[bmesh, MaxCellMeasure -> 1, "RegionMarker" -> {{{1 / 2, 1 / 3}, 10}, {{1 / 2, 2 / 3}, 20}}];メッシュとマテリアルの領域を薄い緑色と薄い赤色で可視化する:
Show[mesh["Wireframe"["MeshElementStyle" -> {FaceForm[LightGreen], FaceForm[LightRed]}]],
mesh["Wireframe"["MeshElementMarkerStyle" -> Blue]]]disif = EvaluateOnElementMesh[{x, y}, Piecewise[{{y, ElementMarker == 10}}, 2 + 2y], mesh]DiscontinuousInterpolatingFunctionをプロットする:
Plot3D[disif[x, y], {x, y}∈mesh]DiscontinuousInterpolatingFunctionの導関数を計算する:
dY = D[disif[x, y], y]DiscontinuousInterpolatingFunctionの導関数をプロットする:
Plot3D[dY, {x, y}∈mesh]インターフェースにおける値は,メッシュマーカーの優先度による:
disif["MarkerPriority"]disif[1 / 2, 1 / 2]インターフェースにおいて,マーカー10に関連付けられた値がマーカー20に関連付けられた値に優先する.インターフェースにおける優先権は,マーカーの優先度を変えることによって変更できる.
disif2 = EvaluateOnElementMesh[{x, y}, Piecewise[{{y, ElementMarker == 10}}, 2 + 2y], mesh, "MarkerPriority" -> {20, 10}]disif2["MarkerPriority"]disif2[1 / 2, 1 / 2]スコープ (4)
"ElementMesh" (1)
ElementMeshを抽出する:
disif["ElementMesh"]"InterpolatingFunctions" (1)
部分領域からInterpolatingFunctionを抽出する:
disif["InterpolatingFunctions"]"MarkerPriority" (1)
テクニカルノート
テキスト
Wolfram Research (2024), DiscontinuousInterpolatingFunction, Wolfram言語関数, https://reference.wolfram.com/language/FEMDocumentation/ref/DiscontinuousInterpolatingFunction.html.
CMS
Wolfram Language. 2024. "DiscontinuousInterpolatingFunction." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/FEMDocumentation/ref/DiscontinuousInterpolatingFunction.html.
APA
Wolfram Language. (2024). DiscontinuousInterpolatingFunction. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/FEMDocumentation/ref/DiscontinuousInterpolatingFunction.html
BibTeX
@misc{reference.wolfram_2026_discontinuousinterpolatingfunction, author="Wolfram Research", title="{DiscontinuousInterpolatingFunction}", year="2024", howpublished="\url{https://reference.wolfram.com/language/FEMDocumentation/ref/DiscontinuousInterpolatingFunction.html}", note=[Accessed: 15-August-2026]}
BibLaTeX
@online{reference.wolfram_2026_discontinuousinterpolatingfunction, organization={Wolfram Research}, title={DiscontinuousInterpolatingFunction}, year={2024}, url={https://reference.wolfram.com/language/FEMDocumentation/ref/DiscontinuousInterpolatingFunction.html}, note=[Accessed: 15-August-2026]}