MATLAB符号运算
- 格式:ppt
- 大小:778.00 KB
- 文档页数:71
3.1 算术符号操作命令+、-、*、.*、\、.\、/、./、^、.^、’、.’功能符号矩阵的算术操作用法如下:A+B、A-B 符号阵列的加法与减法。
若A与B为同型阵列时,A+B、A-B分别对对应分量进行加减;若A与B中至少有一个为标量,则把标量扩大为与另外一个同型的阵列,再按对应的分量进行加减。
A*B 符号矩阵乘法。
A*B为线性代数中定义的矩阵乘法。
按乘法定义要求必须有矩阵A的列数等于矩阵B的行数。
即:若A n*k*B k*m=(a ij)n*k.*(b ij)k*m=C n*m=(c ij)n*m,则,i=1,2,…,n;j=1,2,…,m。
或者至少有一个为标量时,方可进行乘法操作,否则将返回一出错信息。
A.*B 符号数组的乘法。
A.*B为按参量A与B对应的分量进行相乘。
A与B必须为同型阵列,或至少有一个为标量。
即:A n*m.*B n*m=(a ij)n*m.*(b ij)n*m=C n*m=(c ij)n*m,则c ij= a ij* b ij,i=1,2,…,n;j=1,2,…,m。
A\B 矩阵的左除法。
X=A\B为符号线性方程组A*X=B的解。
我们指出的是,A\B近似地等于inv(A)*B。
若X不存在或者不唯一,则产生一警告信息。
矩阵A可以是矩形矩阵(即非正方形矩阵),但此时要求方程组必须是相容的。
A.\B 数组的左除法。
A.\B为按对应的分量进行相除。
若A与B为同型阵列时,A n*m.\B n*m=(a ij)n*m.\(b ij)n*m=C n*m=(c ij)n*m,则c ij= a ij\ b ij,i=1,2,…,n;j=1,2,…,m。
若若A与B中至少有一个为标量,则把标量扩大为与另外一个同型的阵列,再按对应的分量进行操作。
A/B 矩阵的右除法。
X=B/A为符号线性方程组X*A=B的解。
我们指出的是,B/A粗略地等于B*inv(A)。
若X不存在或者不唯一,则产生一警告信息。
MATLAB符号运算前⾔有时候,你可能会遇到较复杂的⽅程(组),希望⽤MATLAB来求解。
MATLAB的符号运算正好可⽤于求解⽅程(组)。
此外,它还有许多其他功能。
例如,展开和简化、因式分解以及微积分运算等。
MATLAB的符号运算虽然是数值运算的补充,但是它仍然是科学计算研究中不可替代的重要内容。
与数值运算相⽐,符号运算不需要预先对变量赋值,其运算结果以标准的符号形式表达。
⽐如说计算sin(π),数值运算的结果是1.2246e-16,符号运算的结果是0。
前者是近似的,后者是精确的。
正⽂MATLAB符号运算功能⾮常强⼤,本⽂只介绍⼤部分常⽤的符号运算功能。
注:本⽂代码的运⾏环境是MATLAB R2016b。
1. 创建符号数、符号变量和符号矩阵这⼀步骤是符号运算的第⼀步,后⾯的步骤都是在此基础上进⾏的。
%创建符号数 (只能⽤sym函数)s0 = 1 / sym(7) %符号数,不适合⼤型符号数s1 = sym('1/7') %符号数s2 = sym('3 + 4i') %符号复数%创建符号变量 (sym函数和syms函数都⾏)%--sym函数s3 = sym('x') %符号变量%--syms函数syms a b c %创建多个符号变量,值为本⾝syms(sym('[d e; e d]')) %⽤已存在的符号变量矩阵创建多个符号变量%创建符号矩阵 (sym函数和syms函数都⾏)s4 = sym('[2 5 6; 9 8 6]') %符号数矩阵s5 = sym('x', [2 3]) %符号变量矩阵,矩阵内的元素不会被创建为符号变量A = [a b c; c b a] %⽤已存在的符号变量创建符号变量矩阵% syms A B [2 3] %仅2017及以上版本⽀持,同时创建多个符号矩阵代码运⾏结果如下。
可以看到s5是⼀个2x3的符号变量矩阵,但矩阵内元素不会被创建成符号变量。
3.1 算术符号操作命令+、-、*、.*、\、.\、/、./、^、.^、’、.’功能符号矩阵的算术操作用法如下:A+B、A-B 符号阵列的加法与减法。
若A与B为同型阵列时,A+B、A-B分别对对应分量进行加减;若A与B中至少有一个为标量,则把标量扩大为与另外一个同型的阵列,再按对应的分量进行加减。
A*B 符号矩阵乘法。
A*B为线性代数中定义的矩阵乘法。
按乘法定义要求必须有矩阵A的列数等于矩阵B的行数。
即:若A n*k*B k*m=(a ij)n*k.*(b ij)k*m=C n*m=(c ij)n*m,则,i=1,2,…,n;j=1,2,…,m。
或者至少有一个为标量时,方可进行乘法操作,否则将返回一出错信息。
A.*B 符号数组的乘法。
A.*B为按参量A与B对应的分量进行相乘。
A与B必须为同型阵列,或至少有一个为标量。
即:A n*m.*B n*m=(a ij)n*m.*(b ij)n*m=C n*m=(c ij)n*m,则c ij= a ij* b ij,i=1,2,…,n;j=1,2,…,m。
A\B 矩阵的左除法。
X=A\B为符号线性方程组A*X=B的解。
我们指出的是,A\B近似地等于inv(A)*B。
若X不存在或者不唯一,则产生一警告信息。
矩阵A可以是矩形矩阵(即非正方形矩阵),但此时要求方程组必须是相容的。
A.\B 数组的左除法。
A.\B为按对应的分量进行相除。
若A与B为同型阵列时,A n*m.\B n*m=(a ij)n*m.\(b ij)n*m=C n*m=(c ij)n*m,则c ij= a ij\ b ij,i=1,2,…,n;j=1,2,…,m。
若若A与B中至少有一个为标量,则把标量扩大为与另外一个同型的阵列,再按对应的分量进行操作。
A/B 矩阵的右除法。
X=B/A为符号线性方程组X*A=B的解。
我们指出的是,B/A粗略地等于B*inv(A)。
若X不存在或者不唯一,则产生一警告信息。