Main Content

divergence

シンボリックなベクトル場の発散

説明

d = divergence(V,X) は、直交座標のベクトル X について、シンボリックなベクトル場 V発散を返します。ベクトル VX は、同じ長さでなければなりません。

d = divergence(V) は、ベクトル場 V のシンボリック変数から作成された既定のベクトルについて、V の発散を返します。

すべて折りたたむ

ベクトル X=(x,y,z) に関して、ベクトル場の発散 V(x,y,z)=(x,2y2,3z3) を計算します。

syms x y z
V = [x 2*y^2 3*z^3];
X = [x y z];
div = divergence(V,X)
div = 9z2+4y+1

ベクトル場の回転の発散は 0 になることを示します。

divCurl = divergence(curl(V,X),X)
divCurl = 0

スカラー場 f(x,y,z)=x2+y2+z2 の勾配の発散を求めます。結果は、スカラー場のラプラシアンになります。

syms x y z
f = x^2 + y^2 + z^2;
divGrad = divergence(gradient(f,X),X)
divGrad = 6

微分形式のガウスの法則は、電界の発散が電荷密度に比例することを記述しています。

E(r)=ρ(r)ϵ0

電界 E=x2iˆ+y2jˆ に対する電荷密度を求めます。

syms x y ep0
E = [x^2 y^2];
rho = divergence(E,[x y])*ep0
rho = ep02x+2y

ep0 = 1 として、-2<x<2 および -2<y<2 における電界と電荷密度を可視化します。meshgrid を使用して、xy の値におけるグリッドを作成します。subs を使用してグリッド値を代入することによって、電界と電荷密度の値を求めます。subs への入力として cell 配列を使用して、グリッド値 xPlot および yPlot を同時に、電荷密度 rho に代入します。

rho = subs(rho,ep0,1);
v = -2:0.1:2;
[xPlot,yPlot] = meshgrid(v);
Ex = subs(E(1),x,xPlot);
Ey = subs(E(2),y,yPlot);
rhoPlot = double(subs(rho,{x,y},{xPlot,yPlot}));

quiver を使用して電界をプロットします。contour を使用して電荷密度を重ね合わせます。等高線は電荷の値を示します。

quiver(xPlot,yPlot,Ex,Ey)
hold on
contour(xPlot,yPlot,rhoPlot,"ShowText","on")
title("Contour Plot of Charge Density Over Electric Field")
xlabel("x")
ylabel("y")

R2023a 以降

マクスウェル方程式から、電荷および電流源のない自由空間における電磁波の方程式を導出します。

最初に、真空透磁率と誘電率を表すシンボリック スカラー変数を作成します。直交座標を表すシンボリック行列変数を作成します。電界と磁場を空間と時間の関数として表す 2 つのシンボリック行列関数を作成します。

syms mu_0 epsilon_0
syms X [3 1] matrix
syms E(X,t) B(X,t) [3 1] matrix keepargs

次に、マクスウェル方程式を表す 4 つの方程式を作成します。

Maxwell1 = divergence(E,X) == 0
Maxwell1(X, t) = X·E(X,t)=01,1
Maxwell2 = curl(E,X) == -diff(B,t)
Maxwell2(X, t) = 

X×E(X,t)=-t B(X,t)

Maxwell3 = divergence(B,X) == 0
Maxwell3(X, t) = X·B(X,t)=01,1
Maxwell4 = curl(B,X) == mu_0*epsilon_0*diff(E,t)
Maxwell4(X, t) = 

X×B(X,t)=ε0μ0t E(X,t)

次に、電界の波動方程式を求めます。2 番目のマクスウェル方程式の回転を計算します。

wave_E = curl(Maxwell2,X)
wave_E(X, t) = 

X X·E(X,t)-ΔX E(X,t)=-X×t B(X,t)

電界の波動方程式に最初のマクスウェル方程式を代入します。lhsrhs を使用して、最初のマクスウェル方程式の左辺と右辺を取得します。

wave_E = subs(wave_E,lhs(Maxwell1),rhs(Maxwell1))
wave_E(X, t) = 

-ΔX E(X,t)=-X×t B(X,t)

4 番目のマクスウェル方程式の時間微分を計算します。

dMaxwell4 = diff(Maxwell4,t)
dMaxwell4(X, t) = 

X×t B(X,t)=ε0μ0t t E(X,t)

wave_E の磁場 X×tB(X,t) を含む項を dMaxwell4 の右辺で置き換えます。lhsrhs を使用して、dMaxwell4 からこれらの項を取得します。

wave_E = subs(wave_E,lhs(dMaxwell4),rhs(dMaxwell4))
wave_E(X, t) = 

-ΔX E(X,t)=-ε0μ0t t E(X,t)

同様の手順を使用して、磁場の波動方程式も求めることができます。

wave_B = curl(Maxwell4,X)
wave_B(X, t) = 

X X·B(X,t)-ΔX B(X,t)=ε0μ0X×t E(X,t)

wave_B = subs(wave_B,lhs(Maxwell3),rhs(Maxwell3))
wave_B(X, t) = 

-ΔX B(X,t)=ε0μ0X×t E(X,t)

dMaxwell2 = diff(Maxwell2,t)
dMaxwell2(X, t) = 

X×t E(X,t)=-t t B(X,t)

wave_B = subs(wave_B,lhs(dMaxwell2),rhs(dMaxwell2))
wave_B(X, t) = 

-ΔX B(X,t)=-ε0μ0t t B(X,t)

入力引数

すべて折りたたむ

シンボリックなベクトル場。シンボリック スカラー変数、シンボリック関数、シンボリック行列変数、またはシンボリック行列関数のベクトルとして指定します。VX と同じ長さでなければなりません。

  • V がシンボリック スカラー変数の関数であり、Vsym 型または symfun 型である場合、ベクトル Xsym 型または symfun 型でなければならない。

  • V がシンボリック行列変数の関数であり、Vsymmatrix 型または symfunmatrix 型である場合、ベクトル Xsymmatrix 型または symfunmatrix 型でなければならない。

データ型: sym | symfun | symmatrix | symfunmatrix

発散を求める対象のベクトル。シンボリック スカラー変数、シンボリック関数、シンボリック行列変数、またはシンボリック行列関数のベクトルとして指定します。XV と同じ長さでなければなりません。

  • X を指定せず、V がシンボリック スカラー変数の関数である場合、既定では、divergence は、symvar(V) で定義された変数の順序で、V のシンボリック スカラー変数からベクトル X を構成する。

  • Xsymmatrix 型のシンボリック行列変数である場合、X1N 列または N1 列のサイズでなければならない。

  • VX がスカラーの場合、divergence(V,X) = diff(V,X) となる。

データ型: sym | symfun | symmatrix | symfunmatrix

制限

  • 関数 divergence はテンソル微分をサポートしません。入力 V がベクトルではなくテンソル場または行列である場合、関数 divergence はエラーを返します。

  • 現在、Symbolic Math Toolbox™ は、シンボリック行列変数の関数 dot または関数 cross と、symmatrix 型および symfunmatrix 型の関数をサポートしていません。ベクトル微積分の恒等式がドット積またはクロス積を含む場合、ツールボックスは代わりに他のサポートされている関数でそれらの恒等式を表示します。シンボリック行列の変数と関数をサポートするすべての関数のリストを表示するには、コマンド methods symmatrixmethods symfunmatrix を使用します。

詳細

すべて折りたたむ

シンボリックなベクトル場の発散

直交座標のベクトル X = (X1,...,Xn) に関するシンボリックなベクトル場の発散 V = (V1,...,Vn) は、X1,...,Xn に関する V の偏導関数の和です。

div(V)=XV=i=1nViXi

バージョン履歴

R2012a で導入

すべて展開する