matlab实验指导答案详解(非常详细正确).doc_第1页
matlab实验指导答案详解(非常详细正确).doc_第2页
matlab实验指导答案详解(非常详细正确).doc_第3页
matlab实验指导答案详解(非常详细正确).doc_第4页
matlab实验指导答案详解(非常详细正确).doc_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验一 MATLAB工作环境熟悉及简单命令的执行一、实验目的:熟悉MATLAB的工作环境,学会使用MATLAB进行一些简单的运算。二、实验内容:MATLAB的启动和退出,熟悉MATLAB的桌面(Desktop),包括菜单(Menu)、工具条 (Toolbar)、命令窗口(Command Window)、历史命令窗口、工作空间(Workspace)等;完成一些基本的矩阵操作;学习使用在线帮助系统。三、实验步骤:1、启动MATLAB,熟悉MATLAB的桌面。2、在命令窗口执行命令完成以下运算,观察workspace的变化,记录运算结果。(1)(365-522-70)3(365-52*2-70)/3ans = 63.6667(2)area=pi*2.52area = 19.6350(3)已知x=3,y=4,在MATLAB中求z:x=3y=4z = x 2 * y 3 / (x - y) 2z = 576(4)将下面的矩阵赋值给变量m1,在workspace中察看m1在内存中占用的字节数。m1=执行以下命令m1 =16 2 3 13 ; 5 11 10 8 ; 9 7 6 12 ; 4 14 15 1 m1( 2 , 3 )ans = 10m1( 11 )ans = 6m1( : , 3 )ans =3 10 6 15m1( 2 : 3 , 1 : 3 )ans =5 11 10 9 7 6m1( 1 ,4 ) + m1( 2 ,3 ) + m1( 3 ,2 ) + m1( 4 ,1)ans = 34(5)执行命令help abs查看函数abs的用法及用途,计算abs( 3 + 4i )(6)执行命令x=0:0.1:6*pi;y=5*sin(x);plot(x,y) (6)运行MATLAB的演示程序,demo,以便对MATLAB有一个总体了解。四、思考题1、以下变量名是否合法?为什么?(1)x2 合法(2)3col 不合法,首字符是数字(3)_row 不合法,首字符必须是字母(4)for 不合法,for为MATLAB的保留关键字2、求以下变量的值,并在MATLAB中验证。(1)a = 1 : 2 : 5 ;a = 1 3 5(2)b = a a a ;b = 1 1 1 3 3 3 5 5 5(3)c = a + b ( 2 , : ) c =4 6 8实验二 MATLAB语言矩阵运算一、实验目的:掌握基本的矩阵运算及常用的函数。二、实验内容: 1、下列运算是否合法,为什么?如合法,结果是多少?(1) result1 = a(2) result2 = a * b 不合法,两矩阵的内阶不相等。(3) result3 = a + b(4) result4 = b * d(5) result5 = b ; c * d(6) result6 = a . * b(7) result7 = a . / b(8) result8 = a . * c不合法,两矩阵的维数不相等,点乘相求两矩阵的维数相同。(9) result9 = a . b(10) result10 = a . 2(11) result11 = a 2不合法,a矩阵不是方阵,方阵才能取平方。(12) result12 = 2 . a以上运算的关键不是结果是多少,而是结果怎么得来的,比如result5 = b ; c * d,要学会将其分解后去理解,可在命令窗口输入以下语句:ct=b;cr5=t * d2、用MATLAB求下面的的方程组。(1)A=7,2,1,-2;9,15,3,-2;-2,-2,11,5;1,3,2,13b=4;7;-1;0x=Abx = 0.4979 0.1445 0.0629 -0.0813(2) A=1,1,1,0;1,2,1,-1;2,-1,0,-3;3,3,5,-6 b=1;8;3;5xyzw=inv(A)*bxyzw= 1.0000 5.0000 -5.0000 -2.00003、已知A=7,2,1,-2;9,15,3,-2;-2,-2,11,5;1,3,2,13 (1)求矩阵A的秩(rank)rank(A)(2)求矩阵A的行列式(determinant)det(A)(3)求矩阵A的逆(inverse)inv(A)(4)求矩阵A的特征值及特征向量(eigenvalue and eigenvector)v,d=eig(A)该题目要求大家学会使用MATLAT的帮助系统,一是知道函数名,怎样查函数用法,二是不知道函数名,怎样查函数名及其用法。4、关系运算与逻辑运算 已知a=20,b=-2,c=0,d=1(1) r1 = a b(2) r2 = a b & c d(3) r3 = a = b* (-10)(4) r4 = b | cr1 = 1,r2 = 0,r3 = 1,r4 = 0三、思考题,求y=?(用format long g查看y的值)方法一:n=-10:1:10format long gx=2 .ny=sum(x)方法二:y=0;for t=-10:10 y=y+2t;endy方法三y=0; t=-10while t=10 y=y+2t; t=t+1;endy实验三 选择结构程序设计及调试一、实验目的:掌握利用if、switch语句编写选择结构程序,学会MATLAB程序编辑、运行及调试方法。二、实验内容:1、求分段函数的值。用if语句实现,算出下列表中x对应的y值。X-50258y14601955clcclearx=-5 % x=input(请输入x的值)if x=0&x5 y=x2-5*x+6;else y=x2-x-1;endy2、分别用if和swith语句实现,将百分制成绩转换为成绩等级A、B、C、D、E。其中90100分为A,8090)分为B,7080)分为C,6070)分为D,60分以下为E。对超出百分制范围的成绩,给出错误提示信息。clcclears=input(请输入百分制成绩:);if s100 g=ERROR;elseif s=90&s=80&s=70&s=60&s1 if rem(n,2)=0 n=n/2; else n=3*n+1; end a=a,n; end a2、根据,当n分别取100、1000、10000时,求x的值分别是多少?clccleary=0;n=100for k=1:n y=y+1/k2;endx=sqrt(6*y)3、编程求满足的最小m值。以下是三种方法及结果验证方法。clcclear sum_x=0;n=0;while sum_x=1e4 n=n+1; x=2n; sum_x=sum_x+x;endre1=n sum_x=0;n=1;while sum_x1e4 break; end n=n+1;endre3=n echo onsum(2.1:12)sum(2.1:13)echo off三、思考题已知y和t的函数关系:求下面表格中与t对应的y值t0.20.40.60.81.0yclccleary=1t=1;f=1;for n=1:20 f=f*n; y=y+tn/fendy实验五 函数的编写及调试一、实验目的:掌握MATLAB函数的编写及调试方法。二、实验内容:1、编写一个函数,计算下面函数的值,给出x的值,调用该函数后,返回y的值。function y=myfun1(x)选择一些数据测试你编写的函数。function y=myfun1(x)if x=0 y=sin(x);elseif xmax_x max_x=x(k); end if x(k)v=myvander(2 3 4 5)得v=生成一些数据测试你写的函数。function v=myvander(x)N=length(x);for k=1:N v(k,:)=x.(k-1);end三、思考题编写程序,用如下迭代公式求,a的值分别为:3,17,113。迭代的终止条件为,迭代初值,迭代次数不超过100次。分别对迭代结果和准确值进行比较,并统计迭代次数。clccleara=input(请输入a=);x0=1;for n=1:100 x1=x0/2+a/(2*x0); if(abs(x1-x0)=1e-5) break end x0=x1;enddisp(sqrt(a)数值解为:)x1disp(迭代次数:)ndisp(sqrt(a)的准确解为:)sqrt(a)请输入a=3sqrt(a)数值解为:x1 = 1.7321迭代次数:5sqrt(a)的准确解为:ans = 1.7321实验六 MATLAB的绘图1、在同一坐标系下绘制下面三个函数在t0,4p的图象。t=0:1e-2:4*pi;y1=t;y2=sqrt(t);y3=4*pi*exp(-0.1*t).*sin(t);plot(t,y1,r,t,y2,g,t,y3,b);gridxlabel(t / s)ylabel(y1 y2 y3)legend(t,sqrt(t),4*pi*exp(-0.1*t).*sin(t);2、编写程序,选择合适的步距,绘制下面函数在区间-6,6中的图象。x=-6:0.1:6; % 设定自变量x的取值范围leng=length(x); % 计算向量x的长度for m=1:leng % 计算函数值 y(m)=myfun1(x(m);endplot(x,y),grid %绘制函数曲线xlabel(x),ylabel(y)3、用compass函数画下面相量图ua = 1 ; ub = cos(-2*pi/3)+sin(-2*pi/3)*i ; uc=cos(2*pi/3)+sin(2*pi/3)*i;compass(ua,ub,uc,ua-ub,ub-uc,uc-ua)4、三维空间曲线绘制z=0:0.1:4*pi;x=cos(z);y=sin(z);plot3(x,y,z)5、用mesh或surf函数,绘制下面方程所表示的三维空间曲面,x和y的取值范围设为-3,3。x,y=meshgrid(-3:0.5:3)z=-x.*x/10+y.*y/10;mesh(x,y,z);figuresurfc(x,y,z);附:画抛物面theta=linspace(0,2*pi,60)R=linspace(0,5,20);X1=R*cos(theta);Y1=R*sin(theta);Z1=X1.*X1/10+Y1.*Y1/10;mesh(X1,Y1,Z1)axis square三、思考题用对分法求解方程在0,1内的解,并验证,在程序中统计出对分次数。提示:先将原方程转化成的形式。对分法的基本思想是:一个一元方程f(x)=0,若f(x1)*f(x2)0,则在x1,x2区间内有实数解。取该区间的中点xm=(x1+x2)/2,判定f(x1)和f(x2)二者中哪一个与f(xm)异号,若f(x1)*f(xm)1e-10 y1=2*exp(-x1)-sin(x1); y2=2*exp(-x2)-sin(x2); xm=(x1+x2)/2; ym=2*exp(-xm)-sin(xm); if y1*ym0 x2=xm; elseif y2*ym0 x1=xm; end len=x2-x1; n=n+1;endformat longxm,ym,n实验七 MATLAB数值运算一、实验目的:掌握MATLAB常用的数值运算函数。二、实验内容:1、求代数方程的5个根,并将其用星号(*)标记在复平面图上。(用roots和plot函数)。p=3 4 7 2 9 12;r=roots(p)plot(r,*);gridxlabel(Real Axis)ylabel(Imag Axis)r = -0.8612 + 1.4377i -0.8612 - 1.4377i 0.6737 + 1.0159i 0.6737 - 1.0159i -0.9583 2、求代数方程的5个根,并将其用星号(*)标记在复平面图上。(用roots和plot函数)。p=1 0 0 0 0 -1;r=roots(p)plot(r,*);axis equalgrid3、求下面函数在0.5,4区间内的过零点。(用fzero函)fplot(x3-2*x2*sin(x)+5*x*cos(x)+1/x,0.5,4)x1=fzero(x3-2*x2*sin(x)+5*x*cos(x)+1/x,0.5,2)x2=fzero(x3-2*x2*sin(x)+5*x*cos(x)+1/x,2,4)x1 = 1.5117x2 = 2.60954、已知R=50欧姆,U=4V,二极管D正向电流与电压的关系为:其中:Ud为二极管正向电压Is为反向饱合电流,取10-12AK为玻尔茨曼常数,1.38*10-23T为绝对温度,取300开尔文(27摄氏度)q为电子电荷1.6*10-19C求此电路中的电流Id和二极管正向电压Ud(要求用fsolve函数求解)R=50;U=4;Is=1e-12;K=1.38e-23;T=300;q=1.6e-19;%Ud+Id*R-U=0;%Id-Is*exp(Ud*q/(K*T)-1)=0;Ud=0:0.01:0.7;Id=Is*exp(Ud*q/(K*T)-1);Ud1=0:0.01:4;Id1=(U-Ud1)/R plot(Ud,1000*Id,r)hold onplot(Ud1,1000*Id1,b)gridhold offlegend(二极管伏安特性,负载线)x=fsolve(UdId,1 0.05)function f=UdId(x)R=50;U=4;Is=1e-12;K=1.38e-23;T=300;q=1.6e-19;Ud=x(1);Id=x(2);f=Ud+Id*R-U Id-Is*exp(Ud*q/(K*T)-1);x =0.6707 0.0666 Ud Id5、实验数据处理:已知某压力传感器的测试数据如下表p0.01.12.12.84.25.06.16.98.19.09.9u1011131417182224293439p为压力值,u为电压值,试用多项式来拟合其特性函数,求出a,b,c,d,并把拟合曲线和各个测试数据点画在同一幅图上。p=0.0 1.1 2.1 2.8 4.2 5.0 6.1 6.9 8.1 9.0 9.9;u=10 11 13 14 17 18 22 24 29 34 39;plot(p,u,r+)abcd=polyfit(p,u,3)p1=0:0.1:10;u1=polyval(abcd,p1);hold onplot(p1,u1,b);gridhold offaxis(-1 11 8 41);xlabel(p);ylabel(u);legend(p-u,u(p)=a*p3+b*p2+c*p+d,2)实验八 MATLAB应用1、用Simulink求解下图所示电路0100微秒内的响应。已知R=6*10-4欧,C=1700微法,L=6*10-9享,uc(0)=15kV。 l 模块参数设置:Integrator1的Initial condition:15kV在命令窗口为R,L,C赋值。l 仿真参数设置如下:Start time:0Stop time:100e-6Solver Type:Variable-stepSolver:ode45 Max step size:1e-7Min step size:autoInitial step size:autoRelative tolerance:1e-3Absolute tolerance:1e-6实验四 MATLAB数值运算一、实验目的:掌握MATLAB常用的数值运算函数。二、实验内容:1、求代数方程p=3 4 7 2 9 12roots(p)ans = -0.8612 + 1.4377i -0.8612 - 1.4377i 0.6737 + 1.0159i 0.6737 - 1.0159i -0.9583 2、求代数方程p2=1 0 0 0 0 -1roots(p2)ans = -0.8090 + 0.5878i -0.8090 - 0.5878i 0.3090 + 0.9511i 0.3090 - 0.9511i 1.0000 3、求函数)在0.5,4区间内的过零点。fplot(x3-2*x2*sin(x)+5*x*cos(x)+1/x,0.5,4)fzero(x3-2*x2*sin(x)+5*x*cos(x)+1/x,0.5,2)fzero(x3-2*x2*sin(x)+5*x*cos(x)+1/x,2,4)x1 = 1.5117x2 = 2.60954、已知R=50欧姆,U=4V,二极管D正向电流与电压的关系为:其中:Ud为二极管正向电压Is为反向饱合电流,取10-12AK为玻尔茨曼常数,1.38*10-23T为绝对温度,取300开尔文(27摄氏度)q为电子电荷1.6*10-19C求此电路中的电流Id和二极管正向电压Ud解:列电路方程:(1)估计解的位置R=50;U=4;Is=1e-12;K=1.38e-23;T=300;q=1.6e-19;%Ud+Id*R-U=0;%Id-Is*exp(Ud

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论