收藏 分销(赏)

matlab课程设计---MATLAB程序应用与仿真.docx

上传人:鱼** 文档编号:854976 上传时间:2024-03-30 格式:DOCX 页数:14 大小:2.03MB 下载积分:5 金币
下载 相关 举报
matlab课程设计---MATLAB程序应用与仿真.docx_第1页
第1页 / 共14页
matlab课程设计---MATLAB程序应用与仿真.docx_第2页
第2页 / 共14页


点击查看更多>>
资源描述
课 程 设 计 说 明 书 1 课程名称 题 目  计算机仿真技术 MATLAB 程序应用与仿真 -- 函数可视化应用和恒稳磁场仿真 学 院 XXXXXXXX学院 班 级 XXXXXXXXX 课程设计任务书 (指导教师填写) 课程设计名称 计算机仿真技术 学生姓名 XXXX 专业班级 XXX 设计题目 MATLAB 程序应用与仿真 ―― 函数可视化应用和恒稳磁场仿真 一、 课程设计目的 计算机仿真课程设计是在学完了 “高等数学”、“线性代数”、“积分变换”、“大学物理”、 “电路”等课程后进行的一个重要的实践性教学环节。学生通过本次课程设计应熟练掌握 MATLAB 基本操作方法,能够简单的进行简单的建模仿真。本设计主要目的为: 1. 了解 MATLAB 主要功能和基本特点,熟悉 MATLAB 操作环境。 2. 了解 MATLAB 图形处理系统应用。 3. 掌握 MATLAB 语法规则和程序设计基本特点,能够进行简单程序设计。 4. 掌握 MATLAB 在线性代数、 多项式与内插、 曲线拟合、 常微分方程求解等数值运算中 的应用。 5. 学会使用手册及有关资料。 二、 设计内容、技术条件和要求 设计内容: 1. 用 MATLAB 语言进行二维图形和三维图形的绘制。 (1)在一个绘图窗口中绘制下列函数的图形 (a) y (t) = 2exp( 3t),0 t 2 1 (b) y (t) = 2t exp(2t),0 t 2 2 (c) y (t) = 1 exp( t 2 ), 4 t 4 3 2 2 (d ) y (t) = sin(t) , 5 t 5 4 t (2)绘制下列函数表示的曲面 (a) 4x2 9y 2 16z 2 = 25 (b) y 2 + z 2 = 2x 2. 用毕奥-萨伐定理计算位于 y-z 平面上的电流环在 x-y 平面上产生的磁场分布,并 用 MATLAB 进行仿真。 技术条件:一人一台装有 MATLAB6.5 或MATLAB7.0 软件的计算机。 要 求:学生在指导教师的指导下进行设计,完成数学模型建立, M 文件程序编写,调试 2 及结果分析,最后写出设计说明书。 三、 时间进度安排 1. MATLAB 应用讲解 2 天 2.资料查阅与学习、讨论 1 天 3.仿真模型建立及编程 3 天 4.系统调试和成果验收 4 天 四、 主要参考文献 1.《MATLAB 实用教程》 (第二版) . 郑阿奇主编. 电子工业出版社 2.《MATLAB 及其在电子信息课程中的应用》 (第三版) .陈怀琛. 电子工业出版社 3.《MATLAB7.x 程序设计语言》 .楼顺天主编,西安电子科技大学出版社 3 指导教师签字:  20XX 年 11 月 20 日 课程设计报告 设计内容: 1. 用 MATLAB 语言进行二维图形和三维图形的绘制。 (1)在一个绘图窗口中绘制下列函数的图形 (a) y (t) = 2exp( 3t),0 t 2 1 (b) y (t) = 2t exp(2t),0 t 2 2 (c) y (t) = 1 exp( t 2 ), 4 t 4 3 2 2 (d ) y (t) = sin(t) , 5 t 5 4 t 程序及运行结果: 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)) 4 绘图: (2)绘制下列函数表示的曲面 (a) 4x2 一9y 2 一 16z 2 = 25 (b) y 2 + z 2 = 2x 程序及运行结果: (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) hold on surf(-xx,yy,zz) title('杨仕凯') 5 绘图: (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('杨仕凯') 6 绘图: 2. 用毕奥-萨伐定理计算位于 y-z 平面上的电流环在 x-y 平面上产生的磁场分布,并 用 MATLAB 进行仿真。 程序: fprintf('************************\n* 恒 稳 磁 场 分 布 仿 真 *\n************************\n'); clear all; 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; 7 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; for i=1:NGy for j=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); hold on; plot(0,Rh,'bo');plot(0,-Rh,'rx'); xlabel('x'); ylabel('y'); hold off; 8 title('杨仕凯') 运行结果: ************************ * 恒稳磁场分布仿真* ************************ 输入环半径 Rh(m):(取 2) 2 绘图: 9 思考题 1. MATLAB 功能和特点是什么? 答:功能: 1) 数值计算功能 2) 符号计算功能。 3) 数据分析功能。 4) 动态仿真功能。 5) 程 序接口功能。 6) 文字处理功能。 特点: 1) 界面友好, 编程效率高。 2) 功能强大, 可扩展性强。 3) 图形功能, 灵活且方便。 4) 在线帮助, 有利于自学。 「|1 2 3]| 「|1 1 1]| 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 = 10 1 4 7 B =  2 5 8  3 6 9 1 2 3 C = 14 32 50 D = 1 8 21  1 2 3 14 32 50 2 10 24  1 2 3 14 32 50 3 12 27 3. M 脚本文件和 M 函数文件的主要区别是什么? 答:主要区别: M 文件可分为脚本文件(MATLAB scripts)和函数文件(MATLAB functions)。 脚本文件是包含多条 MATLAB 命令的文件;函数文件可以包含输入变量,并把结果传送给 输出变量。 4 .编程求解如下线性代数方程组。 3x+4y-7z-12w=4 5x-7y+4z+2w=-3 x+8z-5w=9 -6x+5y-2z+10w=-8 程序: A=[3 4 -7 -12;5 -7 4 2;1 0 8 -5;-6 5 -2 10] B=[4;-3;9;-8] X=A\B 运行结果: A = 11 3 5 1 -6 B = 4 -3 9 -8 X =  4 -7 0 5  -7 4 8 -2  -12 2 -5 10 -1.4841 -0.6816 0.5337 -1.2429 5.采用 for„end 或者 while„end 编写程序计算从整数 a 加到整数b (a<b)的数列和,并 分别采用 plot、 stem 和stairs 命令绘图,最后比较说明这三个绘图命令的不同。 程序: function y=sumy(a,b) c=b-a+1 y=zeros(c,1) y(1,1)=a for n=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 绘图: 12 6.编写 M 函数文件对下面函数进行分段曲面绘制。 (|0.5e-0.75 y2 -3.75x2 -1.5x z(x, y) =〈0.8e-y 2 -6x2 |l0.5e-0.75 y2 -3.75x2 +1.5x 程序: function z=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; for i=1:100; for j=1:100;  x + y > 1 - 1 < x + y 共 1 x + y 共 -1 13 if aa(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)); elseif aa(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)); else zz(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, see also lookfor get,set 等常用命令。 8) 要大胆的去试,试过才知道可不可以。 14
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服