常州大学MATLAB实习报告.docx
- 文档编号:3284391
- 上传时间:2022-11-21
- 格式:DOCX
- 页数:22
- 大小:1.63MB
常州大学MATLAB实习报告.docx
《常州大学MATLAB实习报告.docx》由会员分享,可在线阅读,更多相关《常州大学MATLAB实习报告.docx(22页珍藏版)》请在冰豆网上搜索。
常州大学MATLAB实习报告
序号:
学号:
11461101
实习报告
实习课程名称:
Matlab应用软件实习
实习题目:
Matlab综合应用
学生姓名:
学院(系):
数理学院专业班级:
校内指导教师:
张燕新专业技术职务:
讲师
实习时间:
2013年12月30日2014年1月10日
目录
摘要………………………………………………………………………………3
背景……………………………………………………3
详细求解………………………………………………………3
实习感想…………………………………………………………19
参考文献…………………………………………………………19
摘要
MATLAB和Mathematica、Maple并称为三大数学软件。
它在数学类科技应用软件中在数值计算方面首屈一指,它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言的编辑模式,代表了当今国际科学计算软件的先进水平。
背景
MATLAB是一种面向科学与工程的高级语言,由于其集成了许多领域的工具箱,因此又被称为“巨人肩上的工具”。
MATLAB 语言是当今国际上科学界 (尤其是自动控制领域) 最具影响力、也是最有活力的软件。
它起源于矩阵运算,并已经发展成一种高度集成的计算机语言。
它提供了强大的科学运算、灵活的程序设计流程、高质量的图形可视化与界面设计、便捷的与其他程序和语言接口的功能。
MATLAB 语言在各国高校与研究单位起着重大的作用。
MATLAB由一系列工具组成。
这些工具方便用户使用MATLAB的函数和文件,其中许多工具采用的是图形用户界面。
包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。
随着MATLAB的商业化以及软件本身的不断升级,MATLAB的用户界面也越来越精致,更加接近Windows的标准界面,人机交互性更强,操作更简单。
而且新版本的MATLAB提供了完整的联机查询、帮助系统,极大的方便了用户的使用。
简单的编程环境提供了比较完备的调试系统,程序不必经过编译就可以直接运行,而且能够及时地报告出现的错误及进行出错原因分析。
Matlab是一个高级的矩阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。
用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运行。
新版本的MATLAB语言是基于最为流行的C++语言基础上的,因此语法特征与C++语言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式。
使之更利于非计算机专业的科技人员使用。
而且这种语言可移植性好、可拓展性极强,这也是MATLAB能够深入到科学研究及工程计算各个领域的重要原因。
详细求解
3.已知t=an2+bn,测得对应数据如下:
(多项式插值interp1)
t=[0,20,40,60,80,100,120,140,160,183.5];
n=[0,1153,2045,2800,3466,4068,4621,5135,5619,6152];
试求a和b的值。
t=[0,20,40,60,80,100,120,140,160,183.5];
n=[0,1153,2045,2800,3466,4068,4621,5135,5619,6152];
t0=[0,20,40,60,80,100,120,140,160,183.5];
n0=[0,1153,2045,2800,3466,4068,4621,5135,5619,6152];
n=0:
0.001:
6152;
t=interp1(n0,t0,n,'spline');%interp1函数进行多项式插直
p=polyfit(n,t,2)%polyfit函数进行多项拟合
p=
0.00000.01440.0631
4.请用梯形法、辛普森法分别计算积分值
(trapz、quad)
f=inline('sqrt(x.^2+x+1)','x');%inline定以内置函数
>>quad(f,0,1)%辛普森法
ans=
1.3369
>>x=0:
0.01:
1;y=sqrt(x.^2+x+1);
trapz(x,y)%trapz为梯形法
ans=
1.3369
5计算二重积分
(使用函数dblquad)
dblquad('x.^2+y.^2+x*y+2*x+y+1',0,1,0,2)%函数求解二重积分
ans=
10.3333
8用两种方法求解Ax=b的解。
(A为四阶随机矩阵,b为四阶向量,自己创建)。
方法1.A=rand(4)
A=
0.81470.63240.95750.9572
0.90580.09750.96490.4854
0.12700.27850.15760.8003
0.91340.54690.97060.1419
>>B=[1;2;3;4];x=inv(A)*B%求矩阵的逆
x=
73.6009
6.6966
-69.4126
3.4100
方法2.A(:
5)=B;rref(A)%将A化为阶梯状
ans=
1.000000073.6009
01.0000006.6966
001.00000-69.4126
0001.00003.4100
9.
,用两种方法求函数的根,并求其极值与零点。
求根.
solve('x^3+(x-4/5)^2/(x+5/4)^3-5*x-5/x');
x=double(ans);
>>fori=1:
length(x)
xx(i)=isreal(x(i));
end
>>x=x(xx)
x=
2.4156
零点fzero('x.^3+(x-0.8).^2/(x+1.25).^3-5*(x+1/x)',3)
ans=
2.4156
极值:
>>symsxy
>>y=x.^3+(x-0.8).^2/(x+1.25).^3-5*(x+1/x);
>>dydx=diff(y);
>>solve(dydx);x=double(ans);
>>fori=1:
length(x)
xx(i)=isreal(x(i));
end
>>t=x(xx)
t=
-0.4694
-2.4039
>>x=t
(1);y1=subs(y)
y1=
16.2832
>>x=t
(2);y2=subs(y)
y2=
-6.4732
>>z=diff(diff(y));
>>x=t
(1);z1=subs(z)
z1=
205.8164
>>x=t
(2);z2=subs(z)
z2=
-53.5382
函数f(x)有一个极大值点x1=-2.4039,极大值为-6.4732;一个极小值点x2=-2.4039,极小值为16.2832
10.f(x)的定义如下:
,写一个matlab函数func1实现该函数。
Functions11461101_10(x)
ifx<0&&x==-4
y=x^2+x-6;
elseifx>=0&x<10&x~=2&x~=3
y=x^2-5*x+6;
else
y=x.^2-x-1;
end
fprintf('%d\n',y);
13.写一个MATLAB函式pifun.m来计算下列级数:
f(n)=4*(1-1/3+1/5-1/7+1/9-1/11+...)
其中n为函式的输入,级数和f(n)则是函式的输出。
此外,你必须进行下列事项:
(1)使用tic和toc指令来测量pifun(100000)的计算时间。
如果你不知道如何使用这两个指令,请使用helptic及helptoc来查出它们的用法。
我的计算机是Pentium-450,所得的计算时间约为2秒。
请说明你的计算机规格以及其计算时间。
functionf=11461101_13(n)
l=1;s=0;
fori=1:
n
s=s+l/(2*i-1);
l=-l;
end
s=4*s;
disp('f(n)的值是');disp(num2str(s))
>>tic,s11461101_13(100000),toc
f(n)的值是
3.1416
Elapsedtimeis0.028928seconds.
(2)使用flops指令来测量pifun(100000)所用到floatingpointoperations的计算次数。
如果你不知道如何使用这个指令,请使用helpflops来查出它的用法。
14.写一个MATLAB的递归函式fibo.m来计算Fibonacci数列,其定义如下:
fibo(n+2)=fibo(n+1)+fibo(n)
此数列的启始条件如下:
fibo
(1)=0,fibo
(2)=1.
functionf=fibo(n)
ifn==1
f=0;
elseifn==2
f=1;
else
f=fibo(n-1)+fibo(n-2);
end
15.求下列函数的极小点:
1)
;
f='x
(1)^2+4*x
(2)^2+9*x(3)^2-2*x
(1)+18*x
(2)';
[x,fm]=fminsearch(f,[0,0,0])
x=
1.0000-2.25000.0000
fm=
-21.2500
2)
;
f='x
(1)^2+3/2*x
(2)^2-2*x
(1)*x
(2)+x
(1)-2*x
(2)';
[x,fm]=fminsearch(f,[0,0])
x=
0.50001.0000
fm=
-0.7500
3)
.
f='(x
(1)-1)^4+x
(2)^2';
>>[x,fm]=fminsearch(f,[0;1])
x=
1.0000
-0.0000
fm=
4.2415e-17
第1),2)题的初始点可任意选取,
第3)题的初始点取为
.
16.解线性方程组
并求系数矩阵的行列式。
a=[51-101;103-12;-1-1053;0024-1];
>>rref(a)
ans=
1.00000001.4000
01.000000-5.9000
001.000000.1000
0001.0000-0.3000
17.设f(x,y)=4sin(x3y),求
。
symsfxy;
f=4*sin(x.^3*y);
z=diff(diff(f,x),y);%diff函数进行求导
x=2;y=3;
subs(z)%subs函数进行元素替换
ans=
1.0636e+03
18.求方程3x4+4x3-20x+5=0的所有解。
c=[340-205];roots(c)
ans=
-1.5003+1.5470i
-1.5003-1.5470i
1.4134
0.2539
19.对于迭代模型
取初值x0=0,y0=0,进行3000次迭代,对于k>1000,在(xk,yk)处亮一点(注意不要连线)可得所谓Henon引力线图。
x
(1)=0;
>>y
(1)=0;
>>fori=1:
3000;
x(i+1)=1+y(i)-1.4*x(i)^2;
y(i+1)=0.3*x(i);
holdon
plot(x(i),y(i),'*b')
end
20.:
请设计一个程序,程序完成下列功能:
(1)让用户输入一个矩阵A;
(2)在A中找出小于0的矩阵元素的位置;
(3)在A中统计出等于0的元素的个数;
(4)显示A的行数和列数;
(5)找出矩阵A各元素中的最大值(显示值,不显示元素位置)。
functionf=s11461101_20()
a=input('输入一个矩阵A:
');
[m,n]=size(a);
t=0;p=0;
fori=1:
m
forj=1:
n
ifa(i,j)<0p=p+1;
fprintf('(矩阵中小于0的矩阵元素的位置%d,%d)\n',p,i,j);
end
ifa(i,j)==0t=t+1;
end
end
end
B=a(:
);
max=B
(1);
fori=2:
m*n
ifB(i)>maxmax=B(i);
end
end
ifp==0disp('.');
end
fprintf('矩阵中等于0的元素的个数%d\n',t);
fprintf('矩阵的行数和列数%d\n',m,n);
fprintf('矩阵中各元素的最大值%d\n',max);
21.请设计一个程序,程序完成下列功能:
(1)让用户依次输入两个字符串s1和s2;
(2)比较两个字符串的长度并显示比较结果;
(3)判断s1与s2有没有长度在3个字符以上的相同子串,显示判断结果。
s1=input('输入字符s1','s');
s2=input('输入字符s2','s');
l1=length(s1);
l2=length(s2);
ifl1==l2
disp('长度相等')
elseifl1>l2
disp('s1>s2')
else
disp('s1 end e=strncmp(s1,s2,3); ife==0 disp('没有长度在3个字符以上的相同子串') else disp('有长度在3个字符以上的相同子串') end 22.编写程序模拟杨氏双缝干涉 两相干光源到接收屏上P点距离r1=(D2+(y-a/2)2)1/2,r2=(D2+(y+a/2)2)1/2,相位差 Φ=2π(r2-r1)/λ,光强I=4I0cos2(Φ/2)编写程序 >>lam=500e-9; a=2e-3;D=1; ym=5*lam*D/a;xs=ym; n=101;ys=linspace(-ym,ym,n);%linspace用于产生-ymym之间的n点矢量 fori=1: n r1=sqrt((ys(i)-a/2).^2+D^2); r2=sqrt((ys(i)+a/2).^2+D^2); phi=2*pi*(r2-r1)./lam; B(i,: )=sum(4*cos(phi/2).^2); end N=255; Br=(B/4.0)*N; subplot(1,2,1);%产生两幅图中的第一幅 image(xs,ys,Br); colormap(gray(N)); subplot(1,2,2);%产生第二幅 plot(B,ys); 24.绘制三元函数 的可视化图形 x=-5: 0.05: 5;y=-5: 0.05: 5;z=-5: 0.05: 5; [x,y,z]=meshgrid(x,y,z); v=x.^2+y.^2+z.^2; isosurface(x,y,z,v,10); axisequal 25.绘制 的图象 [x,y,z,v]=flow; q=1./sqrt(1-x).*log(x-y+eps)-z; p=patch(isosurface(x,y,z,v,0)); isonormals(x,y,z,q,p) set(p,'FaceColor','blue','EdgeColor','none'); view(3) camlight 26: 试完成matlab动画 霓虹灯效果动画: 一颗花心: c=8; t=linspace(-c,c); [x,y]=meshgrid(t); z=16*x.^2-15*abs(x).*y+16*y.^2-225; pcolor(x,y,z); shadinginterp pause(3); spinmap(8) 27: 试完成matlabgui程序 functionvarargout=untitled(varargin) %UNTITLEDMATLABcodeforuntitled.fig %UNTITLED,byitself,createsanewUNTITLEDorraisestheexisting %singleton*. % %H=UNTITLEDreturnsthehandletoanewUNTITLEDorthehandleto %theexistingsingleton*. % %UNTITLED('CALLBACK',hObject,eventData,handles,...)callsthelocal %functionnamedCALLBACKinUNTITLED.Mwiththegiveninputarguments. % %UNTITLED('Property','Value',...)createsanewUNTITLEDorraisesthe %existingsingleton*.Startingfromtheleft,propertyvaluepairsare %appliedtotheGUIbeforeuntitled_OpeningFcngetscalled.An %unrecognizedpropertynameorinvalidvaluemakespropertyapplication %stop.Allinputsarepassedtountitled_OpeningFcnviavarargin. % %*SeeGUIOptionsonGUIDE'sToolsmenu.Choose"GUIallowsonlyone %instancetorun(singleton)". % %Seealso: GUIDE,GUIDATA,GUIHANDLES %Edittheabovetexttomodifytheresponsetohelpuntitled %LastModifiedbyGUIDEv2.506-Jan-201417: 25: 34 %Begininitializationcode-DONOTEDIT gui_Singleton=1; gui_State=struct('gui_Name',mfilename,... 'gui_Singleton',gui_Singleton,... 'gui_OpeningFcn',@untitled_OpeningFcn,... 'gui_OutputFcn',@untitled_OutputFcn,... 'gui_LayoutFcn',[],... 'gui_Callback',[]); ifnargin&&ischar(varargin{1}) gui_State.gui_Callback=str2func(varargin{1}); end ifnargout [varargout{1: nargout}]=gui_mainfcn(gui_State,varargin{: }); else gui_mainfcn(gui_State,varargin{: }); end %Endinitializationcode-DONOTEDIT %---Executesjustbeforeuntitledismadevisible. functionuntitled_OpeningFcn(hObject,eventdata,handles,varargin) %Thisfunctionhasnooutputargs,seeOutputFcn. %hObjecthandletofigure %eventdatareserved-tobedefinedinafutureversionofMATLAB %handlesstructurewithhandlesanduserdata(seeGUIDATA) %varargincommandlineargumentstountitled(seeVARARGIN) %Createthedatatoplot. handles.peaks=peaks(35); handles.membrane=membrane; [x,y]=meshgrid(-8: .5: 8); r=sqrt(x.^2+y.^2)+eps; sinc=sin(r)./r; handles.sinc=sinc; %setthecurrentdatavalue. handles.current_data=handles.peaks; contour(handles.current_data) %Choosedefaultcommandlineoutputforuntitled handles.output=hObject; %Updatehandlesstructure guidata(hObject,handles); %UIWAITmakesuntitledwaitforuserresponse(seeUIRESUME) %uiwait(handles.figure1); %---Outputsfromthisfunctionarereturnedtothecommandline. functionvarargout=untitled_OutputFcn(hObject,eventdata,handles) %varargoutcellarrayforreturningoutputargs(seeVARARGOUT); %hObjecthandletofigure %eventdatareserved-tobedefinedinafutureversionofMATLAB %handlesstructurewithhan
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 常州 大学 MATLAB 实习 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)