230 likes | 377 Views
线性代数机算与应用. 李仁先 2014/9/3. 内容简介. MATLAB 简介 线性代数机算. MATLAB 简介. MAT RIX LAB ORATORY 简介. 工作空间. 提示符. 命令窗. 操作历史. 打开 MATLAB. MATLAB 工作模式. 命令模式 在命令窗输入一行命令 , 让系统立即执行 . 适应于命令比较少的情况 . M 文件 把命令存储为 M 文件 , 然后让 MATLAB 执行该 M 文件. MATLAB 帮助系统. 输入 help 输入 help+ 子目录名 , 如 help sym
E N D
线性代数机算与应用 李仁先 2014/9/3
内容简介 • MATLAB简介 • 线性代数机算 2014/9/3
MATRIX LABORATORY简介 工作空间 提示符 命令窗 操作历史 打开MATLAB 2014/9/3
MATLAB工作模式 • 命令模式 在命令窗输入一行命令,让系统立即执行.适应于命令比较少的情况. • M文件 把命令存储为M文件,然后让MATLAB执行该M文件. 2014/9/3
MATLAB帮助系统 • 输入help • 输入help+子目录名,如help sym • 输入help+函数名,如help rref • help菜单 • lookfor支持模糊查找 2014/9/3
给矩阵赋值——直接赋值 • 如:A=[1 2 3;4 5 6;7 8 9] 或 A=[1,2,3;4,5,6;7,8,9] • 行元素用逗号或空格分开,行以分号隔开 • 不想显示结果则以分号结尾 • 变量的元素用()中的数字表示,如A(2,3) • 给变量中的元素单独赋值,如A(3,2)=0 • 全行(列)赋值,如:A(3,:)=[5,4,3] 2014/9/3
给矩阵赋值——基本矩阵 • 全0矩阵:zeros(m,n) • 全1矩阵:ones(m,n) • 随机矩阵:rand(m,n) • 随机整数矩阵:如:round(k*rand(m,n)) • 单位矩阵:eye(n) • length:一维矩阵的长度 • size:多维矩阵的各维长度 2014/9/3
矩阵的基本运算 • 加减:A+B • 数乘:k*A • 转置:A’ • 乘法:A*B • 幂:A^n • 左除:A\B • 右除:A/B 2014/9/3
矩阵的逆 设A为n阶方阵,则可由下面几种方法求 • A^(-1) • inv(A) • A\eye(n) • U=rref([A,eye(n)]);U(:,n+1,2*n) 2014/9/3
方阵的行列式 2014/9/3
矩阵的秩 2014/9/3
矩阵基本运算示例 已知 求: 解: A=[1 2 3;4 5 6],B=[2 4 0;1 3 5], D=[1 4 7;8 5 2;3 6 0] A+B,A-B,A*B,A'*B,A*B',D^5,D\A,D\A',A/D, inv(D),det(D),rank(D) 2014/9/3
把矩阵变为最简行阶梯形矩阵 • 如:A=round(9*rand(4,5)) [U0,ip]=rref(A) 2014/9/3
解方程组的解 • 如求下列方程组的解: 解:A=[1 4 7;8 5 2;3 6 -2];b=[1;3;5] U0=rref([A,b]) ans = 1.0000 0 0 -0.0236 0 1.0000 0 0.7508 0 0 1.0000 -0.2828 2014/9/3
rref:向量组的最大无关组 • 例: 解:A=[1 1 2 3 1;1 3 6 3 1;3 -1 -2 15 3; 1 -5 -10 13 3] [UC,ip]=rref(A);r=length(ip);V=A(:,ip) 2014/9/3
null:齐次线性方程组基础解系 例: 解:A=[1 1 1 1 1;3 2 1 1 -3;0 1 2 2 6;5 4 3 3 -1] z=null(A,’r’) 2014/9/3
左除:非齐次线性方程组的特解 例: 解:A=[1 1 1 1 1;3 2 1 1 -3;0 1 2 2 6;5 4 3 3 -1], b=[7;-2;23;12] x=A\b 2014/9/3
orth:向量组正交规范化 验证方法: 例:把A的列向量正交规范化: 解:A=[1 -1 1 1;1 0 0 -1;0 0 1 -1;0 1 0 1]; B=orth(A) 验证:Q=B’*B 2014/9/3
eig:矩阵的特征值和特征向量 例:求A的特征值和特征向量 解:A=[3 2 4;2 0 2;4 2 3] [V,D]=eig(A) 2014/9/3
eig:二次型标准化 例:化二次型为标准形: 解:A=[1 1 3;1 2 1;3 1 5] [V,D]=eig(A) 2014/9/3
eig:判断二次型的正定性 例:化二次型为标准形: 解:A=[1 1 3;1 2 1;3 1 5] [V,D]=eig(A) if all(D>0) fprintf('二次型正定') else fprintf('二次型非正定') end 2014/9/3