matlab课程设计MATLAB程序应用与仿真.docx
- 文档编号:9854885
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:16
- 大小:302.44KB
matlab课程设计MATLAB程序应用与仿真.docx
《matlab课程设计MATLAB程序应用与仿真.docx》由会员分享,可在线阅读,更多相关《matlab课程设计MATLAB程序应用与仿真.docx(16页珍藏版)》请在冰豆网上搜索。
matlab课程设计MATLAB程序应用与仿真
课程设计说明书
课程名称计算机仿真技术
题目MATLAB程序应用与仿真
--函数可视化应用和恒稳磁场仿真
学院电子信息工程学院
班级电子信息工程083
课程设计任务书
(指导教师填写)
课程设计名称计算机仿真技术学生姓名杨仕凯专业班级电信083
设计题目MATLAB程序应用与仿真――函数可视化应用和恒稳磁场仿真
一、课程设计目的
计算机仿真课程设计是在学完了“高等数学”、“线性代数”、“积分变换”、“大学物理”、“电路”等课程后进行的一个重要的实践性教学环节。
学生通过本次课程设计应熟练掌握MATLAB基本操作方法,能够简单的进行简单的建模仿真。
本设计主要目的为:
1.了解MATLAB主要功能和基本特点,熟悉MATLAB操作环境。
2.了解MATLAB图形处理系统应用。
3.掌握MATLAB语法规则和程序设计基本特点,能够进行简单程序设计。
4.掌握MATLAB在线性代数、多项式与内插、曲线拟合、常微分方程求解等数值运算中的应用。
5.学会使用手册及有关资料。
二、设计内容、技术条件和要求
设计内容:
1.用MATLAB语言进行二维图形和三维图形的绘制。
(1)在一个绘图窗口中绘制下列函数的图形
(2)绘制下列函数表示的曲面
2.用毕奥-萨伐定理计算位于y-z平面上的电流环在x-y平面上产生的磁场分布,并用MATLAB进行仿真。
技术条件:
一人一台装有MATLAB6.5或MATLAB7.0软件的计算机。
要求:
学生在指导教师的指导下进行设计,完成数学模型建立,M文件程序编写,调试及结果分析,最后写出设计说明书。
三、时间进度安排
1.MATLAB应用讲解2天
2.资料查阅与学习、讨论1天
3.仿真模型建立及编程3天
4.系统调试和成果验收4天
四、主要参考文献
1.《MATLAB实用教程》(第二版).郑阿奇主编.电子工业出版社
2.《MATLAB及其在电子信息课程中的应用》(第三版).陈怀琛.电子工业出版社
3.《MATLAB7.x程序设计语言》.楼顺天主编,西安电子科技大学出版社
指导教师签字:
2009年11月20日
课程设计报告
设计内容:
1.用MATLAB语言进行二维图形和三维图形的绘制。
(1)在一个绘图窗口中绘制下列函数的图形
程序及运行结果:
t=0:
0.1:
2;
subplot(2,2,1)
plot(t,2*exp(-3*t))
t=0:
0.1:
2
subplot(2,2,2)
plot(t,2*t.*exp(-2*t))
t=-4:
0.1:
4
subplot(2,2,3)
plot(t,1/sqrt
(2)*exp(-t.*t/2))
t=-5:
0.1:
5
subplot(2,2,4)
plot(t,sin(t+eps)./(t+eps))
绘图:
(2)绘制下列函数表示的曲面
程序及运行结果:
(a)
y=linspace(-3,3,100);
z=linspace(-4,4,100);
[yy,zz]=meshgrid(y,z);
xx=sqrt(25/4+9/4*yy.^2+16/4*zz.^2)
surf(xx,yy,zz)
holdon
surf(-xx,yy,zz)
title('杨仕凯')
绘图:
(b)
y=linspace(-4,4,100);
z=linspace(-4,4,100);
[yy,zz]=meshgrid(y,z);
xx=(yy.^2+zz.^2)/2
surf(xx,yy,zz)
title('杨仕凯')
绘图:
2.用毕奥-萨伐定理计算位于y-z平面上的电流环在x-y平面上产生的磁场分布,并用MATLAB进行仿真。
程序:
fprintf('************************\n*恒稳磁场分布仿真*\n************************\n');
clearall;
mu0=4*pi*1e-7;
I0=5.0;
Rh=input('输入环半径Rh(m):
(取2)');
C0=mu0/(4*pi)*I0;
xMax=3;yMax=3;
NGx=21;NGy=21;
x=linspace(-xMax,xMax,NGx);
y=linspace(-yMax,yMax,NGy);
Nh=20;
theta0=linspace(0,2*pi,Nh+1);
theta1=theta0(1:
Nh);
y1=Rh*cos(theta1);
z1=Rh*sin(theta1);
theta2=theta0(2:
Nh+1);
y2=Rh*cos(theta2);
z2=Rh*sin(theta2);
dlx=0;
dly=y2-y1;
dlz=z2-z1;
xc=0;
yc=(y2+y1)/2;
zc=(z2+z1)/2;
fori=1:
NGy
forj=1:
NGx
rx=x(j)-xc;
ry=y(i)-yc;
rz=0-zc;
r3=sqrt(rx.^2+ry.^2+rz.^2).^3;
dlXr_x=dly.*rz-dlz.*ry;
dlXr_y=dlz.*rx-dlx.*rz;
Bx(i,j)=sum(C0*dlXr_x./r3);
By(i,j)=sum(C0*dlXr_y./r3);
end
end
clf;quiver(x,y,Bx,By);
holdon;
plot(0,Rh,'bo');plot(0,-Rh,'rx');
xlabel('x');ylabel('y');
holdoff;
title('杨仕凯')
运行结果:
************************
*恒稳磁场分布仿真*
************************
输入环半径Rh(m):
(取2)2
绘图:
思考题
1.MATLAB功能和特点是什么?
答:
功能:
1)数值计算功能2)符号计算功能。
3)数据分析功能。
4)动态仿真功能。
5)程序接口功能。
6)文字处理功能。
特点:
1)界面友好,编程效率高。
2)功能强大,可扩展性强。
3)图形功能,灵活且方便。
4)在线帮助,有利于自学。
2.计算A=
和B=
矩阵乘积和点积运算。
程序:
A=[1,2,3,;4,5,6;7,8,9;]
B=[1,1,1;2,2,2;3,3,3]
C=A*B
D=A.*B
运行结果:
A=
123
456
789
B=
111
222
333
C=
141414
323232
505050
D=
123
81012
212427
3.M脚本文件和M函数文件的主要区别是什么?
答:
主要区别:
M文件可分为脚本文件(MATLABscripts)和函数文件(MATLABfunctions)。
脚本文件是包含多条MATLAB命令的文件;函数文件可以包含输入变量,并把结果传送给输出变量。
4.编程求解如下线性代数方程组。
3x+4y-7z-12w=4
5x-7y+4z+2w=-3
x+8z-5w=9
-6x+5y-2z+10w=-8
程序:
A=[34-7-12;5-742;108-5;-65-210]
B=[4;-3;9;-8]
X=A\B
运行结果:
A=
34-7-12
5-742
108-5
-65-210
B=
4
-3
9
-8
X=
-1.4841
-0.6816
0.5337
-1.2429
5.采用for…end或者while…end编写程序计算从整数a加到整数b(a
程序:
functiony=sumy(a,b)
c=b-a+1
y=zeros(c,1)
y(1,1)=a
forn=2:
c
y(n,1)=y(n-1,1)+n+a-1
end
d=a:
b
xlabel('x')
ylabel('y')
subplot(2,2,1)
plot(d,y)
title('杨仕凯数列plot求和')
subplot(2,2,2)
stairs(d,y)
title('杨仕凯数列stairs求和')
subplot(2,2,3)
stem(d,y)
title('杨仕凯数列stem求和')
运行结果:
sumy(1,20)
ans=
1
3
6
10
15
21
28
36
45
55
66
78
91
105
120
136
153
171
190
210
绘图:
6.编写M函数文件对下面函数进行分段曲面绘制。
程序:
functionz=suny(x,y)
x=linspace(-3,3,100);
y=linspace(-4,4,100);
[xx,yy]=meshgrid(x,y);
zz=zeros(100,100);
aa=xx+yy;
fori=1:
100;
forj=1:
100;
ifaa(i,j)>1;
zz(i,j)=0.5*exp(-0.75*yy(i,j).*yy(i,j)-3.75*xx(i,j).*xx(i,j)-1.5*xx(i,j));
elseifaa(i,j)<=-1;
zz(i,j)=0.5*exp(-0.75*yy(i,j).*yy(i,j)-3.75*xx(i,j).*xx(i,j)-1.5*xx(i,j));
elsezz(i,j)=0.8*exp(-yy(i,j).*yy(i,j)-0.6*xx(i,j).*xx(i,j));
end
end
end
surf(xx,yy,zz)
xlabel('x')
ylabel('y')
zlabel('z')
title('杨仕凯z(x,y)')
绘图:
7.谈谈自己对MATLAB计算机仿真技术课程设计的体会。
体会总结以下几条:
1)matlab是一个很好的应用工具
2)学Matlab并不难,难的是学会怎么用,要有耐心。
3)不要只问不学,有了问题先自己想,察看帮助,实在看不懂再问别人。
4)多动手写程序、调试,多读matlab实验书上的程序。
5)电脑上复制粘贴很方便,最好还是自己写一遍,这样印象深刻,对于不懂的函数用法的函数,help中查查,能看懂多少算多少,对于程序断点调试一遍,弄清楚每个语句的功能,。
6)尽量摆脱c编程的习惯,总爱用循环,能不用的循环的尽量不用,掌握矢量化的精髓。
7)多用help,seealsolookforget,set等常用命令。
8)要大胆的去试,试过才知道可不可以。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab 课程设计 程序 应用 仿真