MATLAB课程设计.docx
- 文档编号:12777650
- 上传时间:2023-04-22
- 格式:DOCX
- 页数:19
- 大小:79.48KB
MATLAB课程设计.docx
《MATLAB课程设计.docx》由会员分享,可在线阅读,更多相关《MATLAB课程设计.docx(19页珍藏版)》请在冰豆网上搜索。
MATLAB课程设计
一、课程目的
初步学会使用MATLAB软件,掌握MATLAB基本的函数的使用,熟练MATLAB编程,以便为今后数字信号的处理打下基础。
二、课程内容
实验一MATLAB语言基础
实验目的:
基本掌握MATLAB向量、矩阵、数组的生成及其基本运算(区分数组运算和矩阵运算)、常用的数学函数。
了解字符串的操作。
实验内容:
1、创建以下矩阵:
A为3×4的全1矩阵、B为3×3的0矩阵、C为3×3的单位阵、D为3×3的魔方阵、E由C和D纵向拼接而成、F抽取E的2~5行元素生成、G由F经变形为3×4的矩阵而得、以G为子矩阵用复制函数(repmat)生成6×8的大矩阵H。
源程序:
A=ones(3,4)%A为3×4的全1矩阵
B=zeros(3)%B为3×3的0矩阵
C=eye(3)%C为3×3的单位阵
D=magic(3)%D为3×3的魔方阵
E=cat(1,C,D)%E由C和D纵向拼接而成
F=E(2:
5,:
)%F抽取E的2~5行元素生
G=reshape(F,3,4)%G由F经变形为3×4的矩阵而得
H=repmat(G,2,2)%以G为子矩阵用复制函数(repmat)生成6×8的大矩阵H
运行结果:
A=
1111
1111
1111
B=
000
000
000
C=
100
010
001
D=
816
357
492
E=
100
010
001
816
357
492
F=
010
001
816
357
G=
0311
0156
8007
H=
03110311
01560156
80078007
03110311
01560156
80078007
2、
(1)用矩阵除法求下列方程组的解x=[x1;x2;x3];
(2)求矩阵的秩;
(3)求矩阵的特征值与特征向量;
(4)矩阵的乘幂与开方;
(5)矩阵的指数与对数;
(6)矩阵的提取与翻转。
源程序:
a=[6,3,4;-2,5,7;8,-1,-3]%系数矩阵
b=[3;-4;-7]
x=a\b%线性方程的解
c=rank(x)%矩阵的秩
[X,Lamda]=eig(a)%矩阵方程的特征值和特征向量
d=a^3%系数矩阵的3次幂
e=sqrtm(a)%x系数矩阵开方
f=expm(a)%系数矩阵的指数
g=logm(a)%系数矩阵的对数
h=triu(a)%提取系数矩阵右上三角的元素,其余元素补零
i=tril(a)%提取系数矩阵左上三角的元素,其余元素补零
j=diag(a)%提取系数矩阵的对角线上的元素
k=flipud(a)%系数矩阵a沿水平轴上下翻转
l=fliplr(a)%系数矩阵a沿垂直轴轴左右翻转
m=flipdim(a,1)%按行定维翻转
n=flipdim(a,2)%按列定维翻转
o=rot90(a)%矩阵整体逆时针翻转90°
运行结果:
a=
634
-257
8-1-3
b=
3
-4
-7
x=
1.0200
-14.0000
9.7200
c=
1
X=
0.8013-0.1094-0.1606
0.3638-0.65640.8669
0.47490.7464-0.4719
Lamda=
9.732600
0-3.29280
001.5602
d=
578298352
228156202
384154156
e=
2.2447+0.2706i0.6974-0.1400i0.9422-0.3494i
-0.5815+1.6244i2.1005-0.8405i1.7620-2.0970i
1.9719-1.8471i-0.3017+0.9557i0.0236+2.3845i
f=
1.0e+004*
1.06530.54150.6323
0.48300.24650.2876
0.63160.32060.3745
g=
1.7129+0.4686i0.5305-0.2425i0.5429-0.6049i
1.1938+2.8123i0.3658-1.4552i-0.5514-3.6305i
-0.0748-3.1978i0.7419+1.6546i1.8333+4.1282i
h=
634
057
00-3
i=
600
-250
8-1-3
j=
6
5
-3
k=
8-1-3
-257
634
l=
436
75-2
-3-18
m=
8-1-3
-257
634
n=
436
75-2
-3-18
o=
47-3
35-1
6-28
实验二MATLAB数值运算
实验目的:
掌握MATLAB的数值运算及其运算中所用到的函数,掌握结构数组的操作。
实验内容:
1、求
的“商”及“余”多项式。
源程序:
a=[1,0,1];
b=[1,3];
c=[1,1];
p1=conv(a,conv(b,c));
p2=[3,0,2,1];
[q,r]=deconv(p1,p2)%求矩阵的商和余
运行结果:
q=
0.33331.3333
r=
003.33331.00001.6667
2、图1是瑞士地图,为了算出其国土面积,首先对地图作如下测量:
以由西向东方向为X轴,由南到北方向为Y轴,选择方便的原点,并将从最西边界点到最东边界点在X轴上的区间适当划分为若干段,在每个分点的Y方向测出南边界点和北边界点的Y坐标Y1和Y2,这样就得到了表1,根据地图比例尺知道18mm相当于40km,试由测量数据计算瑞士国土近似面积,与其精确值41228km2比较。
图1瑞士地图(单位mm)。
表1瑞士地图坐标
X
7
10.5
13
17.5
34
40.5
44.5
48
56
61
68.5
76.5
80.5
91
Y1
44
45
47
50
50
38
30
30
34
36
34
41
45
46
Y2
44
59
70
72
93
100
110
110
110
117
118
116
118
118
X
96
101
104
106.5
111.5
118
123.5
136.5
142
146
150
157
158
Y1
43
37
33
28
32
65
55
54
52
50
66
66
68
Y2
121
124
121
121
121
116
122
83
81
82
86
85
68
源程序:
x=(40/18)*[7,10.5,13,17.5,34,40.5,44.5,48,56,61,68.5,76.5,80.5,91,96,101,104,106.5,111.5,118,123.5,136.5,142,146,150,157,158];
y1=(40/18)*[44,45,47,50,50,38,30,30,34,36,34,41,45,46,43,37,33,28,32,65,55,54,52,50,66,66,68];
y2=(40/18)*[44,59,70,72,93,100,110,110,110,117,118,116,118,118,121,124,121,121,121,116,122,83,81,82,86,85,68];
p=diff(x);
q=y2-y1;
r=q(2:
27);
s=r';
area=p*s%瑞士国土面积
运行结果:
area=
4.2237e+004
实验三MATLAB符号运算
实验目的:
掌握符号变量和符号表达式的创建,掌握MATLAB的symbol工具箱的一些基本应用。
实验内容:
1、
(1)已知
,按照自变量x和自变量a,对表达式f分别进行降幂排列。
源程序:
symsxabc;%定义符号变量
f=(a*x^2+b*x+c-3)^3-a*(c*x^2+4*b*x-1)
fx=collect(f)%对f按x的降幂排列
fa=collect(f,a)%对f按a的降幂排列
运行结果:
f=
(a*x^2+b*x+c-3)^3-a*(c*x^2+4*b*x-1)
fx=
a^3*x^6+3*b*a^2*x^5+((c-3)*a^2+2*b^2*a+a*(2*(c-3)*a+b^2))*x^4+(4*(c-3)*b*a+b*(2*(c-3)*a+b^2))*x^3+((c-3)*(2*(c-3)*a+b^2)+2*b^2*(c-3)+a*(c-3)^2-a*c)*x^2+(3*(c-3)^2*b-4*b*a)*x+(c-3)^3+a
fa=
a^3*x^6+3*(b*x+c-3)*x^4*a^2+(3*(b*x+c-3)^2*x^2-c*x^2-4*b*x+1)*a+(b*x+c-3)^3
(2)已知符号表达式
,
,计算x=0.5时,f的值;计算复合函数f(g(x))。
源程序:
symsx;%定义符号变量x
f=1-sin(x)^2
g=2*x+1
f1=subs(f,'0.5')%利用符号替换函数求f的解析解
answ=vpa(f1,6)%用可变精度转换函数将解析解转换成6位精的数值解
fg=compose(f,g)%求f(g(x))
运行结果:
f=
1-sin(x)^2
g=
2*x+1
f1=
1-sin((0.5))^2
answ=
.770151
fg=
1-sin(2*x+1)^2
2、
(1)求
。
源程序:
symsx%定义符号变量
ans=limit((x^2-1)/(x^2-3*x+1),x,2)%求函数在2的极限
运行结果:
ans=
-3
(2)求函数f(x)=cos2x-sin2x的积分;求函数
的导数。
源程序:
symsx%定义符号变量
ans1=int(cos(2*x)-sin(2*x))%求不定积分
pretty(ans1)%改写成习惯性的数学表达式
ans2=diff((exp(x)+x*sin(x))^(1/2))%求微分
pretty(ans2)%改写成习惯性的数学表达式
运行结果:
ans1=
1/2*sin(2*x)+1/2*cos(2*x)
1/2sin(2x)+1/2cos(2x)
ans2=
1/2/(exp(x)+x*sin(x))^(1/2)*(exp(x)+sin(x)+x*cos(x))
exp(x)+sin(x)+xcos(x)
1/2--------------------------
1/2
(exp(x)+xsin(x))
(3)计算定积分
源程序:
symsx%定义符号变量
answ=int((sin(x)+2),0,pi/6)%定积分
pretty(answ)
运行结果:
answ=
-1/2*3^(1/2)+1/3*pi+1
1/2
-1/23+1/3pi+1
(4)求下列线性代数方程组的解。
源程序:
symsxyz%定义变量
L1='x+y+z-10'%线性方程
L2='3*x+2*y+z-14'%线性方程
L3='2*x+3*y-z-1'%线性方程
[x,y,z]=solve(L1,L2,L3,x,y,z)%线性方程的解
运行结果:
L1=
x+y+z-10
L2=
3*x+2*y+z-14
L3=
2*x+3*y-z-1
x=
1
y=
2
z=
7
(5)求解当y(0)=2,z(0)=7时,微分方程组的解。
源程序:
[y,z]=dsolve('Dy-z=sin(x)','Dz+y=1+x','y(0)=2,z(0)=7','x')%微分方程特解
pretty(y)%习惯数学形式
pretty(z)%习惯数学形式
运行结果:
y=
cos(x)+6*sin(x)+1/2*sin(x)*x+1+x
z=
-3/2*sin(x)+6*cos(x)+1+1/2*cos(x)*x
cos(x)+6sin(x)+1/2sin(x)x+1+x
-3/2sin(x)+6cos(x)+1+1/2cos(x)x
实验四MATLAB程序设计
实验目的:
掌握MATLAB程序设计的主要方法,熟练编写MATLAB函数。
实验内容:
1、用π/4≈1-1/3+1/5-1/7+…公式求π的近似值,直到最后一项的绝对值小于10-6
为止,试编写其M脚本文件。
源程序:
%首先设定需要的变量
t=1;%t表示计算式括号中的各项
pi=0;%pi代表圆周率,先置0
n=1;%n为表示分母的变量
s=1;%变量s用正负娄的改变,控制“+、-”的转换
whileabs(t)>1e-7%"t的绝对值大于10的-7次方"为循环条件
pi=pi+t;
n=n+2;
s=-s;
t=s/n;
end
pi=pi*4;
fprintf('pi=%f\n',pi)%输出结果
运行结果:
pi=3.141592
2、编写求矩形面积函数rect,当没有输入参数时,显示提示信息;当只输入一个参数时,则以该参数作为正方形的边长计算其面积;当有两个参数时,则以这两个参数为长和宽计算其面积。
源程序:
functions=rect(w,p)%求面积的函数
ifnargin==0
error('noinput')
elseifnargin==1
p=w;
s=w*p;
elseifnargin>2
error('toomangyinput')
else
s=w*p;
end
执行:
rect()
输出:
?
?
?
Errorusing==>rect
noinput
执行:
rect(7.6)
输出:
ans=
57.7600
执行:
rect(7,8)
输出:
ans=
56
执行:
rect(15,12,3)
输出:
?
?
?
Errorusing==>rect
Toomanyinputarguments.
实验五、MATLAB数据可视化
实验目的:
掌握MATLAB二维图形绘制,掌握图形属性的设置和图形修饰;掌握图像文件的读取和显示。
实验内容:
图2
写出图2的绘制源程序。
按照以下的步骤进行
(1)产生曲线的数据(共有3组数据);
(2)选择合适的线形、标记、颜色(正弦曲线为红色,余弦曲线为紫色);(3)添加图例及文字说明信息;(4)添加坐标轴说明与图标题。
源程序:
x=0:
.1:
12.5;
y1=sin(pi/6*x);
y2=cos(pi/6*x);
plot(x,y1,'r--',x,y2,'m');%绘制sin(x)和cos(x)曲线
axis([0,16,-1,1]);%改变图中坐标值范围
xlabel('时间');%标记x轴
ylabel('幅值');%标记y轴
legend('sin(x)','cos(x)');%线型注释
title('正余弦曲线');%标题
运行结果:
一、课程设计体会
本次MATLAB课程设计确实让我学会了许多,让我们见识了MATLAB作为科学计算工具,在数值计算、数值和符号计算、科学绘图、数字信号处理技术等方面的强大,MATLAB说难又不是很难,说容易不像想象中的那么容易。
就像C语言一样,MALALB有它自己的语言,要全面而熟练的掌握它的语言,这短短的几天远远不够。
在这几天的MATLAB课程设计中,我遇到了不少问题,也解决了不少问题,更重要的是明白了不少。
以前用笔算得头晕脑胀的计算题,在MATLAB眼中不过是小儿科而已,不用1s结果就能出现在我们的面前,这多么强大啊,我想我们人脑要有有这么强的能力该有多好。
我真的感叹这么高级的工具是人类智慧的结晶,
六、参考资料
[1]张铮等,MATLAB程序设计与实例应用,2003年11月第1版
[2]李海涛,MATLAB程序设计教程,2002年08月第1版
[3]刘卫国,MATLAB程序设计与应用,2002年
[4]李丽,MATLAB工程计算机应用,2001年9月
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 课程设计
![提示](https://static.bdocx.com/images/bang_tan.gif)