您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > Matlab在线性代数中的应用
Matlab在线性代数中的应用目标要求•会给矩阵赋值•会进行矩阵的基本运算,包括:加、减、数乘,乘法,转置,幂等运算•会用命令inv计算矩阵的逆•会用命令det计算行列式;Matlab的特点与功能Matlab符号计算功能Matlab和著名的符号计算语言Maple相结合Matlab的编程功能Matlab具有程序结构控制、函数调用、数据结构、输入输出、面向对象等程序语言特征,而且简单易学、编程效率高。通过Matlab进行编程完成特定的任务Matlab的绘图功能Matlab提供丰富的绘图命令,很方便实现数据的可视化计算极限limit(f,x,a):计算limit(f,a):当默认变量趋向于a时的极限limit(f):计算a=0时的极限limit(f,x,a,'right'):计算右极限limit(f,x,a,'left'):计算左极限lim()xafx例:计算,hxhxLh)ln()ln(lim0nnnxM1limsymsxhn;L=limit((log(x+h)-log(x))/h,h,0)M=limit((1-x/n)^n,n,inf)计算导数g=diff(f,v):求符号表达式f关于v的导数g=diff(f):求符号表达式f关于默认变量的导数g=diff(f,v,n):求f关于v的n阶导数diffsymsx;f=sin(x)+3*x^2;g=diff(f,x)计算积分int(f,v,a,b):计算定积分int(f,a,b):计算关于默认变量的定积分int(f,v):计算不定积分int(f):计算关于默认变量的不定积分symsx;f=(x^2+1)/(x^2-2*x+2)^2;I=int(f,x)K=int(exp(-x^2),x,0,inf)()bafvdv()fvdv例:计算和2221(22)xIdxxx20xKedx例:绘制等高线meshc空间曲面作图举例(meshc)[X,Y]=meshgrid(-8:0.5:8);r=sqrt(X.^2+Y.^2)+eps;Z=sin(r)./r;meshc(X,Y,Z)[X,Y]=meshgrid(-8:0.5:8);r=sqrt(X.^2+Y.^2)+eps;Z=sin(r)./r;surf(X,Y,Z)1矩阵赋值•赋值语句一般形式变量=表达式(或数)如:输入a=[123;456;789]显示a=123456789输入x=[-1.2sqrt(3)(1+2+3)/5*4]显示x=-1.20001.73214.8000规则:矩阵元素放在方括号中,元素之间以空格或逗号分隔,不同行以分号分隔,语句结尾用回车或逗号将显示结果•基本赋值矩阵ones(m,n),zero(m,n),magic(n),eye(n),rand(m,n),round(A)如:输入f1=ones(3,2)显示f1=111111输入f2=zero(2,3)显示f2=0000001矩阵赋值输入f3=magic(3)显示f3=816357492输入f4=eye(2)显示f4=1001单个元素的引用例:A(2,3)矩阵元素的引用多个元素的引用:冒号的特殊用法利用小括弧和元素所在的位置(下标)x(i):向量x中的第i个元素A(i,j):矩阵A中的第i行,第j列元素例:x=1:2:5y=1:2:6例:x=2:1:5y=2:5例:x=3:2:1产生一个由等差序列组成的向量;a是首项,b是公差,c确定最后一项;若b=1,则b可以省略a:b:c例:x(1:3)A(3,1:3)矩阵元素的引用A(i:j,m:n)表示由矩阵A的第i到第j行和第m到第n列交叉线上的元素组成的子矩阵可利用冒号提取矩阵的整行或整列例:A(1,:)A(:,1:3)A(:,:)2矩阵的基本运算•矩阵算术运算书写格式与普通算术相同,包括加、减、乘、除。可用括号规定运算的优先级。•Matlab将矩阵加、减、乘的程序编为内部函数,只要用+,-*做运算符号就包含阶数检查和执行运算的全过程–两相加矩阵有一个是标量时,Matlab承认算式有效,自动把标量扩展为同阶等元素矩阵如:键入X=[-101];Y=X-1得Y=-2-10•矩阵除法–矩阵求逆inv(A),如果det(A)等于或很接近零,Matlab会提示出错–“左除”与“右除”,左乘或右乘矩阵的逆,A\或/AA\B==A的逆左乘B==inv(A)*BB/A==A的逆右乘B==B*inv(A)2矩阵的基本运算•幂运算^A*A*A=A^5•转置´理论学习中,A的转置表示为AT,在Matlab中用“´”表示3行列式与方程组求解•相关命令det(A),计算矩阵A的行列式B(:,i)=b,把向量b赋给矩阵B的第i行A(i,j),引用矩阵A中第i行j列的元素[A,eye(5)],创建5×10矩阵,前5列为A,后5列为单位矩阵symsx,定义x为符号变量3行列式与方程组求解•逆矩阵各种求法:clearA=[-7,-2,-6,4,6;1,3,-6,3,11;3,-11,9,5,-2;-3,0,-2,9,-3;7,30,-18,11,4];%1.命令法:An1=inv(A)%2.幂运算法:An2=A^-1%3.右除法:An3=eye(5)/A%eye(5)为5阶单位矩阵%4.左除法:An4=A\eye(5)思考:如何用求逆阵或初等变换法解方程组?3行列式与方程组求解%求解符号行列式方程clear%清除各种变量symsx%定义x为符号变量A=[3,2,1,1;3,2,2-x^2,1;5,1,3,2;7-x^2,1,3,2]D=det(A)%计算含符号变量矩阵A的行列式Df=factor(D)%对行列式D进行因式分解%从因式分解的结果,可以看出方程的解X=solve(D)%求方程“D=0”的解2232113221051327132xx解方程:平面上线性变换的几何意义•例设x为二维平面上第一象限中的一个单位方块,其四个顶点的数据可写成把不同的A矩阵作用于此组数据,可以得到多种多样的结果yi=Ai*x。用程序ag911进行变换计算,并画出x及yi图形:x[0,1,1,0;0,0,1,1];subplot(2,3,1),fill([x(1,:),0],[x(2,:),0],'r')A1[1,0;0,1],y1A1*xsubplot(2,3,2),fill([y1(1,:),0],[y1(2,:),0],'g')…01100011x图9.1对单元方格进行几种线性变换后生成的图形人口迁徙问题例假设一个城市的总人口数是固定不变,但人口的分布情况变化如下:每年都有5%的市区居民搬到郊区;而有15%的郊区居民搬到市区。若开始有700000人口居住在市区,300000人口居住在郊区。请利用分析:(1)10年后市区和郊区的人口各是多少?(2)30年后、50年后市区和郊区的人口各是多少?(3)分析(2)中数据相似的原因。解:这个问题可以用矩阵乘法来描述。令人口变量其中为市区人口所占比例,为郊区人口所占比例。在n+1年的人口分布状态为:用矩阵乘法可写成:,nnnxyXnxny110.950.150.050.85nnnnnnxxyyxy1110.950.150.050.85nnnnnnxxyyXAX•开始市区和郊区的人口数为可以得到n年后市区和郊区的人口分布:因此10年后的人口可用程序计算如下:A=[0.95,0.15;0.05,0.85];X0=[700000;300000];X10=A^10*X0程序运行的结果为:市区和郊区人口数约为:744630和255370。000700000,300000xyX2nnn-1n-20X=AX=AX==AX1010107.44637446301.0005,2.5537255370xeyX无限增加时间n,市区和郊区人口之比将趋向一组常数0.25/0.75。为了弄清为什么它趋向于一个稳态值,可以将A对角化。令,其中Λ为对角矩阵,则有对角矩阵的幂次可以化为元素的幂次所以,它就很容易计算。-1A=pΛpkkk-1-1-1-1A=pΛppΛppΛppΛp00kk-1kx=Ax=pΛpx1122kkkkΛ程序la24%分析n年后城市人口分布A=[0.95,0.15;0.05,0.85];X0=[700000;300000];[P,lamda]=eig(A);symsn%定义符号变量nXn=P*lamda.^n*inv(P)*X0%.^n对矩阵lamda中所有元素进行幂运算•计算结果为:•随n增大后一项(4/5)^n趋近于零。75000050000*4/5^25000050000*4/5^nnXn
本文标题:Matlab在线性代数中的应用
链接地址:https://www.777doc.com/doc-3382933 .html