MATLAB数值计算功能.docx

上传人:b****5 文档编号:6401036 上传时间:2023-01-06 格式:DOCX 页数:24 大小:101.40KB
下载 相关 举报
MATLAB数值计算功能.docx_第1页
第1页 / 共24页
MATLAB数值计算功能.docx_第2页
第2页 / 共24页
MATLAB数值计算功能.docx_第3页
第3页 / 共24页
MATLAB数值计算功能.docx_第4页
第4页 / 共24页
MATLAB数值计算功能.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

MATLAB数值计算功能.docx

《MATLAB数值计算功能.docx》由会员分享,可在线阅读,更多相关《MATLAB数值计算功能.docx(24页珍藏版)》请在冰豆网上搜索。

MATLAB数值计算功能.docx

MATLAB数值计算功能

实验二

第2章MATLAB数值计算功能

MATLAB强大的数值计算功能使其在诸多数学计算软件中傲视群雄,是MATLAB的基础.本章将简要介绍MATLAB的数据类型、矩阵的建立及运算.

第一节MATLAB的数据类型

MATLAB的数据类型主要包括:

数字、字符串、矩阵、单元型数据及结构型数据等,此处仅介绍几个常用类型.

一、MATLAB中的变量与常量

不需要对所使用的变量进行事先声明,也不需要指定其类型,它会自动根据所赋予变量的值或所进行的操作来确定变量的类型.如果变量重新赋值将会用新值代替旧值并以新值类型代替旧值类型.

⏹例1a=1;b=0.5;c=a*b,c=‘a*b’

⏹变量的命名规则是:

(1)变量名可以有63个字符.字母A~Z、a~z、数字和下划线‘_’都可以作为变量名,但第一个字符必须是一个字母;

(2)变量名区分大小写,如矩阵a和A是不一样的;

(3)变量名中不允许使用标点符号、空格、运算符;

(4)预定义变量名也可以像一个变量名那样使用,但函数只有在变量由命令clear删除后才能使用,所以,不主张这样使用;

(5)MATLAB提供的标准函数及命令通常是用小写字母书写.

⏹例2命令abs(A)给出了A的绝对值,但ABS(A)会导致在屏幕上显示错误信息.

二、算术表达式及显示格式

在MATLAB中对十进制数,使用科学记数法可以书写十分大和十分小的数.例如1.23E-6,代表1.23×10-6.

MATLAB有算术运算符的扩展集,它们是:

1)^幂;2)*乘;/右除(正常除);\左除;3)+加;-减

这是按序给出的运算,1)是最高优先级.在带相同优先级的运算符表达式中,按从左到右的顺序执行.圆括号()能够用于改变优先级次序.

两种不同的除法:

对于数量右除2/5得0.4与左除5\2是相同的,斜线号“靠着”的表达式或数字是分母.如

a/(b+c)即为

,而a\(b+c)即为

.

命令集4显示格式

formatdefformat将输出格式改为由defformat定义的格式,这类格式可以是如下之一:

short、long、shorte、longe、hex、+、bank、rat

也有compact或loose,它给出了一个较紧缩或较宽松的输出格式,但并不影响数值输出格式.

 

■例3

设p=1+1/3,先定义格式,然后在屏幕上显示p:

formatshort得1.33334位小数

formatlong得1.3333333333333314位小数

formatshorte得1.3333e+004位小数

formatlonge得1.333333333333333e+0015位小数

formathex得3ff555555555555516进制数

format+得+正:

+

formatbank得1.33美元和美分

formatrat得4/3作为一个有理数

三、数学函数

命令集5数学函数

abs(x)求x的绝对值,即|x|.

sign(x)求x的符号,如果是正的得1;负的得-1;零得0.

sqrt(x)求x的平方根,即

.

exp(x)求x的指数函数,即

.

log(x)求x的自然对数,即lnx.

log10(x)求x以10为底的对数,即

.

sin(x)求正弦x,x为弧度.

cos(x)求余弦x,x为弧度.

tan(x)求正切x,x为弧度.

cot(x)求余切x,即1/(tanx),x为弧度.

asin(x)求反正弦,即

.

acos(x)求反余弦,即

.

sec(x)求正割x,即1/(cosx).

csc(x)求余割x,即1/(sinx).

命令集6取整命令

round(x)求最接近x的整数.如果x是一个向量,则适用于所有元素.

fix(x)求0方向最接近x的整数.即负x向上四舍五入,正x向下四舍五入.

floor(x)求小于或等于x的最接近的整数.

ceil(x)求大于或等于x的最接近的整数.

rem(x,y)求整除x/y的余数.

gcd(x,y)求整数x和y的最大公因子.

lcm(x,y)求正整数x和y的最小公倍数,也能用于决定最小公因子.

第二节MATLAB的矩阵的建立与运算

矩阵是MATLAB数据存储的基本单元,而矩阵的运算是MATLAB语言的核心,几乎一切运算均是以对矩阵的操作为基础的.

一、矩阵的建立

1.直接输入法从键盘上输入矩阵是最方便、最常用的创建数值矩阵的方法,尤其适合较小的简单矩阵.规则如下:

⏹输入矩阵时要以“[]”为其标识符号,矩阵的所有元素必须都在中括号内.

⏹矩阵同行元素之间由空格或逗号分隔,行与行之间用分号或回车键分隔.

⏹矩阵大小不需要预先定义.

⏹矩阵元素可以是运算表达式.

⏹若"[]"中无元素表示空矩阵.

⏹例4>>A=[123;456;789]

A=

123

456

789

2.利用“:

”生成矩阵

(1)生成等距的行向量,如

>>a=1:

0.5:

4

a=

Columns1through7

11.522.533.54

(2)截取指定矩阵中的部分生成新矩阵,如

>>B=A(1:

2,:

B=

123

456

即矩阵B是例4中A矩阵的前两行生成.

3.外部文件读入法以文件的形式存储,适合大型矩阵输入.读入形式

>>Load+文件名

⏹Load函数将会从文件名所指定的文件中读取数据,并将输入的数据赋给以文件名命名的变量,如果不给定文件名,则将自动认为matlab.mat文件为操作对象,如果该文件在MATLAB搜索路径中不存在时,系统将会报错.

4.特殊矩阵的生成

命令集71矩阵、零矩阵、单位矩阵和随机矩阵

ones(n)建立一个n×n的1矩阵.

ones(m,n)建立一个m×n的1矩阵.

ones(size(A))建立一个和矩阵A同样大小的1矩阵.

zeros(n)建立一个n×n的0矩阵.

zeros(m,n)建立一个m×n的0矩阵.

zeros(size(A))建立一个和矩阵A同样大小的0矩阵.

eye(n)建立一个n×n的单位矩阵.

eye(m,n)建立一个m×n的单位矩阵.

eye(size(A))建立一个和矩阵A同样大小的单位矩阵.

rand产生在0~1之间均匀分布的随机数;每调用一次给一个新的数值.

rand+i*rand产生一个复数随机数.

rand(n)产生一个n×n的矩阵,其元素为0~1之间均匀分布的随机数.

rand(m,n)产生一个m×n的矩阵,其元素为0~1之间均匀分布的随机数.

二、矩阵的运算

MATLAB中的大多数运算可以直接对矩阵应用.除了算术运算+、-、*、^、/、\外,还有用于转置和共轭的运算符(撇号’:

实数时为转置,复数时为共轭转置,复数时转置为.’)、关系运算符和逻辑运算符.

1.除法在MATLAB中,有两个矩阵除法的符号,左除\和右除/.如果A是一个非奇异方阵,那么A\B和B/A对应A的逆与B的左乘

和右乘

,即分别等价于命令inv(A)*B和B*inv(A).

2.元素操作算术运算

算术运算也可以元素与元素逐次进行.参与运算的矩阵维数要相同.如果运算是由一点进行的,那么这个运算实行的是元素方式,称为数组运算或点运算.对于加法和减法,数组运算(点运算)和矩阵运算没有差别.数组运算(点运算)符是:

+-.*./.\.^

 

⏹例5>>A=[123;456;789];B=ones(3);C=A.*B

C=

123

456

789

3.关系运算符

MATLAB有用于比较矩阵的六个关系运算符,也可以对矩阵与一个标量进行比较,即矩阵中的每个元素与标量进行比较.

关系运算符如下:

<小于

<=小于等于

>大于

>=大于等于

==等于

~=不等于

关系运算符比较对应的元素,产生一个仅包含1和0的具有相同维数的矩阵.其元素是:

1比较结果是真

0比较结果是假

在一个表达式中,算术运算符优先级最高,其次是关系运算符,最低级别是逻辑运算符.圆括号可以改变其顺序.

4.逻辑运算符

在MATLAB中有四种逻辑运算符:

&与;|或;~非;xor异或;

逻辑运算符的运算优先级最低.在一个表达式中,关系运算符和算术运算符的运算级别要高于逻辑运算符.

xor和or之间的差别在于:

表达式中至少有一个是真,那么or是真;xor是表达式中有一个是真但不能两者均为真时才为真.

运算符&和|比较两个相同维数的矩阵,它也能使一个标量与一个矩阵进行比较.逻辑运算符是按元素比较的.零元素表示逻辑值假,任何其他值的元素表示逻辑值真.其结果是一个包含1和0的矩阵.

命令集8逻辑运算符

A&B返回一个与A和B相同维数的矩阵.在这个矩阵中,A和B对应元素都为非零时,则对应项为1;有一个为零的项则为0.

A|B返回一个与A和B相同维数的矩阵.在这个矩阵中,A和B对应元素只要有一个为非零,则对应项为1;两个矩阵对应元素均为零时,则对应项为0.

~A返回一个与A和B相同维数的矩阵.在这个矩阵中,A对应元素是零时,则对应项为1;A对应元素是非零时,则对应项为0.

xor(A,B)返回一个与A和B相同维数的矩阵.在这个矩阵中,如果A和B均为零或均为非零时,则对应项为0;如果A或B是非零但不是两者同时为非零时,则对应项为1.

练习题

1.在计算机上,求下列表达式的值.

,其中

,其中

,其中

,其中

.

2.完成下列操作,观察结果:

①a=1:

5,b=(1:

5)’

②y=0:

pi/4:

pi

③x=(0:

0.2:

3)’,y=exp(-x).*sin(x)

④A=[123;456;789]

B=[1,2,3;4,5,6;7,8,9]

C=[123

456,

789]

3.已知

①AB-2A,②AB-BA,A.*B,B.*A,③

.

4.

,求

.

5.

,求

.

6.x=(1,1,1,1),y=(2,3,4,5)’,求

.

7.完成下列操作并观察结果

⑨C=[ones(4),zeros(4);eye(4),rand(4)]

⑩C=[ones(4),zeros(4);eye(4),rand(5)]

8.建立向量

9.完成下列命令,观察结果

①a=[1:

3;4:

6;7:

9];x=5;xa=x<=a

②b=[041;108;200];ab=a&b

3n_b=~b

10.练习format命令:

对第1题练习各种输出格式.

11.计算P265

x=1;y

(1)=x;

fork=1:

15

x=1/(x+1);y(k)=x;

end

y

12.计算P266

x=1;y

(1)=x;w=7/25;

fork=1:

10

x=w*x+(1-w)/(x+1);y(k)=x;

end

y

练习题

1.在计算机上,求下列表达式的值.

①>>w=sqrt

(2)*(1+0.34245*10^(-6))

w=

1.4142

>>a=3.5;

>>b=5;

>>c=-9.8;

②>>x=(2*pi*a+(b+c)/(pi+a*b*c)-exp

(2))/(tan(b+c)+a)

x=

0.9829

>>

>>a=3.32;

>>b=-7.9;

③>>y=2*pi*(a^2)*((1-pi/4)*b-(0.8333-pi/4)*a)

y=

-128.4271

>>

>>t=2;

④>>z=1/2*exp(2*t)*log(t+sqrt(1+t^2))

z=

39.4099

⑤>>x=1+2i;

>>y=3-sqrt(17);

>>u=(cos(abs(x+y))-sin(78*pi/180))/(x+abs(y))

u=

-0.3488+0.3286i

2.完成下列操作,观察结果:

①>>a=1:

5,b=(1:

5)'

a=

12345

b=

1

2

3

4

5

②>>y=0:

pi/4:

pi

y=

00.78541.57082.35623.1416

③>>x=(0:

0.2:

3)',y=exp(-x).*sin(x)

x=

0

0.2000

0.4000

0.6000

0.8000

1.0000

1.2000

1.4000

1.6000

1.8000

2.0000

2.2000

2.4000

2.6000

2.8000

3.0000

y=

0

0.1627

0.2610

0.3099

0.3223

0.3096

0.2807

0.2430

0.2018

0.1610

0.1231

0.0896

0.0613

0.0383

0.0204

0.0070

④>>A=[123;456;789]

A=

123

456

789

>>B=[1,2,3;4,5,6;7,8,9]

B=

123

456

789

>>C=[123

456,

789]

C=

123

456

789

⑤>>A=[sin(pi),2*cos(pi/3);5*pi,-exp

(2)]

A=

0.00001.0000

15.7080-7.3891

3.

>>A=[111;-111;1-11];

>>B=[121;13-1;214;];

>>A*B-2*A

ans=

242

400

024

>>A*B-B*A,A.*B,B.*A

ans=

440

5-3-1

-31-1

ans=

121

-13-1

2-14

ans=

121

-13-1

2-14

>>inv(A)*B-inv(B)*A

ans=

Columns1through2

3.75002.2500

-2.0000-1.0000

-0.25001.2500

Column3

1.2500

-2.0000

1.2500

4.

>>x=[21-3i;5-0.65];

>>y=1/2*exp(2*x)*log(x+sqrt(1+x^2))

y=

1.0e+004*

0.0057-0.0007i0.0049-0.0027i

1.9884-0.3696i1.7706-1.0539i

5.

>>D=[2310-0.7780;41-45655;325032;6-9.54543.14];

>>D^2,D.*D,D.^2

ans=

1.0e+003*

0.9141-0.22390.63210.0251

1.20802.7123-2.68691.8707

1.1330-0.21032.02810.1255

1.49370.7293-0.45521.6902

ans=

1.0e+003*

0.52900.10000.00060

1.68102.02504.22500.0250

1.02400.025001.0240

0.03600.09102.91600.0099

ans=

1.0e+003*

0.52900.10000.00060

1.68102.02504.22500.0250

1.02400.025001.0240

0.03600.09102.91600.0099

6.

>>x=[1,1,1,1];y=[2,3,4,5]';

>>x*y,y*x

ans=

14

ans=

2222

3333

4444

5555

7.完成下列操作并观察结果

①>>ones(6),ones(5,6),ones(6,5)

ans=

111111

111111

111111

111111

111111

111111

ans=

111111

111111

111111

111111

111111

ans=

11111

11111

11111

11111

11111

11111

②>>zeros(4),zeros(3,4),zeros(4,3)

ans=

0000

0000

0000

0000

ans=

0000

0000

0000

ans=

000

000

000

000

③>>eye(5),eye(4,5),eye(5,4)

ans=

10000

01000

00100

00010

00001

ans=

10000

01000

00100

00010

ans=

1000

0100

0010

0001

0000

④>>x=rand+i*rand,A=rand(3),B=rand(3,4)

x=

0.8180+0.6602i

A=

Columns1through2

0.34200.5341

0.28970.7271

0.34120.3093

Column3

0.8385

0.5681

0.3704

B=

Columns1through2

0.70270.6946

0.54660.6213

0.44490.7948

Columns3through4

0.95680.1730

0.52260.9797

0.88010.2714

>>hilb(3),hilb(4),invhilb(3)

ans=

1.00000.50000.3333

0.50000.33330.2500

0.33330.25000.2000

 

ans=

Columns1through3

1.00000.50000.3333

0.50000.33330.2500

0.33330.25000.2000

0.25000.20000.1667

Column4

0.2500

0.2000

0.1667

0.1429

 

ans=

9-3630

-36192-180

30-180180

⑥>>x=[12345];

>>y=[54321];

>>T=toeplitz(x,y),S=toeplitz(x)

Warning:

Firstelementofinputcolumndoesnotmatchfirstelementofinputrow.

Columnwinsdiagonalconflict.

>Intoeplitzat21

T=

14321

21432

32143

43214

54321

S=

12345

21234

32123

43212

54321

⑦>>A=compan(x),B=compan(y)

A=

-2-3-4-5

1000

0100

0010

B=

-0.8000-0.6000-0.4000-0.2000

1.0000000

01.000000

001.00000

⑧>>vander(x),vander(y)

ans=

11111

168421

8127931

256641641

6251252551

ans=

6251252551

256641641

8127931

168421

11111

⑨>>C=[ones(4),zeros(4);eye(4),rand(4)]

C=

Columns1through5

1.00001.00001.00001.00000

1.00001.00001.00001.00000

1.00001.00001.00001.00000

1.00001.00001.00001.00000

1.00000000.0099

01.0000000.1389

001.000000.2028

0001.00000.1987

Columns6through8

000

000

000

000

0.60380.74680.4186

0.27220.44510.8462

0.19880.93180.5252

0.01530.46600.2026

⑩>>C=[ones(4),zeros(4);eye(4),rand(5)]

?

?

?

Errorusing==>horzcat

Allmatricesonarowinthebracketedexpressionmusthavethe

samenumberofrows.

8.建立向量

>>x=(1:

3),y=(1:

0.5:

3),z=(4:

-0.5

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

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1