新版MATLAB实验报告_第1页
新版MATLAB实验报告_第2页
新版MATLAB实验报告_第3页
新版MATLAB实验报告_第4页
新版MATLAB实验报告_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

MATLAB试验汇报试验一MATLAB基本使用方法一、试验目标1.熟悉MATLAB主界面;2.学会利用MATLAB联机帮助系统和命令窗口帮助系统;3.学会利用MATLAB进行基本数学计算。4.掌握矩阵构建与运算方法及相关函数;5.掌握多项式运算方法。二、试验内容1.设,,计算以下习题。(1)4*u*v/log10vans=50.3017(2)(exp(u)+v)^2/(v^2-u)ans=15.4189(3)sqrt(u-3*v)/(u*v)ans=0+0.4410i(4)pi/3*cos(70*pi/180)ans=0.35822.已知a=1+2i,b=5-6i,请计算a+b、a-b、a×b、a÷b值各是多少,并计算出各结果幅角大小。abs(a+b)ans=7.2111angle(a+b)ans=-0.5880abs(a-b)ans=8.9443angle(a-b)ans=2.0344abs(a*b)ans=17.4642angle(a*b)ans=0.2311abs(a/b)ans=0.2863angle(a/b)ans=1.98323.设A=1.2,B=-4.6,C=8.0,D=3.5,E=-4.0,计算a=E/(2*pi*B*C)a=0.0173>>b=(2*pi*A+a)/Db=2.1592>>T=atan(b)T=1.13713.设,,,,求解以下问题:(1)3×a(2)a+b(3)a*d(4)a.*d(5)a\b(6)a.\b(7)a.^b(8)矩阵a逆阵3*aans=6-3-6-6>>a+bans=4-4-2-6>>a*dans=2-1-2-2>>a.*d(运算操作对元素逐一进行)ans=200-2>>a\bans=0.6667-0.3333-0.66672.3333>>a.\b(运算操作对元素逐一进行)ans=1302>>a.^bans=4.0000-1.00001.00000.0625>>inv(a)ans=0.3333-0.1667-0.3333-0.33334.设三阶矩阵A,B,满足,其中请求出矩阵B,并代入关系式进行验证。B=6*inv(inv(A)-eye(3))(要减去一个单位阵eye(3))B=300020001>>inv(A)*B*Aans=300020001>>6*A+B*Aans=3000200015.已知矩阵计算:(1)A(:,1)>>A(:,1)ans=11213141(2)A(2,:)>>A(2,:)ans=21222324(3)A(:,2:3)>>A(:,2:3)ans=1213222332334243(4)A(:,1:2:3)>>A(:,1:2:3)ans=1113212331334143(5)[eye(size(A)),A';zeros(size(A)),A^2]>>[eye(size(A)),A';zeros(size(A)),A^2]ans=Columns1through610001121010012220010132300011424000013501400000023902480000034303560000044704640Columns7through83141324233433444145015002570266036903820481049806.求解以下方程(1)>A=[1981]A=1981>>B=[0]B=0>>A\Bans=0000(2)a=[2-302;1521;3-11-1;4122]a=2-30215213-11-14122b=[8;2;7;12];>>a\bans=3.00000.0000-1.00001.0000做题时出现错误:b=[82712];>>a\b???Errorusing==>mldivideMatrixdimensionsmustagree.7.设矩阵a、b、c和d定义以下:;;;,试判断以下表示式值:(1)(2和b中每个元素相比较)>>~(a>b)ans=1000(2)>>a>c&b>cans=0100(3)>>c<=dans=0100三:试验总结:1、经过此次试验我熟悉了MATLAB主界面;学会了利用MATLAB联机帮助系统和命令窗口帮助系统;学会了利用MATLAB进行基本数学计算。2、经过此次试验掌握了矩阵构建与运算方法及相关函数;掌握了多项式运算方法。将试验中出现错误都一一改过过来。试验二MATLAB程序设计一、试验目标1.掌握MATLAB编程语法;2.掌握MATLAB控制流程语句。二、试验内容1.输入三角形三条边,求三角形面积。假如输入三个数不能组成三角形,要求输出“不能组成一个三角形”这么提醒信息。(提醒:,)function[]=sanjiao(a,b,c)a=input('a=?\n');b=input('b=?\n');c=input('c=?\n');if((a>0)&(b>0)&(c>0)&(a+b>c)&(a-b<c))s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c));fprintf('area=%4d',area);fprintf('\n');elsefprintf('不能组成三角形¡£\n')end2.编写一个程序计算下式,其中值为-10到10之间,以0.5为步长,使用循环语句加以实现。function[]=hanshu(x,n,y)x=-10;n=0.5;while(x<=10)if(x>=0)y=-3*x^2+5;x=x+n;fprintf('%.2f\n',y);elsey=3*x^2+5;x=x+n;fprintf('%.2f\n',y);endend3.编写一程序,求出[1001000]以内全部素数。num=[];i=1;fora=100:1000b=fix(sqrt(a));flag=1;forc=2:bifmod(a,c)==0flag=0;breakendendifflag==1num(i)=a;i=i+1;endendnum分析编程中错误:最终num后面加了分号,是结果一直输出不了,将分号删除后结果能够输出。结果:num=Columns1through17101103107109113127131137139149151157163167173179181Columns18through34191193197199211223227229233239241251257263269271277Columns35through51281283293307311313317331337347349353359367373379383Columns52through68389397401409419421431433439443449457461463467479487Columns69through85491499503509521523541547557563569571577587593599601Columns86through102607613617619631641643647653659661673677683691701709Columns103through119719727733739743751757761769773787797809811821823827Columns120through136829839853857859863877881883887907911919929937941947Columns137through1439539679719779839919974.编写函数,分别用for和while循环结构编写程序,求要求输入自然数n时,要有提醒。While循环function[]=qiuhe(i,n,y,K)n=input('n=?\n');i=1;K=0;while(i<=n)y=2^i;i=i+1;K=K+y;endfprintf('K=%4d\n',K);输出结果为:n=?23K=16777214for循环:function[]=qiuhe2(i,n,y,K)n=input('n=?\n');K=0;fori=1:ny=2^i;i=i+1;K=K+y;endfprintf('K=%4d\n',K);输出结果:n=?32K=8.589935e+0095.建立函数count(x),其中x为一个班学生成绩,统计该班学生成绩,其中优异:成绩≥90,良好:80≤成绩<90,中等:70≤成绩<80,及格:60≤成绩<70,不及格:成绩<60,分别输出优异、良好、中等、不及格人数,要求有输入、输出提醒语句。比如:>>count请输入该班学生成绩:%输出提醒[3467988978]%输入成绩成绩优异:2%输出结果成绩良好:2成绩中等:2成绩及格:2成绩不及格:1function[]=chengji()fprintf('请输入该班同学成绩\n')n=input('');a=0;b=0;c=0;d=0;e=0;f=numel(n);forj=1:1:fif(n(j)>=90)==1a=a+1;elseif(n(j)<90&&n(j)>=80)==1b=b+1;elseif(n(j)<80&&n(j)>=70)==1c=c+1;elseif(n(j)<70&&n(j)>=70)==1d=d+1;elsee=e+1;endendfprintf('成绩优异');fprintf('%d\n',a);fprintf('成绩良好');fprintf('%d\n',b);fprintf('成绩中等');fprintf('%d\n',c);fprintf('成绩及格');fprintf('%d\n',d);fprintf('成绩不及格');fprintf('%d\n',e);end6.某商场对用户所购置商品实施打折销售,标准以下(商品价格用price来表示):price<1000没有折扣1000≤price<3%折扣≤price<30005%折扣3000≤price8%折扣输入所售商品价格,求其实际销售价格(使用switch结构编程)。functionprice(x)x=input('输入所售商品价格:\n');realx=0;switchfix(x/1000)case0d=0;case1d=0.03;case2d=0.05;otherwised=0.08;endrealx=x*(1-d)fprintf('实际销售价格:%2d\n',realx);end输出结果为:输入所售商品价格:3200realx=2944实际销售价格:2944试验总结经过此次试验掌握了MATLAB编程语法;掌握了MATLAB控制流程语句。利用matlab中function功效实现了试验中所要求任务。试验中碰到问题是function路径设置错误,使得输出不了结果,经问询老师改过后结果正确。试验三数据和函数可视化一、试验目标掌握MATLAB二维、三维绘图方法。二、试验内容1.已知向量[1240510112131],请绘图表示。程序:>>x=[1240510112131];>>plot(x)2.编写MATLAB程序,该程序绘制两条曲线,x取值范围为[0,2*pi],以pi/10为步长,一条曲线是正弦曲线,线型为实线,颜色为红色,另一条曲线是余弦曲线,线型为虚线,颜色为黑色;对于x轴和y轴分别添加文字标签“x取值范围”和“y值”,同时添加图名“一个波长正弦曲线和余弦曲线”;为上述曲线添加图例,分别为“正弦曲线”和“余弦曲线”;并在图中汇出网格线。另外,再新建一窗口,绘制一余弦曲线,x取值范围与步长如上,用六角形表示每一个数据点,同时要求坐标系横轴范围为[02*pi],纵轴范围为[-1.11.1]。程序:>>x=0:pi/10:2*pi;>>y_sin=sin(x);>>y_cos=cos(x);>>plot(x,y_sin,'r-');>>holdon>>plot(x,y_cos,'k--');>>xlabel('x取值范围');>>ylabel('y值');>>title('一个波长正弦曲线和余弦曲线');>>legend('正弦曲线','余弦曲线');>>gridon;出现错误:>>plot(x,y_sin.'-r');???Undefinedfunctionorvariable'r'.>>plot(x,y_sin.'r-');???plot(x,y_sin.'r-');|Error:UnexpectedMATLABexpression.>>plot(x,y_sin,'r-');>>;>>holdon>>plot(x,y_cos,'k--');>>xlabel('x取值范围');???xlabel('x取值范围');|Error:TheinputcharacterisnotvalidinMATLABstatementsorexpressions.程序:>>axis([02*pi-1.11.1]);>>figure(2)>>x=0:pi/10:2*pi;>>y_cos=cos(x);>>plot(x,y_cos,'h');>>axis([02*pi-1.11.1]);3.绘制单位圆。提醒:使用axissquare命令。程序:>>t=(0:1/16:2*pi);>>x=sin(t);>>y=cos(t);>>fill(x,y,'b');>>axissquare;4.绘制函数,其中,分别使用函数plot(t,v)和函数plot(v)绘制,分析两函数所绘制曲线有何区分。另外,请绘制此函数以y轴为对数曲线图。>>t=0:1/16:10;>>v=10*exp((-0.2+pi)*t);>>plot(t,v,'r');>>holdon;>>plot(v,'b');分析:两条曲线横坐标不一样,plot(t,v,'r')是以点为横坐标,plot(v,'b')是以函数值为横坐标。>>t=0:1/16:10;>>v=10*exp((-0.2+pi)*t);>>plot(t,log(v),'r');5.在同一绘图窗口中绘制左右两个子图,一个是三维网线图,另一个是三维曲面图,而且用图名注明哪一个图是网线图,哪一个是曲面图。绘图函数为,x与y范围均是[-2*pi,2*pi]。程序:x=-2*pi:0.7:2*pi;y=x;[X,Y]=meshgrid(x,y);Z=exp(abs(X+Y*i));subplot(1,2,1);mesh(X,Y,Z);title('网线图');subplot(1,2,2);surf(X,Y,Z);title('网面图')6.某工厂各月总产值(单位:万元)分别为:22、60、88、95、56、23、7、10、14、81、56、23,试绘制条形图以显示该厂各月总产值改变情况。程序:>>x=[22,60,88,95,56,23,7,10,14,81,56,23];>>bar(x)8.请绘制一八角形,图像内部填充红色。程序:>>t=(1/16:1/8:1)*2*pi;>>x=sin(t);>>y=cos(t);>>fill(x,y,'r');>>axissquare试验总结经过此次试验掌握了MATLAB二维、三维绘图方法。试验四控制系统仿真一、试验目标1.掌握MATLAB常微分方程数值求解方法;2.掌握控制系统微分方程模型和传递函数模型仿真方法。二、试验内容1.求解以下微分方程(已知x=[14],当x=1时,y=1)(1)functionf=fun2(x,y)f=-2*y+3*x^2+1;end>>[x,y]=ode45('fun1',[1,4],1);>>dy=-2*7+3*x.^2+1;>>plot(x,y,x,dy);(2)程序:functionf=fun1(x,y)f=-y+4*x+1;end>>[x,y]=ode45('fun1',[1,4],1);>>dy=-y+4*x;>>plot(x,y,x,dy);2.电路以下列图所表示,电阻R=1.6Ω,电容C=0.30F,电感L=2.1H,初始状态是电感电流为0,电容电压为0.2V,t=0时,接入1.5V电压,求0<t<10s时,电路中电流和电容电压,并画出这两个物理量与时间关系曲线,同时画出电流与电容电压关系曲线。分析:依照电路分析,能够得出微分方程(1)在利用ode函数时,对微分方程作出以下假设:functiondy=RLC(t,y)Vi=1.5;R=1.6;C=0.3;L=2.1;dy=zeros

温馨提示

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

最新文档

评论

0/150

提交评论