matlab实习报告(最新)_matlab实习报告

2020-02-28 实习报告 下载本文

matlab实习报告(最新)由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“matlab实习报告”。

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=[4 0 0 1 0-1-95];roots(a)ans =

1.6860

0.8525 + 1.4852i

0.85251.4514i 求解常微分方程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)/23))/(10*exp(t*(5^(1/2)/2 + 1/2)))1/3 + 1/51/11 +...)其中 n 为函式的输入,级数和 f(n)则是函式的输出。此外,你必须进行下列事项:

function f=pifun(n)l=1;s=0;for i=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)的计算时间。如果你不知道如何使用这两个指令,请使用 help tic 及 help toc 来查出它们的用法。我的计算机是 Pentium-450,所得的计算时间约为 2 秒。请说明你的计算机规格以及其计算时间。

>> tic,pifun(100000),toc f(n)的值是 3.1416 Elapsed time is 0.028928 seconds.Cpu Pentium dual—core e5300(2)使用 flops 指令来测量 pifun(100000)所用到 floating point operations 的计算次数。如果你不知道如何使用这个指令,请使用 help flops 来查出它的用法。

14、写一个 MATLAB 的递归函式 fibo.m 来计算 Fibonacci 数列,其定义如下:

fibo(n+2)= fibo(n+1)+fibo(n)此数列的启始条件如下: fibo(1)= 0, fibo(2)= 1.function f=fibo(n)if n==1 f=0;elseif n==2 f=1;else f=fibo(n-1)+fibo(n-2);end 求下列函数的极小点:

1)fXx24x29x22x18x;

12312>> 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.2500 0.0000

fm =

-21.2500

2)

fX2x1; 32x22x1x2x12x22>> 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.*** 1.***

fm =

-0.***

3)fXx1422.12>> f='(x(1)-1)^4+x(2)^2';>> [x,fm]=fminsearch(f,[0;1])x =

0.***-0.***

fm =

4.24***82e-017

第1),2)题的初始点可任意选取,第3)题的初始点取为X00,1T.5x1x2x31x3xx23416. 解线性方程组 1并求系数矩阵的行列式。

x1x25x432x34x41 a=[5 1-1 0 1;1 0 3-1 2;-1-1 0 5 3;0 0 2 4-1];>> rref(a)

ans =

1.0000

0

0

0

1.4000

0

1.0000

0

0

-5.9000

0

0

1.0000

0

0.1000

0

0

0

1.0000

-0.3000

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

a=[5 1-1 0;1 0 3-1;-1-1 0 5;0 0 2 4];>> det(a)

ans =

2f17. 设 f(x,y)= 4 sin(x y),求

xy

3x2,y3

syms f s y;syms f x y;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=[3 4 0-20 5];roots(c)

>> zs18

ans =

-1.5003 + 1.5470i-1.50031.0860i 1.9536 + 1.0860i 1.0727

r =

8.6397e+003 即在第108年停产可获最大利润,最大利润为8639.7百万元。一幢楼房的后面是一个很大的花园。在花园中紧靠着楼房建有一个温室,温室高10英尺,延伸进花园7尺。清洁工要打扫温室上方的楼房的窗户。他只有借助于梯子,一头放在花园中,一头靠在楼房的墙上,攀援上去进行工作。他只有一架20米长的梯子,你认为他能否成功?能满足要求的梯子的最小长度是多少?

步骤:

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

2.建立模型,并运用Matlab函数求解; 3.对结果进行分析说明; 4.line)设计程序画出图形,对问题进行直观的分析和了解(主要用画线函数plot。若梯子能恰好放置,则梯子的长度f与倾角x关系如下:

ab7f(x)

(其中a=m, b=3.048m,0

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元,试问多少年后他的基金将用完? function f=title22()s=10000;t=0;for i=1:360

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

fprintf('60ËêÍËÐÝʱÍËÐÝ»ù½ðÓÐ%fÔª.n',s);while s>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各元素中的最大值(显示值,不显示元素位置)。

function f=title20()a=input('ÇëÊäÈë¾ØÕóA: ');[m,n]=size(a);t=0;p=0;for i=1:m

for j=1:n

if a(i,j)

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

end

if a(i,j)==0 t=t+1;

end

end end B=a(:);max=B(1);for i=2:m*n

if B(i)>max max=B(i);

end end

if p==0

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

fprintf('AÖеÈÓÚ0µÄÔªËØµÄ¸öÊýΪ%dn',t);fprintf('AµÄÐÐÊýºÍÁÐÊý·Ö±ðΪ%d£¬%dn',m,n);fprintf('A¸÷ÔªËØÖеÄ×î´óֵΪ%dn',max);

24:请设计一个程序,程序完成下列功能:(1)让用户依次输入两个字符串s1和s2;(2)比较两个字符串的长度并显示比较结果;

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

s1=input('ÇëÊäÈë×Ö·û´®s1: ');s2=input('ÇëÊäÈë×Ö·û´®s2: ');m=length(s1);n=length(s2);t=m;kk=0;if m>n t=n;

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

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

disp('s1µÄ³¤¶ÈµÈÓÚs2µÄ³¤¶È.');end for i=4:t

for j=1:m-i+1

for k=1:n-i+1

if strcmp(s1(j:j+i-1),s2(k:k+i-1))==1 l=0;

for r=1:kk

if strcmp(s1(j:j+i-1),b{r})==1 l=1;

break;end

end

if l==0 kk=kk+1;

b{kk}=s1(j:j+i-1);

end

end

end

end end for i=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);for i=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);for i=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:绘制三元函数wx2y2z2的可视化图形 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);axis equal

28:绘制

zf(x,y)(1x)12ln(xy)的图象

[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;close all 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);shading interp pause(2);spinmap(10)

30:试完成matlab gui程序 function varargout = ex0(varargin)gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename,...'gui_Singleton', gui_Singleton,...'gui_OpeningFcn', @ex0_OpeningFcn,...'gui_OutputFcn', @ex0_OutputFcn,...'gui_LayoutFcn', [] ,...'gui_Callback', []);if nargin && ischar(varargin{1})

gui_State.gui_Callback = str2func(varargin{1});end

if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});else

gui_mainfcn(gui_State, varargin{:});end

function ex0_OpeningFcn(hObject, eventdata, handles, varargin)

handles.output = hObject;

global i a i=0;

a=floor(100*rand);

guidata(hObject, handles);

function varargout = ex0_OutputFcn(hObject, eventdata, handles)

varargout{1} = handles.output;

function x1_Callback(hObject, eventdata, handles)

function x1_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');end

function x2_Callback(hObject, eventdata, handles)

function x2_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');end

function p1_Callback(hObject, eventdata, handles)

global i a

x1= eval(get(handles.x1,'String'));

if x1>a x2='high';

set(handles.x2,'string',num2str(x2));

elseif x1

set(handles.x2,'string',num2str(x2));

else

x2='YOU ARE WIN';

set(handles.x2,'string',num2str(x2));a=floor(100*rand);i=0;

end i=i+1;if i==10

x2='YOU ARE LOSE';

set(handles.x2,'string',num2str(x2));a=floor(100*rand);i=0;end

function p2_Callback(hObject, eventdata, handles)

close = questdlg('ÄúÈ·¶¨Òª¹Ø±ÕÂð?','È·¶¨¹Ø±Õ','ÊÇ','·ñ','ÊÇ');switch close case '·ñ'

case 'ÊÇ'

delete(handles.figure1)end

《matlab实习报告(最新).docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
matlab实习报告(最新)
点击下载文档
相关专题 matlab实习报告 实习报告 最新 matlab matlab实习报告 实习报告 最新 matlab
[实习报告]相关推荐
    [实习报告]热门文章
      下载全文