Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

curl

シンボリックなベクトル場の回転

説明

c = curl(V,X) は、3 次元直交座標のベクトル X について、シンボリックなベクトル場 V回転を返します。ベクトル場 V とベクトル X は両方とも、3 つの成分をもつベクトルでなければなりません。

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

すべて折りたたむ

直交座標のベクトル X=(x,y,z) について、ベクトル場 V(x,y,z)=(x3y2z, y3z2x, z3x2y) の回転を求めます。

syms x y z
V = [x^3*y^2*z, y^3*z^2*x, z^3*x^2*y];
X = [x y z];
c = curl(V,X)
c = 

(x2z3-2xy3zx3y2-2xyz3y3z2-2x3yz)

2 次元ベクトル場 F(x,y)=(cos(x+y),sin(x-y),0) の回転を求めます。ベクトル場を矢印 (速度) プロットとしてプロットし、その回転の z 成分を等高線図としてプロットします。

2 次元ベクトル場 F(x,y) を作成し、その回転を求めます。回転は z 成分のみをもつベクトルになります。

syms x y z
F = [cos(x+y) sin(x-y) 0];
c = curl(F,[x,y,z])
c = 

(00cos(x-y)+sin(x+y))

-2<x<2-2<y<2 の領域について、2 次元ベクトル場 F(x,y) をプロットします。MATLAB® には、このタスクのためにプロット関数quiverが用意されています。この関数ではシンボリック引数は受け入れられません。まず、F の成分の式にあるシンボリック変数を数値で置き換えます。次に quiver を使用します。

v = -2:0.1:2;
[xPlot,yPlot] = meshgrid(v);
Fx = subs(F(1),{x,y},{xPlot,yPlot});
Fy = subs(F(2),{x,y},{xPlot,yPlot});
quiver(xPlot,yPlot,Fx,Fy)
hold on

次に、contour を使用して、回転の z 成分の等高線をプロットします。

cPlot = subs(c(3),{x,y},{xPlot,yPlot});
contour(xPlot,yPlot,cPlot,"ShowText","on")
title("Contour Plot of Curl of 2-D Vector Field")
xlabel("x")
ylabel("y")

Figure contains an axes object. The axes object with title Contour Plot of Curl of 2-D Vector Field, xlabel x, ylabel y contains 2 objects of type quiver, contour.

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)

入力引数

すべて折りたたむ

シンボリックな 3 次元ベクトル場。シンボリック スカラー変数、シンボリック関数、シンボリック行列変数、またはシンボリック行列関数のベクトルとして指定します。V のサイズは 13 列または 31 列でなければなりません。

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

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

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

回転を求める対象の 3 次元ベクトル。シンボリック スカラー変数、シンボリック関数、シンボリック行列変数、またはシンボリック行列関数のベクトルとして指定します。X のサイズは 13 列または 31 列でなければなりません。

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

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

制限

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

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

詳細

すべて折りたたむ

シンボリックなベクトル場の回転

直交座標のベクトル X = (X1, X2, X3) に関するシンボリックなベクトル場 V = (V1, V2, V3) の回転は、次のベクトルです。

curl(V)=X×V=(V3X2V2X3V1X3V3X1V2X1V1X2)

バージョン履歴

R2012a で導入

すべて展開する