- 在线时间
- 677 小时
- 最后登录
- 2021-3-24
- 注册时间
- 2015-11-19
- 听众数
- 142
- 收听数
- 1
- 能力
- 140 分
- 体力
- 13629 点
- 威望
- 11 点
- 阅读权限
- 200
- 积分
- 9762
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 3541
- 主题
- 2983
- 精华
- 95
- 分享
- 0
- 好友
- 404
升级   95.24% TA的每日心情 | 开心 2017-1-9 14:34 |
---|
签到天数: 272 天 [LV.8]以坛为家I
- 自我介绍
- 吃吃吃
 群组: 乐考无忧 群组: 2014国赛优秀论文解析 群组: 2016美赛冲刺培训 群组: 2016国赛优秀论文解析 群组: 2016国赛备战群组 |
我们还是按套路先从矩阵开始吧!
输入简单矩阵的最简单的方法是采用直接输入法。直接输入的元素用空格或逗号隔开,用“;”表示一行的结束,并用中括号[ ] 将所有元素括起来以形成矩阵。- Matlab的变量和函数,其名字的第一个字符必须是字母,后跟任意个字母或数字,但系统只记前19个字符;
- Matlab对字体很敏感,一般它都区分大小写,所以a 和A 是两个不同的变量。所有函数名必须小写,inv(A)表示求矩阵A的逆矩阵,但INV(A)将代表一个未定义的函数。
- pi表示π (pi就是3.1415926....那个数,显示的不太清楚)
- inf表示无穷,例如S=1/0,将得出:S=inf;
- NaN是一个与inf有关的而又有不同性质的数,它表示不定数“Not a Number”,并通过计算象inf/ inf或0 / 0 这样的表达式获得;
复制代码 矩阵的转置,还是矩阵A
- A=[1 2; 3 4]
- B=[5 6;7 8]
- 比较:A\B和inv(A)*B
- 比较:A/B和A*inv(B)
复制代码 矩阵的乘方
矩阵A,标量N,则矩阵A的N次方可表示为:A^N
如果N 是一个标量,A 是一个方阵,那么A^N 表示A 矩阵的N 次方。如果N 是大于1 的整数,则A^ N 表示A 矩阵重复相乘N -1 次。- eye(n,m):生成n x m 单位矩阵
- eye(n,n)将生成一个n x n 的单位矩阵
复制代码 运行下面的代码生成一个4阶单位矩阵:运行下面的代码生成一个3行4列的零矩阵:- ones(n,m):生成n x m 的各个元素都为1的矩阵
复制代码 继续,我们喜欢的另一种矩阵就是对角矩阵是吧,现在来定义它,函数名字:“diag()”
diag([a1,a2,…,an]):生成以a1,a2,…,an 为对角元的对角矩阵
语法:diag(v,k),这里,k是远离主对角线的列数,正数是向上远离,负数是向下,如果你不写,默认的就是0
运行下面两段代码,输入"a"回车看能产生什么结果:- 如果A是n x n 阶矩阵,满足的n 个值即为矩阵A的特征值
- 函数名字:“eig()” (|A-λI|)
- 运行该命令,将得出关于特征值的列向量。如果A 是一个实对称矩阵,那么特征值将是实数。但是,如果A 不是对称阵,那么特征值将往往出现复数。
复制代码 特征值和特征向量可以用下列双赋值语句获得:- size(A):检查矩阵A的维数
- length(A):检查矩阵A的长度
复制代码 如果你想定义一个行向量a=[1 2 3 4 5],除了用第一矩阵的方法来做,可以用更简单的方法,运行如下代码分别为求矩阵所有元素的开方,指数,自然对数运算,这个就不多说了,把A搞到括号里面看结果就好了。
第二批:
det()
eig()
inv()
poly()
rank()
分别为,求矩阵的行列式,特征值和特征向量,求逆,求特征多项式系数,求秩。有的重复介绍了一下,说明重复的内容灰常重要哦!~~
分别简单说一下:
第一个就不多说了,直接把A弄到括号里回车就可以了。
第二个的语法:如果按a=eig(A) 来写,则a为G的所有特征值(包括重根)组成的一个列向量,如果按[a b]=eig(A)来写,则a为A的所有特征向量组成的矩阵,b为A的所有特征值组成的对角矩阵。可以去尝试一下,运行这两个代码,看能产生什么结果。
第三个也不必多说,还是把A塞进去就好了,但是,如果A是个不可逆(奇异)的矩阵,呵呵,你可以自己尝试一下MATLAB会有什么反应。
第四个还是把A塞进去就好了,但是,它的结果是一个行向量,从左到右的数字依次为特征多项式从高次到低次的系数。
第五个就不多说了,得到数字就是矩阵的秩。常用的就这么多,还有一些关于矩阵信息的函数就不多说了,去查手册吧!!
下面来介绍一些关于数值和矩阵的一些基本的运算,注意,这里虽然很基础,但有几个地方需要特别注意 。
我们先来计算一个表达式的值,以便让大家对一些常用的运算函数有一个了解,我们要计算的数学表达式:
A=2*exp(2*pi)*asin(pi/4)+1+sqrt(3^2+4^2)+abs(cos(pi/6))
运算规则和顺序我们平时书写的一致,这里就不多说了,一些数学计算的符号和函数用到的可以去查手册,这里简单介绍几个。
如果我们想定义一个复数变量,可以直接写:c=a*i+b
这里i是单位复述变量,也可以用字母j
求复数的模和相角的函数分别是“abs()”和“anlge()”直接在括号里输入复数或名字就可以了
关于对数和指数
函数log(n)表示的是n的自然对数,log2()与log10(),分别表示以2和10为低的对数
如果你想算e和2的3次方也可以用函数来写,分别为:exp(3)和pow2(3)
关于数字运算就说这么多吧,一些不知道的运算符号可以去查查相关的手册,但这里有一点要说明的是:
在你给一个变量赋值的时候,变量字母的大写和小写表示不同的变量,是不一样的,一些书里建议的是:变量尽量用小写字母或小写的字符串来定义,并且起名字的时候尽量让这个名字有一定的意义,可以增加程序的可读性。
终于写完矩阵啦,其实matlab里内容远比我写的多,谁叫他的中文名字是《矩阵实验室》呢,多霸气啊!!
有矩阵就有MTALBA现在哪都有矩阵,所以哪都有MATLAB。
下一期是控制流!! 这名字威风啊!!
|
zan
|