当前位置:   article > 正文

matlab学习报告

matlab学习报告
Matlab学习报告
    Matlab的主要功能有数值分析、数字图像处理、数值和符号计算、数字信号处理、工程与科学绘图、通讯系统设计与仿真、控制系统的设计与仿真、财务与金融工程…… 真的是功能强大。之所以学习MATLAB就是因为它有很多优点:
    (1).高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来;
    (2).具有完备的图形处理功能,实现计算结果和编程的可视化;
    (3).友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握;
    (4).功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等) ,为用户提供了大量方便实用的处理工具等等。

(一)、回顾
    学习Matlab的时间并不长,不是应为它容易学习,而是时间太少,我们只是做一个基础性的了解,在未来的学习生活中还要继续学习。通过这一学期的学习,现在简单回顾一下。

第一讲:简介 
    本章主要介绍MATLAB的一些基本情况,对该软件有了一个整体认识。包括:  MATLAB的功能、发展历史、特点以及安装等。

第二讲:Matlab语言基础   
    了解了数据类型、操作符、基本数学函数、脚本编程、数据类型、操作符。

第三讲:MATLAB  数值运算
    本章介绍的数值计算功能包括:向量和数组,并熟悉了它们之间的运算。

第四讲:MATLAB  符号运算
    了解了符号表达式,符号函数,符号积分,符号微分,符号方程,符号变换等。

第五讲:MATLAB  程序设计
    通过对本章的学习,到达了以下要求:
1).可以编写简单且功能完善的MATLAB 程序,从而解决各类基本问题,逐步掌握MATLAB 的数值计算方法。

2).掌握命令执行方式:
  (1)交互式方式---命令行
  (2)M文件方式---命令文件、函数文件

3).掌握变量和函数的种类。

4).了解程序的调试和优化。

第六讲:MATLAB  数据可视化
    了解matlab的图形对象体系,掌握基本的绘图函数。


(二)、收获
接下来,我就矩阵运算来谈谈这次学习的收获。
1、矩阵的建立
1).直接输入法。具体方法如下:将矩阵的元素用方括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用空格或逗号分隔,不同行的元素之间用分号分隔。
例:A=[1,2,3,;4,5,6;7,8,9]
A =
     1     2     3
     4     5     6
     7     8     9 

2).利用M文件建立矩阵。对于比较大且比较复杂的矩阵,可以为它专门建立一个M文件。下面通过一个简单例子来说明如何利用M文件创建矩阵。
例:利用M文件建立MYMAT矩阵。
具体步骤如下:
  (1) 启动有关编辑程序或MATLAB文本编辑器,并输入待建矩阵:
  (2) 把输入的内容以纯文本方式存盘(设文件名为mymatrix.m)。
  (3) 在MATLAB命令窗口中输入mymatrix,即运行该M文件,就会自动建立一个名为MYMAT的矩阵,可供以后使用。

3).利用冒号表达式建立一个向量。冒号表达式可以产生一个行向量,一般格式是:
e1:e2:e3。其中e1为初始值,e2为步长,e3为终止值。在MATLAB中,还可以用linspace函数产生行向量。其调用格式为:linspace(a,b,n)。其中a和b是生成向量的第一个和最后一个元素,n是元素总数。linspace(a,b,n)与a:(b-a)/(n-1):b等价。

4).建立大矩阵。大矩阵可由方括号中的小矩阵或向量建立起来。

2、矩阵的拆分
1).矩阵元素。
    (1)通过下标引用矩阵的元素。
例:>>  A=[3,5,8,7;6,12,5,9;5,8,9,18;3,8,4,16]:
A =
     3     5     8     7
     6    12     5     9
     5     8     9    18
     3     8     4    16
>> A(3,2)
ans =
     8
    (2)采用矩阵元素的序号来引用矩阵元素。
矩阵元素的序号就是相应元素在内存中的排列顺序。在MATLAB中,矩阵元素按列存储,先第一列,再第二列,依次类推。
例:>> A=[1,2,3;4,5,6];
A(3)
ans =
     2
显然,序号(Index)与下标(Subscript )是一一对应的,以m×n矩阵A为例,矩阵元素A(i,j)的序号为(j-1)*m+i。其相互转换关系也可利用sub2ind和ind2sub函数求得。

2).矩阵拆分。
    (1)利用冒号表达式获得子矩阵。
A(:,j)表示取A矩阵的第j列全部元素;A(i,:)表示A矩阵第i行的全部元素;A(i,j)表示取A矩阵第i行、第j列的元素。A(i:i+m,:)表示取A矩阵第i~i+m行的全部元素;A(:,k:k+m)表示取A矩阵第k~k+m列的全部元素;A(i:i+m,k:k+m)表示取A矩阵第i~i+m行内,并在第k~k+m列中的所有元素。此外,还可利用一般向量和end运算符来表示矩阵下标,从而获得子矩阵。end表示某一维的末尾元素下标。
    (2)利用空矩阵删除矩阵的元素。
在MATLAB中,定义[]为空矩阵。给变量X赋空矩阵的语句为X=[]。
注意:X=[]与clear X不同,clear是将X从工作空间中删除,而空矩阵则存在于工作空间中,只是维数为03、特殊矩阵。

1).通用的特殊矩阵。
常用的产生通用特殊矩阵的函数有:
zeros:产生全0矩阵(零矩阵)。
ones:产生全1矩阵(幺矩阵)。
eye:产生单位矩阵。
rand:产生01间均匀分布的随机矩阵。
randn:产生均值为0,方差为1的标准正态分布随机矩阵。

例1:建立一个3×3零矩阵。
>> zeros(3)
ans =
     0     0     0
     0     0     0
     0     0     02:建立随机矩阵。在区间[20,50]内均匀分布的5阶随机矩阵。
>> x=20+(50-20)*rand(5)
x =
48.5039   42.8629   38.4630   32.1712   21.7367
   26.9342   33.6940   43.7581   48.0641   30.5860
   38.2053   20.5551   47.6544   47.5071   44.3950
   34.5795   44.6422   42.1462   32.3081   20.2958
   46.7390   33.3411   25.2880   46.8095   24.1667
2).用于专门学科的特殊矩阵。
    (1)范得蒙矩阵。
范得蒙矩阵最后一列全为1,倒数第二列为一个指定的向量,其他各列是其后列与倒数第二列的点乘积。可以用一个指定向量生成一个范得蒙矩阵。在MATLAB中,函数vander(V)生成以向量V为基础向量的范得蒙矩阵。
例:
>> A=vander([1;2;3;5])
A =
     1     1     1     1
     8     4     2     1
    27     9     3     1
   125    25     5     1

    (2)伴随矩阵。
MATLAB生成伴随矩阵的函数是compan(p),其中p是一个多项式的系数向
量,高次幂系数排在前,低次幂排在后。
例:求多项式的x3-7x+6的伴随矩阵。
>> p=[1,0,-7,6];
compan(p)
ans =
     0     7    -6
     1     0     0
     0     1     0

4、矩阵的MATLAB运算。
1).矩阵的基本运算。
    假定有两个矩阵A和B,则可以由A+B和A-B实现矩阵的加减运算。
运算规则是:若A和B矩阵的维数相同,则可以执行矩阵的加减运算,A和B矩阵的相应元素相加减。如果A与B的维数不相同,则MATLAB将给出错误信息,提示用户两个矩阵的维数不匹配。
    其他运算如下:
数乘             k*A   K是一个数,A是一个矩阵).
矩阵的左除       A\B   AX=B, X=A-1B, A必须是方阵).
矩阵的右除       A/B   XB=A,X=AB-1, B必须是方阵).
行列式的秩       det(A) A必须为方阵).
矩阵的逆         Inv(A) A必须为方阵,|A| ‡ 0).

2).矩阵的特征值、特征向量、特征多项式。
p=poly(A)
若A为矩阵,则p为A的特征多项式系数;
若A为行向量,则p为以A为根的特征多项式系数poly2str(p,’x’)特征多项式。

例1:>> A=[1,-1;2,4];
>> p=poly(A)
p =
     1    -5     6
>> poly2str(p,'x')
ans =
   x^2 - 5 x + 62:>> A=[1,-1;2,4];
[V,D]=eig(A)
V =                                  方阵A的特征向量矩阵
   -0.7071    0.4472
    0.7071   -0.8944
D =                                  方阵A的特征值矩阵
     2     0
     0     33:产生5阶随机方阵A,其元素为[10,90]区间的随机整数,然后判断A的元素是否能被3整除。
    (1)生成5阶随机方阵A。
>> A=fix((90-10+1)*rand(5)+10)
A =
    86    71    59    42    14
    28    46    74    85    38
    59    11    84    84    75
    49    76    69    43    10
    82    46    24    82    21

    (2)判断A的元素是否可以被3整除。
>> P=rem(A,3)==0
P =
     0     0     0     1     0
     0     0     0     0     0
     0     0     1     1     1
     0     0     1     0     0
     0     0     1     0     1
   则为1的位置对应在原矩阵中的数字即为能被3整除的数字。

3).矩阵的逻辑运算。
MATLAB提供了3种逻辑运算符:&(与)、|(或)和~(非)。
逻辑运算的运算法则为:
    (1)在逻辑运算中,确认非零元素为真,用1表示,零元素为假,用0表示。
    (2)设参与逻辑运算的是两个标量a和b,那么:
a&b  a,b全为非零时,运算结果为1,否则为0a|b   a,b中只要有一个非零,运算结果为1。
~aa是零时,运算结果为1;当a非零时,运算结果为0。
    (3)若参与逻辑运算的是两个同维矩阵,那么运算将对矩阵相同位置上的元素按标量
规则逐个进行。最终运算结果是一个与原矩阵同维的矩阵,其元素由10组成。
    (4)若参与逻辑运算的一个是标量,一个是矩阵,那么运算将在标量与矩阵中的每元素之间按标量规则逐个进行。最终运算结果是一个与矩阵同维的矩阵,其元素由10组成。
    (5)逻辑非是单目运算符,也服从矩阵运算规则。
    (6)在算术、关系、逻辑运算中,算术运算优先级最高,逻辑运算优先级最低。
例:建立矩阵A,然后找出大于4的元素的位置。
>> A=[4,-65,-54,0,6;56,0,67,-45,0]
A =
     4   -65   -54     0     6
    56     0    67   -45     0
>> find(A>4)
ans =
     2             
     6
     9
5、矩阵分析。
1).对角阵。
    (1)提取矩阵的对角线元素
设A为m×n矩阵,diag(A)函数用于提取矩阵A主对角线元素,产生一个具有min(m,n)个元素的列向量。diag(A)函数还有一种形式diag(A,k),其功能是提取第k条对角线的元素。
    (2)构造对角矩阵。
     设V为具有m个元素的向量,diag(V)将产生一个m×m对角矩阵,其主对角线元素即为向量V的元素。

例:先建立5×5矩阵A,然后将A的第一行元素乘以1,第二行乘以2,…,第五行乘以5。
>>  A=[17,0,1,0,15;23,5,7,14,16;4,0,13,0,22;10,12,19,21,3;11,18,25,2,19]
D=diag(1:5);
D*A
A =
    17     0     1     0    15
    23     5     7    14    16
     4     0    13     0    22
    10    12    19    21     3
    11    18    25     2    19
ans =
    17     0     1     0    15
    46    10    14    28    32
    12     0    39     0    66
    40    48    76    84    12
    55    90   125    10    95

2).三角阵。
    (1)上三角矩阵。
求矩阵A的上三角阵的MATLAB函数是triu(A)。triu(A)函数也有另一种形式triu(A,k),其功能是求矩阵A的第k条对角线以上的元素。例如,提取矩阵A的第2条对角线以上的元素,形成新的矩阵B。
    (2)下三角矩阵
在MATLAB中,提取矩阵A的下三角矩阵的函数是tril(A)和tril(A,k),其用法与提取上三角矩阵的函数triu(A)和triu(A,k)完全相同。
例:创建一个5×5矩阵,提取主对角线以上的部分。
>> rand(6)
ans =
    0.2028    0.7468    0.5252    0.3795    0.1897    0.6979
    0.1987    0.4451    0.2026    0.8318    0.1934    0.3784
    0.6038    0.9318    0.6721    0.5028    0.6822    0.8600
    0.2722    0.4660    0.8381    0.7095    0.3028    0.8537
    0.1988    0.4186    0.0196    0.4289    0.5417    0.5936
    0.0153    0.8462    0.6813    0.3046    0.1509    0.4966
>>  triu(rand(6))
ans =
    0.8998    0.2897    0.5681    0.6213    0.9797    0.0118
         0   0.3412    0.3704    0.7948    0.2714    0.8939
         0        0    0.7027    0.9568    0.2523    0.1991
         0        0         0    0.5226   0.8757     0.2987
         0        0         0        0    0.7373    0.6614
         0        0         0        0         0    0.2844

3).矩阵的转置。
例:>>  A=[17,0,1,0,15;23,5,7,14,16;4,0,13,0,22;10,12,19,21,3;11,18,25,2,19]
A =

    17     0     1     0    15
    23     5     7    14    16
     4     0    13     0    22
    10    12    19    21     3
    11    18    25     2    19
A'
ans =
    17    23     4    10    11
     0     5     0    12    18
     1     7    13    19    25
     0    14     0    21     2
    15    16    22     3    19


4).矩阵的伪逆。
    如果矩阵A不是一个方阵,或者A是一个非满秩的方阵时,矩阵A没有逆矩阵,但可以找到一个与A的转置矩阵A‘同型的矩阵B,使得:
A•B•A=A
B•A•B=B
此时称矩阵B为矩阵A的伪逆,也称为广义逆矩阵。
在MATLAB中,求一个矩阵伪逆的函数是pinv(A)。
例:>> A=[1,5,7,9;5,6,4,2;6,7,5,3]
A =
     1     5     7     9
     5     6     4     2
     6     7     5     3
>> B=pinv(A)
B =
   -0.2000   -2.4000    2.2000
    0.1167    2.3167   -1.9500
    0.0667    0.4667   -0.4000
    0.0167   -1.3833    1.1500
>> A*B*A
ans =
    1.0000    5.0000    7.0000    9.0000
    5.0000    6.0000    4.0000    2.0000
    6.0000    7.0000    5.0000    3.0000
5).矩阵的秩。
    矩阵线性无关的行数与列数称为矩阵的秩。在MATLAB中,求矩阵秩的函数是rank(A)。

(三)、心得体会
    通过理论课的讲解与实验课的操作,使我在短时间内学会使用MATLAB,同时,通过上机实验,对理论知识的复习巩固实践,可以自己根据例题编写设计简单的程序来实现不同的功能,绘制出比较满意的二维三维图形,在实践中找到乐趣。MATLAB是一个实用性很强,操作相对容易,比较完善的工具软件,使用起来比较方便,通过操作可以很快看到结果,能够清晰的感觉到成功与失败。通过对MATLAB的数据的各种运算,矩阵的分析和处理,程序设计,绘图,数值计算及符号运算的学习,掌握了MATLAB的实用方法。自我感觉学习matlab,与其说是学习一门软件,更不如说是学习一门语言。用一种数理的语言描述现象,揭示表象下的规律。此外,我认为matlab中的作图功能很强大,不仅简单的函数现象可以明确画出,而且一些点状物,甚至立体图也可以画出。大一上微积分的时候,老师曾经多次在课件中加入用matlab画出的图来。不论是一维二维三维等等,都能很好的画出来。只要能编写出函数式,在短短的几秒之内,他就会呈现在你眼前。其实想要学习好一们语言,不能只靠老师,关键是自己。每个人内心深处都是有抵触意识的,不可能把老师的所有都学到。学习这门语言,不光是学习一种语言和技能,更重要的是学习一种方法和思维。

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204
  • 205
  • 206
  • 207
  • 208
  • 209
  • 210
  • 211
  • 212
  • 213
  • 214
  • 215
  • 216
  • 217
  • 218
  • 219
  • 220
  • 221
  • 222
  • 223
  • 224
  • 225
  • 226
  • 227
  • 228
  • 229
  • 230
  • 231
  • 232
  • 233
  • 234
  • 235
  • 236
  • 237
  • 238
  • 239
  • 240
  • 241
  • 242
  • 243
  • 244
  • 245
  • 246
  • 247
  • 248
  • 249
  • 250
  • 251
  • 252
  • 253
  • 254
  • 255
  • 256
  • 257
  • 258
  • 259
  • 260
  • 261
  • 262
  • 263
  • 264
  • 265
  • 266
  • 267
  • 268
  • 269
  • 270
  • 271
  • 272
  • 273
  • 274
  • 275
  • 276
  • 277
  • 278
  • 279
  • 280
  • 281
  • 282
  • 283
  • 284
  • 285
  • 286
  • 287
  • 288
  • 289
  • 290
  • 291
  • 292
  • 293
  • 294
  • 295
  • 296
  • 297
  • 298
  • 299
  • 300
  • 301
  • 302

附录 本篇报告下载链接

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/运维做开发/article/detail/837588
推荐阅读
相关标签
  

闽ICP备14008679号