MATLAB金融风险管理师FRM(高阶实战)
上QQ阅读APP看书,第一时间看更新

3.6 曲面切面

三维空间曲面用z = fx, y)函数来表达。三维空间某一点Ax0, y0, fx0, y0))处曲面fx, y)切面解析式也通过法向量来构造。根据前文反复提到的方法,首先构造函数Fx, y z)如下:

A点(x0, y0, z0)法向量通过下式求得:

类似上一节方法,用空间定点A和法向量n来定义曲面在A点切面,如图3.37所示。

图3.37 曲面任意一点切面和法向量

A点切面解析式具体计算过程如下:

其中,上式z即切面函数tx, y),z0fx0, y0),替换得到下式:

这和丛书第一册第6章中采用切面解析式完全一致。上式即泰勒一阶展开矩阵表达式。

更一般情况,对于多元函数fx),当x足够靠近xP时,fx)函数值用泰勒一阶展开逼近,如下式:

其中,x为行向量,如下:

xP泰勒级数展开点(expansion point of Taylor series);∇fxP)为多元函数fx)在xP处梯度行向量,如下:

其中,x为列向量,fx)函数值用泰勒一阶展开逼近如下:

也用标量点乘来表达泰勒一阶级数展开,如下:

x为行向量时,fx)泰勒二阶级数展开式矩阵运算如下:

其中,∇2fxP 便是我们在丛书第三册第2章数学部分提到黑塞矩阵,表达式如下:

x为列向量时,fx)泰勒二阶级数展开式矩阵运算如下:

下面用同样方法求解一个空间隐函数切面。圆心位于原点单位正球体解析式如下:

以上球面定点A坐标如下:

为了求解切面,先构造Fx, y, z):

获得A点处法向量n

然后就能获得球面A点切面解析式:

图3.38 所示为球面在A点法向量(按一定比例缩放)和过A点球面切面。

图3.38 球面某点处切面

以下代码获得图3.38。

B4_Ch3_6.m

clc; close all; clear all
syms x y z
[xx, yy, zz] = ellipsoid(0,0,0,1,1,1,30);
F = x^2 + y^2 + z^2 - 1;
x0 = 1/2; y0 = 1/2; z0 = sqrt(2)/2;
g = gradient(F, [x, y, z])

dF_dx = subs(g(1), [x y z], {x0,y0,z0});
dF_dy = subs(g(2), [x y z], {x0,y0,z0});
dF_dz = subs(g(3), [x y z], {x0,y0,z0});

n = [dF_dx, dF_dy, dF_dz];
P_vector = [x-x0, y-y0, z-z0];
eqn = dot(n, P_vector) == 0;
plane_f = solve(eqn,z);

[xx0,yy0] = meshgrid(x0-0.5:0.25:x0+0.5, y0-0.5:0.25:y0+0.5);
zz0 = double(subs(plane_f,[x,y],{xx0,yy0}));

figure(1)
plot3(x0,y0,z0,'ro'); hold on
mesh(xx, yy, zz)
h_vector = quiver3(x0,y0,z0,dF_dx,dF_dy,dF_dz)
h_vector.AutoScaleFactor = 0.5;

mesh(xx0,yy0,zz0,'edgecolor','k','FaceAlpha',0)

axis equal; box on; grid off
xlabel('x'); ylabel('y'); zlabel('z'); view(60,30)

下面用向量叉乘来解释曲面法向量。图3.39在第2章讨论梯度和方向性微分时已经了解过。下面从曲面切向量和法向量角度,再来挖掘一下这幅图。

图3.39 曲面A点处两条切线和法线

图3.39曲面A点(x0, y0, fx0, y0))处有两个切向量,一个平行于y轴,τy;另一个平行于x轴,τx。向量τyx轴方向分量为0,在y轴分量记作Δy,在z轴分量为fy Δyfyfx, y)沿y一阶偏微分。因此,向量τy记作:

令Δx = 1,向量τy记作:

同理,得到切向量τx表达式:

τyτx两个向量叉乘结果即法向量n方向:

上式和之前推导法向量n反向。同样得到下式法向量n和之前推导同向:

然后,平面一个定点Ax0, y0, fx0, y0)),和任意一点Px, y, z)构成向量和法向量n,两者内积为0,如下:

同样也得到曲线A点切面解析式。此外,以上法向量随着A点坐标变化而变化;但法向量nz轴上分量不变。