QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 1982|回复: 2
打印 上一主题 下一主题

【美赛必备】 MATLAB 入门教程三:矩阵运算

[复制链接]
字体大小: 正常 放大

2983

主题

142

听众

9762

积分

升级  95.24%

  • TA的每日心情
    开心
    2017-1-9 14:34
  • 签到天数: 272 天

    [LV.8]以坛为家I

    自我介绍
    吃吃吃

    社区QQ达人

    群组乐考无忧

    群组2014国赛优秀论文解析

    群组2016美赛冲刺培训

    群组2016国赛优秀论文解析

    群组2016国赛备战群组

    跳转到指定楼层
    1#
    发表于 2015-12-7 10:07 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    我们还是按套路先从矩阵开始吧!

    输入简单矩阵的最简单的方法是采用直接输入法直接输入的元素用空格或逗号隔开,用“;”表示一行的结束,并用中括号[ ] 将所有元素括起来以形成矩阵
    1. Matlab的变量和函数,其名字的第一个字符必须是字母,后跟任意个字母或数字,但系统只记前19个字符;

    2. Matlab对字体很敏感,一般它都区分大小写,所以a 和A 是两个不同的变量。所有函数名必须小写,inv(A)表示求矩阵A的逆矩阵,但INV(A)将代表一个未定义的函数。

    3. pi表示π (pi就是3.1415926....那个数,显示的不太清楚)

    4. inf表示无穷,例如S=1/0,将得出:S=inf;

    5. NaN是一个与inf有关的而又有不同性质的数,它表示不定数“Not a Number”,并通过计算象inf/ inf或0 / 0 这样的表达式获得;
    复制代码
    矩阵的转置,还是矩阵A
    A=[ 1,2,3;4,5,6;7,8,9 ]
    1. A=[1 2; 3 4]
    2. B=[5 6;7 8]
    3. 比较:A\B和inv(A)*B
    4. 比较:A/B和A*inv(B)
    复制代码
    矩阵的乘方
    矩阵A,标量N,则矩阵A的N次方可表示为:A^N
    如果N 是一个标量,A 是一个方阵,那么A^N 表示A 矩阵的N 次方。如果N 是大于1 的整数,则A^ N 表示A 矩阵重复相乘N -1 次。
    1. eye(n,m):生成n x m 单位矩阵
    2. eye(n,n)将生成一个n x n 的单位矩阵
    复制代码
    运行下面的代码生成一个4阶单位矩阵:
    1. zeros(n,m):生成n x m 的零矩阵
    复制代码
    运行下面的代码生成一个3行4列的零矩阵:
    1. ones(n,m):生成n x m 的各个元素都为1的矩阵
    复制代码
    继续,我们喜欢的另一种矩阵就是对角矩阵是吧,现在来定义它,函数名字:“diag()”
    diag([a1,a2,…,an]):生成以a1,a2,…,an 为对角元的对角矩阵
    语法:diag(v,k),这里,k是远离主对角线的列数,正数是向上远离,负数是向下,如果你不写,默认的就是0

    运行下面两段代码,输入"a"回车看能产生什么结果:
    1. 如果A是n x n 阶矩阵,满足的n 个值即为矩阵A的特征值
    2. 函数名字:“eig()” (|A-λI|)
    3. 运行该命令,将得出关于特征值的列向量。如果A 是一个实对称矩阵,那么特征值将是实数。但是,如果A 不是对称阵,那么特征值将往往出现复数。
    复制代码
    特征值和特征向量可以用下列双赋值语句获得:
    1. size(A):检查矩阵A的维数
    2. length(A):检查矩阵A的长度
    复制代码
    如果你想定义一个行向量a=[1 2 3 4 5],除了用第一矩阵的方法来做,可以用更简单的方法,运行如下代码
    1. squrm()
    2. expm()
    3. logm()
    复制代码
    分别为求矩阵所有元素的开方,指数,自然对数运算,这个就不多说了,把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。

    下一期是控制流!! 这名字威风啊!!




    2bb87ca42ab8aa4eb873fafef9e1a963.jpg (91.7 KB, 下载次数: 270)

    2bb87ca42ab8aa4eb873fafef9e1a963.jpg

    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    14

    主题

    10

    听众

    1262

    积分

    升级  26.2%

  • TA的每日心情
    开心
    2017-11-9 21:17
  • 签到天数: 198 天

    [LV.7]常住居民III

    网络挑战赛参赛者

    邮箱绑定达人

    群组大学生软件交流群

    群组2016国赛备战群组

    回复

    使用道具 举报

    14

    主题

    10

    听众

    1262

    积分

    升级  26.2%

  • TA的每日心情
    开心
    2017-11-9 21:17
  • 签到天数: 198 天

    [LV.7]常住居民III

    网络挑战赛参赛者

    邮箱绑定达人

    群组大学生软件交流群

    群组2016国赛备战群组

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2025-8-6 20:21 , Processed in 0.338400 second(s), 64 queries .

    回顶部