MATLAB课设报告.docx
- 文档编号:7058959
- 上传时间:2023-01-16
- 格式:DOCX
- 页数:18
- 大小:141.14KB
MATLAB课设报告.docx
《MATLAB课设报告.docx》由会员分享,可在线阅读,更多相关《MATLAB课设报告.docx(18页珍藏版)》请在冰豆网上搜索。
MATLAB课设报告
Matlab应用课程设计任务书
学生姓名:
___吕义斌____专业班级:
电信2班
指导教师:
李达工作单位:
信息工程学院
题目:
Matlab应用第6套综合题
初始条件:
(1)提供实验室机房及其Matlab6.5以上版本软件;
(2)《MATLAB教程》学习。
要求完成的主要任务:
(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求):
(1)选择一本《MATLAB教程》,认真学习该教程的全部内容,包括基本使用方法、数组运算、矩阵运算、数学运算、程序设计、符号计算、图形绘制、GUI设计等内容;
(2)对该套综合题的10道题,进行理论分析,针对具体设计部分的原理分析、建模、必要的推导和可行性分析,画出程序设计框图,编写程序代码(含注释),上机调试运行程序,记录实验结果(含计算结果和图表)。
(3)对实验结果进行分析和总结;
(4)要求阅读相关参考文献不少于5篇;
(5)根据课程设计有关规范,按时、独立完成课程设计说明书。
时间安排:
(1)布置课程设计任务,查阅资料,学习《MATLAB教程》十周;
(2)进行编程设计一周;
(3)完成课程设计报告书一周;
指导教师签名:
年月日
系主任(或责任教师)签名:
年月日
目录
目录2
一、MATLAB简介1
2.MATLAB的功能1
4.MATLAB操作桌面1
二.任务及过程2
题目1.2
题目2.2
题目3.4
题目4.5
题目5.10
题目6.11
题目7.11
题目8.13
题目9.14
题目1015
三、心得体会17
参考文献18
一、MATLAB简介
MATLAB是一款由美国MathWorks公司出品的商业数学软件。
MATLAB是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。
MATLAB作为高性能、交互式的科学计算工具,具有非常友好的图形界面,这使得MATLAB的应用非常广泛;同时MATLAB也提供了强大的绘图功能。
现在的MATLAB,提供了大量的内置函数,广泛的应用于科学计算、控制系统、信息处理等领域的分析、仿真和设计工作,而且利用MATLAB产品的开放式结构,用户和读者可以非常容易地对MATLAB的功能进行扩充,从而在不断深化对问题认识的同时,不断完善MATLAB产品以提高其对各个领域运用的适应能力。
2.MATLAB的功能
1.基本的数据处理
2.优化和解方程
3.动态过程仿真:
实时的和非实时的
4.数据来源:
Excel、数据库、A/D等等
5.嵌入式的控制:
Pc/104和DSP
6.神经元网络、小波分析、GA等等
7.虚拟现实仿真
4.MATLAB操作桌面
操作桌面包括5个窗口(浏览器):
1、命令窗口(CommandWindow);
2、工作空间窗口(Workspace)
3、当前目录浏览器(CurrentDirectory);
4、命令历史窗口(Commandhistory);
5、启动平台(LaunchPad)。
二.任务及过程
题目1.
已知t=linspace(0,2*pi,6),求t的正弦和正弦的绝对值。
源代码:
t=linspace(0,2*pi,6);%等间距线形生成一维数组
x=sin(t)%计算对应于自变量t数组的x数组
X=abs(x)%计算数组x的绝对值数组
运行结果:
x=
00.95110.5878-0.5878-0.9511-0.0000
X=
00.95110.58780.58780.95110.0000
题目2.
绘制余弦曲线y=cos(x)和指数函数y=x^2曲线。
1.绘制余弦曲线y=cos(x):
源代码:
x=0:
pi/50:
5*pi;%定义自变量x的取值数组
y=cos(x);%计算对应于自变量数组的y的数组
plot(x,y,'-b','LineWidth',2)%绘制曲线
xlabel('x'),ylabel('y')%添加横坐标,纵坐标名称
title('y-x')%添加图形名称
运行结果:
图1.余弦曲线y=cos(x)
2.绘制指数函数y=x^2曲线:
源代码:
x=-10:
0.01:
10;%定义自变量x的取值数组
y=x.^2;%计算对应于自变量数组的y的数组
plot(x,y,'LineWidth',2)%绘制曲线
xlabel('x'),ylabel('y')%添加横坐标,纵坐标名称
title('y-xcurve')%添加图形名称
运行结果:
图2.指数函数y=x^2曲线
题目3.
利用for...end循环语句,求2+4+6…+100的值。
图3.循环结构流程图
源代码:
s=0;%使累加和初始值为0
forn=2:
2:
100
s=s+n;%循环体
end
s
运行结果:
s=
2550
题目4.
分析下面每条指令的功能并运行,观察执行结果。
(1)X=0:
0.25:
3;
Y=X.*exp(-X);
plot(X,Y),xlabel(‘x’),ylabel(‘y’),title(‘y=x*exp(-x)’);
(2)A=zeros(5,3)
A(:
)=-7:
7
L=abs(A)>4
islogical(L)
X=A(L)
(3)A=[3:
7;6:
10]
pow2(A)
(4)A=zeros(3,2)
A(:
)=2:
7
A=A*(1+i)
A1=A.’
B1=A’
(5)A=ones(2,3)
B=ones(3)
C=rand(4)
D=diag(C)
E=repmat(C,1,3)
(1)分析过程:
X=0:
0.25:
3;%定义自变量x的取值数组
Y=X.*exp(-X);%计算对应于自变量数组的y的数组
plot(X,Y)%绘制曲线
xlabel('x'),ylabel('y'),title('y=x*exp(-x)');%添加横坐标名称,纵坐标名称,图形名称
执行结果:
图4.4.
(1)执行结果
(2)分析过程:
A=zeros(5,3)%通过zero函数产生一个3*5的零矩阵
A(:
)=-7:
7%将-7到7的数值依次赋给A的元素
L=abs(A)>4%判断A内元素是否有绝对值大于4的数值,并赋其值1
islogical(L)%判断矩阵L内是否为逻辑值,是返回1,不是则返回0
X=A(L)%将A对应L内为真的元素取出来,构成列向量X
执行结果:
A=
000
000
000
000
000
A=
-7-23
-6-14
-505
-416
-327
L=
100
100
101
001
001
ans=
1
X=
-7
-6
-5
5
6
7
(3)分析过程:
A=[3:
7;6:
10]%产生一个元素为从3到7和从6到10的二维数组
pow2(A)%元素分别变成2的原来A元素次方
执行结果:
A=
34567
678910
ans=
8163264128
641282565121024
(4)分析过程:
A=zeros(3,2)%产生3*2的零元素数组A
A(:
)=2:
7%将2到7的6个数分别赋给A中的元素
A=A*(1+i)%A中的元素分别乘以(i+1),使A成为一个负数矩阵
A1=A.'%将矩阵A转置成矩阵A1
B1=A'%B1为A1的共轭
执行结果:
A=
00
00
00
A=
25
36
47
A=
2.0000+2.0000i5.0000+5.0000i
3.0000+3.0000i6.0000+6.0000i
4.0000+4.0000i7.0000+7.0000i
A1=
2.0000+2.0000i3.0000+3.0000i4.0000+4.0000i
5.0000+5.0000i6.0000+6.0000i7.0000+7.0000i
B1=
2.0000-2.0000i3.0000-3.0000i4.0000-4.0000i
5.0000-5.0000i6.0000-6.0000i7.0000-7.0000i
(5)分析过程:
A=ones(2,3)%产生一个2*3的1矩阵
B=ones(3)%产生一个元素为1的2*2矩阵
C=rand(4)%产生一个行列为4的单位矩阵
D=diag(C)%将C的对角元素取出构成列矩阵
E=repmat(C,1,3)%将C看成一个元素,重复C构成一个1*3的矩阵
执行结果:
A=
111
111
B=
111
111
111
C=
0.95010.89130.82140.9218
0.23110.76210.44470.7382
0.60680.45650.61540.1763
0.48600.01850.79190.4057
D=
0.9501
0.7621
0.6154
0.4057
E=
Columns1through11
0.95010.89130.82140.92180.95010.89130.82140.92180.95010.89130.8214
0.23110.76210.44470.73820.23110.76210.44470.73820.23110.76210.4447
0.60680.45650.61540.17630.60680.45650.61540.17630.60680.45650.6154
0.48600.01850.79190.40570.48600.01850.79190.40570.48600.01850.7919
Column12
0.9218
0.7382
0.1763
0.4057
题目5.
计算多项式p(x)=x3+15x2+8x在x=3和x=0:
1:
8时的值。
源代码:
y=[1,15,8,0];%3次多项式系数
y1=polyval(y,3)%计算x=2使多项式的值
y2=polyval(y,0:
1:
8)%计算x为向量时多项式的值
运行结果:
y1=
186
y2=
0248418633654080411341536
题目6.
随机生成一个10000×3的矩阵,并绘制其柱状图。
源代码:
a=100*rand(10000,3)%随机生成一个10000*3的矩阵
bar(a)%绘制柱状图
运行结果:
图5.矩阵10000*3的柱状图
题目7.
利用switch…case编写以下程序:
某商场对顾客所购买的商品实行打折销售,标准如下(商品价格用price来表示):
price<200无折扣
200
price<5005%折扣
500
price<100010%折扣
Price
100015%折扣
输入所售商品的价格,求其实际销售价格。
图6.Swich语句流程图
源代码:
y=input('inputtheprice:
');%输入价格:
switchfix(y/100)
case{0,1}%价格小于100
rate=0;
case{2,3,4}%价格大于200小于500
rate=5/100;
case{5,6,7,8,9}%价格大于500小于1000
rate=10/100;
otherwise%价格大于等于1000
rate=15/100;
end
price=y*(1-rate)%输出实际销售价格
运行结果:
inputtheprice:
450
price=
427.5000
题目8.
编程将表达式
进行部分分式展开。
源代码:
a=[10,30];%分子展开式系数
b=[1,-22,96,0];%分母展开式系数
[r,p,k]=residue(a,b)%求分式部分分式展开式
运行结果:
r=
1.1875
-1.5000
0.3125
p=
16.0000
6.0000
0
k=
[]
结果分析:
表达式
展开结果为:
题目9.
已知
,其中t的范围是[010],计算y的微分和积分并给出曲线图。
源代码:
t1=0:
0.1:
10;%t1的取值从0到10,步长为0.1
t2=0:
0.1:
10;%t1的取值从0到10,步长为0.1
y1=exp(-1)*cos(t1);%y等于e的-1次方乘以cos(t)
y2=exp(-1)*cos(t2);
d=[0diff(y1)]%计算微分
s=cumtrapz(t,y2)%用矩形法计算积分,横坐标两点间隔为0.05
[AX,H1,H2]=plotyy(t1,d,t2,s,'plot','plot');%使用plotty函数绘制双坐标轴图像
xlabel('t')%标注x轴变量
text(0.3,-0.03,'曲线d=[0diff(exp(-1)*cos(t))]')%在指定位置添加图形说明
text(5.5,0.035,'曲线s=cumtrapz(t,exp(-1)*cos(t))')%在指定位置添加图形说明
set(get(AX
(1),'Ylabel'),'String','d=[0diff(exp(-1)*cos(t))]')%添加纵坐标轴名称
set(get(AX
(2),'Ylabel'),'String','s=cumtrapz(t,exp(-1)*cos(t))')%添加纵坐标轴名称
执行结果:
d=
Columns1through11
0-0.0450-0.1241-0.1727-0.1791-0.1416-0.06950.01970.10400.16290.1819
Columns12through21
0.15640.09250.0060-0.0819-0.1498-0.1810-0.1679-0.1137-0.03170.0582
s=
Columns1through11
00.17270.30310.35930.32750.21560.0508-0.1263-0.2726-0.3521-0.3454
Columns12through21
-0.2541-0.10060.07750.23660.33790.35640.28760.1484-0.0271-0.1959
图7.
的微分和积分曲线图
题目10
用fminbnd求解函数
在区间(1,10)上的最小值。
首先建一个dfun.m文件:
functionf=dfun(x)
f=x-1/x+5;
再在command窗口通过调用fminbnd函数实现求值:
[x,y]=fminbnd(@dfun,1,10)
运行结果:
x=
1
y=
5
三、心得体会
通过本次MATLAB应用课程设计,让我认识了一门在我看来强大而又神奇的一种软件。
MATLAB是当今最优秀的科技应用软件之一,我很有幸能够认识它,并在一定程度上对它有所了解。
在查找MATLAB的软件及资料中,我了解到,MATLAB软件具有强大的科学计算能力、可视化功能、开放式可扩展环境,所附带的工具箱支持30多个领域的计算、仿真等应用,因此,在许多科学领域中MATLAB成为计算机辅助设计和分析、算法研究及应用开发的基本工具和首选平台。
另外,在我所参考的资料中,我了解到MATLAB在实现数字信号处理、图像处理、小波分析和系统仿真有重要应用,所以我也认识到掌握它对自己的专业是相当重要的。
熟悉掌握甚至精通MATLAB软件将会为我来在本专业的发展打下鉴定的基础。
在本次课程设计实践中,主要用到了MATLAB软件强大的计算功能、数据处理、绘图等功能。
本次课程设计的练习题虽然不是很多(单个人而言),但涉及的范围比较广,而且是一个由易到难的阶梯分布,对于我们新学者而言很适合,由于题型涉及范围比较多,所以虽然只是做一题我们也会学习很多的知识,这种分布对我们是很有益的。
在整个设计过程中我懂得了许多东西,也培养了独立思考和设计的能力,树立了对知识应用的信心,相信会对今后的学习工作和生活有非常大的帮助,并且提高了自己的动手实践操作能力,使自己充分体会到了在设计过程中的成功喜悦,相信这次的实践奖使我终生受益。
参考文献
[1]周建兴等.MATLAB从入门到精通[M].北京:
人民邮电出版社,2008.11
[2]刘卫国.MATLAB程序设计教程(第二版)[M].北京:
中国水利水电出版社,2010.2
[3]王家文,王皓,等.MATLAB7.0编程基础[M].北京:
机械工业出版社,2005
[4]孙祥,徐流美,等.MATLAB7.0基础教程[M].北京:
清华大学出版社,2005
[5]张平,等.MATLAB基础与应用[M].北京:
北京航空航天大学出版社,2006
本科生课程设计成绩评定表
姓名
吕义斌
性别
男
专业、班级
电子信息工程、电信1102班
课程设计题目:
Matlab应用第6套综合题
课程设计答辩或质疑记录:
1.在MATLAB中函数POW2的含义是什么?
答:
POW2的含义是以2为底的幂,比例浮点数。
格式为POW2()。
2.函数plotyy的作用是什么?
它的格式是怎样的?
答:
plotyy函数是用来绘制双坐标轴。
它的命令格式有:
(1)plotyy(x1,y1,x2,y2),绘制两条曲线x1-y1,x2-y2,两条曲线分别以左右纵轴为纵轴;
(2)plotyy(x1,y1,x2,y2,fun),绘制两条曲线x1-y1,x2-y2,两条曲线分别以左右纵轴为纵轴,曲线的类型由fun来制定;(3)plotyy(x1,y1,x2,y2,fun1,fun2),绘制两条曲线x1-y1,x2-y2,两条曲线分别以左右纵轴为纵轴,曲线的类型由fun1和fun2来制定;
3.rand函数和randn函数的含义分别是什么?
他们的区别是什么?
答:
rand函数和randn函数都是生成随即数组的函数,它们的区别是:
rand函数产生的数组元素均匀分布,而randn函数产生的数组元素服从正太分布。
成绩评定依据:
最终评定成绩(以优、良、中、及格、不及格评定)
指导教师签字:
年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 报告