matlab实习报告.docx

上传人:b****3 文档编号:4104079 上传时间:2023-05-06 格式:DOCX 页数:28 大小:218KB
下载 相关 举报
matlab实习报告.docx_第1页
第1页 / 共28页
matlab实习报告.docx_第2页
第2页 / 共28页
matlab实习报告.docx_第3页
第3页 / 共28页
matlab实习报告.docx_第4页
第4页 / 共28页
matlab实习报告.docx_第5页
第5页 / 共28页
matlab实习报告.docx_第6页
第6页 / 共28页
matlab实习报告.docx_第7页
第7页 / 共28页
matlab实习报告.docx_第8页
第8页 / 共28页
matlab实习报告.docx_第9页
第9页 / 共28页
matlab实习报告.docx_第10页
第10页 / 共28页
matlab实习报告.docx_第11页
第11页 / 共28页
matlab实习报告.docx_第12页
第12页 / 共28页
matlab实习报告.docx_第13页
第13页 / 共28页
matlab实习报告.docx_第14页
第14页 / 共28页
matlab实习报告.docx_第15页
第15页 / 共28页
matlab实习报告.docx_第16页
第16页 / 共28页
matlab实习报告.docx_第17页
第17页 / 共28页
matlab实习报告.docx_第18页
第18页 / 共28页
matlab实习报告.docx_第19页
第19页 / 共28页
matlab实习报告.docx_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

matlab实习报告.docx

《matlab实习报告.docx》由会员分享,可在线阅读,更多相关《matlab实习报告.docx(28页珍藏版)》请在冰点文库上搜索。

matlab实习报告.docx

matlab实习报告

学号:

09461133

常州大学

实习报告

课程名称:

matlab软件实习

学生姓名:

sherryzhang

学院:

数理学院专业班级:

电科091

教师:

忠义专业技术职务:

讲师

 

时间:

2011年9月2011年12月

1.求f(x)=4x6-x+x3-95在(0,100)上最大值、最小值,根。

(使用函数fminbnd、roots)

>>[x,y]=fminbnd('4*x.^6-x+x.^3-95',0,100)

x=

0.4432

y=

-95.3258

>>[x,y]=fminbnd('-4*x.^6+x-x.^3+95',0,100)

x=

99.9999

y=

-4.0000e+012

>>a=[40010-1-95];

roots(a)

ans=

1.6860

0.8525+1.4852i

0.8525-1.4852i

-1.7050

-0.8431+1.4514i

-0.8431-1.4514i

2求解常微分方程x’’=-x’+x+1,x’(0)=1,x(0)=0(使用函数dsolve)

dsolve('D2x=-Dx+x+1','Dx(0)=1','x(0)=0')

ans=

(5^(1/2)*exp(t*(5^(1/2)/2-1/2))*(5^(1/2)+3))/10+(5^(1/2)*(5^(1/2)-3))/(10*exp(t*(5^(1/2)/2+1/2)))-1

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];

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');

p=polyfit(n,t,2)

p=

0.00000.01440.0631

试求a和b的值。

4请用梯形法、辛普森法分别计算积分值

(trapz、quad)

f=inline('sqrt(x.^2+x+1)','x');

>>quad(f,0,1)

ans=

1.3369

>>x=0:

0.01:

1;y=sqrt(x.^2+x+1);trapz(x,y)

ans=

1.3369

5计算二重积分

(使用函数dblquad)

dblquad('x.^2+y.^2+x*y+2*x+y+1',0,1,0,2)

ans=

10.3333

6矩阵M=[1,2,6;4,2,7;8,9,3],求M的LU分解,QR分解,对角阵,特征值分解。

(使用函数lu、qr、shol、eig)

M=[1,2,6;4,2,7;8,9,3];lu(M)

ans=

8.00009.00003.0000

0.5000-2.50005.5000

0.1250-0.35007.5500

qr(M)

ans=

9.00009.11116.4444

-0.50002.4470-2.3360

-1.0000-0.47196.8566

[D,X]=eig(M)

D=

-0.4111-0.7719-0.4992

-0.54840.6237-0.3914

-0.72820.12290.7730

X=

14.294400

0-1.57120

00-6.7232

7a=3,A=4,b=a2,B=b2-1,c=a+A-2B,C=a+B+2c,求C。

(使用函数solve)

>>symsabcABC

eq1='a=3';

eq2='A=4';

eq3='b=a^2';

eq4='B=b^2-1';

eq5='c=a+A-2*B';

eq6='C=a+B+2*c';

x=solve(eq1,eq2,eq3,eq4,eq5,eq6);

>>x.C

ans=

-223

8用两种方法求解Ax=b的解。

(A为四阶随机矩阵,b为四阶向量,自己创建)。

方法一:

>>A=rand(4)

A=

0.93550.05790.13890.2722

0.91690.35290.20280.1988

0.41030.81320.19870.0153

0.89360.00990.60380.7468

>>B=[1;2;3;4];x=inv(A)*B

x=

-0.2035

2.3800

5.7042

0.9564

方法二:

>>A(:

5)=B;rref(A)

ans=

1.0000000-0.2035

01.0000002.3800

001.000005.7042

0001.00000.9564

9.

,用两种方法求函数的根,并求其极值与零点。

方法1:

>>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

方法2:

>>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实现该函数。

functionfunc1(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);

11、写一个MATLAB小程序,求出最小的n值,使得n!

>realmax。

functionf=realmax10()

s=1;n=1;

while

(1)

n=n+1;

s=s*n;

ifs>realmax

break;

end

end

fprintf('nµÄֵΪ%d\n',n)

12、写一个MATLAB函式myfun.m来计算下列方程式:

y=0.5*exp(x/3)-x*x*sin(x)

其中x是函式的输入,y是函式的输出。

你的函式必须能够处理当x是纯量或是向量的两种情况。

functionf=myfun(x)

n=length(x);

fori=1:

n

y(i)=0.5*exp(x(i)/3)-x(i)*x(i)*sin(x(i));

end

y

13、写一个MATLAB函式pifun.m来计算下列级数:

f(n)=4*(1-1/3+1/5-1/7+1/9-1/11+...)

其中n为函式的输入,级数和f(n)则是函式的输出。

此外,你必须进行下列事项:

functionf=pifun(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))

(1)使用tic和toc指令来测量pifun(100000)的计算时间。

如果你不知道如何使用这两个指令,请使用helptic及helptoc来查出它们的用法。

我的计算机是Pentium-450,所得的计算时间约为2秒。

请说明你的计算机规格以及其计算时间。

>>tic,pifun(100000),toc

f(n)的值是

3.1416

Elapsedtimeis0.028928seconds.

CpuPentiumdual—coree5300

(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.4999771936726811.000008683829168

fm=

-0.749999998970666

 

3)

.

>>f='(x

(1)-1)^4+x

(2)^2';

>>[x,fm]=fminsearch(f,[0;1])

x=

0.999965270122533

-0.000000006400016

 

fm=

4.241503967641482e-017

第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

所以x1=1.4;x2=-5.9;x3=0.1;x4=-0.3

a=[51-10;103-1;-1-105;0024];

>>det(a)

ans=

70

17.设f(x,y)=4sin(x3y),求

 symsfsy;

symsfxy;

f=4*sin(x.^3*y);

z=diff(diff(f,x),y);

x=2;y=3;subs(z)

>>zs17

ans=

1.0636e+003

18.求方程3x4+4x3-20x+5=0的所有解。

c=[340-205];roots(c)

>>zs18

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=1000:

3000;%开始先从一到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:

某公司投资2000万元建成一条生产线。

投产后,在时刻t的追加成本和追加收益分别为G(t)=

(百万元/年),H(t)=

(百万元/年)。

试确定该生产线在合适何时停产可获最大利润?

最大利润是多少?

要求:

写出数学模型、M函数(如果需要的话)、运算命令和计算结果。

解:

利润函数

(百万元)

f(t)=H(t)-G(t)=175-t-3t2/3,f(t)单调递减,则当f(t)=0时利润最大

f='175-t-3*t^(2/3)';

t=double(solve(f))

t

f=inline('175-t-3*t.^(2./3)');

r=quad(f,0,107.2708)-20

r

t=

1.0e+002*

1.9536-1.0860i

1.9536+1.0860i

1.0727

 

r=

8.6397e+003

即在第108年停产可获最大利润,最大利润为8639.7百万元。

 

 

21。

一幢楼房的后面是一个很大的花园。

在花园中紧靠着楼房建有一个温室,温室高10英尺,延伸进花园7尺。

清洁工要打扫温室上方的楼房的窗户。

他只有借助于梯子,一头放在花园中,一头靠在楼房的墙上,攀援上去进行工作。

他只有一架20米长的梯子,你认为他能否成功?

能满足要求的梯子的最小长度是多少?

步骤:

1.先进行问题分析,明确问题;

2.建立模型,并运用Matlab函数求解;

3.对结果进行分析说明;

4.设计程序画出图形,对问题进行直观的分析和了解(主要用画线函数plot,line)

若梯子能恰好放置,则梯子的长度f与倾角x关系如下:

(其中a=

m,b=3.048m,0

接下来用Matlab求该函数的最小值:

L=inline('3.048/sin(x)+2.333/cos(x)','x');

x=fminbnd(L,0.01,pi/2-0.01)

l=subs(L)

ezplot('3.048/sin(x)+2.333/cos(x)',[0,pi/2])

由以上可知梯子的最小长度为7.59m。

所以他能成功。

22.某大学青年教师从31岁开始建立自己的养老基金,他把已有的积蓄10000元也一次性地存入,已知月利率为0.001(以复利计),每月存入700元,试问当他60岁退休时,他的退休基金有多少?

又若,他退休后每月要从银行提取1000元,试问多少年后他的基金将用完?

functionf=title22()

s=10000;t=0;

fori=1:

360

s=s*(1+0.001)+700;

end

fprintf('60ËêÍËÐÝʱÍËÐÝ»ù½ðÓÐ%fÔª.\n',s);

whiles>0

s=(s-1000)*(1+0.001);

t=t+1;

end

t=ceil(t/12);

fprintf('ÍËÐݺóÿÔÂÒª´ÓÒøÐÐÌáÈ¡1000Ôª£¬%dÄêºó»ù½ð½«ÓÃÍê.\n',t);

>>zs22

60岁退休时退休基金有317480.843330元.

退休后每月要从银行提取1000元,32年后基金将用完.

23.:

请设计一个程序,程序完成下列功能:

(1)让用户输入一个矩阵A;

(2)在A中找出小于0的矩阵元素的位置;

(3)在A中统计出等于0的元素的个数;

(4)显示A的行数和列数;

(5)找出矩阵A各元素中的最大值(显示值,不显示元素位置)。

functionf=title20()

a=input('ÇëÊäÈë¾ØÕóA:

');

[m,n]=size(a);

t=0;p=0;

fori=1:

m

forj=1:

n

ifa(i,j)<0

p=p+1;

fprintf('µÚ%d¸öСÓÚ0µÄλÖÃÊÇ(%d,%d)\n',p,i,j);

end

ifa(i,j)==0

t=t+1;

end

end

end

B=a(:

);

max=B

(1);

fori=2:

m*n

ifB(i)>max

max=B(i);

end

end

ifp==0

disp('AÖÐûÓÐСÓÚ0µÄÔªËØ.');

end

fprintf('AÖеÈÓÚ0µÄÔªËصĸöÊýΪ%d\n',t);

fprintf('AµÄÐÐÊýºÍÁÐÊý·Ö±ðΪ%d£¬%d\n',m,n);

fprintf('A¸÷ÔªËØÖеÄ×î´óֵΪ%d\n',max);

 

24:

请设计一个程序,程序完成下列功能:

(1)让用户依次输入两个字符串s1和s2;

(2)比较两个字符串的长度并显示比较结果;

(3)判断s1与s2有没有长度在3个字符以上的相同子串,显示判断结果。

functionf=title24()

s1=input('ÇëÊäÈë×Ö·û´®s1:

');

s2=input('ÇëÊäÈë×Ö·û´®s2:

');

m=length(s1);n=length(s2);

t=m;kk=0;

ifm>n

t=n;

disp('s1µÄ³¤¶È´óÓÚs2µÄ³¤¶È.');

elseifm

disp('s1µÄ³¤¶ÈСÓÚs2µÄ³¤¶È.');

else

disp('s1µÄ³¤¶ÈµÈÓÚs2µÄ³¤¶È.');

end

fori=4:

t

forj=1:

m-i+1

fork=1:

n-i+1

ifstrcmp(s1(j:

j+i-1),s2(k:

k+i-1))==1

l=0;

forr=1:

kk

ifstrcmp(s1(j:

j+i-1),b{r})==1

l=1;

break;

end

end

ifl==0

kk=kk+1;

b{kk}=s1(j:

j+i-1);

end

end

end

end

end

fori=1:

kk

fprintf('µÚ%d¸öÏàͬ×Ö·û´®£º',i);

disp(b{i});

end

25:

编写程序模拟杨氏双缝干涉

两相干光源到接收屏上P点距离r1=(D2+(y-a/2)2)1/2,r2=(D2+(y+a/2)2)1/2,相位差

Φ=2π(r2-r1)/λ,光强I=4I0cos2(Φ/2)编写程序

clear

lam=500e-9;

a=2e-3;D=1;

ym=5*lam*D/a;xs=ym;

n=101;ys=linspace(-ym,ym,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);

26:

编写程序模拟光栅衍射

公式:

I=I0(sinα/α)2(sin(λβ)/sinβ)2

α=(πa/λ)sinΦ

β=(πd/λ)sinΦ

clear

lam=500e-9;N=2;

a=2e-4;D=5;d=5*a;

ym=2*lam*D/a;xs=ym;

n=1001;

ys=linspace(-ym,ym,n);

fori=1:

n

sinphi=ys(i)/D;

alpha=pi*a*sinphi/lam;

beta=pi*d*sinphi/lam;

B(i,:

)=(sin(alpha)./alpha).^2.*(sin(N*beta)./sin(beta)).^2;

B1=B/max(B);

end

NC=255;

Br=(B/max(B))*NC;

subplot(1,2,1)

image(xs,ys,Br);

colormap(gray(NC));

subplot(1,2,2)

plot(B1,ys);

27:

绘制三元函数

的可视化图形

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

28:

绘制

的图象

[x,y,z,v]=flow;

q=1./sqrt(1-x).*log(x-y)-z;

p=patch(isosurface(x,y,z,v,0));

isonormals(x,y,z,q,p)

set(p,'FaceColor','blue','EdgeColor','none');

view(3)

camlight;lighting

29:

试完成matlab动画

霓虹灯效果动画:

一颗花心:

clear;clc;closeall

c=5;

t=linspace(-c,c);

[x,y]=meshgrid(t);

z=17*x.^2-16*abs(x).*y+17*y.^2-225;

pcolor(x,y,z);

shadinginterp

pause

(2);

spinmap(10)

30:

试完成matlabgui程序

functionvarargout=ex0(varargin)

gui_Singleton=1;

gui_State=struct('gui_Name',mfilename,...

'gui_Singleton',gui_Singleton,...

'gui_OpeningFcn',@ex0_OpeningFcn,...

'gui_OutputFcn',@ex0_OutputFcn,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2