基于MATLAB的线性代数应用案例
- 格式:pdf
- 大小:513.62 KB
- 文档页数:6
实验三使用MATLAB解决线性代数问题学院:数计学院班级:1003班姓名:黄晓丹学号:1051020144实验目的:学习MATLAB有关线性代数运算的指令,主要学习运用MATLAB解决矩阵除法,线性方程组的通解,矩阵相似对角化问题,以及解决投入产出分析等应用问题。
实验内容:矩阵转置:A=[1 2;3 4];B=[4 3;2 1];>> A',B'ans =1 32 4ans =4 33 1矩阵加减:A-Bans=-3 -11 3矩阵乘法:A*B,A.*B(数组乘法)||比较矩阵乘法与数组乘法的区别ans=8 520 13ans=4 66 4矩阵除法:A\B,B./Aans=-6 -55 4ans=4 1.50.6667 0.25特殊矩阵生成:zeros(m,n)||生成m行n列的矩阵ones(m,n)||生成m行n列的元素全为一的矩阵eye(n)||生成n阶单位矩阵rand(m,n)||生成m行n列[0 ,1]上均匀分布随机数矩阵zeros(2,3)ans =0 0 00 0 0>> ones(3,3)ans =1 1 11 1 11 1 1>> eye(3)ans =1 0 00 1 00 0 1>> rand(2,4)ans =Columns 1 through 30.9501 0.6068 0.89130.2311 0.4860 0.7621Column 40.45650.0185矩阵处理:trace(A)||返回矩阵的迹diag(A)||返回矩阵对角线元素构成的向量tril(A)||提取矩阵的下三角部分triu(A)||提取矩阵的上三角部分flipud(A)||矩阵上下翻转fliplr(A)||矩阵左右翻转reshape(A,m,n)||将矩阵的元素重排成m行n列矩阵A=[1 2 3;4 5 6;7 8 9];>> t=trace(A),d=diag(A),u=triu(A)t =15d =159u =1 2 30 5 60 0 9 flipud(A),fliplr(A)ans =7 8 94 5 61 2 3 ans =3 2 16 5 49 8 7矩阵特征值与标准型:[V,D]=eig(A)||返回矩阵特征值与特征向量[V J]=Jordan(A)||返回矩阵的相似变换矩阵和若尔当标准型A=[1 2;3 4];>> [V,D]=eig(A)V =-0.8246 -0.41600.5658 -0.9094D =-0.3723 00 5.3723>> [V,J]=jordan(A)V =0.2389 0.76110.5222 -0.5222J =5.3723 00 -0.3723线性方程组求解A=[1 2 1;3 -2 1];B=[1;4];x=A\B x =1.2500 ||求一特解-0.1250>> A=[1 2;3 -2;1 -1];B=[1;4;2];x=A\Bx = ||求得一最小二乘近似解1.2838-0.1757:方阵的相似对角化及应用:A=[1 1/4 0;0 1/2 0;0 1/4 1];[P,T]=eig(A) P =1.0000 0 -0.40820 0 0.81650 1.0000 -0.4082T =1.0000 0 00 1.0000 00 0 0.5000求得三个特征值1,1,0.5,对应特征向量(1,0,0),(0,0,1),(-0.4028,0.8165,-0.4082),由于三个特征向量线性无关,从而A 可相似对角化,即p-1AP=T.那么A∧n=p[1 0 0;0 1 0;0 0 0]p-1,计算的P*diag([1,1,0])*inv(P)ans =1.0000 0.50000 00 0 00 0.5000 1.0000所以得到近似解。
matlab线性代数例题[大全5篇]第一篇:matlab线性代数例题《数学实验》在线习题3 Matlab程序设计部分一.分析向量组a1=[1T2a23=]-,-T[a31T=2,0],a4=[1-2-1]T,a5=[246]T的线性相关性,找出它们的最大无关组,并将其余向理表示成最大无关组的线性组合。
解,a1=[1 2 3]';a2=[-1-2 0]';a3=[0 0 1]';a4=[1-2-1]';a5=[2 4 6]';A=[a1,a2,a3,a4,a5];[R,S]=rref(A)r=length(S)R =1.0000 0 0.3333 02.0000 0 1.0000 0.3333 0 0 0 0 0 1.0000 0S =4r =线性相关 a1,a2,a3,a4,a5 最大无关组是a1,a2,a4 其余向量的线性组合是a3=1/3a1+1/3a2 a5=2a1二.计算行列式x13D4=x23x33x43x12y1x22y2x32y3x42y4x1y12x2y22x3y32x 4y42y13y23y3323的值。
其中[1解,syms x1 x2 x3 x4 y1 y2 y3 y4 xxxy43x4]=[2357],[y1y2y3y4]=[4567]。
D=[x1^3 x1^2*y1 x1*y1^2 y1^3;x2^3 x2^2*y2 x2*y2^2 y2^3;x3^3 x3^2*y3 x3*y3^2 y3^3;x4^3 x4^2*y4 x4*y4^2 y4^3];d=det(D)x1=2;x2=3;x3=5;x4=7;y1=4;y2=5;y3=6;y4=7;eval (d)d = ans =153664 三.已知向量a={1,-1,0},b={-1,0,-1},求向量a与b的夹角的度数。
解,a=[1-1 0];b=[-1 0-1];x=a.*b;x1=sum(x,2);x2=norm(a);x3=norm(b);y=x1/(x2*x3)y1 =acos(y)y =-0.5000y1 =2.0944四.已知线性方程组clear⎧2x1-x2+3x3+2x4=0⎪9x-x+14x+2x=1⎪1234⎨⎪3x1+2x2+5x3-4x4=1⎪⎩4x1+5x2+7x3-10x4=2,求系数矩阵的秩和方程组的通解。
Advances in Applied Mathematics 应用数学进展, 2019, 8(3), 424-429Published Online March 2019 in Hans. /journal/aamhttps:///10.12677/aam.2019.83048Application Examples of Linear AlgebraBased on MATLABWei Yang1, Shuping Gao2, Bing Han3, Huaichen Chen31School of Physics and Optoelectronic Engineering, Xidian University, Xi’an Shaanxi2School of Mathematics and Statistics, Xidian University, Xi’an Shaanxi3School of Electornoc Engineering, Xidian University, Xi’an ShaanxiReceived: Feb. 14th, 2019; accepted: Feb. 27th, 2019; published: Mar. 6th, 2019AbstractThis paper gives three examples of the application of linear algebra. It includes rigid body plane motion, information retrieval and bacteria conversion. MATLAB software is used for numerical calculation and drawing.KeywordsLinear Algebra, Application of Linear Algebra, MATLAB基于MATLAB的线性代数应用案例杨威1,高淑萍2,韩冰3,陈怀琛31西安电子科技大学物理与光电工程学院,陕西西安2西安电子科技大学数学与统计学院,陕西西安3西安电子科技大学电子工程学院,陕西西安收稿日期:2019年2月14日;录用日期:2019年2月27日;发布日期:2019年3月6日摘要本文给出了线性代数三个精彩应用案例,包括刚体平面运动、情报检索及细菌转换,并利用MATLAB软件进行数值计算和绘图分析。
利用Matlab进行线性代数问题求解的方法与案例引言线性代数是数学的一个重要分支,广泛应用于工程、物理、计算机科学等领域。
而Matlab作为一种功能强大的数值计算软件,提供了各种实用的工具和函数,可以方便地解决线性代数问题。
本文将介绍一些常用的线性代数问题求解方法,并通过具体的案例来展示Matlab在实际应用中的效果。
一、线性方程组的求解线性方程组是线性代数中最基础的问题之一。
Matlab提供了多种求解线性方程组的函数,如“backslash”操作符(\)和“linsolve”函数等。
下面通过一个实例来说明Matlab的线性方程组求解功能。
案例:假设有以下线性方程组需要求解:2x + 3y - 4z = 53x - 2y + z = 8x + 5y - 3z = 7在Matlab中输入以下代码:A = [2 3 -4; 3 -2 1; 1 5 -3];b = [5; 8; 7];x = A\b;通过以上代码,我们可以得到线性方程组的解x=[1; -2; 3]。
这表明在满足以上方程组的条件下,x=1,y=-2,z=3。
可以看出,Matlab在求解线性方程组时,使用简单且高效。
二、矩阵的特征值和特征向量求解矩阵的特征值和特征向量也是线性代数中的重要概念。
利用特征值和特征向量可以得到矩阵的许多性质和信息。
在Matlab中,我们可以通过“eig”函数来求解矩阵的特征值和特征向量。
案例:假设有一个2x2矩阵A,需要求解其特征值和特征向量。
在Matlab中输入以下代码:A = [2 3; 1 4];[V, D] = eig(A);通过以上代码,我们可以得到矩阵A的特征向量矩阵V和特征值矩阵D。
具体结果如下:特征向量矩阵V = [0.8507 -0.5257; 0.5257 0.8507]特征值矩阵D = [1.5858 0; 0 4.4142]由结果可知,矩阵A的特征向量矩阵V和特征值矩阵D可以提供有关该矩阵的很多信息,如相关线性变换、对称性等。
使用Matlab求解线性代数问题一、用行列式求解线性方程组x1+ x2–2*x3 = -35*x1–2*x2+ 7*x3 = 222*x1–5*x2+ 5*x3 = 4解法1:使用矩阵求解方程组在Matlab 7.1命令行界面中输入(A表示系数矩阵,b表示向量)A = [1 1 -2; 5 -2 7; 2 -5 5]; % 系数矩阵b = [-3; 22; 4]; % 向量format rat; % 设置结果的显示形式为分数x = A\b; % 计算结果x = x' % 转置以行向量形式显示界面显示结果为x = 47/56 163/56 27/8即方程的解为x1 = 47/56; x2 = 163/56; x3 = 27/8解法2:使用Cramer法则求解方程组在Matlab 7.1命令行界面中输入D(系数行列式)D = [1 1 -2; 5 -2 7; 2 -5 5]; % 系数矩阵DD1 = [b D(:,2) D(:, 3)]; % D1D2 = [D(:,1) b D(:, 3)]; % D2D3 = [D(:, 1) D(:,2) b]; % D3format rat; % 设置结果的显示形式为分数x1 = det(D1)/det(D)x2 = det(D2)/det(D)x3 = det(D3)/det(D)输出结果为x1 = 47/56x2 = 163/56x3 = 27/8即方程的解为:x1 = 47/56; x2 = 163/56; x3 = 27/8二、求排列65872134的逆序数,并确定其奇偶性。
解:排列的逆序数定义为:如在1,2,3,…,n的一个全排列(s1 s2 s3…s n)中,有i<j时,s i >s j,这时s i、s j违反了自然顺序,就说它们构成了一个逆序。
排列(s1 s2 s3…s n)中逆序的总数称为该序列的逆序数。
根据定义计算逆序数的Matlab程序如下:a = [6 5 8 7 2 1 3 4]; % 将排列看作行向量Num = 0; % 逆序数初始值设为0Len = length(a); % 行向量中元素的个数for i = 1:1:(Len-1)n = length(find( a(i+1: Len) < a(i))); % 计算第i个元素% 的逆序数disp(strcat('第', num2str(i), '个元素', num2str(a(i)), '的逆序数为', num2str(n) ));Num = Num + n; %增加序列逆序数的个数end;disp(strcat('排列', num2str(a), '的逆序数为', num2str(Num)))将上述Matlab命令输入Matlab窗口命令行,执行结果为:第1个元素6的逆序数为5第2个元素5的逆序数为4第3个元素8的逆序数为5第4个元素7的逆序数为4第5个元素2的逆序数为1第6个元素1的逆序数为0第7个元素3的逆序数为0排列6 5 8 7 2 1 3 4的逆序数为19即排列65872134的逆序数为19,由于19为基数,所以排列65872134为逆排列。
用matlab解决线性代数问题学号: 82120545 , 姓名: 于珊,1 求解线性方程组实验内容: 用MATLAB求解如下线性方程组Ax = b, 其中A =5600000015600000015600000015600000015600000015600000015600000015⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦, b = [1,4,6,0,7,1,2,4] T.实验目的:1. 了解MATLAB软件, 学会MATLAB软件的一些基本操作;2. 熟悉MATLAB软件的一些数值计算功能;3. 练习编写简单的MATLAB程序。
实验原理:1. 对于满足条件系数矩阵的行列式D=︱A︱≠0的方程组Ax= b,根据克拉默(Gramer)法则,此线性方程组有唯一解:,j=1,2,…,n。
2. 当线性方程组的系数矩阵A是可逆矩阵时, 方程组Ax = b的解为X = A\B。
3. 当系数矩阵A可逆时, 对增广矩阵[A, b]进行初等行变换, 把它化为行最简形矩阵B, 则B的最后一列就是该方程组的解向量。
实验方案: 1. 在MATLAB命令窗口中输入如下命令:>> a_1=[5;1;0;0;0;0;0;0];a_2=[6;5;1;0;0;0;0;0];>> a_3=[0;6;5;1;0;0;0;0];a_4=[0;0;6;5;1;0;0;0];>> a_5=[0;0;0;6;5;1;0;0];a_6=[0;0;0;0;6;5;1;0];>> a_7=[0;0;0;0;0;6;5;1];a_8=[0;0;0;0;0;0;6;5]; %输入矩阵A>> b=[1;4;6;0;7;1;2;4];>> D=det([a_1,a_2,a_3,a_4,a_5,a_6,a_7,a_8]);>> D_1=det([b,a_2,a_3,a_4,a_5,a_6,a_7,a_8]);>> D_2=det([a_1,b,a_3,a_4,a_5,a_6,a_7,a_8]);>> D_3=det([a_1,a_2,b,a_4,a_5,a_6,a_7,a_8]);>> D_4=det([a_1,a_2,a_3,b,a_5,a_6,a_7,a_8]);>> D_5=det([a_1,a_2,a_3,a_4,b,a_6,a_7,a_8]);>> D_6=det([a_1,a_2,a_3,a_4,a_5,b,a_7,a_8]);>> D_7=det([a_1,a_2,a_3,a_4,a_5,a_6,b,a_8]);>> D_8=det([a_1,a_2,a_3,a_4,a_5,a_6,a_7,b]);>> x_1=D_1/D;x_2=D_2/D;x_3=D_3/D;x_4=D_4/D;>> x_5=D_5/D;x_6=D_6/D;x_7=D_7/D;x_8=D_8/D;>> format rat,X=[x_1,x_2,x_3,x_4,x_5,x_6,x_7,x_8]%利用克拉默法则求解方程组2. 在MATLAB命令窗口中输入如下命令:>> %把该方程组记为AX=b,则X=A\b>> A=[5,6,0,0,0,0,0,0;1,5,6,0,0,0,0,0;0,1,5,6,0,0,0,0;0,0,1,5,6,0,0,0;0,0,0,1,5,6,0,0;0,0,0,0,1,5,6,0;0,0,0,0,0,1,5,6;0,0,0,0,0,0,1,5]; %输入矩阵A>> b=[1;4;6;0;7;1;2;4]; %输入矩阵b>>format rat,X=A\b%求解方程组3. 在MATLAB命令窗口中输入如下命令:>> A=[5,6,0,0,0,0,0,0;1,5,6,0,0,0,0,0;0,1,5,6,0,0,0,0;0,0,1,5,6,0,0,0;0,0,0,1,5,6,0,0;0,0,0,0,1,5,6,0;0,0,0,0,0,1,5,6;0,0,0,0,0,0,1,5];%输入矩阵A>> b=[1;4;6;0;7;1;2;4]; %输入矩阵b>> B=[A,b];%B为增广矩阵[A,b]>> format rat>> C=rref(B); %用初等行变换把B化为行最简形>> X=C(:,9) %利用高斯消元法求解方程组实验结果:1.方法一的计算结果为:X =Columns 1 through 6-3419/592 727/146 -2543/1009 697/307 -131/89 2033/1009 Columns 7 through 8-835/659 1913/18162方法二的计算结果为:.X =-3419/592727/146-2543/1009697/307-131/892033/1009-835/6591913/18163.方法三的计算结果为:X =-797/138727/146-310/123697/307-131/89542/269-204/161138/131对实验结果的分析:上述3种方案所得的结果不完全一致, 这是因为不同的计算方法在计算机中有不同的精度,导致计算数据结果的不同。
Matlab在线性代数中的应用§1 向量组的线性相关性求列向量组A的一个最大线性无关组可用命令rref(A)将A化成阶梯形的行最简形式,其中单位向量对应的列向量即为最大线性无关组所含向量,其它列向量的坐标即为其对应向量用最大线性无关组线性表示的系数。
例1 求下列矩阵列向量组的一个最大无关组。
解编写M文件ex1.m如下:format rata=[1,-2,-1,0,2;-2,4,2,6,-6;2,-1,0,2,3;3,3,3,3,4];b=rref(a)求得b = 1 0 1/3 0 16/30 1 2/3 0 -1/90 0 0 1 -1/30 0 0 0 0记矩阵的五个列向量依次为、、、、,则、、是列向量组的一个最大无关组。
且有, .例2 设,,验证是的一个基,并把用这个基线性表示。
解编写M文件ex2.m如下:format rata=[2,2,-1;2,-1,2;-1,2,2];b=[1,4;0,3;-4,2];c=rref([a,b])求得c= 1 0 0 2/3 4/30 1 0 -2/3 10 0 1 -1 2/3§2线性方程组Matlab中解线性方程组可以使用“\”。
虽然表面上只是一个简简单单的符号,而它的内部却包含许许多多的自适应算法,如对超定方程用最小二乘法,对欠定方程它将给出范数最小的一个解,解三对角阵方程组时用追赶法等。
另外欠定方程组可以使用求矩阵A的阶梯形行最简形式命令rref(A),求出所有的基础解系。
例3 求解下列方程组解编写M文件ex3.m如下:format rata=[2,1,-5,1;1,-3,0,-6;0,2,-1,2;1,4,-7,6];b=[8;9;-5;0];solution=a\b求得 solution=[3 -4 -1 1]'。
例4 求超定方程组解编写M文件ex4.m如下:a=[2,4;3,-5;1,2;2,1];b=[11;3;6;7];solution=a\b求得 solution=[ 3.0403 1.2418]'。
一、上机目的1、培养学生运用线性代数的知识解决实际问题的意识、兴趣和能力;2、掌握常用计算方法和处理问题的方法;二、上机内容1、求向量组的最大无关组;2、解线性方程组;三、上机作业1、设A=[2 1 2 4; 1 2 0 2; 4 5 2 0; 0 1 1 7];求矩阵A列向量组的一个最大无关组.>> A=[2 1 2 4;1 2 0 2;4 5 2 0;0 1 1 7]A =2 1 2 41 2 0 24 5 2 00 1 1 7>> rref(A)ans =1 0 0 00 1 0 00 0 1 00 0 0 1所以矩阵A的列向量组的一个最大无关组就是它本身;2、用Matlab解线性方程组(1)>> A=[2 4 -6;1 5 3;1 3 2]A =2 4 -61 5 31 3 2>> b=[-4;10;5]b =-4105>> x=inv(A)*bx =-3.00002.00001.0000>> B=[3 41 -62;4 50 3;11 38 25]B =3 41 -624 50 311 38 25>> c=[-41;100;50]c =-4110050>> x=inv(B)*cx =-8.82212.58901.94653、(选作)减肥配方的实现设三种食物每100克中蛋白质、碳水化合物和脂肪的含量如下表,表中还给出了20世纪80年代美国流行的剑桥大学医学院的简捷营养处方。
现在的问题是:如果用这三种食物作为每天的主要食物,那么它们的用量应各取多少才能全面准确地实现这个营养要求?四、上机心得体会通过此次上机实验,我进一步的认识到了Matlab软件的功能。
Matlab 操作简单、功能强大,它使一些复杂的线性代数问题的计算变得更加简单,有效地提高了人们计算的效率。
而且把一些复杂的实际问题转化为矩阵后再利用Matlab求解既简单有快捷。
Advances in Applied Mathematics 应用数学进展, 2019, 8(3), 424-429Published Online March 2019 in Hans. /journal/aamhttps:///10.12677/aam.2019.83048Application Examples of Linear AlgebraBased on MATLABWei Yang1, Shuping Gao2, Bing Han3, Huaichen Chen31School of Physics and Optoelectronic Engineering, Xidian University, Xi’an Shaanxi2School of Mathematics and Statistics, Xidian University, Xi’an Shaanxi3School of Electornoc Engineering, Xidian University, Xi’an ShaanxiReceived: Feb. 14th, 2019; accepted: Feb. 27th, 2019; published: Mar. 6th, 2019AbstractThis paper gives three examples of the application of linear algebra. It includes rigid body plane motion, information retrieval and bacteria conversion. MATLAB software is used for numerical calculation and drawing.KeywordsLinear Algebra, Application of Linear Algebra, MATLAB基于MATLAB的线性代数应用案例杨威1,高淑萍2,韩冰3,陈怀琛31西安电子科技大学物理与光电工程学院,陕西西安2西安电子科技大学数学与统计学院,陕西西安3西安电子科技大学电子工程学院,陕西西安收稿日期:2019年2月14日;录用日期:2019年2月27日;发布日期:2019年3月6日摘要本文给出了线性代数三个精彩应用案例,包括刚体平面运动、情报检索及细菌转换,并利用MATLAB软件进行数值计算和绘图分析。
杨威 等关键词线性代数,线性代数应用,MATLABCopyright © 2019 by author(s) and Hans Publishers Inc.This work is licensed under the Creative Commons Attribution International License (CC BY)./licenses/by/4.0/1. 引言线性代数是一门实用性很强的基础课程,航空、建筑、计算机、经济、金融等等相关学科都需要大量的线性代数知识。
但是,在目前国内教材里,关于线性代数的应用内容涉及很少,甚至没有涉及。
随着矩阵阶数的增加,线性代数中各种运算的运算量将会剧增,所以利用计算机软件实现线性代数运算是当今线性代数教学改革的必要内容。
国内大多教材缺少了这方面内容,虽然个别新教材加入了MATLAB 软件内容,但其与线性代数知识分离,并没有很好地把线性代数理论与MATLAB 软件深度融合。
本文分别介绍了三个精彩的线性代数应用案例,并用MATLAB 软件进行计算和绘图,并对结果进行了分析讨论。
2. 刚体的平面运动用矩阵X 来描述平面坐标系中的一个闭合图形(即“刚体”),X 的列向量表示图形n 个顶点的坐标。
为了实现刚体的平移及旋转运算,给矩阵X 添加元素值都为1的一行,使矩阵X 的形状为3 × n 。
若有矩阵:121001001c M c =,cos sin 0sin cos 0001t t R t t − = ,且:1Y MX =,2Y RX = 可以证明,矩阵1Y 是刚体X 沿x 轴正方向平移1c ,沿y 轴正方向平移2c 后的结果;矩阵2Y 是刚体X 以坐标原点为中心逆时针旋转t 弧度的结果[1]。
例1. 表1给出大写字母A 的11个顶点坐标值,其中最后一列与第一列相同,表示一个完整的闭合图形。
对图形A 先逆时针旋转3π4,然后向上移动30,再向右移动20,并绘制移动前后的图形。
Table 1. Vertex coordinates of letter A 表1. 字母A 的顶点坐标x 0 4 6 10 8 5 3.5 6.1 6.5 3.2 2 0 y141411664.54.5解:构造刚体矩阵0461085 3.5 6.1 6.5 3.22001414001166 4.5 4.500111*********X= , 旋转矩阵3π3πcos sin 0443π3πsin cos 044001R −=及平移矩阵10200130001M = 。
Open Access杨威 等在MATLAB 的M 文件编辑器中编写程序l1.m % 刚体的平面运动 close allX=[0,4,6,10,8,5,3.5,6.1,6.5,3.2,2,0;0,14,14,0,0,11,6,6,4.5,4.5,0,0;ones(1,12)]; % 构造原刚体矩阵 M=[1,0,20;0,1,30;0,0,1]; %构造平移转矩阵 R=[cos(3*pi/4),-sin(3*pi/4),0;sin(3*pi/4),cos(3*pi/4),0;0,0,1]; %构造旋转矩阵Y3=M*R*X; %通过线性变换计算移动后的刚体矩阵 plot(X(1,:),X(2,:)); % 绘制原来刚体 hold on axis equalfill(Y3(1,:),Y3(2,:),'black'); % 绘制旋转及平移后刚体 grid on hold off在MATLAB 命令窗口中输入:l1 绘制图形如图1所示。
Figure 1. Letter A before and after moving 图1. 字母A 移动前后图形3. 情报检索现代情报检索技术是在矩阵理论的基础上发展起来的。
情报中心的数据库中存放着大量文件,我们希望从中搜索到与自己特定关键词相匹配的文件。
假设数据库中包含了n 个文件,而搜索所用的关键词有m 个,把关键词排序,我们就可以把数据库表示为m × n 矩阵A ,称矩阵A 为搜索矩阵。
若第i 个关35302520151050-10 -5 0 5 10 15 20 25 30杨威 等键词出现在第j 个文件中,则矩阵A 的第i 行第j 列元素为1,否则为0。
用于搜索的关键词清单可用m 维列向量x 表示,称为关键词搜索向量。
如果关键词清单中第i 个关键词在搜索列中出现,则x 的第i 个元素就为1,否则就为0。
当确定了搜索矩阵A 和搜索向量x 后,进行线性变换运算:T y A x =,其中向量y 即为检索结果[1]。
例2. 若数据库包含以下四个书名:线性代数,线性代数及其应用,线性代数与解析几何,矩阵代数及其应用。
而有五个搜索关键词:几何,代数,线性,矩阵,应用。
请写出搜索矩阵A 。
如果某读者输入的关键词为“代数,矩阵”,请写出关键词搜索向量x ,并计算搜索结果向量y ,最后说明搜索结果向量的含义。
解:当第i 个关键词出现在第j 本书名上时,矩阵A 的元素i j a 就等于1,否则就等于0。
表2给出了搜索矩阵构造表。
Table 2. Search matrix table of Information retrieval 表2. 情报检索搜索矩阵表关键词 书线性代数线性代数及其应用线性代数与解析几何矩阵代数及其应用几何 0 0 1 0 代数 1 1 1 1 线性 1 1 1 0 矩阵 0 0 0 1 应用11根据表2得搜索矩阵为00101111111000010101=A ,关键词搜索向量为01010=x ,用MATLAB 计算搜索结果向量T y A x =。
在MATLAB 命令窗口输入:A=[0,0,1,0;1,1,1,1;1,1,1,0;0,0,0,1;0,1,0,1] x=[0;1;0;1;0] y=A'*x 计算结果为: y = 1 1 1 2y 的各个分量表示各书与关键词搜索向量x 的匹配程度,即y 的第k 个分量表示第k 本书所含关键词的个数,y 的第四个分量是2,说明第四本书包含了两个关键词,故第四本数匹配程度最高。
4. 细菌转换人口迁移问题、基因突变问题、细菌转换问题等都属于线性代数的同一类应用实例,此类问题的解杨威 等决方法是先构造转换矩阵,然后根据相似对角化来求矩阵的高次幂,最后利用MATLAB 软件计算和分析结果[1]。
例3. 李博士培养了一罐细菌,在这个罐子里存放着A 、B 、C 三类不同种类的细菌,最开始A 、B 、C 三种细菌分别有108、2 × 108、3 × 108个。
它们每天都要发生类型转化,转化情况如下:A 类细菌一天后有5%的变为B 类细菌、15%的变为C 细菌;B 类细菌一天后有30%的变为A 类细菌、10%的变为C 类细菌;C 类细菌一天后有30%的变为A 类细菌、20%的变为B 类细菌。
请问一周后李博士的A 、B 、C 类细菌各有多少个?随着时间的增加,细菌数量会不会保持一个稳定状态?解:表3给出了第n 天与第n + 1天三种细菌相互变换情况。
Table 3. Table of conversion of three bacteria 表3. 三种细菌相互变换情况表A nB nC n A n +1 0.8A n 0.3B n 0.3C n B n +1 0.05A n 0.6B n 0.2C n C n +10.15A n0.1B n0.5C n用向量n x 来表示第n 天三种细菌的个数,即n n n n A x B C=;用向量1n x +来表示第n +1天三种细菌的个数,即1111n n n n A x B C ++++ = ,那么根据表3有矩阵关系:1110.80.30.30.050.60.20.150.10.5n n n n n n A A B B C C +++ = ,设0.80.30.30.050.60.20.150.10.5P = ,则有:277650x Px P x P x ==== ,其中8011023x =。
在MATLAB 命令窗口输入: p=[0.8,0.3,0.3;0.05,0.6,0.2;0.15,0.1,0.5] x0=10^8*[1;2;3] x7=p^7*x0 计算结果为 x7 =357968750 112555355 1294758957x 的三个元素分别为一周后李博士A 、B 、C 三种细菌数量。