MATLAB课程设计

时间:2024.3.31

目录

1.MATLAB的简介·· 2

2.具体题目分析·· 3

2.1· 3

2.2· 3

2.3· 5

2.4· 6

2.5· 10

2.6· 10

2.7· 11

2.8· 12

2.9 · 13

2.10· 14

3.课程设计心得·· 16

4.参考文献·· 17

本科生课程设计成绩评定表·· 18

课程设计任务书

学生姓名:  杨坚              专业班级:  电信1006班               

指导教师: 阙大顺,李景松       工作单位:   信息工程学院   

课程设计名称:Matlab应用课程设计

课程设计题目:Matlab运算与应用设计3

初始条件

1.       Matlab6.5以上版本软件;

2.       课程设计辅导资料:“Matlab语言基础及使用入门”、“Matlab及在电子信息课程中的应用”、线性代数及相关书籍等;

3.       先修课程:高等数学、线性代数、电路、Matlab应用实践及信号处理类相关课程等。

要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)

1.       课程设计内容:根据指导老师给定的7套题目,按规定选择其中1套完成;

2.       本课程设计统一技术要求:研读辅导资料对应章节,对选定的设计题目进行理论分析,针对具体设计部分的原理分析、建模、必要的推导和可行性分析,画出程序设计框图,编写程序代码(含注释),上机调试运行程序,记录实验结果(含计算结果和图表),并对实验结果进行分析和总结。具体设计要求包括:

①       初步了解Matlab、熟悉Matlab界面、进行简单操作;

②  MATLAB的数值计算:创建矩阵、矩阵运算、多项式运算、线性方程组、数值统计;

③  基本绘图函数:plot, plot3, mesh, surf等,要求掌握以上绘图函数的用法、简单图形标注、简单颜色设定等;

④  使用文本编辑器编辑m文件,函数调用;

⑤  能进行简单的信号处理Matlab编程;

⑥  按要求参加课程设计实验演示和答辩等。

3.       课程设计说明书按学校“课程设计工作规范”中的“统一书写格式”撰写,具体包括:

①  目录;

②       与设计题目相关的理论分析、归纳和总结;

③       与设计内容相关的原理分析、建模、推导、可行性分析;

④       程序设计框图、程序代码(含注释)、程序运行结果和图表、实验结果分析和总结;

⑤       课程设计的心得体会(至少500字);

⑥       参考文献(不少于5篇);

⑦       其它必要内容等。

时间安排:1.5周(分散进行)

参考文献:

[1]     (美)穆尔,高会生,刘童娜,李聪聪.MATLAB实用教程(第二版) . 电子工业出版社,2010.

[2]     王正林,刘明.精通MATLAB(升级版) .电子工业出版社,2011.

[3]     陈杰 . MATLAB宝典(第3版) . 电子工业出版社,2011.

[4]     刘保柱,苏彦华,张宏林 . MATLAB 7.0从入门到精通(修订版) . 人民邮电出版社,2010.

指导教师签名:                                  

系主任(或责任教师)签名:               年    月    日

1.MATLAB的简介

MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。

  MATLAB是矩阵实验室(Matrix Laboratory)的简称,和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。

MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完相同的事情简捷得多,并且mathwork也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++ ,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。

MATLAB应用

MATLAB 产品族可以用来进行以下各种工作:

  ● 数值分析

  ● 数值和符号计算

  ● 工程与科学绘图

  ● 控制系统的设计与仿真

  ● 数字图像处理

  ● 数字信号处理

  ● 通讯系统设计与仿真

  ● 财务与金融工程

MATLAB 的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。附加的工具箱(单独提供的专用 MATLAB 函数集)扩展了 MATLAB 环境,以解决这些应用领域内特定类型的问题。   

2.具体题目分析

2.1算y1=和y2=

2.1.1 理论分析

    这是利用matlab处理数值运算的题目。这其中要用到cos()、sqrt()等函数。

2.1.2程序代码

  >> y1=20*cos(0.5*pi)/(2+sqrt(3))           %计算y1的表达式

y1 =

  3.2814e-016                                %y1的计算结果

>> y2=5*cos(0.4*pi)/(4+sqrt(3))            %计算y2的表达式

y2 =

    0.2696                                   %y2的计算结果

2.1.3总结

我们注意到matlab中的pi与真正的有差距,而且数字与因式相乘要使用乘法符号'*'.通过这个计算,我了解到matlab有处理数据计算的功能。

2.2绘制函数时的曲线。

2.2.1理论分析

    利用MATLAB软件绘制曲线图。在这里用到的是plot命令。熟悉使用plot及一些画图修饰命令:xlabel,ylabel,title,legend,axis,grid on。

2.2.2程序代码

>> x=0:0.02:1;               %生成数组

>> y=x.*exp(-x);           

>> plot(x,y);                 %用plot命令画图

>> xlabel('x');ylabel('y');        %标注x,y轴

>> title('图形曲线');           %标注标题

>> legend('y=x*exp(-x)')       %标注函数

>> axis([0,1,0,0.5])           %限定x,y范围

>> grid on                  %显示网格

                             2.2图

2.2.3总结

plot命令是很好的画二维函数图像的命令,但取变量数组时因注意数组的步长。结合其他的一些函数它可以很方便的画出所需区域的函数图像。可以很轻松的描绘处函数运算之后以及符合函数的图像。还有就是写命令时注意运算符前加“.”与不加的区别。

2.3用图形表示离散函数

2.3.1理论分析

这道题目中要用到scatter()函数来画离散图。其中还用到绝对值的函数abs(),还有就是前一题用到的一些修饰命令。

2.3.2程序代码

>> n=-44:56;                     %生成数组

>> y=abs(n-6).^-1;

>> scatter(n,y,3);                  %用函数scatter画离散图,3是设定离散点的形状函数还可设定离散点的颜色。

>> xlabel('n');

>> ylabel('y');

>> title('y=abs(n-6).^-1的散点图形');

得到的图像为:

                              2.3图

2.3.3 总结

    做这一题时应注意“y=abs(n-6).^-1;”不要写成“y=1/abs(n-6)”不然会出现警告,因为abs(n-6)不能为0。

2.4分析下面每条指令的功能并运行,观察执行结果。

2.4.1分析指令

  X=0:0.25:3;

功能:生成一向量X,第一个元素为0,最后一个元素的限定值为3,变化步长为0.25。

运行:因有冒号运行后结果不会显示。

Y=X.*exp(-X);

   功能:由向量X运算得向量Y,指令中exp(-X)是自然数e得-X次方。

   运行:因有冒号运行后结果不会显示。

plot(X,Y),xlabel(‘x’), ylabel(‘y’),title(‘y=x*exp(-x)’);

   功能 :绘制以X和Y为横,纵坐标得二维曲线,并且在x轴和y轴标注x,y,还有图形加标题:y=x*exp(-x)

                                     2.4图

2.4.2指令分析

A=zeros(3,5)

      功能:生成3*5阶的全0矩阵

  

A(:)=-4:5

      功能:将数组赋给矩阵

运行结果:出错因数组的元素个数与矩阵元素个数不等 。我将其改成A(:)=-4:10

L=abs(A)>4

         功能:取A的绝对值判断是否大于4生成逻辑值L

islogical(L)

         功能:若L为逻辑值则为真

X=A(L)

      运行结果:

>> A=zeros(3,5)

A =

     0     0     0     0     0

     0     0     0     0     0

     0     0     0     0     0

>> A(:)=-4:10

A =

    -4    -1     2     5     8

    -3     0     3     6     9

    -2     1     4     7    10

>> L=abs(A)>4

L =

     0     0     0     1     1

     0     0     0     1     1

     0     0     0     1     1

>> islogical(L)

ans =

     1

>> X=A(L)

X =

     5

     6

     7

     8

     9

    10

2.4.3指令分析

 A=[1:5;6:10]

      功能:生成一二维数组

      运行结果:A =

     1     2     3     4     5

     6     7     8     9    10

pow2(A)

         功能:求2的A次方

         运行结果:ans =

2                     4           8          16          32

64           128         256         512        1024

2.4.4指令分析

A=zeros(3,2)

      功能:生成3*2阶的全0矩阵

      运行结果:A =

     0     0

     0     0

     0     0

A(:)=1:6

     功能:将数组赋给矩阵

     运行结果:A =

     1     4

     2     5

     3     6

A=A*(1+i)

         功能:用A成以复数(1+i)转换成复数在赋还给A

      运行结果:A =

   1.0000 + 1.0000i   4.0000 + 4.0000i

   2.0000 + 2.0000i   5.0000 + 5.0000i

   3.0000 + 3.0000i   6.0000 + 6.0000i

A1=A.’;

      功能:生成A的转置矩阵并赋给A1

      结果:A1 =

   1.0000 + 1.0000i   2.0000 + 2.0000i   3.0000 + 3.0000i

   4.0000 + 4.0000i   5.0000 + 5.0000i   6.0000 + 6.0000i

B1=A’;

         功能:生成A的转置共轭矩阵并赋给B1

      运行结果:B1 =

   1.0000 - 1.0000i   2.0000 - 2.0000i   3.0000 - 3.0000i

4.0            - 4.0000i   5.0000 - 5.0000i   6.0000 - 6.0000i

2.4.5指令分析

A=ones(2,3)

       功能:生成2*3阶的全1矩阵并赋给A

       运行结果:A =

     1     1     1

     1     1     1

B=ones(2)

      功能:生成2*2阶的全1矩阵并赋给B

      运行结果:B =

     1     1

     1     1

C=eye(4)

        功能:生成4*4阶的单位矩阵并赋给C

        运行结果:C =

     1     0     0     0

     0     1     0     0

     0     0     1     0

D=diag(C)

         功能:抽取C的对角向量并赋给D

         运行结果:D =

     1

     1

     1

     1

E=repmat(C,1,3)

         功能:将三个矩阵C连接在一起生成一新矩阵并赋给E

         运行结果:E =

  Columns 1 through 11

     1     0     0     0     1     0     0     0     1     0     0

     0     1     0     0     0     1     0     0     0     1     0

     0     0     1     0     0     0     1     0     0     0     1

     0     0     0     1     0     0     0     1     0     0     0

  Column 12

     0

     0

     0

     1

2.5计算在x=0.1与10处的值。

2.5.1 理论分析

  这道题目是运用MATLAB计算多项式。这里运用到的是polyval()命令。通过polyval()命令可以很快的计算出在相应值下的多项式的值。

2.5.2 程序代码

>> p=[2 0 0.1 0 -10];

>> polyval(p,0.1)

ans =

   -9.9988

>> polyval(p,10)

ans =

       20000

2.6求函数, n=100的值

2.6.1 理论分析

   在MATLAB中没发现可以计算级数的命令,所以在这我是自己建了一个函数可以求(n可以自己定义),保存成M文件

2.6.2 程序代码

    文件内容:%计算函数y=1+1/2.^3+1/3.^3+......1/m.^3

function y=shulie1_n(m)

y=0;

i=1;

while i<=m

                  x=1/i.^3;

                  y=y+x;

                  i=i+1;

end

         命令:y=shulie1_n(100)

                结果:y =

                  1.2020

2.6.3 总结

要注意“;”和“end”的使用,函数中不要求输出结果的指令后一定要加“;” 。‘end’的使用要注意需要使用的位置。

2.7求1500个元素的随机数向量A中大于0.5的元素个数。

2.7.1 理论分析

这道题中要用到随机函数rand()。还有统计函数sum()。

2.7.2程序代码

       命令:A=rand(1,1500);

                       sum(A>0.5)

              结果:ans =

            

754

2.8用图形表示连续调制波形,运行下面的程序,观察结果,并简单说明。

图形:t=0:0.001:2*pi;

y=sin(t).*sin(9*t);

plot(t,y)

t1=(0:11)/11*pi;                     y1=sin(t1).*sin(9*t1);

t2=(0:100)/100*pi;                                    y2=sin(t2).*sin(9*t2);

subplot(2,2,1),plot(t1,y1,'r.'),axis([0,pi,-1,1]),title('子图 (1)')                   %生成子图

subplot(2,2,2),plot(t2,y2,'r.'),axis([0,pi,-1,1]),title('子图 (2)')

subplot(2,2,3),plot(t1,y1,t1,y1,'r.')

axis([0,pi,-1,1]),title('子图 (3)')

subplot(2,2,4),plot(t2,y2)

axis([0,pi,-1,1]),title('子图 (4)')

运行结果:

                              2.8图                

2.9 计算下列矩阵A正交阵 。

 

2.9.1 理论分析

这里是运用matlab中的函数来处理矩阵,从而生成所需要的矩阵。这里所用到的函数为orth()

2.9.2 程序代码

命令: A=[1 1 4;2 2 5; 3 3 6];

orth(A)

结果: ans =

             -570/1397     993/1216 

-1291/2292     730/5759 

             -656/913    -1004/1783 

执行命令前,我用format指令将输出改为了分数形式。

2.9.3总结

在MATLAB中有很多很方便的函数帮助我们处理数据。我们要时常注意相关的函数,在以后的数据处理中就显得很轻松了。

2.10 用FFT计算x=3sin(2*pi*50*t)+2cos(2*pi*120*t)+w(t)的功率谱。

2.10.1 理论分析

用FFT直接法计算功率谱。.调用方法X=FFT(x);X=FFT(x,N);x=IFFT(X);x=IFFT(X,N)做FFT分析时,幅值大小与FFT选择的点数有关,但不影响分析结果。在IFFT时已经做了处理。要得到真实的振幅值的大小,只要将得到的变换后结果乘以2除以N即可。

2.10.2 程序设计

>> fs=100;N=128;                              

>> n=0:N-1;t=n/fs;                            

>> w=rands(1,N);                         %加入噪音信号

>> x=3*sin(2*pi*50*t)+2*cos(2*pi*120*t)+w;       

>> y=fft(x,N);                             %对信号做傅里叶变换

>> mag=abs(y);                        %求得傅里叶变换后的振幅

>> f=n*fs/N;                                  

>> plot(f(1:N/2),mag(1:N/2));                 %用plot画功率谱

>> xlabel('频率/Hz');ylabel('振幅');title('功率谱'); %标记X,Y轴和标题

2.10.3 运行结果

2.10.4 实验总结

一般说来利用fft只是对已有数据进行傅里叶变换,而具体应用到画图还要经过处理,如对已知数据x进行fft傅里叶变换只需运行:y=fft(x);特别要注意的是加入噪音信号,刚看题目的时候都不知道w(t)代表什么,以为是一个函数。

3.课程设计心得

   在此次的课程设计中我强烈的感受到了matlab是一个非常强大的数据处理软件,用它我们可以很方便快捷的进行计算,绘制出我们所需要的图形。而且matlab本身就带有很多的内部函数以及内部固定常量,这些都可以简化我们的程序,使操作者更加容易掌握。另一方面,简单的编程环境提供了比较完备的调试系统,程序不必经过编译就可以直接运行,而且能够及时地报告出现的错误及进行出错原因分析,运行效率非常高。

对于MATLAB在课程设计之前有所耳闻但不是很了解,课程设计期间也没有老师讲解,完全要靠自学来完成。所以说我最大的体会就是提升自学能力很重要。自学能力强的同学可以自己在网上找资料或从图书馆借书看自己一个人完成任务。自学能力差的同学则要到处问同学且速度要慢。经过这两周的学习还有的体会就是做事要细心,就说编写指令如果不细心很容易出错。再者,我发现虽然我们完成了老师布置的任务,但对于MATLAB我们还有很多要学的。课程设计中用到的知识只是一个大概,MATLAB更深层次的应用还有待学习。

总的来说,通过为期两周的MATLAB课程设计,我对MATLAB这个仿真软件有了更进一步的认识和了解。在这两周时间里,我通过自己摸索,向同学请教,查阅资料,完成了老师教给我们的任务。这次课程设计,提高自己的基础理论知识、基本动手能力,提高人才培养的基本素质,并帮助我们掌握基本的文献检索和文献阅读的方法,同时提高我们正确地撰写论文的基本能力。

4.参考文献

[1] (美)穆尔,高会生,刘童娜,李聪聪 . MATLAB实用教程(第二版) . 北京:电子工业出版社,2010.

[2] 王正林,刘明 . 精通MATLAB(升级版) . 北京:电子工业出版社,2011.

[3] 陈杰 . MATLAB宝典(第3版) . 北京:电子工业出版社,2011.

[4] 刘保柱,苏彦华,张宏林 . MATLAB 7.0从入门到精通(修订版) . 人民邮电出版社,2010.

[5] 张德丰 . MATLAB在电子信息工程中的应用.北京:电子工业出版社,2009.

[6] 周开立 . MATLAB基础及其应用教程.北京:北京大学出版社,2007.

[7] 张智星 . MAYLAB程序设计及应用.北京:清华大学出版社,2002.

[8] 陈怀琛,吴大正,高西全 .MATLAB及在电子信息课程中的应用 . 北京:电子工业出版社,2006.

[9] 张琨 . MATLAB 2010从入门到精通 .北京:电子工业出版社,2011.

本科生课程设计成绩评定表

指导教师签字:                

2011 113

                                                        

更多相关推荐:
机械设计课程设计心得

机械设计心得体会机械设计的核心是正确的思路,思路错了,设计就会失败。正确的思路得出正确的方案,余下的就是查手册了。这是我这些年来搞机械设计的主要的心得体会。通过为期将近一周的没日没夜的课程设计过程,反复的修改设…

机械课程设计心得

经过紧张而辛苦的四周的课程设计结束了,看着自己的设计。即高兴又担忧,高兴的是自己的设计终于完成啦,担忧的是自己的设计存在很多的不足。课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前…

机械设计课程设计心得体会(减速机设计)

减速机设计心得体会通过这次课程设计,由于理论知识的不足,再加上平时没有什么设计经验,一开始的时候有些手忙脚乱,不知从何入手。在老师的谆谆教导,和同学们的热情帮助下,使我找到了信心。现在想想其实课程设计当中的每一…

机械制造课程设计心得体会与小结(600字左右)

总结:两周的机械制造基础课程设计,说长不长说短不短,刚开始的两天还没有进入状态,感觉仍没有从暑假的休闲心情中转换过来。可以说课程设计的前两天是一段磨合进入设计状态的过程,刚开始的任务并不重,只是初步了解一下各自…

机械课程设计心得体会

吉林农业科技学院钻床专用夹具设计心得体会年级专业:09机械一班学生姓名:陈万宝学号:0932605120吉林农业科技学院-1-心得体会通过钻床钻用夹具设计实训,使我对机械制造工艺学有了更进一步的了解。我们现在对…

二级减速器(机械课程设计)(含总结)

机械设计课程设计姓名班级学号指导教师成绩日期20xx年6月目录1设计目的22设计方案33电机选择54装置运动动力参数计算75带传动设计96齿轮设计187轴类零件设计288轴承的寿命计算319键连接的校核3210...

机械设计课程设计感想

机械设计课程设计感想作为一名机械设计制造及自动化大三的学生我觉得能做类似的课程设计是十分有意义而且是十分必要的在已度过的大三的时间里我们大多数接触的是专业基础课我们在课堂上掌握的仅仅是专业基础课的理论面如何去锻...

二级减速器(机械课程设计)(含总结)

机械设计课程设计姓名班级学号指导教师成绩日期20xx年6月目录1设计目的22设计方案33电机选择54装置运动动力参数计算75带传动设计96齿轮设计187轴类零件设计288轴承的寿命计算319键连接的校核3210...

二级减速器(机械课程设计)(含总结)

目录1设计目的22设计方案33电机选择54装置运动动力参数计算75带传动设计96齿轮设计187轴类零件设计288轴承的寿命计算319键连接的校核3210润滑及密封类型选择3311减速器附件设计3312心得体会3...

机械制造装备课程设计--普通车床主轴箱部件设计

湖南工业大学机械工程学院机械制造装备设计课程设计设计题目普通车床主轴箱部件设计学班学成生姓名级号绩指导教师签字机械工程学院20xx年11月26日目录1课程设计任务书42绪论6机械制造装备设计课程设计湖南工业大学...

牛头刨床机械原理课程设计2、4点

目录一课程设计的目的与要求3二设计正文1设计题目32牛头刨床机构简介33机构简介与设计数据44设计内容5三体会心得15四参考资料16附图1导杆机构的运动分析与动态静力分析一课程设计的目的和任务1目的机械原理课程...

最新机械原理课程设计+牛头刨床

机械原理课程设计说明书设计题目牛头刨床机械原理课程设计设计日期20xx年07月09日目录1设计题目32牛头刨床机构简介33机构简介与设计数据44设计内容55体会心得156参考资料16附图1导杆机构的运动分析与动...

机械设计课程设计心得(39篇)