Matlab编程实验报告

上传人:wuy****ng 文档编号:134798807 上传时间:2022-08-13 格式:DOC 页数:44 大小:853.50KB
收藏 版权申诉 举报 下载
Matlab编程实验报告_第1页
第1页 / 共44页
Matlab编程实验报告_第2页
第2页 / 共44页
Matlab编程实验报告_第3页
第3页 / 共44页
资源描述:

《Matlab编程实验报告》由会员分享,可在线阅读,更多相关《Matlab编程实验报告(44页珍藏版)》请在装配图网上搜索。

1、 中北大学Matlab编程实验报告班 级: 10020741 姓 名: 学 号: 1002074139 2013 年 11 月2,实验一 Matlab运算基础一、实验目的1、熟悉启动和退出MATLAB的方法。2、熟悉MATLAB工作窗口的组成。3、掌握建立矩阵的方法,矩阵分析与处理。4、掌握MATLAB各种表达式的书写规则以及常用函数的使用。二、实验内容1 先求下列表达式的值,然后显示MATLAB工作空间的使用情况并保存全部变量。(1)z1=2*sin(85*pi/180)/(1+exp(2)z1 =0.2375(2) ,其中 x=2,1+2*i;-0.45,5x = 2.0000 1.000

2、0 + 2.0000i -0.4500 5.0000 z2=1/2*log(x+sqrt(1+x*x)z2 = 0.7114 - 0.0253i 0.8968 + 0.3658i 0.2139 + 0.9343i 1.1541 - 0.0044i(3)提示:利用冒号表达式生成a向量,求各点的函数值时用点乘运算。 a=-3.0:0.1:3.0a = Columns 1 through 9 -3.0000 -2.9000 -2.8000 -2.7000 -2.6000 -2.5000 -2.4000 -2.3000 -2.2000 Columns 10 through 18 -2.1000 -2.

3、0000 -1.9000 -1.8000 -1.7000 -1.6000 -1.5000 -1.4000 -1.3000 Columns 19 through 27 -1.2000 -1.1000 -1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 Columns 28 through 36 -0.3000 -0.2000 -0.1000 0 0.1000 0.2000 0.3000 0.4000 0.5000 Columns 37 through 45 0.6000 0.7000 0.8000 0.9000 1.0000 1.100

4、0 1.2000 1.3000 1.4000 Columns 46 through 54 1.5000 1.6000 1.7000 1.8000 1.9000 2.0000 2.1000 2.2000 2.3000 Columns 55 through 61 2.4000 2.5000 2.6000 2.7000 2.8000 2.9000 3.0000 z3=(exp(0.3.*a)-exp(-0.3.*a)/2.*sin(a+0.3)z3 = Columns 1 through 9 0.4387 0.5072 0.5640 0.6089 0.6424 0.6648 0.6766 0.678

5、4 0.6709 Columns 10 through 18 0.6549 0.6313 0.6011 0.5652 0.5247 0.4805 0.4337 0.3854 0.3366 Columns 19 through 27 0.2881 0.2410 0.1962 0.1543 0.1162 0.0824 0.0535 0.0299 0.0120 Columns 28 through 36 -0.0000 -0.0060 -0.0060 0 0.0117 0.0288 0.0509 0.0775 0.1080 Columns 37 through 45 0.1418 0.1780 0.

6、2159 0.2547 0.2934 0.3311 0.3669 0.3998 0.4289 Columns 46 through 54 0.4532 0.4719 0.4841 0.4891 0.4862 0.4748 0.4543 0.4243 0.3846 Columns 55 through 61 0.3350 0.2755 0.2061 0.1272 0.0392 -0.0574 -0.1619(4) ,其中t0:0.5:2.5提示:用逻辑表达式求分段函数值。t=0:0.5:2.5;z4=(t=0 & t=1 & t=2 & t A=100:999; B=find(mod(A,21)

7、=0)B = Columns 1 through 16 6 27 48 69 90 111 132 153 174 195 216 237 258 279 300 321 Columns 17 through 32 342 363 384 405 426 447 468 489 510 531 552 573 594 615 636 657 Columns 33 through 43 678 699 720 741 762 783 804 825 846 867 888 C=length(B)C = 43(2)建立一个字符串向量,删除其中的大写字母。 X=LIsa is A BeAutiful

8、 Girl; Y=find(X=A&X X(Y)=X =sa is eutiful irl提示:利用find函数和空矩阵。5 由指令A=rand(3,5)生成二维数组A,试求该数组中所有大于0.5的元素的位置,分别求出它们的“全下标”和“单下标”。(提示:find和sub2ind) A=rand(3,5)A = Columns 1 through 4 Column 5 0.349983765984809 K=find(A0.5)K = 1 2 3 4 8 1012C,D=ind2sub(size(A),K)C = 1 2 3 1 2 1 3D = 1 1 1 2 3 4 46 先运行clear

9、, format long, A=rand(3,3),然后根据A写出两个矩阵:一个对角阵B,其相应元素由A的对角元素构成;另一个矩阵C,其对角元素全为0,而其余元素与对应的A阵元素相同。(提示:diag) clear format long A=rand(3,3)A = 0.678735154857773 0.392227019534168 0.706046088019609 b=diag(A)b = 0.678735154857773 0.655477890177557 0.276922984960890 B=diag(b)B = 0.678735154857773 0 0 0 0.6554

10、77890177557 0 0 0 0.276922984960890 C=A-BC = 0 0.392227019534168 0.706046088019609三、实验报告及要求实验报告给出详细的实验过程、代码以及实验结果,必要时按照实验任务要求对结果进行分析。实验二 多项式及字符运算一、实验目的1、掌握多项式的表示与创建方法。2、掌握多项式的四则运算以及多项式求根方法。3、掌握字符串数组的创建及操作方法。二、实验内容1、已知,分别取和一个矩阵,求在处的值。 p=2 -1 0 3; x=2; y=polyval(p,x)y = 15 x1=1 2;3 4; y1=polyval(p,x1)

11、y1 = 4 15 48 1152、 有3个多项式试进行下列操作:求。(1) 求的根。 p1=1 2 4 0 5; p2=1 2; p3=1 2 3; R=conv(p2,p3)R = 1 4 7 6 p4=0 1 4 7 6 ;p5=p1+p4p5 = 1 3 8 7 11 r=roots(p5)r = -1.3840 + 1.8317i -1.3840 - 1.8317i -0.1160 + 1.4400i -0.1160 - 1.4400i(2) 当x取矩阵A的每一元素时,求P(x)的值。其中 A=-1 1.2 -1.4;0.75 2 3.5;0 5 2.5; y=polyval(p5,

12、A)y = 1.0e+003 * 0.0100 0.0382 0.0125 0.0223 0.0970 0.4122 0.0110 1.2460 0.1644 (3) 当以矩阵A为自变量时,求P(x)的值。其中A的值与(3)相同。X=AX = -1.0000 1.2000 -1.4000 0.7500 2.0000 3.5000 0 5.0000 2.5000 Y=X4+3*X3+8*X2+7*X1+11Y = 1.0e+003 * 0.0076 -0.1172 -0.0665 0.1437 1.3900 1.1754 0.1934 1.7474 1.51983.用两种方法建立如下的二维字符串

13、数组:第一行为“Matlab编程”,第二行为“实验环节”,最后利用该二维字符串形成一个一行字符串数组,“Matlab编程实验环节” A=Matlab编程;实验环节 A =Matlab编程实验环节 B=str2mat(Matlab编程,实验环节)B =Matlab编程实验环节 C=B(1,:),B(2,:)C =Matlab编程实验环节 三、实验报告及要求实验报告给出详细的实验代码以及实验结果,必要时按照实验任务要求对结果进行分析。实验三 Matlab符号计算一、实验目的1、熟练掌握MATLAB符号表达式的创建2、熟练掌握符号表达式的代数运算3、掌握符号表达式的化简和替换4、熟练掌握符号微积分5

14、、熟练掌握符号方程的求解二、实验内容1. 创建符号表达式:。 (用两种方式分别创建) f=sym(a*x3+b*x2+c*x+d) f = a*x3 + b*x2 + c*x + dsyms a b c d f=a*x3+b*x2+c*x+d f = a*x3 + b*x2 + c*x + d2. 创建符号矩阵。 A=sym(a*cos(x)+b*sin(y) 10+20;a*x2+b*y2+c*z2 sqrt(t*t+1) A = a*cos(x) + b*sin(y), 30 a*x2 + b*y2 + c*z2, (t2 + 1)(1/2)3. 已知表达式,计算当时的值;计算与的复合函数

15、,、的逆函数。f=1-sin(x)*sin(x); x=1x = 1 subs(f)ans = 0.2919 f=sym(1-sin(x)*sin(x); g=sym(2*x+1); compose(f,g) ans =1 - sin(2*x + 1)2 finverse(f)Warning: finverse(1 - sin(x)2) is not unique. ans = asin(1 - x)(1/2) finverse(g) ans = x/2 - 1/2 4. 符号函数,分别对、进行微分,对趋向于1求极限,并计算对的二次、三次微分,用findsym得出符号变量。syms x y a

16、 b c df=a*x3+b*y2+c*y+d; A=diff(f,x) A = 3*a*x2 B=diff(f,y) B = c + 2*b*y C=diff(f,c) C = y D=diff(f,d) D = 1 L=limit(a*x3+b*y2+c*y+d,y,1) L = a*x3 + b + c + d E=diff(f,x,2) E = 6*a*x F=diff(f,x,3) F = 6*a findsym(E)ans =a,x findsym(F)ans =a 5. 求极限。syms n;L=limit(symsum(1/2n,n,0,inf),n,inf) L = 26.

17、求定积分和不定积分。syms x; f=sqrt(x)/(1+x)2; int(f,x,1,inf) ans = pi/4 + 1/2 syms x y; q=x*exp(-x*y);I=int(q) I = -(x*y + 1)/(y2*exp(x*y) S=int(I) S = (x*y + 2)/(y3*exp(x*y) 7. 求微分方程在满足,的解。y=dsolve(D2y+2*Dy+2*y,y(0)=1,Dy(0)=0,x) y = cos(x)/exp(x) + sin(x)/exp(x)8. 求解微分方程组 x,y=dsolve(Dx=2*x+3*y,Dy=x-2*y,x(0)=

18、1,y(0)=2,t) x = (exp(7(1/2)*t)*(2*7(1/2) - 3)/2 - (2*7(1/2) + 3)/(2*exp(7(1/2)*t) + (7(1/2)*exp(7(1/2)*t)*(2*7(1/2) - 3)/7 + (7(1/2)*(2*7(1/2) + 3)/(7*exp(7(1/2)*t) y = (7(1/2)*exp(7(1/2)*t)*(2*7(1/2) - 3)/14 + (7(1/2)*(2*7(1/2) + 3)/(14*exp(7(1/2)*t) ,其中9. 解微分方程的通解。 y=dsolve(Dy+y*tanx=cosx,x) y = (

19、cosx - C11/exp(tanx*x)/tanx10、求解方程组x,y,z=solve(x+2*y-z=7,x+z=3,x2+3*y2=28,x,y,z) x = 15/4 - 37(1/2)/4 37(1/2)/4 + 15/4 y = 37(1/2)/4 + 5/4 5/4 - 37(1/2)/4 z = 37(1/2)/4 - 3/4 - 37(1/2)/4 - 3/4三、实验报告及要求实验报告给出详细的实验代码以及实验结果,必要时标注代码注释,并按照实验任务要求对结果进行分析。实验四 选择结构程序设计一、实验目的1、掌握建立和执行M文件的方法。2、掌握利用if语句实现选择结构的方

20、法。3、掌握利用switch语句实现多分支选择结构的方法。4、掌握try语句的使用。二 、实验内容1.求下列分段函数的值。 要求:用if语句实现,分别输出x= -5.0, -3.0, 1.0, 2.0, 2.5, 3.0, 5.0 时的y值。提示:x的值从键盘输入。 请输入x的值: -5x = -5y = 14请输入x的值: -3x = -3y = 11请输入x的值: 1x = 1y = 2请输入x的值: 2x = 2y = 1请输入x的值: 2.5x = 2.5000y = -0.2500请输入x的值: 3x = 3y = 5请输入x的值: 5x = 5y = 62输入一个百分制成绩,要求输

21、出成绩等级A,B,C,D,E 。其中90100分为A,8089分为B,7079分为C,6069分为D,60分以下为E。要求:(1) 用switch语句实现。(2) 输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出错误信息。(1)请输入成绩:61grade = 61rate =D请输入成绩:54grade = 54rate =E请输入成绩:87grade = 87rate =B请输入成绩:78grade = 78rate =C(2)请输入成绩:103grade = 103成绩无效3、 建立56矩阵,要求输出矩阵第n行元素。当n值超过矩阵的行数时,自动转为输出矩阵最后一行元素,并给出出错

22、信息。请输入行数n: 2n = 2 3 5 6 7 8 9请输入行数n: 6n = 6 4 6 8 9 0 3ans =Index exceeds matrix dimensions.三、实验报告及要求实验报告给出详细的实验代码以及实验结果,必要时按照实验任务要求对结果进行分析。实验五 循环结构程序设计一、实验目的1、掌握利用for语句实现循环结构的方法。2、掌握利用while语句实现循环结构的方法。3、熟悉利用向量运算来代替循环操作的方法。二、实验内容1.根据,求的近似值。当n分别取100、1 000、10 000时,结果是多少?要求:分别用循环结构和向量运算(使用sum函数)来实现。(1)

23、请输入n值; 100n = 100s = 3.1321请输入n值; 1000n = 1000s = 3.1406请输入n值; 10000n = 10000s =3.1415(2)请输入n值; 100n = 100s = 3.1321请输入n值; 1000n = 1000s = 3.1406请输入n值; 10000n = 10000s = 3.14152.根据. ,求:(1)y0)length(find(f=0)length(find(f4若两个连续自然数的乘积减1是素数,则称这两个连续自然数是亲密数对,该素数是亲密素数。求2,50区间内:(1)亲密数对的对数;for n=2:50 f(n-1)

24、=n*(n+1)-1;endb=isprime(f);c=find(b0)length(c)sum(f(c)ans = 29(2)与上述亲密数对对应的所有亲密素数之和。ans = 23615三、实验报告及要求实验报告给出详细的实验代码以及实验结果,必要时按照实验任务要求对结果进行分析。实验六 绘图操作一、实验目的1、掌握图形对象属性的基本操作。2、掌握利用图形对象进行绘图操作的方法。3、掌握绘制二维图形的常用函数。4、掌握绘制三维图形的常用函数。二、实验内容1、先利用缺省属性绘制曲线,然后通过图形句柄操作来改变曲线的颜色、线型和线宽,并利用文字对象给曲线添加文字标注。x=0:0.1:10; y

25、=x.2.*exp(2.*x); hf=plot(x,y); set(hf,color,r,linestyle,:,marker,*,linewidth,1); text(0,0,y=x2.*exp(2*x),Fontsize,15);2、已知完成下列操作:(1)在同一坐标系下用不同的颜色和线型绘制三条曲线。x=0:0.1:10;y1=x.2;y2=cos(2.*x);y3=y1.*y2; hf=plot(x,y1,color,r,linestyle,:); hold on hf=plot(x,y2,color,g,linestyle,-); hf=plot(x,y3,color,b,line

26、style,-.);(3) 以子图形式绘制3条曲线。x=0:0.1:10;y1=x.2;y2=cos(2.*x);y3=y1.*y2;x=0:0.1:10;y1=x.2;y2=cos(2.*x);y3=y1.*y2;subplot(3,1,1),plot(x,y1,color,r,linestyle,:);subplot(3,1,2),plot(x,y2,color,g,linestyle,-);subplot(3,1,3),plot(x,y3,color,b,linestyle,-.);3、已知6x30,15y x,y=meshgrid(x,y); z=2*x+5*y; k=find(z=1

27、26); x(k),y(k)ans = 8 13 18 23ans = 22 20 18 16在做本题前,先分析并上机验证下列命令的执行结果,从中体会产生网络坐标矩阵的方法。 x,y=meshgrid(-1:0.5:2,1:5)4、在一幅图上打印出函数sin(x)和cos(x)在0,2p区间上的图形,要求如下1)sin(x)和cos(x)图形分别用红色的点划线和绿色星号打印;2)坐标轴的窗口大小范围设为-1,7-1.5.1.5;3)分别给x轴和y轴加上标注说明,图形加上名称;4)给出图例说明标注;5)在(3.3,1.1)处标上文字sin(x),用鼠标在cos(x)曲线的某点处标上文字cos(x

28、);6)给图形加上网格线。x=0:0.1:2*pi;y1=sin(x);y2=cos(x);plot(x,y1,r:,x,y2,g*);title(sin(x)及cos(x)曲线);xlabel(independent variable X);ylabel(independent variable Y);legend(sin(x)曲线,cos(x)曲线);text(3.3,1.1,sin(x);gtext(cos(x) grid on三、实验报告及要求实验报告给出详细的实验代码以及实验结果,必要时按照实验任务要求对结果进行分析。实验七 Matlab界面设计一、实验目的1.熟悉MATLAB GU

29、IDE中的控件和菜单编辑;2.掌握使用GUIDE向导进行界面设计;3.掌握函数uimenu(菜单),uicontextmenu(上下文菜单)和uicontrol(控件)的使用,并利用它们建立包含菜单和控件等对象的界面。二、实验内容1、 建立一个图形窗口,使之背景颜色为红色,并在窗口上保留原有的菜单项,而且在按下鼠标器的左键之后显示出Left Button Pressed字样。function figure1_WindowButtonDownFcn(hObject, eventdata, handles)% hObject handle to figure1 (see GCBO)% eventd

30、ata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)axis offtext(0,0,Left Button Pressed)2、设计如下图所示的简单四则运算计算器,至少实现一种计算功能。function pushbutton4_Callback(hObject, eventdata, handles)str=get(handles.pushbutton4,string);str=strcat(get(handl

31、es.edit1,string),str);set(handles.edit1,string,str);function add_Callback(hObject, eventdata, handles)global num1 calculat_typestr=get(handles.edit1,string);num1=str2num(str);set(handles.edit1,string,);calculat_type=1;function sub_Callback(hObject, eventdata, handles)global num1 calculat_typestr=get

32、(handles.edit1,string);num1=str2num(str);set(handles.edit1,string,);calculat_type=2;function mul_Callback(hObject, eventdata, handles)global num1 calculat_typestr=get(handles.edit1,string);num1=str2num(str);set(handles.edit1,string,);calculat_type=3;function chu_Callback(hObject, eventdata, handles)

33、global num1 calculat_typestr=get(handles.edit1,string);num1=str2num(str);set(handles.edit1,string,);calculat_type=4;function eql_Callback(hObject, eventdata, handles)global num1 calculat_typestr=get(handles.edit1,string);num2=str2num(str);switch calculat_type case 1 result=num1+num2; case 2 result=n

34、um1-num2; case 3 result=num1*num2; case 4 result=num1/num2; endstr=num2str(result);set(handles.edit1,string,str);三、实验报告及要求实验报告给出详细的实验代码以及实验结果,必要时按照实验任务要求对结果进行分析。实验八 Simulink的应用一、实验目的1. 熟悉Simulink的操作环境并掌握构建系统模型的方法。2. 掌握Simulink中子系统模块的建立与封装技术。3. 对简单系统所给出的数学模型能转化为系统仿真模型并进行仿真分析。二、实验内容1. 假设从实际应用领域(力学、电学、生态或社会)中,抽象出有初始状态为0的二阶微分方程,是单位阶跃函数。用积分器直接构造求解微分方程的模型exm1.mdl并仿真。2. 以二阶微分方程为例,利用传递函数模块建模。三、实验报告及要求实验报告给出详细的实验代码以及实验结果,必要时按照实验任务要求对结果进行分析。

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!