Matlab.docx

上传人:b****4 文档编号:27265764 上传时间:2023-06-28 格式:DOCX 页数:26 大小:128.52KB
下载 相关 举报
Matlab.docx_第1页
第1页 / 共26页
Matlab.docx_第2页
第2页 / 共26页
Matlab.docx_第3页
第3页 / 共26页
Matlab.docx_第4页
第4页 / 共26页
Matlab.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

Matlab.docx

《Matlab.docx》由会员分享,可在线阅读,更多相关《Matlab.docx(26页珍藏版)》请在冰豆网上搜索。

Matlab.docx

Matlab

Matlab应用课程设计任务书

学生姓名:

王兵专业班级:

电信1102班

指导教师:

李达工作单位:

信息工程学院

题目:

Matlab应用第7套综合题

初始条件:

(1)提供实验室机房及其Matlab6.5以上版本软件;

(2)《MATLAB教程》学习。

要求完成的主要任务:

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

(1)选择一本《MATLAB教程》,认真学习该教程的全部内容,包括基本使用方法、数组运算、矩阵运算、数学运算、程序设计、符号计算、图形绘制、GUI设计等内容;

(2)对该套综合题的10道题,进行理论分析,针对具体设计部分的原理分析、建模、必要的推导和可行性分析,画出程序设计框图,编写程序代码(含注释),上机调试运行程序,记录实验结果(含计算结果和图表)。

(3)对实验结果进行分析和总结;

(4)要求阅读相关参考文献不少于5篇;

(5)根据课程设计有关规范,按时、独立完成课程设计说明书。

时间安排:

(1)布置课程设计任务,查阅资料,学习《MATLAB教程》十周;

(2)进行编程设计一周;

(3)完成课程设计报告书一周;

指导教师签名:

年月日

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

年月日

 

目录

一前言1

1.1MATLAB简介1

1.2MATLAB的功能1

1.3MATLAB的典型应用1

二设计题目3

三设计内容5

3.1题一5

3.2题二5

3.3题三6

3.4题四7

3.5题五14

3.6题六15

3.7题七15

3.8题八17

3.9题九18

3.10题十19

四课程设计心得22

参考文献23

一前言

1.1MATLAB简介

MATLAB软件由美国MathWorks公司于1984年推出,经过不断的发展和完善,如今己成为覆盖多个学科的国际公认的最优秀的数值计算仿真软件。

MATLAB具备强大的数值计算能力,许多复杂的计算问题只需短短几行代码就可在MATLAB中实现。

作为一个跨平台的软件,MATLAB已推出Unix、Windows、Linux和Mac等十多种操作系统下的版本,大大方便了在不同操作系统平台下的研究工作。

MATLAB软件具有很强的开放性和适应性。

在保持内核不变的情况下,MATLAB可以针对不同的应用学科推出相应的工具箱(toolbox),目前己经推出了图象处理工具箱、信号处理工具箱、小波工具箱、神经网络工具箱以及通信工具箱等多个学科的专用工具箱,极大地方便了不同学科的研究工作。

国内已有越来越多的科研和技术人员认识到MATLAB的强大作用,并在不同的领域内使用MATLAB来快速实现科研构想和提高工作效率。

MATLAB提供了20类图像处理函数,涵盖了图像处理的包括近期研究成果在内的几乎所有的技术方法,是学习和研究图像处理的人员难得的宝贵资料和加工工具箱。

这些函数按其功能可分为:

图像显示;图像文件I/O;图像算术运算;几何变换;图像登记;像素值与统计;图像分析;图像增强;线性滤波;线性二元滤波设计;图像去模糊;图像变换;邻域与块处理;灰度与二值图像的形态学运算;结构元素创建与处理;基于边缘的处理;色彩映射表操作;色彩空间变换;图像类型与类型转换。

1.2MATLAB的功能

1)强大的科学计算机数据处理能力

2)出色的图形处理功能

3)应用广泛的模块集合工具箱

4)实用的程序接口和发布平台

1.3MATLAB的典型应用

1)数据分析

2)数值与符号计算;

3)工程与科学绘图;

4)控制系统设计;

5)航天工业;

6)汽车工业;

7)生物医学工程;

8)语音处理;

9)图像与数字信号处理;

10)财务、金融分析;

11)建模、仿真及样机开发;

12)新算法研究开发;

13)图形用户界面设计。

二设计题目

第7套题:

Matlab应用课程设计7

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

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

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

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

X=0:

0.25:

3;

Y=X.*exp(-X);

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

A=zeros(3,5)

A(:

)=-7:

7

L=abs(A)>4

islogical(L)

X=A(L)

A=[1:

5;6:

10]

pow2(A)

A=zeros(3,2)

A(:

)=1:

6

A=A*(1+i)

A1=A.’

B1=A’

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无折扣

200

price<5005%折扣

500

price<100010%折扣

Price

100015%折扣

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

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

9.已知

,其中t的范围是[010],计算y的微分和积分并给出曲线图。

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

a)b)

三设计内容

3.1题一

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

分析;要求(100,200)之间第一个能被21整除的整数,首先需要一个循环变量n,使其从100到200按步长为1递增,每增加1就用21去除看能否整除,若不能则继续循环,若能则跳出循环,输出n即为所需整数。

1).程序如下

forn=100:

200%定义n的区间为100到200的for循环语句

ifrem(n,21)~=0%用if语句来判断n除以21的结果是否为0

continue%终止当前循环回到循环体的开头准备执行下一次循环

end%结束if循环

break%跳出for循环

end%结束for循环

n%显示n

2).运行结果为

>>n 

n=

105

3.2题二

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

分析:

绘制曲线用plot函数。

为方便观察两个图像,应适当设置横纵坐标的大小,这需要用到axis([xminxmaxyminymax])函数。

设置其x在(0,2pi),y为(-3,3)较为合适。

 

1)程序如下

x=0:

pi/30:

2*pi;%产生一个0到2pi的等差数列

y1=cos(x);y2=x.*x;%定义关于y1和y2的函数

plot(x,y1,'-ro',x,y2)%将y1y2的图像以不同的样式绘制出来

axis([0,2*pi,-3,3])%定义x和y的最值

h=legend('cos_x','x.*x',2);%添加两个函数的标注

2)运行结果为

图3-2

3.3题三

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

分析:

此题为求偶数的和第一次大于2000时的值,因此要设置累加后的值放在sum里面,用while循环,令m的初值为2步长为2,终值为100.

1)程序如下:

sum=0;%定义sum的初值为0

m=2;%定义m的初值为2

whilesum<=2000%当和小于等于2000时执行循环

sum=sum+m;%求和

m=m+2;%m的值增加2

end

sum%输出m

m%当和大于2000时的第一个m

2)运行结果如下:

sum=

2070

m=

92

3.4题四

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

3.4.1

(1)X=0:

0.25:

3;

Y=X.*exp(-X);

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

分析:

此题中需要用到绘制二维图形的基本函数plot,常用形式为plot(x,y1,x,y2)。

并用title(‘y=x*exp(-x)’)为他加上图形标题;以及用xlabel(‘x’)为他加上x轴说明;和用ylabel(‘y’)为他加上y轴说明。

应注意从老师题目中直接复制到matlab窗口后是不能执行的,因为word文档中的“‘”是中文状态下输入的,在matlab中需用英文输入法状态下的“’”来输入才能执行。

1)程序如下:

x=0:

0.25:

3;

y=x.*exp(-x);

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

 

2)运行结果如下:

图3-4-1

3.4.2

(2)A=zeros(3,5)

A(:

)=-7:

7

L=abs(A)>4

islogical(L)

X=A(L)

分析:

A=zeros(3,5)会产生一个3*5阶的全0矩阵A,A(:

)=-7:

7会将矩阵元素从-7到7依次赋值,L=abs(A)>4会标记矩阵A中元素的绝对值大于4的元素,islogical(L)判断L是不是逻辑数,X=A(L)取出A中绝对值大于4的元素组成一个新的矩阵A。

1)程序如下:

A=zeros(3,5)

A(:

)=-7:

7

L=abs(A)>4

islogical(L)

x=A(L)

2)结果如下:

>>

A=

00000

00000

00000

 

A=

-7-4-125

-6-3036

-5-2147

 

L=

10001

10001

10001

 

ans=

1

 

x=

-7

-6

-5

5

6

7

3.4.3

(3)A=[1:

5;6:

10]

pow2(A)

分析:

A=[1:

5;6:

10]为矩阵的第一行从1到5依次赋值,第二行,从6到10依次赋值,pow2(A)将A按矩阵运算出平方。

1)程序如下:

A=[1:

5;6:

10]

pow2(A)

2)结果如下:

A=

12345

678910

ans=

2481632

641282565121024

A=

12345

678910

ans=

2481632

641282565121024

3.4.4

(4)A=zeros(3,2)

A(:

)=1:

6

A=A*(1+i)

A1=A.’

B1=A’

分析:

A=zeros(3,2)得到一个3*2的全零矩阵。

A(:

)=1:

6将1到6内的整数值赋给A,形成新的矩阵A。

A=A*(1+i)计算A*(1+i),得到新矩阵A。

A1=A.'得到非共轭转置矩阵A1。

B1=A'得到共轭转置矩阵B1。

1)程序如下:

A=zeros(3,2)

A(:

)=1:

6

A=A*(1+i)

A1=A.'

B1=A'

2)运行结果如下:

A=

00

00

00

 

A=

14

25

36

 

A=

1.0000+1.0000i4.0000+4.0000i

2.0000+2.0000i5.0000+5.0000i

3.0000+3.0000i6.0000+6.0000i

 

A1=

1.0000+1.0000i2.0000+2.0000i3.0000+3.0000i

4.0000+4.0000i5.0000+5.0000i6.0000+6.0000i

B1=

1.0000-1.0000i2.0000-2.0000i3.0000-3.0000i

4.0000-4.0000i5.0000-5.0000i6.0000-6.0000i

3.4.5

(5)A=ones(2,3)

B=ones

(2)

C=eye(4)

D=diag(C)

E=repmat(C,1,3)

分析:

A=ones(2,3)得到2*3全1矩阵A。

B=ones

(2)得到全1二阶方阵B。

C=eye(4)得到四阶单位矩阵C。

D=diag(C)提取C的对角矩阵D。

E=repmat(C,1,3)复制矩阵C并在第一行平铺三个。

1)程序如下:

A=ones(2,3)

B=ones

(2)

C=eye(4)

D=diag(C)

E=repmat(C,1,3)

2)结果如下:

A=

111

111

 

B=

11

11

 

C=

1000

0100

0010

0001

 

D=

1

1

1

1

图3-4-1

(老师,由于这个复制粘贴后就没有原来的格式了,就不能显示是一行平铺三个了,所以就截图了)

3.5题五

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

分析:

用while…end循环结构编程求1+3+5…+101需要一个循环变量k和一个累加变量s,最终得到的s即为求和的值。

1)程序如下:

s=0;%定义s并赋初值0

k=1;%定义k并赋初值1

whilek<102%当k小于102时执行下面的操作

s=s+k;

k=k+2;

end

s%输出m的值

2)结果如下:

s=

2601

>>

3.6题六

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

分析:

生成随即矩阵需要用到函数rand(),绘制柱状图需要用到函数bar()。

1)程序如下:

A=rand(10000,3);

bar(A)

2结果如下

图3-6-1

3.7题七

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

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

price<200无折扣

200

price<5005%折扣

500

price<100010%折扣

Price

100015%折扣

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

分析:

用switch语句来编写,需要将价格的不同区间对应不同的数字,用fix函数将price/100的结果靠近0取整后,可以使小于200对应情况为【01】,200到500对应情况为【234】,500到1000对应情况为【5789】。

同时为避免用户输入负数这种不可能出现的价格情况,用while语句设置一个循环判断,是用户输入小于0的数字时提示其输入错误,需要重新输入,这样的话剩下的最后一种情况即为价格大于1000的情况,可以用otherwise语句编写。

1)程序如下:

price=input('price');

whileprice<0

disp('请输入大于0的数据')

price=input('price');

end

switchfix(price/100)%取price/100后接近0的数

case{0,1}

rate=0;

case{2,3,4}

rate=5/100;

case{5,6,7,8,9}

rate=10/100;

otherwise

rate=15/100;

end

price=price*(1-rate)%计算商品的价格

2)结果如下:

1)当输入小于0的数据时

-100

ans=

-100

price-100

请输入大于0的数据

2)当输入200到500之间的数据时

price200

price=

190

3)当输入500到1000直接的数据时

price800

price=

720

4)当输入大于1000的数据时

price2000

price=

1700

3.8题八

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

分析:

编写函数文件首先要用到function语句,该程序需要输入半径r一个变量,然后输出周长l与面积s两个变量。

周长计算公式为l=2*pi*r,面积计算公式为s=pi*r*r。

1)程序如下:

function[sl]=circle(r)%声明函数circle

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

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

s

l

end

2)结果如下:

>>circle(0.5);

s=

0.7854

l=

3.1416

>>circle(5);

s=

78.398

l=

31.4159

3.9题九

9.已知

,其中t的范围是[010],计算y的微分和积分并给出曲线图。

分析:

首先需要定义两个变量t和y,将所求函数用y=exp(-1)*cos(t)表示出来,求积分需要用到int()函数,求微分需要用到diff()函数,vpa函数用于控制精度,画图像用ezplot()函数比较简单,只需方程式即可画出图像。

1)程序如下:

symstyabcd%定义变量ty

y=exp(-1)*cos(t)%表达出函数y=exp(-1)*cos(t)

a=int(y,0,10);%求y的积分并赋给a

b=diff(y,0,10);%求y的微分并赋给b

ezplot(y,[0,10])%画出y的图像

c=vpa(a);%控制a的精度后并把其赋给c

d=vpa(b);%控制b的精度后并把其赋给d

c

d

2)运行如下

c=

-.20013418225944862880696669467031

d=

-.36787944117144233402427744294982*cos(t)

图3-9

3.10.题十

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

3.10.1

分析:

有图像很容易可以求出函数的表达式为y=3*x+1,x取值范围为(0,5),画图像可以用到plot()函数,再用xlabel('x'),ylabel('y')两个语句确定其横纵坐标轴的名称。

1)程序如下:

x=0:

0.001:

5;

y=3*x+1;

plot(x,y);%画出y的曲线

xlabel('x'),ylabel('y');

2)结果如下:

图10-1-1

3.10.2

分析:

容易看出这是两个表达式的图像所形成的图形,分别为y1=x+1和y2=-x+3,可以用plot()函数画出其图形,但要注意的是画出第一个图形后需要用holdon语句将第一个图形锁住,再画第二个图形,否则第二个图形会将第一个图形覆盖,无法得出如题所示图形。

1)程序如下:

x=0:

0.1:

1;

y1=x+1;

y2=-x+3;

plot(x,y1),holdon,plot(x,y2);%画出y1和y2的两条曲线并同时显示

2)结果如下:

图3-10-2

四课程设计心得

Matlab作为一款数学处理软件,其功能是非常强大的,通过对该软件的学习,我有学会了一种方法去解决比较纠结的数学问题。

刚开始我是先找了一本电子工业出版社的《MATLAB及在电子信息工程课程中的应用》这本书,通过对这本书的学习,我对Matlab有了初步的了解,然后又在网上找了些视频,跟着学做了几次就开始自己做了,感觉只要是以认真学Matlab不是很难。

首先,Matlab是针对矩阵的,然后好多的与方程的解有关的问题便迎刃而解,还有就是比较强大的绘图功能,以前在高中的时候只看过书本上做的一些比较复杂的图像,但现在可以自己做感觉还是蛮激动的,Matlab有个很方便的工具,就是它的帮助,遇到什么不懂的问题只要查一下help就能解决了。

在help中输入不理解的函数语句,就会弹出非常详细的解释,当然这是全英文的,不过正好可以锻炼一下我的英文水平。

遇到看不懂的,可以自己把它导入有道里面,一般都能找到翻译,还有些错误不能解决的我就自己还上网XX,越发局的XX是一个非常强大的搜索引擎,上面有好多与Matlab相关的知识,所以说网络是个非常好的学习语言的平台,可以通过网络与其他人交流经验。

通过这次课程设计,我体会到了Matlab的强大功能,其次就是它在我们专业中的用处也是很大的,比如说在信号处理和自动控制上的应用等等,以后我还得深入学习Matlab,并在以后的专业学习中去应用它.

 

参考文献

[1]唐向宏.MATLAB及在电子信息类课程中的应用.电子工业出版社.2006年

[2]穆尔.MATLAB实用教程(第二版).电子工业出版社.2010年

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

[4]刘保柱.MATLAB7.0从入门到精通(修订版).人民邮电出版社.2010年

[5]陈怀琛.MATLAB及在电子信息课程中的应用.电子工业出版社.2006年

[6]张琨.MATLAB2010从入门到精通.电子工业出版社.2011年

[7]薛山.MATLAB基础教程.清华大学出版社.2011年

[8]张圣勤.MATLAB7.0使用教程.机械工业出版社.2006年

 

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

姓名

王兵

性别

专业、班级

电子信息工程1102班

课程设计题目:

Matlab应用第7套综合题

课程设计答辩或质疑记录:

1.函数abs是什么意思?

答:

是对一个数取绝对值的意思。

2.在一个坐标里面绘制两个函数怎么区分两个函数?

答:

这个由于在打印后都是黑色的不能进行区分,因此我用了legend函数对

其进行了标注,而且用了不同的样式绘制两个图案。

3.函数islogical是什么意思?

答:

判断输入参数是否是逻辑类型。

True时即为逻辑1,false时即为逻辑0。

 

成绩评定依据:

最终评定成绩(以优、良、中、及格、不及格评定)

 

指导教师签字:

年月日

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 艺术

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1