Grad
詳細
- Gradは,累乗された共変微分としても知られている.
- Grad[f,x]は ∇xf で入力することができる.記号 ∇ は
del
または\[Del]とタイプする.変数 x のリストは下付き文字として入力する. - 空のテンプレート ∇ は
grad
と入力する.
を使ってカーソルを下付き文字から移動することができる. - 指定された変数に明示的には依存しない数量はすべて,偏導関数が0であると考えられる.
- f が次元{n1,…,nk}の配列の場合,Grad[f,{x1,…,xm}]は次元{n1,…,nk,m}の配列を与える.
- f がスカラーの場合,Grad[f,{x1,x2,…,xn},chart]は chart に関連する正規直交基底でベクトルを返す.
- Grad[f,{x1,…,xn},chart]では,f が配列の場合,その次元は{n,…,n}でなければならない.f の成分は chart に関連する正規直交基底にあると解釈される.
- Grad[f,{x1,…,xn},chart]は,ユークリッド空間における座標グラフについては f をデカルト座標に変換して通常の勾配を計算し,chart に変換し直すことで計算できる. »
- Gradの主要な特性に,chart が正規直交基底で表現された測定値 g で定義付けられるなら,Grad[g,{x1,…,xn},chart]はゼロを与えるというものがある. »
- Gradの第3引数にある座標チャートは,CoordinateChartDataの第1引数におけるのと同じように,トリプル{coordsys,metric,dim}で指定することができる.dim を省略した短縮形を使うこともできる.
- Grad[f,VectorSymbol[…]]は,ベクトル記号についての勾配を計算する. »
- GradはSparseArrayオブジェクトおよび構造配列オブジェクトに使うことができる.
例題
すべて開く すべて閉じる例 (4)
Grad[f[x, y, z], {x, y, z}]Grad[f[r, θ, z], {r, θ, z}, "Cylindrical"]Grad[Sin[x ^ 2 + y ^ 2], {x, y}]
del
を使って∇ を,
を使って下付き文字にした変数のリストを入力する:
Subscript[∇, {x, y}]f[x, y]
grad
を使ってテンプレート ∇ を入力し,
を使って入力間を行き来する:
Subscript[∇, {x, y}]f[x, y]スコープ (8)
Grad[{f[x, y, z], g[x, y, z], h[x, y, z]}, {x, y, z}]grad = Grad[x * y * z, {x, y, z}]Grad[grad, {x, y, z}]曲線座標系では,一定の成分を持つベクトルの勾配が非零になることがある:
Grad[{1, 1, 1}, {r, θ, ϕ}, "Spherical"]Grad[f[ϕ, ψ], {ϕ, ψ}, {{"Confocal", {a, b}}, "Euclidean"}]//SimplifyGradは曲がった空間に使うことができる:
Grad[f[u, v, w], {u, v, w}, {"Stereographic", {"Sphere", r}}]x = VectorSymbol["x", n, Reals];Grad[Sqrt[x.x], x]
のそれ自身についての勾配はSymbolicIdentityArray[{n}]である:
Grad[x, x]ベクトルのベキ乗則は対角が通常のベキ乗則に従う行列を与える:
Grad[x ^ k, x]//ArraySimplifyBlock[{n = 3}, ComponentExpand[%]]//MatrixFormGrad[Inactive[Table][Subscript[x, i], {i, n}], Inactive[Table][Subscript[x, i], {i, n}]]Activate[% /. n -> 3]//MatrixFormGrad[Sqrt[Sum[(Subscript[x, i])^2, {i, n}]], Inactive[Table][Subscript[x, j], {j, n}]]Activate[% /. n -> 3]アプリケーション (4)
-Grad[k q / r, {r, θ, ϕ}, "Spherical"]f[x_, y_] := x ^ 4 + y ^ 4 - 20x ^ 2 - 10x y - 25grad = Grad[f[x, y], {x, y}]sol = NSolve[grad == {0, 0}, {x, y}, Reals]
とヘッセ(Hesse)行列式の符号を3つの臨界点で計算する:
hessian = Grad[grad, {x, y}]Sign[hessian[[1, 1]] /. sol]Sign[Det[hessian] /. sol]2番目の導関数検定から,最初の2点(プロット中の赤と青の点)は最小値で3番目の点(プロット中の緑の点)は鞍点である:
Show[Plot3D[f[x, y], {x, -5, 5}, {y, -5, 5}, PlotRange -> 200, ClippingStyle -> None, Mesh -> {5, 0}, PlotStyle -> Opacity[.65], BoxRatios -> {1, 1, 3 / 4}, ViewPoint -> {1.2, -2.5, 0}], Graphics3D[{PointSize[.04], Riffle[{StandardRed, StandardBlue, StandardGreen}, Point[{x, y, f[x, y]}] /. sol]}]]f[x_, y_, z_] := 25 - x^2 + 2 x^4 - x y - y^2 + 4 x^2 y^2 + 2 y^4 - 2 x z - 2 y z - z^2 + 4 x^2 z^2 + 4 y^2 z^2 + 2 z^4grad = Grad[f[x, y, z], {x, y, z}]sol = NSolve[grad == {0, 0, 0}, {x, y, z}, Reals]hessian = Grad[grad, {x, y, z}]臨界点の固有値がすべて同符号のとき,その点は極小値である.正の値と負の値がある場合は鞍点である:
Sign[Eigenvalues[hessian] /. sol]最初の2つの点はすべて正の固有値を持つため,これらは極小値である.最小値はこれらの2つの点で
を評価することで求められる:
f[x, y, z] /. Take[sol, 2]この関数については,任意の3臨界点は線形従属であり,すべてが単一の平面上にある:
Minors[{x, y, z} /. sol, 3]//Quiet//Chopnormal = Apply[Cross, {x, y, z} /. sol[[{1, 3}]]]極小値を黄色,極値ではない臨界点をシアンにして,この関数を可視化する:
Show[SliceContourPlot3D[f[x, y, z], {{x, y, z}.normal == 0}, {x, -1, 1}, {y, -1, 1}, {z, -1, 1}, Contours -> 15, ViewVertical -> {-0.2, 0.7, 0.6}, ViewPoint -> {-1.2, -1.2, 2.9}], Graphics3D[{Riffle[{StandardYellow, StandardYellow, StandardCyan, StandardCyan, StandardCyan}, Sphere[{x, y, z}, 0.05] /. sol]}]]f[x_, y_, z_] := {Sin[x z], Sinh[y] + Cos[ z]}
grads = NestList[Grad[#, {x, y, z}]&, f[x, y, z], 6] /. {x -> 0, y -> 0, z -> 0};MatrixForm /@ Take[grads, 4]f のマクローリン(Maclaurin)級数の3次多項式を手計算で求める:
𝕏 = {x, y, z};
(1/0!)grads[[1]] + (1/1!)grads[[2]].𝕏 + (1/2!)grads[[3]].𝕏.𝕏 + (1/3!)grads[[4]].𝕏.𝕏.𝕏Sum[(1/(k - 1)!)Dot[grads[[k]], ##]&@@Table[𝕏, {k - 1}] , {k, 7}]特性と関係 (6)
Grad[f,vars]は事実上D[f,{vars}]と等価である:
Grad[x * y * Sin[z], {x, y, z}]D[x * y * Sin[z], {{x, y, z}}]Grad[{x * y, y * z, z * x}, {x, y, z}]D[{x * y, y * z, z * x}, {{x, y, z}}]Gradは新たな最内部次元に対応する新たなテンソルスロットを最後に加える:
postgrad = Grad[{f1[x, y], f2[x, y]}, {x, y}]冒頭に新たなスロットを加える場合は,Transposeを使って最初と最後のスロットを入れ替える:
pregrad = Transpose[{{f1^(1, 0)[x, y], f1^(0, 1)[x, y]}, {f2^(1, 0)[x, y], f2^(0, 1)[x, y]}}]postgrad.{v1, v2}{v1, v2}. pregradユークリッド座標グラフ c でGradを計算する.計算のために一度デカルト座標に変換し,計算後に再びユークリッド座標に変換し直す:
TransformedField["Polar" -> "Cartesian", f[r, θ], {r, θ} -> {x, y}]Grad[%, {x, y}]FullSimplify[TransformedField["Cartesian" -> "Polar", %, {x, y} -> {r, θ}], r > 0 && -π < θ < π]結果は直接Grad[f,{x1,…,xn},c]を計算した場合と同じである:
Grad[f[r, θ], {r, θ}, "Polar"]直交座標においてのみ,配列の勾配は配列の成分の勾配に等しい:
Grad[{f[x, y], g[x, y]}, {x, y}, "Cartesian"] == Map[Grad[#, {x, y}, "Cartesian"]&, {f[x, y], g[x, y]}]Grad[{f[x, y], g[x, y]}, {x, y}, "Polar"] == Map[Grad[#, {x, y}, "Polar"]&, {f[x, y], g[x, y]}]//Simplifychart が正規直交座標で表現されている測定値 g で定義されるなら,Grad[g,{x1,…,xn},chart]はゼロである:
Grad[IdentityMatrix[3], {r, θ, φ}, "Spherical"]GradはStructuredArrayオブジェクトの構造を保つ:
sa = SymmetrizedArray[{{1, 1, 1} -> x ^ 2, {1, 1, 2} -> y ^ 2, {2, 1, 2} -> x y}, {2, 2, 2}, Symmetric]grad = Grad[sa, {x, y}]インタラクティブな例題 (2)
関数のレベル等高線の法線ベクトルは関数の正規化された勾配に等しい:
f[x_, y_] := (x ^ 2/4) - 2x ^ 2y - 3x y + y ^ 4 / 16grad[x_, y_] := Grad[f[x, y], {x, y}]normal[x_, y_] = Simplify[(grad[x, y]/Sqrt[grad[x, y].grad[x, y]])]Manipulate[ContourPlot[f[x, y], {x, -2, 2}, {y, -2, 2}, Epilog -> Arrow[{pt, pt + normal@@pt}], PerformanceGoal -> "Quality", Contours -> 20, PlotRange -> {{-2, 2}, {-2, 2}, {-30, 30}}, ImageSize -> Medium], {{pt, {.01, -0.1}}, Locator}, FrameLabel -> "Click a point to see its normal", SaveDefinitions -> True]systems = {{"Cartesian", "Polar", "Bipolar", "PlanarParabolic"}, {"Cartesian", "Cylindrical", "Spherical", "CircularParabolic", "BipolarCylindrical"}, {"Cartesian", "Hyperspherical"}, {"Cartesian", "Hyperspherical"}};Manipulate[
If[Not@MemberQ[systems[[dimension - 1]], system], system = "Cartesian"];
DynamicModule[{varNames, vars},
varNames = CoordinateChartData[{system, dimension}, "StandardCoordinateNames"];
vars = ToExpression /@ varNames;
Inactive[Grad][f@@vars, vars] == Simplify@Grad[f@@vars, vars, system]],
{dimension, Range[2, 5]},
{{system, "Cartesian"}, systems[[dimension - 1]], ControlType -> SetterBar}, SaveDefinitions -> True]関連項目
Div Curl Laplacian CoordinateChartData D DSolve NDSolve NDEigensystem NDEigenvalues NetPortGradient
文字: \[Del]
Function Repository: DirectionalD
テクニカルノート
-
▪
- ベクトル解析
テキスト
Wolfram Research (2012), Grad, Wolfram言語関数, https://reference.wolfram.com/language/ref/Grad.html (2024年に更新).
CMS
Wolfram Language. 2012. "Grad." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2024. https://reference.wolfram.com/language/ref/Grad.html.
APA
Wolfram Language. (2012). Grad. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/Grad.html
BibTeX
@misc{reference.wolfram_2026_grad, author="Wolfram Research", title="{Grad}", year="2024", howpublished="\url{https://reference.wolfram.com/language/ref/Grad.html}", note=[Accessed: 14-November-2026]}
BibLaTeX
@online{reference.wolfram_2026_grad, organization={Wolfram Research}, title={Grad}, year={2024}, url={https://reference.wolfram.com/language/ref/Grad.html}, note=[Accessed: 14-November-2026]}