《Matlab在线性代数中的应用.ppt》由会员分享,可在线阅读,更多相关《Matlab在线性代数中的应用.ppt(24页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、目标要求会给矩阵赋值会进行矩阵的基本运算,包括:加、减、数乘,乘法,转置,幂等运算会用命令inv计算矩阵的逆会用命令det计算行列式;Matlab 的特点与功能的特点与功能q Matlab 符号计算功能符号计算功能Matlab 和著名的符号计算语言 Maple 相结合q Matlab 的编程功能的编程功能Matlab具有程序结构控制、函数调用、数据结构、输入输出、面向对象等程序语言特征,而且简单易学、编程效率高。通过 Matlab 进行编程完成特定的任务q Matlab 的绘图功能的绘图功能Matlab提供丰富的绘图命令,很方便实现数据的可视化计算极限计算极限limit(f,x,a): 计算计
2、算limit(f,a): 当当默认变量默认变量趋向于趋向于 a 时的极限时的极限limit(f): 计算计算 a=0 时的极限时的极限limit(f,x,a,right): 计算右极限计算右极限limit(f,x,a,left): 计算左极限计算左极限lim( )xaf x例:计算例:计算 ,hxhxLh)ln()ln(lim0nnnxM1lim syms x h n; 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):求符
3、号表达式求符号表达式 f 关于关于默认变量默认变量的导数的导数g=diff(f,v,n):求求 f 关于关于 v 的的 n 阶导数阶导数q diff syms x; f=sin(x)+3*x2; g=diff(f,x)计算计算积分积分int(f,v,a,b): 计算定积分计算定积分int(f,a,b): 计算关于计算关于默认变量默认变量的定积分的定积分int(f,v): 计算不定积分计算不定积分int(f): 计算关于计算关于默认变量默认变量的不定积分的不定积分 syms x; f=(x2+1)/(x2-2*x+2)2; I=int(f,x) K=int(exp(-x2),x,0,inf)(
4、)baf v dv ( )f v dv 例:计算 和2221(22)xIdxxx 20 xKedx 例:绘制等高线 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=1 2 3; 4 5 6; 7 8 9 显示a = 1 2 3 4 5 6 7 8 9
5、 输入x=-1.2 sqrt(3) (1+2+3)/5*4 显示x=-1.2000 1.7321 4.8000规则:矩阵元素放在方括号中,元素之间以空格或逗号分规则:矩阵元素放在方括号中,元素之间以空格或逗号分隔,不同行以分号分隔,语句结尾用回车或逗号将显示结隔,不同行以分号分隔,语句结尾用回车或逗号将显示结果果 基本赋值矩阵ones(m,n), zero(m,n), magic(n), eye(n), rand(m,n), round(A)如:输入 f1=ones(3, 2) 显示 f1= 1 1 1 1 1 1 输入 f2=zero(2, 3) 显示 f2= 0 0 0 0 0 01 矩阵
6、赋值 输入 f3=magic(3) 显示 f3= 8 1 6 3 5 7 4 9 2 输入 f4=eye(2) 显示 f4= 1 0 0 1q 单个元素的引用单个元素的引用例:例: A(2,3)矩阵元素的引用矩阵元素的引用q 多个元素的引用:冒号的特殊用法多个元素的引用:冒号的特殊用法利用小括弧和元素所在的位置利用小括弧和元素所在的位置(下标下标)x ( i ) :向量向量 x 中的第中的第 i 个元素个元素A ( i, j ) :矩阵矩阵 A 中的第中的第 i 行,第行,第 j 列元素列元素例:例: x=1:2:5 y=1:2:6例:例: x=2:1:5 y=2:5例:例: x=3:2:1产
7、生一个由产生一个由等差序列等差序列组成的向量;组成的向量; 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 矩阵的基本运算 矩阵算术运算书写格式与普通算术相同,包括加、
8、减、乘、矩阵算术运算书写格式与普通算术相同,包括加、减、乘、除。可用括号规定运算的优先级。除。可用括号规定运算的优先级。 Matlab将矩阵加、减、乘的程序编为内部函数,只要用将矩阵加、减、乘的程序编为内部函数,只要用+,-*做运算符号就包含阶数检查和执行运算的全过程做运算符号就包含阶数检查和执行运算的全过程 两相加矩阵有一个是标量时,两相加矩阵有一个是标量时,Matlab承认算式有效,自动把标量扩展承认算式有效,自动把标量扩展为同阶等元素矩阵为同阶等元素矩阵 如:键入如:键入 X=-1 0 1; Y=X-1 得得 Y= -2 -1 0 矩阵除法矩阵除法 矩阵求逆矩阵求逆 inv(A),如果如
9、果det(A)等于或很接近零,等于或很接近零,Matlab会提示出错会提示出错 “左除左除”与与“右除右除”,左乘或右乘矩阵的逆,左乘或右乘矩阵的逆,A或或/A AB A 的逆左乘的逆左乘 B = inv(A)*BB/A A 的逆右乘的逆右乘 B B*inv(A)2 矩阵的基本运算 幂运算幂运算 A*A*A=A5 转置转置 理论学习中,A的转置表示为AT,在Matlab中用“”表示3 行列式与方程组求解 相关命令相关命令det(A), 计算矩阵A的行列式B(: , i)=b, 把向量b赋给矩阵B的第i行A(i, j), 引用矩阵A中第i行j列的元素A, eye(5), 创建510矩阵,前5列为
10、A,后5列为单位矩阵syms x, 定义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=Aeye(5)思考:如何用求逆阵或初等变换法解方程组?思考:如何用求逆阵或初等变换法解方程组?3 行列式与方程组求解% 求解符号行列式方程求解符号行列式方程clear % 清除各种变量清除各种变量s
11、yms x % 定义定义x为符号变量为符号变量A=3,2,1,1;3,2,2-x2,1;5,1,3,2;7-x2,1,3,2 D=det(A) % 计算含符号变量矩阵计算含符号变量矩阵A的行列式的行列式Df=factor(D) % 对行列式对行列式D进行因式分解进行因式分解 % 从因式分解的结果,可以看出方程的解从因式分解的结果,可以看出方程的解X=solve(D) % 求方程求方程“D0”的解的解2232113221051327132xx 解方程:平面上线性变换的几何意义 例 设x为二维平面上第一象限中的一个单位方块,其四个顶点的数据可写成把不同的A矩阵作用于此组数据,可以得到多种多样的结果
12、yi=Ai*x。用程序ag911进行变换计算,并画出x及yi图形: x0,1,1,0;0,0,1,1; subplot(2,3,1), fill(x(1,:),0,x(2,:),0,r)A11,0;0,1, y1A1*xsubplot(2,3,2), fill(y1(1,:),0,y1(2,:),0,g) 01100011x人口迁徙问题 例 假设一个城市的总人口数是固定不变,但人口的分布情况变化如下:每年都有5的市区居民搬到郊区;而有15的郊区居民搬到市区。若开始有700000人口居住在市区,300000人口居住在郊区。请利用分析:(1)10年后市区和郊区的人口各是多少?(2)30年后、50年
13、后市区和郊区的人口各是多少?(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=A10*X0 程序运行的结果为:市区和郊区人口数约为:74463
14、0和255370。 000700000,300000 xyX2nnn-1n-20X = AX= A X= A X1010107.44637446301.0005,2.5537255370 xeyX 无限增加时间n,市区和郊区人口之比将趋向一组常数0.25/0.75。为了弄清为什么它趋向于一个稳态值,可以将A对角化。令 ,其中为对角矩阵,则有对角矩阵的幂次可以化为元素的幂次 所以,它就很容易计算。 -1A = ppkkk-1-1-1-1A = pp ppppp p 00kk-1kx= A x = p p x1122kkk k程序la24% 分析n年后城市人口分布A=0.95,0.15;0.05,0.85;X0=700000;300000;P,lamda=eig(A);syms n % 定义符号变量nXn=P*lamda.n*inv(P)*X0 % .n对矩阵lamda中所有元素进行幂运算计算结果为:随n增大后一项(4/5)n趋近于零。75000050000*4/525000050000*4/5nnXn结束结束