![MATLAB金融风险管理师FRM(高阶实战)](https://wfqqreader-1252317822.image.myqcloud.com/cover/187/36862187/b_36862187.jpg)
2.1 切向量和法向量
向量又称作欧几里得向量(Euclidean vector)、空间向量(spatial vector)或者几何向量(geometric vector)。向量通常由大小(magnitude)和方向(direction)两个元素构成。向量大小又叫作欧几里得距离(Euclidean distance)、欧几里得范数(Euclidean norm)或2范数(2-norm),MATLAB对应函数为norm()和vecnorm()。
和起点无关的向量叫作自由向量(free vector),如图2.1(a)所示;和起点有关的向量被称作固定向量(fixed vector),如图2.1(b)所示;方向上沿着某一条特定直线的向量,称之为滑动向量(sliding vector),如图2.1(c)所示。
![](https://epubservercos.yuewen.com/745BB7/19549640201517806/epubprivate/OEBPS/Images/Figure-P56_3712156.jpg?sign=1739250703-SZYTuPiGiPXf6Lmu4J8KoM2HNY1nDwhb-0-dedff576bc6a452526caf768e4d1d1d6)
图2.1 自由向量、固定向量和滑动向量
直线的法向量(normal vector)为垂直于该直线的非零向量,如图2.2(a)所示。光滑曲线上某点的法向量垂直于曲线上该点处的切线,如图2.2(b)所示。平面法向量(a normal line to a surface)垂直于平面内任意直线,如图2.2(c)所示。光滑连续曲面内某点的法向量为曲面该点处切平面(tangent plane)的法向量,如图2.2(d)所示。
本章用n来表达法向量,而单位法向量(unit nor mal vector)N通过下式获得:
![](https://epubservercos.yuewen.com/745BB7/19549640201517806/epubprivate/OEBPS/Images/Figure-P56_3712157.jpg?sign=1739250703-2fZVEoS8lUHWU1Ap91wJCK1YzLMdFQM8-0-31963999cb21f954657fe5dec49ac4c4)
单位法向量N模为1。
![](https://epubservercos.yuewen.com/745BB7/19549640201517806/epubprivate/OEBPS/Images/Figure-P57_3712158.jpg?sign=1739250703-J6AzH3b9N1bPpWvNaXB6h6bqWHNYAluZ-0-0c0c01411ec4200c9b7e161fdb49458c)
图2.2 直线、平面和光滑曲面法向量
直线上任意一点的切向量(tangent vector)是和直线相切的非零向量,如图2.3(a)所示。直线某点处切向量和法向量垂直,即两者内积为0。图2.3(b)所示为光滑曲线的切线。三维空间平面上某点的切线有无数条,如图2.3(c)所示。同样,如图2.3(d)所示,光滑曲面上某点的切线有无数条,且都在曲面该点的切平面内。本书一般用τ来表达切向量。单位切向量(unit tangent vector)T通过下式获得:
![](https://epubservercos.yuewen.com/745BB7/19549640201517806/epubprivate/OEBPS/Images/Figure-P57_3712159.jpg?sign=1739250703-nsMxMZYid2QlqNPsqjEUAKysz44RhqYO-0-c6a1507cc1a2bc5b75b8c723abb1075e)
单位切向量T模为1。
![](https://epubservercos.yuewen.com/745BB7/19549640201517806/epubprivate/OEBPS/Images/Figure-P57_3712160.jpg?sign=1739250703-S6FD2Fz9zc0r3R6ZGs629BaR8cqBSwJF-0-29de1962a802a50a4fb7d25e4354305f)
图2.3 直线、平面和光滑曲面切向量
向量外积,也叫叉乘(cross product)或向量积(vector product)。向量内积(inner product)或标量积(scalar product)为标量,而向量叉乘结果为向量。a和b的向量积,记作a × b。a × b方向分别垂直于向量a和b,即a × b垂直于向量a和b构成的平面。向量a和b以及a × b构成右手法则,如图2.4所示,同时在图中可以看到a × b和b × a方向相反。
![](https://epubservercos.yuewen.com/745BB7/19549640201517806/epubprivate/OEBPS/Images/Figure-P58_3712162.jpg?sign=1739250703-5WP2LfZ2VK5jg87e0RYgdbcx2ta8VgCn-0-eaa108055442864adee4a4da97888e13)
图2.4 向量叉乘右手法则
a × b的模通过下式获得:
![](https://epubservercos.yuewen.com/745BB7/19549640201517806/epubprivate/OEBPS/Images/Figure-P58_3712167.jpg?sign=1739250703-9849O3l7uDFuQ6VUGWZnzBpBz7TXGjcp-0-e3d51c283e0cb7de76dfcd732fe225e1)
其中,θ为向量a和b的夹角。
如图2.5(a)所示,空间直角坐标系中三个正交基底向量i(x轴正方向)、j(y轴正方向)和k(z轴正方向)之间满足向量叉乘关系,如下:
![](https://epubservercos.yuewen.com/745BB7/19549640201517806/epubprivate/OEBPS/Images/Figure-P58_3712165.jpg?sign=1739250703-Djv737suA0HsBPHgGFbczmo9Hp4vPnpv-0-adb4dd29a264bca5c35996b2ad3db409)
![](https://epubservercos.yuewen.com/745BB7/19549640201517806/epubprivate/OEBPS/Images/Figure-P58_3712166.jpg?sign=1739250703-xkuK1VJU36WXdEo9C4lW2H6fPdbD8Hjs-0-bd510024aafeea88e5f0db55510518f0)
图2.5 三维空间正交单位向量基底之间关系
图2.5(b)展示了以上三个等式中i、j和k的前后顺序关系。若调换它们的顺序,会得到以下三个运算式:
![](https://epubservercos.yuewen.com/745BB7/19549640201517806/epubprivate/OEBPS/Images/Figure-P58_3712169.jpg?sign=1739250703-WIeUU3k6rYrWK51uAhU9vXF4pz7Qd5uN-0-16a296b1f779033d1dfe294e036fbf28)
向量与自身叉乘等于0向量,如下:
![](https://epubservercos.yuewen.com/745BB7/19549640201517806/epubprivate/OEBPS/Images/Figure-P58_3712171.jpg?sign=1739250703-Tz8tbgc0WOB1LMHINXhJjmA6toUsfDRi-0-1abeac2bfcb24136004b7fdcc0ec4868)
叉乘运算的常见性质如下:
![](https://epubservercos.yuewen.com/745BB7/19549640201517806/epubprivate/OEBPS/Images/Figure-P59_3712172.jpg?sign=1739250703-EnwQzcDl86yqzrELc7CHMEPCuqjmjinx-0-a962e4c52e89dc35e6d5895bdda7cdd6)
若用基底向量i、j和k表达向量a和b:
![](https://epubservercos.yuewen.com/745BB7/19549640201517806/epubprivate/OEBPS/Images/Figure-P59_3712173.jpg?sign=1739250703-QCUBgjgYTD3uqlpwgPa91hWXeNIvy0c2-0-c9f657c921a5c4c8d4ba6daabab811da)
整理向量a和b的叉乘,如下:
![](https://epubservercos.yuewen.com/745BB7/19549640201517806/epubprivate/OEBPS/Images/Figure-P59_3712175.jpg?sign=1739250703-65oOC8jiWETd6MrbLb81uvgtUjdKUBRq-0-4f15483040634fd546748b3414664ebf)
则结果为以下行列式值:
![](https://epubservercos.yuewen.com/745BB7/19549640201517806/epubprivate/OEBPS/Images/Figure-P59_3712176.jpg?sign=1739250703-jQgrz0OSToe0b27vbeaICZx5job7Zu5v-0-5308699fb72492c8f89810fffa1a5e8d)
下面结合代码计算两个向量的叉乘:
![](https://epubservercos.yuewen.com/745BB7/19549640201517806/epubprivate/OEBPS/Images/Figure-P59_3712177.jpg?sign=1739250703-4hr4Wy6ALP7gzrey9kmq9NT1etC48CyO-0-fafdb8cedf90681ec85009d17000c5cd)
a × b结果如下:
![](https://epubservercos.yuewen.com/745BB7/19549640201517806/epubprivate/OEBPS/Images/Figure-P59_3712178.jpg?sign=1739250703-1Mwb7H5tfAj6QvX7Ht3IvJfQFcseviF0-0-42b0134d6114b3e7651c298952f9a891)
b × a结果如下:
![](https://epubservercos.yuewen.com/745BB7/19549640201517806/epubprivate/OEBPS/Images/Figure-P59_3712179.jpg?sign=1739250703-u35Ef2XkVorzVN2DOA11iuweNwk3H2fZ-0-22208ff6df8bfb79666df0e796fb10fd)
MATLAB计算叉乘函数为cross(),图2.6展示cross()计算叉乘a × b和b × a,并用quiver3() 绘制结果。此外,图2.6用fill3()函数绘制a和b构造平面。
![](https://epubservercos.yuewen.com/745BB7/19549640201517806/epubprivate/OEBPS/Images/Figure-P60_3712180.jpg?sign=1739250703-kIefTmXi2RX0x01ZTWsnov5c4S3M42cg-0-d3d4a7caa6439c2974bd96f660d7615c)
图2.6 向量a和b叉乘
以下代码获得图2.6。
B4_Ch1_1.m clear all; close all; clc O = [0, 0, 0]; A = [-2,1,1]; B = [1,-2,-1]; AO = A-O; BO = B-O; cross_prod1 = cross(AO,BO) cross_prod2 = cross(BO,AO) figure( 1) points=[ A' B' O']; h5 = fill3(points(1,:),points(2,:),points(3,:),'b'); h5.EdgeColor = [1 1 1]; h5.FaceAlpha = 0.4; hold on h1 = quiver3(O(1),O(2),O(3),AO(1),AO(2),AO(3)); h2 = quiver3(O(1),O(2),O(3),BO(1),BO(2),BO(3)); h1.AutoScale = 'off'; h2.AutoScale = 'off'; h1.LineWidth = 1; h2.LineWidth = 1; h3 = quiver3(O(1),O(2),O(3),cr oss_prod1(1),cross_prod1(2),cross_prod1(3)); hold on h4 = quiver3(O(1),O(2),O(3),cross_prod2(1),cross_prod2(2),cross_prod2(3)); h3.AutoScale = 'off'; h4.AutoScale = 'off'; h3.LineWidth = 1; h4.LineWidth = 1; daspect([1,1,1]); box on; grid off; view(-45,45) xlabel('x'); ylabel('y'); zlabel('z') hAxis = gca; hAxis.XRuler.FirstCrossoverValue = 0; % X crossover with Y axis hAxis.YRuler.FirstCrossoverValue = 0; % Y crossover with X axis hAxis.ZRuler.FirstCrossoverValue = 0; % Z crossover with X axis hAxis.ZRuler.SecondCrossoverValue = 0; % Z crossover with Y axis hAxis.XRuler.SecondCrossoverValue = 0; % X crossover with Z axis hAxis.YRuler.SecondCrossoverValue = 0; % Y crossover with Z axis