1MATLAB课程设计.docx
《1MATLAB课程设计.docx》由会员分享,可在线阅读,更多相关《1MATLAB课程设计.docx(13页珍藏版)》请在冰豆网上搜索。
![1MATLAB课程设计.docx](https://file1.bdocx.com/fileroot1/2022-10/26/27dee6f8-8762-4438-930b-1aff412ae8d0/27dee6f8-8762-4438-930b-1aff412ae8d01.gif)
1MATLAB课程设计
课程设计任务书
学生姓名:
杨坚专业班级:
电信1006班
指导教师:
阙大顺,李景松工作单位:
信息工程学院
课程设计名称:
Matlab应用课程设计
课程设计题目:
Matlab运算与应用设计3
初始条件:
1.Matlab6.5以上版本软件;
2.课程设计辅导资料:
“Matlab语言基础及使用入门”、“Matlab及在电子信息课程中的应用”、线性代数及相关书籍等;
3.先修课程:
高等数学、线性代数、电路、Matlab应用实践及信号处理类相关课程等。
要求完成的主要任务:
(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)
1.课程设计内容:
根据指导老师给定的7套题目,按规定选择其中1套完成;
2.本课程设计统一技术要求:
研读辅导资料对应章节,对选定的设计题目进行理论分析,针对具体设计部分的原理分析、建模、必要的推导和可行性分析,画出程序设计框图,编写程序代码(含注释),上机调试运行程序,记录实验结果(含计算结果和图表),并对实验结果进行分析和总结。
具体设计要求包括:
1初步了解Matlab、熟悉Matlab界面、进行简单操作;
2MATLAB的数值计算:
创建矩阵、矩阵运算、多项式运算、线性方程组、数值统计;
3基本绘图函数:
plot,plot3,mesh,surf等,要求掌握以上绘图函数的用法、简单图形标注、简单颜色设定等;
4使用文本编辑器编辑m文件,函数调用;
5能进行简单的信号处理Matlab编程;
6按要求参加课程设计实验演示和答辩等。
3.课程设计说明书按学校“课程设计工作规范”中的“统一书写格式”撰写,具体包括:
1目录;
2与设计题目相关的理论分析、归纳和总结;
3与设计内容相关的原理分析、建模、推导、可行性分析;
4程序设计框图、程序代码(含注释)、程序运行结果和图表、实验结果分析和总结;
5课程设计的心得体会(至少500字);
6参考文献(不少于5篇);
7其它必要内容等。
时间安排:
1.5周(分散进行)
参考文献:
[1](美)穆尔,高会生,刘童娜,李聪聪.MATLAB实用教程(第二版).电子工业出版社,2010.
[2]王正林,刘明.精通MATLAB(升级版).电子工业出版社,2011.
[3]陈杰.MATLAB宝典(第3版).电子工业出版社,2011.
[4]刘保柱,苏彦华,张宏林.MATLAB7.0从入门到精通(修订版).人民邮电出版社,2010.
指导教师签名:
年月日
系主任(或责任教师)签名:
年月日
1.MATLAB的简介
MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
MATLAB是矩阵实验室(MatrixLaboratory)的简称,和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()等函数。
>>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的计算结果
我们注意到matlab中的pi与真正的有差距,而且数字与因式相乘要使用乘法符号'*'.通过这个计算,我了解到matlab有处理数据计算的功能。
2.2绘制函数在时的曲线。
利用MATLAB软件绘制曲线图。
在这里用到的是plot命令。
熟悉使用plot及一些画图修饰命令:
xlabel,ylabel,title,legend,axis,gridon。
>>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范围
>>gridon%显示网格
2.2图
plot命令是很好的画二维函数图像的命令,但取变量数组时因注意数组的步长。
结合其他的一些函数它可以很方便的画出所需区域的函数图像。
可以很轻松的描绘处函数运算之后以及符合函数的图像。
还有就是写命令时注意运算符前加“.”与不加的区别。
2.3用图形表示离散函数。
这道题目中要用到scatter()函数来画离散图。
其中还用到绝对值的函数abs(),还有就是前一题用到的一些修饰命令。
>>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分析下面每条指令的功能并运行,观察执行结果。
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图
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=
00000
00000
00000
>>A(:
)=-4:
10
A=
-4-1258
-30369
-214710
>>L=abs(A)>4
L=
00011
00011
00011
>>islogical(L)
ans=
1
>>X=A(L)
X=
5
6
7
8
9
10
A=[1:
5;6:
10]
功能:
生成一二维数组
运行结果:
A=
12345
678910
pow2(A)
功能:
求2的A次方
运行结果:
ans=
2481632
641282565121024
A=zeros(3,2)
功能:
生成3*2阶的全0矩阵
运行结果:
A=
00
00
00
A(:
)=1:
6
功能:
将数组赋给矩阵
运行结果:
A=
14
25
36
A=A*(1+i)
功能:
用A成以复数(1+i)转换成复数在赋还给A
运行结果:
A=
1.0000+1.0000i4.0000+4.0000i
2.0000+2.0000i5.0000+5.0000i
3.0000+3.0000i6.0000+6.0000i
A1=A.’;
功能:
生成A的转置矩阵并赋给A1
结果:
A1=
1.0000+1.0000i2.0000+2.0000i3.0000+3.0000i
4.0000+4.0000i5.0000+5.0000i6.0000+6.0000i
B1=A’;
功能:
生成A的转置共轭矩阵并赋给B1
运行结果:
B1=
1.0000-1.0000i2.0000-2.0000i3.0000-3.0000i
4.0-4.0000i5.0000-5.0000i6.0000-6.0000i
A=ones(2,3)
功能:
生成2*3阶的全1矩阵并赋给A
运行结果:
A=
111
111
B=ones
(2)
功能:
生成2*2阶的全1矩阵并赋给B
运行结果:
B=
11
11
C=eye(4)
功能:
生成4*4阶的单位矩阵并赋给C
运行结果:
C=
1000
0100
0010
D=diag(C)
功能:
抽取C的对角向量并赋给D
运行结果:
D=
1
1
1
1
E=repmat(C,1,3)
功能:
将三个矩阵C连接在一起生成一新矩阵并赋给E
运行结果:
E=
Columns1through11
10001000100
01000100010
00100010001
00010001000
Column12
0
0
0
1
2.5计算在x=0.1与10处的值。
2.5.1理论分析
这道题目是运用MATLAB计算多项式。
这里运用到的是polyval()命令。
通过polyval()命令可以很快的计算出在相应值下的多项式的值。