このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
陰関数表面の接平面と法線
R2021b 以降
この例では、陰関数表面の接平面と法線を求める方法を示します。この例では、コンパクトな数学的表記のために、シンボリック行列変数 (symmatrix
データ型) を使用します。
表面は、球体 のように暗黙的に定義できます。一般に、暗黙的に定義された曲面は、 という方程式で表されます。この例では、半径が の球体の接平面と法線を求めます。
シンボリック行列変数 を作成して、 座標を表します。球面関数を として定義します。
clear; close all; clc syms r [1 3] matrix f = r*r.'
f =
陰的方程式 は、球体を表します。symmatrix2sym
を使用して、方程式を syms
データ型に変換します。関数fimplicit3
を使用して方程式をプロットします。
feqn = symmatrix2sym(f == 14)
feqn =
fimplicit3(feqn)
axis equal
axis([-6 6 -6 6 -6 6])
次に、点 における接平面と法線を求めます。
の勾配ベクトルが であることを思い出してください。このとき、点 における接平面の方程式は、 で与えられます。コンパクトな数学的表記では、接平面の方程式を のように記述できます。
関数gradient
を使用して、 の勾配を求めます。結果が 3 行 1 列のシンボリック行列変数となることに注意してください。
fgrad = gradient(f,r)
fgrad =
size(fgrad)
ans = 1×2
3 1
接平面の方程式を定義します。関数subs
を使用して、点 における勾配を評価します。
r0 = [-2,1,3]; fplane = (r-r0)*subs(fgrad,r,r0)
fplane =
plot3
を使用して点 をプロットし、fimplicit3
を使用して接平面をプロットします。
hold on plot3(r0(1),r0(2),r0(3),'ro',MarkerSize = 10,MarkerFaceColor = 'r') fimplicit3(symmatrix2sym(fplane == 0))
点 における法線の方程式は、 で与えられます。コンパクトな数学的表記では、この方程式を のように記述できます。
法線の方程式を定義します。
syms t
n = r0 + t*subs(fgrad,r,r0).'
n =
symmatrix2sym
を使用して、法線の方程式を syms
データ型に変換します。n
にインデックスを付けて、法線のパラメトリック曲線 、、および を抽出します。fplot3
を使用して法線をプロットします。
n = symmatrix2sym(n)
n =
fplot3(n(1),n(2),n(3),[0 1],'r->')