《向量的距离与夹角余弦.ppt》由会员分享,可在线阅读,更多相关《向量的距离与夹角余弦.ppt(38页珍藏版)》请在三一办公上搜索。
1、,第一讲 矩阵的基本运算,第二讲 向量的距离与夹角余弦,第三讲 数据的属性与处理方法,第二讲 向量的距离与夹角余弦,1.3 向量的距离与夹角余弦,1.4 线性方程组AX=b的求解,1.向量的数量积,矢量积,例如:a=1,2,3,b=-1,5,6,c=1,0,1则,Matlab 中数量积:dot(a,b);矢量积:cross(a,b),dot(a,b)=27,cross(a,c)=(2,2,-2),解:a,b,c 的混合积为:dot(a,cross(b,c),练习:计算a,b,c 的混合积,三、向量的距离与夹角余弦,1)Matlab 中向量 a 的范数为:norm(a),例1 a=1,2,3,b
2、=-1,5,6,c=1,0,1,求a,b的范数,解:norm(a)=3.7417,norm(b)=7.8740,练习:对例1计算:a,b夹角的余弦,=0.9164,思考:a,b,c三个向量那两个更接近?,事实上,范数的平方=向量 a自身的数量积,三、向量的距离与夹角余弦,2.矩阵的范数与向量的标准化,如例1 a=1,2,3,b=-1,5,6,c=1,0,1,求a,b,c之间的夹角余弦,解:输入:A=a;b;c;B=1-pdist(A,cosine),输出结果为:B=0.9164 0.7559 0.4490,三、向量的距离与夹角余弦,计算向量之间夹角的余弦还可以用命令:,B=1-pdist(A,
3、cosine),计算矩阵A的行向量之间的夹角余弦,2)矩阵的范数有以下几种:,(1)n=norm(A)矩阵A的普范数(2范数),=AA的最大特征值的算术根.(2)n=norm(A,1)矩阵A的列范数(1-范数)等 于A的最大列之和.(3)n=norm(A,inf)矩阵A的行范数(无穷大范数)等于A的最大行之和.(4)n=norm(A,fro)矩阵A的Frobenius范数.,记为:,三、向量的距离与夹角余弦,3)方阵的谱半径:方阵A的特征值的绝对值之最大值称为A的谱半径 记为:,例3.求矩阵 的谱半径,由eig(A)知矩阵A的特征值分别为1,-2,1。,三、向量的距离与夹角余弦,例3.将矩阵
4、的行向量与列向量标准化,解:A=1,2,3;4,5,6;7,8,0;B=normr(A),C=normc(A),也可以输入命令:,b(1)=norm(A(1,:);b(2)=norm(A(2,:);b(3)=norm(A(3,:);c=b*ones(1,3);B=A./c,4)矩阵的行向量、列向量标准化的命令:,normr(A),normc(A),(normr(A)表示将矩阵每一行除以该行的范数),什么意思?,求出A矩阵个各行的范数,转置后变为3*1阶矩阵,三、向量的距离与夹角余弦,n维欧氏空间:设 表示n维向量的全体所组成的集合,称为n维欧氏空间,称为 与 的欧氏距离,称为 与 的绝对距离,
5、如果,三、向量的距离与夹角余弦,2.常见的向量距离,闵可夫斯基距离:,当 r=1,2 时分别为绝对距离和欧氏距离,马氏距离:,其中 V是一个实对称正定矩阵,通常取样本的协方差矩阵,当V=E时即为欧氏距离.,以上距离,在Matlab(6.)中有命令:pdist,具体如下:,三、向量的距离与夹角余弦,(1)欧氏距离:,如果A是am阶矩阵,B是m b 阶矩阵.即A的行向量维数等于B的列向量维数,三、向量的距离与夹角余弦,dist(A,B)结果是一个a b 阶上三角形矩阵d(i,j)表示A的第i个行向量与B的第j个列向量之间欧氏距离,Matlab中命令:dist(A,B)计算A中每个行向量与B中每个列
6、向量之间欧氏距离,例4.a=1,2,3,b=-1,5,6,c=1,0,1求a,b,c欧氏距离,解:输入:a1=dist(a,b),a2=dist(a,c),a3=dist(c,b),或者输入:A=a;b;c;pdist(A),三、向量的距离与夹角余弦,Pdist(X)样本X中各n维向量的欧氏距离,如果X是m个n维行向量所组成的矩阵,则有:,注意:而pdist(X)是个一行 列矩阵。各列分别表示X中各行向量按如下顺序的距离(1,2),(1,3),(1,m),(2,3),(2,4),(2,m),(m-1,m),(2)绝对距离:,Matlab中命令:mandist(A,B)计算A中每个行向量与B中每
7、个列向量之间绝对距离,A的行向量维数必须等于B的列向量维数.,三、向量的距离与夹角余弦,设样本X是m个n维行向量所组成的矩阵,则有:,Pdist(X,cityblock)各n维向量的绝对距离,注意:而pdist(X)是个一行 列矩阵。各列分别表示X中各行向量按如下顺序的距离(1,2),(1,3),(1,m),(2,3),(2,4),(2,m),(m-1,m),例5.求例2中向量之间的绝对距离.,dist(a,b)=4.6904,dist(a,c)=2.8284dist(c,b)=7.3485,还可以用什么命令?,你发现了什么?,三、向量的距离与夹角余弦,与绝对距离比较,设样本X是m个n维行向量
8、所组成的矩阵,则有:,Pdist(X,Minkowski,r)闵可夫斯基距离,Pdist(X,mahal)各n维向量的马氏距离,注意:而pdist(X)是个一行 列矩阵。各列分别表示X中各行向量按如下顺序的距离(1,2),(1,3),(1,m),(2,3),(2,4),(2,m),(m-1,m),三、向量的距离与夹角余弦,(3)闵可夫斯基距离与马氏距离,例6.现测得6只Apf和9只Af蠓虫的触长,翅长数据如下:Apf:(1.14,1.78),(1.18,1.96),(1.20,1.86),(1.26,2.00),(1.28,2.00),(1.30,1.96)Af:(1.24,1.72),(1.
9、36,1.74),(1.38,1.64),(1.38,1.82),(1.38,1.90),(1.40,1.70),(1.48,1.82),(1.54,1.82),(1.56,2.08),计算两类蠓虫的各自之间的欧氏、绝对、马氏距离,解:输入,Af=1.24,1.72;1.36,1.74;1.38,1.64;1.38,1.82;1.38,1.90;1.40,1.70;1.48,1.82;1.54,1.82;1.56,2.08;,Apf=1.14,1.78;1.18,1.96;1.2,1.86;1.26,2.;1.28,2;1.30,1.96;,三、向量的距离与夹角余弦,d1=(pdist(Apf
10、);d2=(pdist(Apf,cityblock);d3=pdist(Apf,mahal);,d=d1,d2,d3,输出结果为Apf蠓虫之间的各类距离为含有15个元素的列向量,将输出结果变化为15行3列的矩阵,结果见表1,同理可以求得Af蠓虫之间的各类距离。结果见表2,三、向量的距离与夹角余弦,表一.Apf蠓虫之间的距离,表二.Af蠓虫之间的距离,在Matlab中经常遇到下列运算:,A=1,2;3,4,若将A中每个元素都减去2,如何运算?,A=1,2;3,4,若将A的每一行都减去向量(1,2)如何运算?,前者可以进行,后者不行,如何实现?,通过特殊矩阵将加减运算变为可以进行的运算.,3.特殊
11、矩阵及其应用,A-2可否?,A-(1,2)可否?,三、向量的距离与夹角余弦,E=eye(n):,例如:eye(3)=,2.A=ones(n,m):表示元素全为1的nm矩阵,4.A=rand(n,m):产生nm维随机矩阵(元素在01之间),特殊矩阵有:,3.A=zeros(n,m):产生nm维零矩阵,三、向量的距离与夹角余弦,表示n维单位矩阵,E=eye(m,n):表示主对角元素为1,其余元素为零的 矩阵.,A=1,2,3;4,5,6;7,8,0,如何实现各列元素分别减去该列的均值?,解:输入,A=1,2,3;4,5,6;7,8,0;,B=ones(3,1)*mean(A),例如:,C=A-B,
12、三、向量的距离与夹角余弦,例7.下表是全国5个主要湖泊的实测数据,试用矩阵A表示上表所示的矩阵,2.计算每个指标与该指标平均值之差的绝对值.,三、向量的距离与夹角余弦,解:输入A=130,10.3,0.35,2.76;105,10.7,0.4,2;20,1.4,4.5,0.22;30,6.26,0.25,1.67;20,10.13,0.5,0.23;,mean(A)%A矩阵列向量(各指标)的平均值,生成一个54阶的矩阵B,各行都是mean(A):,B=ones(5,1)*mean(A),为什么?怎样生成?,然后得到所求矩阵C=abs(A-B),(A矩阵是一个14阶的矩阵.),三、向量的距离与夹
13、角余弦,mean(A)=61.0000 7.7580 1.2000 1.3760,输出结果为:,C=69.0000 2.5420 0.8500 1.3840 44.0000 2.9420 0.8000 0.6240 41.0000 6.3580 3.3000 1.1560 31.0000 1.4980 0.9500 0.2940 41.0000 2.3720 0.7000 1.1460,三、向量的距离与夹角余弦,生成一个54的矩阵B,各行都是mean(A)还有如下方法:,B=a(ones(5,1),:),其中 a=mean(A),练习:将各指标与该指标的最大值相减,然后再比上该指标的极差.,提
14、示:max(A):表示矩阵A中各列向量的最大值;min(A):表示矩阵A中各列向量的最小值;range(A)=max(A)-min(A):表示各列极差.,三、向量的距离与夹角余弦,A=130,10.3,0.35,2.76;105,10.7,0.4,2;20,1.4,4.5,0.22;30,6.26,0.25,1.67;20,10.13,0.5,0.23;B=ones(5,1)*max(A),C=max(A)-min(A)D=C(ones(5,1),:)(A-B)./D,ans=0-0.0430-0.9765 0-0.2273 0-0.9647-0.2992-1.0000-1.0000 0-1.
15、0000-0.9091-0.4774-1.0000-0.4291-1.0000-0.0613-0.9412-0.9961,三、向量的距离与夹角余弦,Matlab中Z=null(A,r)就是求AX=0的基础解系,其中 Z的列向量即为所求基础解系,例8.求方程组的通解:,format rat%指定有理式格式输出 Z=null(A,r)%求解空间的有理基,解:输入A=1,2,2,1;2,1,-2,-2;1,-1,-4,-3;,1.求齐次线性方程组AX=0的非零解,四、线性方程组AX=b的求解,即原方程的基础解系为(2,-2,1,0)和(5/3,-4/3,0,1),Z=2 5/3-2-4/3 1 0
16、0 1,输出结果为:,故所求通解为:,四、线性方程组AX=b的求解,1).若矩阵A可逆,则 X=Ab,解:A=2,3,5;3,6,8;6,5,4;b=12;34;43;det(A)=-29,矩阵A可逆,于是 X=Ab,也可以输入 X=inv(A)*b,结果为 X=0.2759 12.3793-5.1379,四、线性方程组AX=b的求解,2.求非齐次线性方程组AX=b的非零解,2)化成行简化阶梯形求AX=b的解Matlab中的命令为:,C=A,b%增广矩阵C.D=rref(C)%将C化成行最简化阶梯形 则D 的最后一列元素就是所求的解.,例10.求例9中线性方程组AX=b的解,解:输入:C=A,
17、b;D=rref(C);,输出结果为D=1 0 0 0.2759 0 1 0 12.3793 0 0 1-5.1379,四、线性方程组AX=b的求解,已学的MATLAB命令一览表,已学的MATLAB命令一览表,作业:,1.求矩阵A的各种范数、谱半径,2.A中各行向量夹角余弦、及各种距离,判别那两行最接近,3.将A的各元素减去各行的均值再比上各列的方差,4.,计算矩阵C的各行向量的相关系数矩阵R,再将R的列向量单位化,求CX=0的基础解系,作业,1.A=1,2,3;4,5,6;7,8,0;V,B=eig(A)%特征值n2=norm(A,2)%2范数n1=norm(A,1)%1范数n3=norm(
18、A,inf)%无穷范数n4=norm(A,fro)%f 范数,V=-0.2998-0.7471-0.2763-0.7075 0.6582-0.3884-0.6400-0.0931 0.8791B=12.1229 0 0 0-0.3884 0 0 0-5.7345,n2=13.2015n1=15n3=15n4=14.2829,作业,2.B=normr(A);%单位化a12=dot(B(1,:),B(2,:)%夹角余弦a13=dot(B(1,:),B(3,:)a23=dot(B(2,:),B(3,:),a12=0.9746a13=0.5783a23=0.7290,Pdist(A)%欧氏距离Pdis
19、t(A,cityblock)%绝对距离Pdist(A,Minkowski,3)%闵氏距离Pdist(A,mahal)%马氏距离,ans=5.1962 9.0000 7.3485ans=9 15 12ans=4.3267 7.7138 6.4633ans=Inf NaN NaN,作业,3.C=mean(A);%A的各行均值D=var(A);%A的各列方差e=(A-C*ones(1,3)./(ones(3,1)*D)%A的各元素减去各行的均值再比上各列的方差,C=2 5 5 D=9 9 9e=-0.1111 0 0.1111-0.1111 0 0.1111 0.2222 0.3333-0.5556,作业,4.C=1,4,7,4;2,3,8,5;3,2,9,6;4,1,0,7;R=Corrcoef(A)%C的相关系数矩阵c=normc(R)%R的列向量单位化F=null(C,r)%CX=0的基础解系,F=-1.6000-0.6000 0 1.0000,R=1.0000 1.0000-0.8030 1.0000 1.0000-0.8030-0.8030-0.8030 1.0000c=0.6149 0.6149-0.5307 0.6149 0.6149-0.5307-0.4937-0.4937 0.6609,作业,