matlab实验报告.docx

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

matlab实验报告.docx

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

matlab实验报告.docx

matlab实验报告

1.练习下面指令,写出每个指令的作用。

cd,clear,dir,path,help,who,whos,save,load。

Cd将用户目录设置成当前目录

Clear用于删除MATLAB工作空间中的变量(预定义变量不能被删除)

Dir列举当前文件夹里(或指定文件夹)所有的文件与文件夹

Path把用户目录临时纳入搜索路径

Help是查询函数语法的最基本方法,查询信息直接显示在命令窗口

Who显示在MATLAB工作空间中驻留的变量名清单

Whos显示在MATLAB工作空间中驻留的变量名清单以及它们的维数、所占字节数以及变量的类型

Save生成MAT文件,保存workspace中的变量到文件中(其中MAT文件可以把当前MATLAB工作空间中的一些有用的变量长久地保留下来)

Load在workspace中载入mat 文件中的数据。

3.求

的算术运算结果。

用MATLAB运行的过程和结果如下:

x=(12+2*(7-4))/3^2x=2

4.求出下列表达式的值,然后显示matlab工作空间的使用情况并保存全部变量:

 

用MATLAB运行的过程和结果如下:

>>Z1=2*sin(85*pi/180)/(1+exp

(2))

Z1=0.2375>>x=[2,1+2i;-0.45,5];

Z2=log(x+sqrt(1+x^2))/2

Z2=0.7114-0.0253i0.8968+0.3658i

0.2139+0.9343i1.1541-0.0044i

6.写出完成下列操作的命令:

(1)建立3阶单位矩阵A;

(2)建立5*6随机矩阵C,其元素为[100,200]范围内的随机整数;

(3)产生均值为1,方差为0.2的50个正态分布的随机数;(4)产生和A同样大小的幺矩阵;

(5)将矩阵A的对角线元素加30;(6)从矩阵A提取对角线元素,并以这些元素构成对角阵B。

(1)>>eye(3)

ans=100

010

001

(2)>x=100+(200-100)*rand(5,6)

x=181.4724109.7540115.7613114.1886165.5741175.7740

190.5792127.8498197.0593142.1761103.5712174.3132

112.6987154.6882195.7167191.5736184.9129139.2227

191.3376195.7507148.5376179.2207193.3993165.5478

163.2359196.4889180.0280195.9492167.8735117.1187

(3)>>y=1+sqrt(0.2)*rand(10,5)

y=1.31581.19621.12341.33601.3760

1.01421.17061.30401.11411.1137

1.12381.34231.29301.22631.3642

1.02061.35561.07271.31261.1089

1.04341.08361.05321.39841.4156

1.36831.21901.22291.42901.1565

1.31071.19931.42921.24471.0879

1.14181.28901.15221.06201.1123

1.42501.31721.26171.06681.2755

1.01541.33751.10011.11521.2117

>>

(4)>>A=eye(3)

A=100

010

001

>>ones(size(A))

ans=111

111

111

>>

(5>>A+30*eye(size(A))

ans=3100

0310

0031

>>

(6)>>C=diag(A);B=diag(C)

B=100

010

001

7.已知:

求下列表达式的值:

(1)

(其中I为单位矩阵)

(2)

(3)

(4)

(5)

(1)>>A=[12,34,-4;34,7,87;3,65,7];

B=[1,3,-1;2,0,3;3,-2,7];

K11=A+6*B

K11=1852-10

467105

215349

(2)>>K21=A*B

K22=A.*B

K21=684462

309-72596

154-5241

 

K22=121024

680261

9-13049

(3)>>K31=A^3

K32=A.^3

K31=3722623382448604

247370149188600766

78688454142118820

K32=172839304-64

39304343658503

27274625343

(4)>>K41=A/B

K42=B\A

K41=16.4000-13.60007.6000

35.8000-76.200050.2000

67.0000-134.000068.0000

K42=109.4000-131.2000322.8000

-53.000085.0000-171.0000

-61.600089.8000-186.2000

(5)>>K51=[A,B]

K52=[A([1,3],:

);B^2]

K51=1234-413-1

34787203

36573-27

K52=1234-4

3657

451

11019

20-540

8.下面是一个线性方程组:

(1)求方程的解。

(2)将方程右边向量元素

改为0.53,再求解,并比较

的变化和解的相对变化。

(1)>>formatrat;H=hilb(4)

H=11/21/31/4

1/21/31/41/5

1/31/41/51/6

1/41/51/61/7

>>A=H(1:

3,2:

4)

A=1/21/31/4

1/31/41/5

1/41/51/6

 

>>B=[0.95;0.67;0.52]

B=19/20

67/100

13/25

>>X=inv(A)*B

X=6/5

3/5

3/5

(2)>>formatrat;H=hilb(4);A=H(1:

3,2:

4);B=[0.95;0.67;0.53];X=inv(A)*B

X=3

-33/5

33/5

1.编写求解方程的根的函数(这个方程不一定为一元二次方程,因的不同取值而定),这里应根据的不同取值分别处理,有输入参数提示,当时应提示“为恒不等式!

”。

并输入几组典型值加以检验。

程序:

disp('关于方程ax^2+bx+c=0')

a=input('请输入系数a=');

b=input('b=');

c=input('c=');

ifa==0&&b==0

ifc==0

disp('解为全体实数');

else

disp('为恒不等式!

');

end

else

P=[a,b,c];

x=roots(P)

enddisp('关于方程ax^2+bx+c=0')

a=input('请输入系数a=');

b=input('b=');

c=input('c=');

ifa==0&&b==0

ifc==0

disp('解为全体实数');

else

disp('为恒不等式!

');

end

else

P=[a,b,c];

x=roots(P)

end

 

实验结果:

>>Untitled

关于方程ax^2+bx+c=0

请输入系数a=0

b=0

c=2

为恒不等式!

Untitled

关于方程ax^2+bx+c=0

请输入系数a=0

b=0

c=0

解为全体实数

Untitled

关于方程ax^2+bx+c=0

请输入系数a=3

b=4

c=1

x=

-1.0000

-0.3333

2.输入一个百分制成绩,要求输出成绩等级A+、A、B、C、D、E。

其中100分为A+,90分~99分为A,80分~89分为B,70分~79分为C,60分~69分为D,60分以下为E。

要求:

(1)用switch语句实现。

(2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。

g=input('请输入成绩');

ifg<0||g>100

disp('错误,输入的成绩应为0~100间的数')

else

g=fix(g/10);

switchg

case{10}

disp('A+');

case{9}

disp('A');

case{8}

disp('B');

case{7}

disp('C');

case{6}

disp('D')

otherwise

disp('E');

end

end

试验结果:

>>sys

请输入成绩100

A+

sys

请输入成绩50

E

sys

请输入成绩-10

错误,输入的成绩应为0~100间的数

3.利用for循环语句编写计算n!

的函数程序,取n分别为-89、0、3、5、10验证其正确性(输入n为负数时输出出错信息)。

>>n=input('请输入n=');

ifn<0

disp('错误,n取值必须为正数');

else

y=1;

fori=1:

n

y=y*i;

end

disp('n!

=');

disp(y)

end

试验结果:

>>sys

请输入n=-3

错误,n取值必须为正数

sys

请输入n=10

n!

=

3628800

4.Fibonacci数组的元素满足Fibonacci规则:

,;且。

现要求该数组中第一个大于10000的元素。

>>a

(1)=1;

a

(2)=1;

k=3;

a(k)=a(k-1)+a(k-2);

whilea(k)<10000

k=k+1;

a(k)=a(k-1)+a(k-2);

end

ak=a(k)

k

输出结果:

ak=10946

k=21

5.根据

,求

的近似值。

当n分别取100、1000、10000时,结果是多少?

程序:

n=[100100010000];

forj=1:

3

y=0;

k=n(j);

fori=1:

k

y=y+1/i/i;

end

pai=sqrt(6*y);

disp('n=');

disp(n(j));

disp('π的近似值为');

disp(pai);

end

试验结果:

>>sys

n=100

π的近似值为

3.1321

n=1000

π的近似值为

3.1406

n=10000

π的近似值为3.1415

1.将图形窗口分成两格,分别绘制正割和余割函数曲线,并加上适当的标注。

要求:

1)必须画出0到

,即一个周期的曲线。

2)正割曲线为红色点划线输出,余割曲线为蓝色实线输出。

3)图形上面表明正割和余割公式,横轴标x,纵轴标y。

4)将图形窗口分成两格,正割在上,余割在下。

>>x1=linspace(0,2*pi,60);

x2=linspace(0,2*pi,1000);

s=1./(cos(x1)+eps);

c=1./(sin(x2)+eps);

subplot(2,1,1);

plot(x1,s,’r-.’);

title(‘sec(x)’);

xlabel(‘X’);

ylabel(‘Y’);

subplot(2,1,2);

plot(x2,c,’b-‘);

title(‘csc(x)’);

axis([0,2*pi,-200,200]);

xlabel(‘X’);

ylabel(‘Y’);

2.将图形窗口分成两个窗格,分别绘制出函数:

在[0,3]区间上的曲线,并利用axis调整轴刻度纵坐标刻度,使

在[0,12]区间上,

在[-2,1.5]区间上。

>>x=0:

pi/100:

3;

y1=2*x+5;

y2=x.^2-3*x+1;

subplot(1,2,1);

plot(x,y1);

title('y1=2x+5');

axis([0,3,0,12]);

subplot(1,2,2);

plot(x,y2);

title('y2=x^2-3x+1');

axis([0,3,-2,1.5]);

5.生成一个圆柱体(可用cylinder函数),并进行光照和材质处理。

[x,y,z]=cylinder(3);

subplot(2,2,1);

surf(x,y,z);

shadinginterp;

title('未处理');

holdon;

subplot(2,2,2);

surf(x,y,z);

title('光照处理');

light('Position',[-5,-5,0]);

shadinginterp;

lightingflat;

holdon;

subplot(2,2,3);

surf(x,y,z);

title('材质处理');

materialshiny;

shadinginterp;

lightingphong;

holdon;

subplot(2,2,4);

surf(x,y,z);

title('光照、材质处理');

light('Position',[-5,-5,0]);

materialshiny;

shadinginterp;

lightingflat;

holdon;

1.利用matlab提供的rand函数生成30,000个符合均匀分布的随机数,然后检验随机数的性质:

(1)均值和标准方差;

(2)最大元素与最小元素;

(3)大于0.5的随机数个数占总数额百分比。

(1)>>a=rand(300,100);

b=mean(mean(a));

c=mean(mean((a-b).*(a-b)))

c=0.0835

b=0.4988

(2)x=max(max(a))

y=min(min(a))

x=1.0000

y=4.8345e-005

(3)>>f=length(find(a>0.5))/30000

f=0.5006

3.

(1)求函数

在点

的数值导数。

>>x=linspace(0,2*pi,20);

y=sin(x).^2+cos(x).^2;

dy=diff(y);

p=polyfit(x(1,2:

end),dy,7);

ans=polyval(p,[pi/6pi/4pi/3pi/2])

ans=1.0e-016*

0.55350.90900.3726-0.6325

(2)用数值方法求积分

>>x=0:

0.01:

1;

y=log(1+x)./(1+x.^2);

trapz(x,y)

ans=0.2722

4.求方程

附近的根。

functionf=fz(x)

%UNTITLEDSummaryofthisfunctiongoeshere

%Detailedexplanationgoeshere

f=3*x+sin(x)-exp(x);

end

>>fzero('fz',1.5)

ans=1.8900

5.求函数

在(0,1)内的最小值。

functionf=fz(x)

%UNTITLEDSummaryofthisfunctiongoeshere

%Detailedexplanationgoeshere

f=(x^3+cos(x)+x*log(x))/exp(x);

end

>>[x,fval]=fminbnd('fz',0,1)

x=0.5223

fval=0.3974

1.分解因式

(1)

(2)5135

答:

(1)symsxy

f=x^4-y^4

factor(f)

f=x^4-y^4

ans=(x-y)*(x+y)*(x^2+y^2)

(2)f=5135

factor(f)

f=5135

ans=51379

2.

答:

symsx

f=x*(exp(sin(x))+1)-2*(exp(tan(x))-1)/sin(x)^3

limit(f,x,inf,'left')

f=

x*(exp(sin(x))+1)-(2*exp(tan(x))-2)/sin(x)^3

ans=NaN

1.利用imread()函数读取一幅图像,假设其名为flower.tif,存入一个数组中;

>>path(path,'G:

\work\软件\matlab实验\实验七图片')

>>I=imread('flower.tif');

2.利用whos命令提取该读入图像flower.tif的基本信息;

>>whosI

NameSizeBytesClassAttributes

I202x270x4218160uint8

3.利用imshow()函数来显示这幅图像;

>>imshow(I(:

:

1:

3))

2.文件my_exam.dat包含的混合的字母和数值如下:

Joe   gradeA 4.9 pass

susan gradeD 2.0 fail

robgradeC3.1pass

用textread函数把4列数据全部读出来取出放在4个变量中

答:

>>[namegragradesanswer]=textread('my_exam.dat','%s%s%f%s')

name='Joe'

'susan'

'rob'

gra=

'gradeA'

'gradeD'

'gradeC'

grades=

4.9000

2.0000

3.1000

answer=

'pass'

'fail'

'pass'

3.计算当x=[01]时f(x)=exp(x)的值,并将结果写入到文件my.txt中。

答:

x=0:

0.1:

1;

y=[x;exp(x)];

fid=fopen('G:

\my.txt','wt');

fprintf(fid,'%6.2f%12.8f\n',y);

fclose(fid);

4.将5行5列“魔方阵”存入二进制文件中。

答:

代码:

fid=fopen('E:

\my1.dat','w');

a=magic(5);

fwrite(fid,a,'long');

fclose(fid);

从二进制文件中读取“魔方阵”。

fid=fopen('E:

\my1.dat','r');

[A,count]=fread(fid,[5,inf],'long');

fclose(fid);

A

A=

17241815

23571416

46132022

101219213

11182529

 

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

当前位置:首页 > 人文社科 > 法律资料

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

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