matlab课程设计模板

时间:2024.3.20

                          目   录

 课程设计任务书......................................1

1  Matlab 软件简介...................................3

2  设计题目..........................................4

3  设计内容..........................................6

4  课程设计心得......................................18

5  参考文献..........................................19

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

                         课程设计任务书

学生姓名:             专业班级:     电信0804         

  指导教师:   祝立华         工作单位:      信息工程学院     

  题  目:  Matlab运算与应用设计7                                     

  初始条件:

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

      2.课程设计辅导资料:“Matlab语言基础及使用入门”、“数字信号处理原理与实现”、“Matlab及在电子信息课程中的应用”等;

      3.先修课程:信号与系统、数字信号处理、Matlab应用实践及信号处理类课程等。

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

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

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

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

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

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

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

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

①  目录;

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

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

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

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

⑥      参考文献;

其它必要内容等。

    时间安排:

    指导教师签名:                      年    月    日

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

         

1  Matlab 软件简介

   MATLAB是美国MathWorks公司生产的一个为科学和工程计算专门设计的交互式大型软件,是一个可以完成各种精确计算和数据处理的、可视化的、强大的计算工具。它集图示和精确计算于一身,在应用数学、物理、化工、机电工程、医药、金融和其他需要进行复杂数值计算的领域得到了广泛应用。它不仅是一个在各类工程设计中便于使用的训‘算工具,而且也是一个在数学、数值分析和工程计算等课程教学中的优秀的教学工具,在世界各地的高等院校中十分流行,在各类工业应用中更有不俗的表现。MATLAB可以在几乎所有的PC机和大型计算机上运行,适用于Windows、UNIX等多种系统平台。

1.1 MATLAB产生的历史背景  

   MATLAB名称是由两个英文单词Ma~ix和Laboratory的前二个字母组成。20世纪70年代后期,美国新墨西哥大学计算机系主任Cleve.Moler教授为了便于教学,减轻学生编写Fortran程序的负担,为两个矩阵运算软件包Linpack和Eispack编写了接口程序,这也许就算MATLAB的第一个版本。1984年,在JackLittle(也称JohnLittle)的建议推动下,由Little、Moler、SteveBangert三人合作,成立rMathWorks公司,同时把MATLAB正式推向市场。从那时开始,MATLAB的源代码采用C语言编写,除加强了原有的数值计算能力外,还增加了数据图形的可视化功能。1993年,MathWorks公司推出了MATLAB的4.0版本,系统平台由DOS改为Windows,推出了功能强大的、可视化的、交互环境的用于模拟非线性动态系统的工具Simulink,第一次成功开发出了符号计算工具包Symbolic Math Toolbox 1.0,为MATLAB进行实时数据分析、处理和硬件开发而推出了与外部直接进行数据交换的组件,为MATLAB能融科学计算、图形可视、文字处理于一体而制作了Notebook,实现了MATLAB与大型文字处理软件Word的成功对接。至此,MathWorks使MATLAB成为国际控制界公认的标准计算软件。

   1997年,MathWorks公司推出了MATLAB的5.0版本,紧接着产生了5.1、5.2版本,至1999年MATLAB发展到5.3版本。MATLAB拥有了更丰富的数据类型和结构,更好的面向对象的快速精美的图形界面,更多的数学和数据分析资源,MATLAB工具也达到了25个,几乎涵盖了整个科学技术运算领域。在大部分大学里,应用代数、数理统计、自动控制、数字信号处理、模拟与数字通信、时间序列分析、动态系统仿真等课程的教材都把MATLAB作为必不可少的内容。在国际学术界,MATLAB被确认为最准确可靠的科学计算标准软件,在许多国际一流的学术刊物上都可以看到MATLAB在各个领域里的应用。

   MATLAB当前推出的最新版本是7.0版(R14),本书无特殊注明均指7.0版。

1.2 MATLAB的语言特点和开发环境

   MATLAB作为一种科学计算的高级语言之所以受欢迎,就是因为它有丰富的函数资源和工具箱资源,编程人员可以根据自己的需要选择函数,而无需再去编写大量繁琐的程序代码,从而减轻了编程人员的工作负担。被称为第四代编程语言的MATLAB最大的特点就是简洁开放的程序代码和直观实用的开发环境。具体地说MATLAB主要有以下特点:

   (1)库函数资源丰富

   数百种库函数大大减轻了用户子程序的编写工作量,也避免了一些不必要的错误,因而用户也不必担心程序的可靠性问题。

   (2)语言精炼,代码灵活

   MATLAB的编程语言符合人们的思维习惯,对代码的书写也没有特别严格的控制,语言精炼,程序的亢余度非常小。

   (3)运算符多而灵活

   MATLAB的内核是用c语言编写的,它为用户提供了和C语言一样多的运算符,用户运用这些运算符可以使程序更加简炼。  

   (4)面向对象,控制功能优良

   MATLAB在5.x各版本中优化了数据结构,使得程序的结构化控制更精良,面向对象的功能更加友善。特别是当前的7.0版,在可视化编程方面比以前的版本又有了更大的提高,使界面编程更方便、自由。

   (5)程序设计自由

   MATLAB7.0版支持长变量名达到63个字符,用户可以不对矩阵进行预定义就使用,变量和数组的应用也有了很大的扩展,这为用户编写程序提供了更大的自由度,使编程更加简单、方便。

   (6)图形功能强大

   在很多程序语言中,绘制图形是一件很麻烦的事情。但在MATLAB中,只需调用相应的绘图函数即可,既方便又迅速。随着硬件的发展和MATLAB7.0推出,MATLAB的图形功能更好,可视化编程能力得到更进一步的提高。

   (7)程序的兼容性好

   MATLAB可以在各种PC机、大型计算机和各种操作系统上运行。

   (8)源代码开放

   MATLAB的最重要的特点是源代码的开放性,除了内部函数,所有的MATLAB核心文件和工具箱文件都完全开放,都可渎可改。用户对源文件修改就可以生成适合自己的源代码文件。

   (9)形形色色的工具箱

   凡有工具箱的软件大都分为两大部分,就是核心部分和形形色色的工具箱。MATLAB有数百个核心内部函数,数十个形形色色的工具箱。工具箱大致可以分为两大类,——类是学科性工具箱,另一类是功能性工具箱。学科性工具箱大都涵盖了本学科所有的已有的基本概念和基本运算,大都十分专业。如符号数学工具箱,简直就是一个高等数学、工程数学解题器。极限、导数、微分、积分、级数运算与展开、微分方程求解、Laplace变换等应有尽有。还有控制系统、信号处理、模糊逻辑、神经网络、小波分析、统计;优化、金融预测等工具箱,无一不是非常优秀的运算工具。这些工具箱都可以添加自己根据需要编写的函数,用户可以不断更新自己的工具箱,使之更适合于自己的研究和计算

2设计题目

 Matlab运算与应用设计7

1.求[100,200]之间第一个能被21整除的整数。

2.绘制余弦曲线y=cos(x)和指数函数y=x^2曲线。

3.计算2+4+6...+100 的值,当和大于2000时终止计算。

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

a)   X=0:0.25:3;

Y=X.*exp(-X);

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

(2)  A=zeros(2,5)

A(:)=-4:5

L=abs(A)>4

islogical(L)

X=A(L)

(3)  A=[1:5;6:10]

pow2(A)

(4)  A=zeros(3,2)

A(:)=1:6

A=A*(1+i)

A1=A.’;

B1=A’;

(5)  A=ones(2,3)

B=ones(2)

C=eye(4)

D=diag(C)

E=repmat(C,1,3)

5 利用while…end循环结构编程求出1+3+5…+101的值。

6.随机生成一个10000×3的矩阵,并绘制其柱状图。

7. 利用switch…case编写以下程序:

某商场对顾客所购买的商品实行打折销售,标准如下(商品价格用price来表示):

   price<200              无折扣

   200price<500         5%折扣

   500price<1000        10%折扣

   Price1000            15%折扣

输入所售商品的价格,求其实际销售价格。

8. 利用函数调用编写函数文件,求半径r分别为0.5与5时圆的面积与周长。

9.已知,其中t的范围是[0 10],计算y的微分和积分并给出曲线图。

10. 编写程序,用plot(x,y)绘制下图所示曲线。

 

a)                           b)

                   

3 设计内容

3.1  求[100,200]之间第一个能被21整除的整数。

3.1.1分析:利用for循环语句控制,并结合rem函数求得个符合条件的数。

3.1.2程序编码:

>> for n=100:200         % 控制n从100开始以1为步长出个取值至200;

if rem(n,21)~=0          % 判断条件:整数对21取余不等于0

continue                 % 结束本次循环,开始下一次循环

end                      % i f语句结束标志

break                    % 跳出循环体执行下面的语句

end

>> n                     % 提示输出n

n =

   105

3.1.3 程序流程图如(图3-1):

                             图3-1

3.1.4 实验结果进行分析和总结:

   利用for语句逐个去值,然后通过if语对rem(n,21)~=0进行判断满足                      条件时,循环继续。不满足时,结束循环。输出n的值为 105.

3.2  绘制余弦曲线y=cos(x)和指数函数y=x^2曲线。  

3.2.1分析:在matlab中绘制函数图像有很多的函数可以完成。如:fplot 函数plot函数等,不同的函数使用规则是有区别的,合理使用任何一个画图函数得到预期的结果。

3.2.2程序编码:

>> y=@(x)cos(x);

>> subplot(1,2,1),plot(y,[-pi,pi]);

>> y=@(x)x^2;

>> subplot(1,2,2),plot(y,[0,2])

3.2.3 函数图像如(图3-2)

                               图3-2   

3.2.4 实验结果分析和总结:

   利用@创建匿名函数,随机选择2个函数的自变量x的范围。利用subplot函数将2个函数的图像在同一个窗口中不同的区域显示图像。

3.3 计算2+4+6...+100 的值,当和大于2000时终止计算。

3.3.1分析:利用for循环语句来的到累加的效果,并利用while语句控制和大于2000时终止计算。

3.3.2 程序编码:

>> y=0;

>> n=100;

>> for i=2:2:100

y=y+i;

if y>2000

break;

end

end

>> y

y =

        2070

 3.3.3 实验结果分析和总结:

   利用for语句使i从2到100逐个取值,利用y=y+i语句实现累加,利用if y>2000 语句最终达到题目要求,求得y=2070。

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

3.4.1 X=0:0.25:3;

      Y=X.*exp(-X);

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

3.4.1.1 分析:X=0:0.25:3;得到以0.25为步长,取得0到3内的所有实数,确定自变量X的范围。利用plot函数画出函数Y的图像,并设置图像的一些基本性质。

 3.4.1.2 程序编码

>> X=0:0.25:3;

>> Y=X.*exp(-X);

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

3.4.1.3 函数图像 如(图3-3)

 

                         图3-3

3.4.2    A=zeros(2,5)

A(:)=-4:5

L=abs(A)>4

islogical(L)

X=A(L)

3.4.2.1 分析:zeros函数建立一个3*5全0矩阵赋给A,在将-4到5内的整数赋给A,形成新的矩阵。L=abs(A)>4,获得新的矩阵L,通过逻辑函数islogical得到新的矩阵赋给X。

3.4.2.2 程序编码:

       >> A=zeros(2,5)

          A =

     0     0     0     0     0

     0     0     0     0     0

>> A(:)=-4:5

A =

    -4    -2     0     2     4

    -3    -1     1     3     5

>> L=abs(A)>4

L =

     0     0     0     0     0

     0     0     0     0     1

>> islogical(L)

ans =

     1

>> X=A(L)

X =

     5

3.4.3 A=[1:5;6:10]

pow2(A)

3.4.3.1 分析:pow2函数的使用。

3.4.3.2 程序编码:

      >> A=[1:5;6:10]

A =

     1     2     3     4     5

     6     7     8     9    10

>> pow2(A)

ans =

           2           4           8          16          32

          64         128         256         512        1024

3.4.4  A=zeros(3,2)   A(:)=1:6   A=A*(1+i)  A1=A.’;  B1=A’;

3.4.4.1 分析:A=zeros(3,2)   A(:)=1:6 获得一个新的矩阵,主要是区别‘’’‘.’’的用法。前者是求矩阵的共轭转置,后者实现非共轭转置。

3.4.4.2 程序编码:

>> A=zeros(3,2)

A =

     0     0

     0     0

     0     0

>> A(:)=1:6

A =

     1     4

     2     5

     3     6

>> A=A*(1+i)

A =

   101   404

   202   505

   303   606

>> A1=A.';B1=A';

3.4.5 A=ones(2,3)  B=ones(2)  C=eye(4)  D=drag(C)  E=repeat(C,1,3)

3.4.5.1分析:ones函数以及eye,drag,repmat函数的使用。

3.4.5.2 程序编码:

>> A=ones(2,3)

A =

     1     1     1

     1     1     1

>> B=ones(2)

B =

     1     1

     1     1

>> C=eye(4)

C =

     1     0     0     0

     0     1     0     0

     0     0     1     0

     0     0     0     1

>> D=diag(C)

D =

     1

     1

     1

     1

>> E=repmat(C,1,3)

E =

     1     0     0     0     1     0     0     0     1     0     0     0

     0     1     0     0     0     1     0     0     0     1     0     0

     0     0     1     0     0     0     1     0     0     0     1     0

     0     0     0     1     0     0     0     1     0     0     0     1

3.5  利用while…end循环结构编程求出1+3+5…+101的值。

3.5.1 分析:while语句
    while语句的一般格式为:
    while (条件)
         循环体语句
    end
    其执行过程为:若条件成立,则执行循环体语句,执行后再判断条件是否成立,如果不成立则跳出循环。

3.5.2 程序编码:

>> sum=0;

>> i=1;

>> while i<=101

sum=sum+i;

i=i+2;

end

>> sum

sum =

        2601

3.5.3 程序流程图 如(图3-4)

 


  

                                                        i>101

 

                                 图3-4

3.6 随机生成一个10000×3的矩阵,并绘制其柱状图。

3.6.1 分析:利用rand函数生成这个矩阵。

3.6.2 程序编码:

>> a=randn(10000,3);

>> bar(a)

3.6.3 函数图像 如(图3-5)

                             图3-5

3.7 利用switch…case编写以下程序:

某商场对顾客所购买的商品实行打折销售,标准如下(商品价格用price来表示):

   price<200              无折扣

   200price<500         5%折扣

   500price<1000        10%折扣

   Price1000            15%折扣

输入所售商品的价格,求其实际销售价格。

3.7.1 分析:  switch语句根据表达式的取值不同,分别执行不同的语句,其语句格式为:
    switch 表达式
       case 表达式1
          语句组1
       case 表达式2
          语句组2
          ……
       case 表达式m
          语句组m
       otherwise
          语句组n
    end
当表达式的值等于表达式1的值时,执行语句组1,当表达式的值等于表达式2的值时,执行语句组2,…,当表达式的值等于表达式m的值时,执行语句组m,当表达式的值不等于case所列的表达式的值时,执行语句组n。当任意一个分支的语句执行完后,直接执行switch语句的下一句。

这个题需要建立mfile文件,来将进行求解。

3.7.2 M-file文件程序:

price=input('请输入商品价格');
switch fix(price/100)
   case {0,1}                        %价格小于200
      rate=0;
   case {2,3,4}                      %价格大于等于200但小于500
      rate=5/100;
   case num2cell(5:9)                %价格大于等于500但小于1000
      rate=10/100;
     otherwise                       %价格大于等于1000
      rate=15/100;
end
price=price*(1-rate)                 %输出商品实际销售价格

运行可得到:

请输入商品价格900

price =

   810

3.7.3 程序流程图

3.7.4 实验结果分析和总结:

 当输入900, fix(price/100)得到为9,符合case  num2cell(5:9)条件,则rate等于10%,price=900*(1-10%)=810  。 

3.8 利用函数调用编写函数文件,求半径r分别为0.5与5时圆的面积与周长。

3.8.1 分析:在matlab中新建Function-M-file,建立一个函数,求得结果。

3.8.2 函数文件:

function [s l] = sl( r )      % 确定变量为 s,r,自变量为r;

s=pi*r^2;                     %求面积

l=2*pi*r;                     %求周长

s                             %显示面积

l                             %显示周长   

end

3.8.3 程序代码:>> sl(0.5);

s =

    0.7854

l =

3.1416

>> sl(5);

s =

   78.5398

l =

   31.4159

3.9 已知,其中t的范围是[0 10],计算y的微分和积分并给出曲线图

3.9.1 分析:分别利用diff,以及int函数求的函数的微分和积分,利用ezplot画图函数得到函数的图像。注意此处e^(-1),用exp(-1)表示。

3.9.2 程序编码:

>> syms t y

>> y=exp(-1)*cos(t);

>> int(y,0,10)

ans =

(828390857088487*sin(10))/2251799813685248

>> pretty(ans)

  828390857088487 sin(10)

  -----------------------

      2251799813685248

>> diff(y,0,10)

ans =

-(828390857088487*cos(t))/2251799813685248

>> pretty(a)

    828390857088487 cos(t)

  - ----------------------

       2251799813685248

>> ezplot(y,[0,10])

3.9.3函数图像如(图3-6):

                            图3-6

3.10 编写程序,用plot(x,y)绘制下图所示曲线。

3.10.1  分析:观察第一个函数图像可以得到函数解析式为,y=3*x+1,x的范围为:0=<x<=5.画图时,要标明x,y,坐标轴,x坐标最小单位是0.5,y轴最小单位是2. 观察第二个函数图像,由2条直线组成,y1=-x+1,y2=2*x.纵坐标最小单位为:0.2,且范围为[1,3],横坐标最小单位为0.1,范围为[0,1]。利用hold on语句在同一个坐标下画出2个函数的图像。

3.10.2程序编码:

>> x=0:0.001:5;

>> y=3*x+1;

>> plot(x,y),label('y'),label('x');

3.10.3 图像如下如(图3-7):

                    图(3-7)  

3.10.4程序编码:

>> x=0:0.1:1;

>>  y1=-x+3;

>> y2=x+1;

>>  plot(x,y1),xlabel('x'),ylabel('y');

>>  hold on 

>>  plot(x,y2)

3.10.5 函数图像如(图3-8):

                         图3-8

                  

 4 课程设计心得

                

5 参考文献

[1] 谭浩强著.C程序设计(第二版).北京:清华大学出版社,1999

[2] 吴传生主编.经济数学.线性代数(第二版).北京高等教育出版社,2009

[3] 石博强 赵金编著.Matlab数学计算与工程分析范例教程 北京:中国铁道出版社

[4] 亨赛尔.精通matlab 7 .北京:清华大学出版社,2006

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

指导教师签字:                

        

更多相关推荐:
Matlab程序设计课程总结

Matlab程序设计课程总结学院班级学号姓名成绩1Matlab的课程总结随着对matlab的学习的深入我对其了解也更加深入MATLAB是美国MathWorks公司出品的商业数学软件用于算法开发数据可视化数据分析...

matlab课程设计报告

MATLAB课程设计报告设计课题学生姓名学生学号专业班级指导教师一课程设计的目的及其意义了解matlab的窗口工具栏的使用以及作用让matlab成为我们的日常好帮手并为将来使用matlab进行信号处理领域的各种...

matlab课程设计报告

MATLAB与仿真系统课程设计班级自动化20xx2班姓名张涛学号1105130206指导教师崔新忠地点电信实验中心第9实验室大连海洋大学课程设计报告纸学院专业班级姓名学号目录一课程设计的目的与要求1二课程设计课...

matlab课程设计报告

电子信息系统仿真设计课程设计报告课题电子信息系统仿真设计姓名学号成绩班级指导教师开课时间20xx20xx学年第1学期目录一设计题目二主要内容三具体要求四进度安排五成绩评定六正文1三维绘图2信号的时域和频域表示3...

matlab课程设计报告书

课程设计题目学院专业班级姓名指导教师Matlab应用课程设计信息工程学院电子信息工程桂林20xx年12月13日Matlab应用课程设计任务书学生姓名专业班级指导教师桂林工作单位信息工程学院题目Matlab运算与...

matlab课程设计

Matlab课程设计图像与动画班级姓名学号时间地点指导教师自动化教研室Matlab课程设计目录一课程设计目的与要求二课程设计课题的分析三课程设计的内容与安排四课程设计的步骤五课程设计的结果六参考文献七附录Mat...

Matlab课程设计报告

至诚学院MATLAB实践课程设计学生姓名学号专业班级2指导教师页MATLAB课程设计第1页共1二一四年四月三十日目录1设计目的第3页2题目分析第3页3总体设计第3页4具体设计第4页5小结和心得第15页页MATL...

matlab课程设计

Matlab与数值分析课程设计报告一目标设计一个LC低通滤波器其通带截止频率位于2GHz通带内的波动小于005dB在40GHz处的带外抑制至少为20dB源电阻及负载皆为50欧姆二设计原理M待设计滤波器的截止频率...

至诚Matlab课程设计报告

至诚学院MATLAB实践课程设计学生姓名李志航学号210991026专业班级电子信息工程指导教师郑晓明二一二年四月二十日1目录1设计目的32题目分析33总体设计34具体设计45小结和心得1621设计目的MATL...

Matlab课程设计报告(简单计算器)

1设计目的运用MATLAB实现MATLAB的GUI程序设计2题目分析21课程设计的基本要求A熟悉和掌握MATLAB程序设计方法B掌握MATLABGUI程序设计22课程设计的内容要求利用MATLABGUI设计实现...

Matlab课程设计报告

MATLAB实践课程设计学生姓名学号专业班级电子信息工程3班指导教师郑晓明二一一年6月26日目录1设计目的12题目分析13总体设计24具体设计35结果分析106心得体会101设计目的运用MATLAB实现MATL...

matlab课程设计

课程名称学院专业班级学号姓名指导教师前言自动控制技术是生产过程中的关键环节也是许多高新技术产品的核心技术自动控制技术广泛应用于制造业农业交通航空及航天等众多产业部门极大的提高了社会劳动生产率改善了人们的劳动条件...

matlab课程设计心得(22篇)