MATLAB运算基础实验19.docx

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

MATLAB运算基础实验19.docx

《MATLAB运算基础实验19.docx》由会员分享,可在线阅读,更多相关《MATLAB运算基础实验19.docx(45页珍藏版)》请在冰点文库上搜索。

MATLAB运算基础实验19.docx

MATLAB运算基础实验19

实验一MATLAB运算基础

一、实验目的

1、熟悉启动和退出MATLAB的方法。

2、熟悉MATLAB命令窗口的组成。

3、掌握建立矩阵的方法。

4、掌握MATLAB各种表达式的书写规则以及常用函数的使用。

二、实验仪器

安装有matlab6.0软件的计算机一台

三、实验内容

1.先求下列表达式的值,然后显示MATLAB工作空间的使用情况并保存全部变量。

(1)

(2)

,其中

(3)

提示:

利用冒号表达式生成a向量,求各点的函数值时用点乘运算。

其中

提示:

用逻辑表达式求分段函数值。

2.已知:

求下列表达式的值:

(其中I为单位矩阵)

(5)

3.设有矩阵

求他们的乘积C。

将矩阵C的右下角3X2子矩阵赋给D。

查看MATLAB工作空间的使用情况。

完成下列操作:

(1)求

之间能被21整除的数的个数。

提示:

先利用冒号表达式,再利用find和length函数。

(2)建立一个字符串向量,删除其中的大写字母。

提示:

利用find函数和空矩阵。

4、实验源程序、结果与分析

%题1

源程序

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

(2))%用正弦函数sin与自然指数exp求z1的值

x=[21+2i;-0.455];%求矩阵x

z2=1*log(x+sqrt(1+x*x))/2%用log自然对数函数与sqrt平方根函数求z2

a=-3.0:

0.1:

3.0;%用冒号表达式求a

z3=(exp(0.3.*a)-exp(-0.3.*a))/2.*sin((a+0.3)*pi/180)+log((0.3+a)/2)%用自然指数exp、正弦函数sin、自然对数函数log求z3

t=0:

0.5:

2.5;%用冒号表达式求t

q1=(t>=0&t<1).*t;%用逻辑表达式求临时变量q1

z41=q1.*q1%用临时变量q1求z41

q2=(t>=1&t<2).*t;%用逻辑表达式求临时变量q2

z42=q2.*q2-1%用临时变量q2求z42

q3=(t>=2&t<3).*t;%用逻辑表达式求临时变量q3

z43=q3.*q3-2*t+1%用临时变量q3求z43

结果与分析

z1=0.2375

z2=0.7114-0.0253i0.8968+0.3658i

0.2139+0.9343i1.1541-0.0044i

z3=Columns1through10

0.3485+3.1416i0.3070+3.1416i0.2642+3.1416i0.2201+3.1416i0.1743+3.1416i0.1269+3.1416i0.0775+3.1416i0.0260+3.1416i-0.0278+3.1416i-0.0842+3.1416i

Columns11through20

-0.1436+3.1416i-0.2064+3.1416i-0.2728+3.1416i-0.3437+3.1416i-0.4195+3.1416i-0.5011+3.1416i-0.5895+3.1416i-0.6862+3.1416i-0.7927+3.1416i-0.9116+3.1416i

Columns21through30

-1.0461+3.1416i-1.2011+3.1416i-1.3842+3.1416i-1.6080+3.1416i-1.8962+3.1416i-2.3021+3.1416i-2.9955+3.1416i-37.0245-2.9958-2.3027

Columns31through40

-1.8971-1.6092-1.3858-1.2030-1.0484-0.9142-0.7957-0.6895-0.5932-0.5051

Columns41through50

-0.4239-0.3485-0.2781-0.2120-0.1497-0.0907-0.03480.01860.06960.1184

Columns51through60

0.16530.21050.25410.29620.33700.37660.41520.45260.48920.5249

Column610.5599

z41=0.25000000

z42=-1.0000-1.000001.2500-1.0000-1.0000

z43=1.00000-1.0000-2.00001.00002.2500

%题2

源程序

A=[12,34,-4;34,7,87;3,65,7];%求矩阵A

B=[1,3,-1;2,0,3;3,-2,7];%求矩阵B

C1=A+6*B

I=eye(3)%生成单位矩阵I

C2=A-B+I,C3=A*B,C4=A.*B,C5=A^3,C6=A.^3,C7=A/B,C8=A\B,C9=[A,B]

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

);B^2]

结果与分析

C1=1852-10

467105

215349

I=100

010

001

C2=1231-3

32884

0671

C3=684462

309-72596

154-5241

C4=121024

680261

9-13049

C5=3722623382448604

247370149188600766

78688454142118820

C6=172839304-64

39304343658503

27274625343

C7=16.4000-13.60007.6000

35.8000-76.200050.2000

67.0000-134.000068.0000

C8=-0.03130.3029-0.3324

0.0442-0.03230.1063

0.0317-0.11580.1558

C9=1234-413-1

34787203

36573-27

C10=1234-4

3657

451

11019

20-540

%题3

源程序

A=[12345;678910;1112131415;1617181920;2122232425];%求矩阵A

B=[3016;17-69;023-4;970;41311];%求矩阵B

C=A*B,D=C(3:

5,1:

2)%生成C的右下角3*2子矩阵赋给D

结果与分析

C=9315077D=423520

258335237588705

423520397753890

588705557

753890717

%题4

源程序

%

(1)

x=100:

1:

999;%生产100到999之间的整数

p=rem(x,21)==0;%判断X的元素是否可被21整除

l=find(p>0);%求x的元素中被21整除的位置

l1=length(l)%求x的元素中被21整除的个数

%

(2)

s='abcdefGHJKLlopq'%生产字符串s

g=find(s>='A'&s<='Z');%找大写字母的位置

s(g)=[]%删除大写字母

结果与分析

l1=43

s=abcdefGHJKLlopq

s=

abcdeflopq

实验二MATLAB矩阵分析与处理

一、实验目的

1、掌握生成特殊矩阵的方法。

2、掌握矩阵分析的方法。

3、用矩阵求逆法解线性方程组。

1、实验仪器

安装有matlab6.0软件的计算机一台

2、实验内容

1.设有分块矩阵

其中E、R、O、S分别为单位矩阵、随机矩阵、零矩阵和对角阵,试通过数值计算验证

2.产生5阶希尔伯特矩阵

和5阶帕斯卡矩阵

,且求其行列式的值Th和Tp以及它们的条件数Th和Tp,判断哪个矩阵性能更好。

为什么?

3.建立一个5x5矩阵,求它们的行列式值、迹、秩和范数。

4.已知

的特征值及特征向量,并分析其数学意义。

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

求方程的解。

将方程右边向量元素b3改为0.53,再求解,并比较b3的变化和解的相对变化。

计算系数矩阵

的条件数并分析结论。

6.建立A矩阵,试比较sqrtm(A)和sqrt(A),分析它们的区别。

4、实验源程序、结果与分析

E=eye(3)%3*3单位矩阵R=rand(3,2)%3*2的随机矩阵

O=zeros(2,3)%2*3零矩阵S=diag([1,2])%对角阵

A=[E,R;O,S]%分块矩阵AY1=A*A%等号左边的值

Y2=[E,R+R*S;O,S*S]%等号的右边的值Y=Y1-Y2%验证等式成立

E=100R=231/1160529/1860

010538/1801587/1251

001211/319552/8521

O=000S=10

00002

A=100231/1160529/1860

010538/1801587/1251

001211/319552/8521

00010

00002

Y1=100231/580529/620

0101076/1801587/417

001422/319481/2475

00010

00004

Y2=100231/580529/620

0101076/1801587/417

001422/319481/2475

00010

00004

Y=00000

00000

00000

00000

00000

题2

源程序

formatrat%有理式形式输出

H=hilb(5)%5阶希尔伯特矩阵

P=pascal(5)%产生5阶帕斯卡矩阵

Hh=det(H)%求5阶希尔伯特矩阵H的行列式的值

Hp=det(P)%求5阶帕斯卡矩阵P的行列式的值

Th=cond(H)%求5阶希尔伯特矩阵H条件式的值

Tp=cond(P)%求5阶帕斯卡矩阵P条件式的值

%矩阵P的条件数比矩阵H的条件数更接近1,所以矩阵P的性能要好于矩阵H

结果与分析

H=11/21/31/41/5

1/21/31/41/51/6

1/31/41/51/61/7

1/41/51/61/71/8

1/51/61/71/81/9

P=11111

12345

1361015

14102035

15153570

Hh=1/266716800000

Hp=1

Th=476607

Tp=178868/21

题4

源程序

%

(1)

A=rand(5,5)%产生5*5的矩阵

r1=det(A)%求行列式的数值

r2=rank(A)%求矩阵的秩

r3=trace(A)%求矩阵的迹

r4=norm(A,1)%求A的1-范数

r5=norm(A)%求A的2-范数

r6=norm(A,inf)%求A的无穷-范数

%

(2)

A=[-29,6,18;20,5,12;-8,8,5]%产生矩阵

B=eig(A)%求A的特征值

[V,D]=eig(A)%求的特征向量

[V,D]=eig(A,'nobalance')

结果与分析

A=932/943913/21091119/1747160/347187/3720

359/616559/2474355/16981352/2381643/1548

1204/2843781/1347335/8821509/19001141/3741

997/1934917/12062791/3563223/3768863/987

180/5391288/24312737/40201723/2858237/15790

r1=-560/8919r2=5

r3=3073/1842r4=529/186

r5=1287/515r6=413/138

A=-29618B=-3595/142

20512-3755/357

-8854697/279

V=698/979395/1409989/3619

-859/1412-2430/3089349/400

538/1543423/769578/1427

D=-3595/14200

0-3755/3570

004697/279

V=1361/1013493/1574

-1227/1438-11

290/593551/788331/713

D=-3595/14200

0-3755/3570

004697/279

%题5

源程序

A=[1/21/31/4;1/31/41/5;1/41/51/6];%产生矩阵A

b1=[0.950.670.52]';%产生矩阵b的秩

x1=inv(A)*b1%求方程的解

b2=[0.950.670.53]';%产生矩阵修改后b的秩

x2=inv(A)*b2%求方程的解

C=cond(A)

结果分析

x1=6/5

3/5

3/5

x2=3

-33/5

33/533/5

C=9473/7

%题6

源程序

A=[42;36];%产生矩阵A

B1=sqrtm(A)%求sqrtm(A)

B2=sqrt(A)%求sqrt(A)

结果与分析

B1=1018/531728/1565

1092/15651751/735

B2=21393/985

1351/7802158/881

 

 

实验三选择结构程序设计

一、实验目的

1、掌握建立和执行M文件的方法。

2、掌握利用if语句实现选择结构的方法。

3、掌握利用switch语句实现多分支选择结构的方法。

4、掌握try语句的使用。

二、实验仪器

安装有matlab6.0软件的计算机一台

三、实验内容

1.求分段函数的值。

用if语句实现,分别输出

时的

值。

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

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

要求:

分别用if语句和switch语句实现。

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

3.硅谷公司员工的工资计算方法如下:

(1)工作时数超过120小时者,超过部分加发15%。

(2)工作时数低于60小时者,扣发700元。

(3)其余按每小时84元计发。

试编程按输入的工号和该号员工的工时数,计算应发工资。

4.设计程序,完成两位数的加、减、乘、除四则运算,即产生两个两位随机整数,再输入一个运算符号,做相应的运算,并显示相应的结果。

5.建立5x6矩阵,要求输出矩阵第n行元素。

当n值超过矩阵的行数时,自动转为输出矩阵最后一行元素,并给出出错信息。

四、实验源程序、结果与分析

%题1

源程序

x=input('请输入x的值');

ifx<0&x~=-3%求当x<0&x~=-3时y的值

y=x*x+x-6;

elseifx>=0&x<5&x~=2&x~=3%求当x>=0&x<5&x~=2&x~=3时y的值

y=x*x-5*x+6;

elsey=x*x-x-1;%求x为其他值时y的值

end

y

结果与分析

请输入x的值1

y=2

%题2

源程序

%

(1)if语句的实现

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

ifg>=90&g<=100%求成绩g>=90&g<=100时的成绩等级

disp('成绩等级:

A');

elseifg>=80&g<=89%求成绩g>=80&g<=89时的成绩等级

disp('成绩等级:

B');

elseifg>=70&g<=79%求成绩g>=70&g<=79时的成绩等级

disp('成绩等级:

C');

elseifg>=60&g<=69%求成绩g>=60&g<=69时的成绩等级

disp('成绩等级:

D');

elseifg<60&g>=0%求成绩g<60&g>=0时的成绩等级

disp('成绩等级:

E');

elsedisp('请输入合理的成绩!

');

end

%

(1)switch语句的实现

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

switch(g1/10)

case{9,10}%求成绩g>=90&g<=100时的成绩等级

disp('成绩等级:

A');

case(8)%求成绩g>=80&g<=89时的成绩等级

disp('成绩等级:

B');

case(7)%求成绩g>=70&g<=79时的成绩等级

disp('成绩等级:

C');

case(6)%求成绩g>=60&g<=69时的成绩等级

disp('成绩等级:

D');

case{0,1,2,3,4,5}%求成绩g<60&g>=0时的成绩等级

disp('成绩等级:

E');

Otherwisedisp('请输入合理的成绩!

');

end

结果与分析

请输入成绩g90成绩等级:

A

请输入成绩g180成绩等级:

B

%题3

源程序

gh=input('请输入工号gh'),gs=input('请输入工时gs');

ifgs>120%求工时超过120小时的工资

gz=120*84+(gs-120)*(1+0.15)*84

elseifgs<60%求工时低于60小时的工资

gz=gs*84-700

elsegz=gs*84%求工时为其他值的工资

end

结果与分析

请输入工号gh2007请输入工时gs60

gz=5040

%题4

源程序

r1=fix(rand

(1)*89+10)%求随机数r1

r2=fix(rand

(1)*89+10)%求随机数r2

c=input('请输入运算符号:

','s');

switch(c)

case('*')

jg=r1*r2

case('/')

jg=r1/r2

case('+')

jg=r1+r2

case('-')

jg=r1-r2

otherwisedisp('请输入正确的运算符号!

');

end

结果与分析

r1=78

r2=96

请输入运算符号:

+

jg=174

%题5

A=[123456;789101112;131415161718;192021222324;252627282930],n=input('请输入行号n:

');

ifn>5

A(5,:

)%求n值超过矩阵行数时输出矩阵最后一行元素

disp('请输入1到5的行号!

')

elseA(n,:

)%求第n行的元素

end

结果与分析

A=123456

789101112

131415161718

192021222324

252627282930

请输入行号n:

4

ans=192021222324

实验四循环结构程序设计

一、实验目的

1.掌握利用for语句实现循环结构的方法。

2.掌握利用while语句实现循环结构的方法。

3.熟悉利用向量运算来代替循环操作的方法。

二、实验仪器

安装有matlab6.0软件的计算机一台

三、实验内容

1.根据

求的进似值。

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

要求:

分别用循环结构和向量运算(使用sum函数)来实现。

2.已知

中:

最大值、最小值、各数之和。

正数、零、负数的个数。

四、实验源程序、结果与分析

%题1

源程序

(1)%用循环结构实现

n=input('请输入n的值:

');

y=0;

fori=1:

n%使用for循环语句求pi的平方

y=y+1/i/i;

end

jg1=sqrt(6*y)%用函数sqrt求pi的值

(2)%用向量运算实现

n1=input('请输入n1的值:

');

i=1:

n1;

y1=1./i.^2;

jg2=sqrt(6*sum(y1))%用函数sum求pi的值

结果与分析

请输入n的值:

100请输入n1的值:

100

jg1=166/53jg2=166/53

请输入n的值:

1000请输入n1的值:

1000

jg1=3841/1223jg2=3841/1223

请输入n的值:

10000请输入n1的值:

10000

jg1=2309/735jg2=2309/735

%题4

源程序

f

(1)=1,f

(2)=0,f(3)=1,Max=f

(1),Min=f

(1),zs=0,zero=0,fs=0,s=0

fori=4:

100

f(i)=f(i-1)-2*f(i-2)+f(i-3);%使用循环语句求f(i)的值

s=s+f(i);%求f(i)的和s

end

fori=1:

100

ifMax

Max=f(i);%使用循环语句求最大值

end

ifMin>f(i)

Min=f(i);%使用循环语句求最值小值

end

iff(i)>0

zs=zs+1;%使用循环语句求正数的个数

end

iff(i)<0

fs=fs+1;%使用循环语句求负数的个数

end

iff(i)==0

zero=zero+1;%使用循环语句求零的个数

end

end

disp('最大值'),Max

disp('最小值'),Min

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

当前位置:首页 > 农林牧渔 > 林学

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

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