MatLab1.docx

上传人:b****5 文档编号:6470218 上传时间:2023-01-06 格式:DOCX 页数:18 大小:65.46KB
下载 相关 举报
MatLab1.docx_第1页
第1页 / 共18页
MatLab1.docx_第2页
第2页 / 共18页
MatLab1.docx_第3页
第3页 / 共18页
MatLab1.docx_第4页
第4页 / 共18页
MatLab1.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

MatLab1.docx

《MatLab1.docx》由会员分享,可在线阅读,更多相关《MatLab1.docx(18页珍藏版)》请在冰豆网上搜索。

MatLab1.docx

MatLab1

MatLab&数学建模

第一讲MatLab简介及基本运算

一、MatLab简介

MATLAB名字由MATrix和LABoratory两词的前三个字母组合而成。

那是20世纪七十年代后期的事:

时任美国新墨西哥大学计算机科学系主任的CleveMoler教授出于减轻学生编程负担的动机,为学生设计了一组调用LINPACK和EISPACK库程序的“通俗易用”的接口,此即用FORTRAN编写的萌芽状态的MATLAB。

经几年的校际流传,在Little的推动下,由Little、Moler、SteveBangert合作,于1984年成立了MathWorks公司,并把MATLAB正式推向市场。

从这时起,MATLAB的内核采用C语言编写,而且除原有的数值计算能力外,还新增了数据图视功能。

MATLAB以商品形式出现后,仅短短几年,就以其良好的开放性和运行的可靠性,使原先控制领域里的封闭式软件包(如英国的UMIST,瑞典的LUND和SIMNON,德国的KEDDC)纷纷淘汰,而改以MATLAB为平台加以重建。

在时间进入20世纪九十年代的时候,MATLAB已经成为国际控制界公认的标准计算软件。

在欧美大学里,诸如应用代数、数理统计、自动控制、数字信号处理、模拟与数字通信、时间序列分析、动态系统仿真等课程的教科书都把MATLAB作为内容。

这几乎成了九十年代教科书与旧版书籍的区别性标志。

在那里,MATLAB是攻读学位的大学生、硕士生、博士生必须掌握的基本工具。

在国际学术界,MATLAB已经被确认为准确、可靠的科学计算标准软件。

在许多国际一流学术刊物上,(尤其是信息科学刊物),都可以看到MATLAB的应用。

在设计研究单位和工业部门,MATLAB被认作进行高效研究、开发的首选软件工具。

如美国NationalInstruments公司信号测量、分析软件LabVIEW,Cadence公司信号和通信分析设计软件SPW等,或者直接建筑在MATLAB之上,或者以MATLAB为主要支撑。

又如HP公司的VXI硬件,TM公司的DSP,Gage公司的各种硬卡、仪器等都接受MATLAB的支持。

MATLAB具有用法简易、可灵活运用、程式结构强又兼具延展性。

以下为其几个特色:

∙功能强的数值运算-在MATLAB环境中,有超过500种数学、统计、科学及工程方面的函数可使用,函数的标示自然,使得问题和解答像数学式子一般简单明了,让使用者可全力发挥在解题方面,而非浪费在电脑操作上。

∙先进的资料视觉化功能-MATLAB的物件导向图形架构让使用者可执行视觉数据分,并制作高品质的图形,完成科学性或工程性图文并茂的文章。

∙高阶但简单的程式环境-作为一种直译式的程式语言,MATLAB容许使用者在短时间内写完程式,所花的时间约为用FORTRAN或C的几分之一,而且不需要编译(compile)及联结(link)即能执行,同时包含了更多及更容易使用的内建功能。

∙开放及可延伸的架构-MATLAB容许使用者接触它大多数的数学原使码,检视运算法,更改现存函数,甚至加入自己的函数使MATLAB成为使用者所须要的环境。

∙丰富的程式工具箱-MATLAB的程式工具箱融合了套装前软体的优点,与一个灵活的开放但容易操作之环境,这些工具箱提供了使用者在特别应用领域所需之许多函数。

现有工具箱有:

符号运算(利用MapleV的计算核心执行)、影像处理、统计分析、讯号处理、神经网路、模拟分析、控制系统、即时控制、系统确认、强建控制、弧线分析、最佳化、模糊逻辑、mu分析及合成、化学计量分析。

二、MatLab界面

 

MATLAB系统命令

命令

含义

help

在线帮助

helpwin

在线帮助窗口

helpdesk

在线帮助工作台

demo

运行演示程序

ver

版本信息

readme

显示Readme文件

who

显示当前变量

whos

显示当前变量的详细信息

clear

清空工作间的变量和函数

pack

整理工作间的内存

load

把文件调入变量到工作间

save

把变量存入文件中

quit/exit

退出MATLAB

what

显示指定的matlab文件

lookfor

在HELP里搜索关键字

which

定位函数或文件

path

获取或设置搜索路径

echo

命令回显

cd

改变当前的工作目录

pwd

显示当前的工作目录

dir

显示目录内容

unix

执行unix命令

dos

执行dos命令

!

执行操作系统命令

computer

显示计算机类型

在MATLAB系统中使用帮助方式有三:

1.是利用help指令,如果你已知要找的题材(topic)为何的话,直接键入help

所以即使身旁没有使用手册,也可以使用help指令查询不熟悉的指令或是题材之用法,例如helpsqrt

2.是利用lookfor指令,它可以从你键入的关键字(key-word)(即使这个关键字并不是MATLAB的指令)列出所有相关的题材,例如lookforcosine,lookforsine。

3.是利用指令视窗的功能选单中的Help,从中选取TableofContents(目录)或是Index(索引)。

三、基本数学运算

在MATLAB下进行基本数学运算,只需将运算式直接打在提示号>>后面,并按入Enter键即可。

MATLAB将计算的结果以ans显示。

【例】求

的算术运算结果。

(1)用键盘在MATLAB指令窗中输入以下内容

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

(2)在上述表达式输入完成后,按【Enter】键,该就指令被执行。

(3)在指令执行后,MATLAB指令窗中将显示以下结果。

ans=

2

我们也可给运算式的结果设定一个变量x:

x=(5*2+1.3-0.8)*10^2/25

x=

42

变量x的值可以在下个语句中调用:

y=2*x+1

y=

85

变量命名规则:

1.        变量名的大小写是敏感。

2.        变量的第一个字符必须为英文字母,而且不能超过31个字符。

3.        变量名可以包含下连字符、数字,但不能为空格符、标点。

 

系统预定义的变量

ans

预设的计算结果的变量名

eps

MATLAB定义的正的极小值=2.2204e-16

pi

内建的π值(=3.1415926...)

inf

∞值,无限大(

NaN

无法定义一个数目(

i或j

虚数单位i=j=

nargin

函数输入参数个数

nargout

函数输出参数个数

realmax

最大的正实数

realmin

最小的正实数

flops

浮点运算次数

而键入clear则是去除所有定义过的变量名称。

表达式

MATLAB书写表达式的规则与“手写算式”差不多相同,但要求所有表达式都是以纯文本形式输入。

如果一个指令过长可以在结尾加上...(代表此行指令与下一行连续),例如:

>>1*2+3*4+5*6+7*8+9*10+11*12+...

13*14+15*16

ans=

744

 

若不想让MATLAB每次都显示运算结果,只需在运算式最後加上分号(;)即可,如下例:

y=1034*22+3^5;

若要显示变数y的值,直接键入y即可:

>>y

y=

22991

MATLAB会忽略所有在百分比符号(%)之後的文字,因此百分比之後的文字均可视为程式的注解(Comments)。

例:

计算圆面积Area=

半径r=2,则可键入

>>r=2;%圆半径r=2,

>>area=pi*r^2;%计算圆面积area

>>area=

12.5664

MATLAB提供基本的算术运算有:

加(+)、减(-)、乘(*)、除(/)、幂次方(^),范例为:

5+3,5-3,5*3,5/3,5^3

MATLAB常用数学函数

●        三角函数和双曲函数

名称

含义

名称

含义

名称

含义

sin

正弦

csc

余割

atanh

反双曲正切

cos

余弦

asec

反正割

acoth

反双曲余切

tan

正切

acsc

反余割

sech

双曲正割

cot

余切

sinh

双曲正弦

csch

双曲余割

asin

反正弦

cosh

双曲余弦

asech

反双曲正割

acos

反余弦

tanh

双曲正切

acsch

反双曲余割

atan

反正切

coth

双曲余切

atan2

四象限反正切

acot

反余切

asinh

反双曲正弦

sec

正割

acosh

反双曲余弦

●        指数函数

名称

含义

名称

含义

名称

含义

exp

E为底的指数

log10

10为底的对数

pow2

2的幂

log

自然对数

log2

2为底的对数

sqrt

平方根

●        复数函数

名称

含义

名称

含义

名称

含义

abs

绝对值

conj

复数共轭

real

复数实部

angle

相角

imag

复数虚部

●        圆整函数和求余函数

名称

含义

名称

含义

ceil

向+∞圆整

rem

求余数

fix

向0圆整

round

向靠近整数圆整

floor

向-∞圆整

sign

符号函数

mod

模除求余

●        矩阵变换函数

名称

含义

名称

含义

fiplr

矩阵左右翻转

diag

产生或提取对角阵

fipud

矩阵上下翻转

tril

产生下三角

fipdim

矩阵特定维翻转

triu

产生上三角

Rot90

矩阵反时针90翻转

det

行列式的计算

●        其他函数

名称

含义

名称

含义

min

最小值

max

最大值

mean

平均值

median

中位数

std

标准差

diff

相邻元素的差

sort

排序

length

个数

norm

欧氏(Euclidean)长度

sum

总和

prod

总乘积

dot

内积

cumsum

累计元素总和

cumprod

累计元素总乘积

cross

外积

例:

>>y=sin(10)*exp(-0.3*4^2)

y=

-0.0045

【例】复数

表达,及计算

(1)经典教科书的直角坐标表示法

z1=3+4i

z1=

3.0000+4.0000i

(2)采用运算符构成的直角坐标表示法和极坐标表示法

z2=1+2*i%运算符构成的直角坐标表示法

z3=2*exp(i*pi/6)%运算符构成的极坐标表示法

z=z1*z2/z3

z2=

1.0000+2.0000i

z3=

1.7321+1.0000i

z=

0.3349+5.5801i

【例】复数矩阵的生成及运算

A=[1,3;2,4]-[5,8;6,9]*i

B=[1+5i,2+6i;3+8*i,4+9*i]

C=A*B

A=

1.0000-5.0000i3.0000-8.0000i

2.0000-6.0000i4.0000-9.0000i

B=

1.0000+5.0000i2.0000+6.0000i

3.0000+8.0000i4.0000+9.0000i

C=

1.0e+002*

0.99001.1600-0.0900i

1.1600+0.0900i1.3700

 

【例】求上例复数矩阵C的实部、虚部、模和相角。

C_real=real(C)

C_imag=imag(C)

C_magnitude=abs(C)

C_phase=angle(C)*180/pi%以度为单位计算相角

C_real=

99116

116137

C_imag=

0-9

90

C_magnitude=

99.0000116.3486

116.3486137.0000

C_phase=

0-4.4365

4.43650

【例】指令行操作过程示例。

(1)若用户想计算

的值,那末用户应依次键入以下字符

y1=2*sin(0.3*pi)/(1+sqrt(5))

(2)按【Enter】键,该指令便被执行,并给出以下结果

y1=

0.5000

若又想计算

,可以简便地用操作键获得指令,具体办法是:

先用键调回已输入过的指令y1=2*sin(0.3*pi)/(1+sqrt(5));然后移动光标,把y1改成y2;把sin改成cos便可。

即得

y2=2*cos(0.3*pi)/(1+sqrt(5))

y2=

0.3633

注:

设置精度值。

t=2.8957e-007

digits(8)%精确到小数点后8位

sym(t,'d')

ans=

.28957372e-6

四、阵列与矩阵

MATLAB的运算事实上是以阵列(array)及矩阵(matrix)方式在做运算.阵列强调元素对元素的运算,而矩阵则采用线性代数的运算方式.

宣告一变量为阵列或是矩阵时,须用中括号[]将元素置于其中。

阵列为一维元素所构成,而矩阵为多维元素所组成.

例如:

»x=[12345678];%一维1x8阵列

【例】简单矩阵

的输入步骤。

(1)在键盘上输入下列内容:

(以;区隔各列的元素)

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

(2)按【Enter】键,指令被执行。

(3)在指令执行后,MATLAB指令窗中将显示以下结果:

A=

123

456

789

【例】矩阵的分行输入

A=[1,2,3

4,5,6

7,8,9]

(以下是显示结果)

A=

123

456

789

>>a=[1,4,6,8,10]%一维矩阵

>>a(3)%a的第三个元素

ans=

6

»x=[12345678

4567891011];%二维2x8矩阵

»x(3)%x的第三个元素

ans=

2

»x([125])%x的第一、二、五个元素

ans=

143

>>x(2,3)%x的第二行第三列的元素

ans=

6

x(1:

5)%x的第前五个元素

ans=

14253

»x(10:

end)%x的第十个元素后的元素

ans=

869710811

»x(10:

-1:

2)%x的第十个元素和第二个元素的倒排

ans=

857463524

»x(find(x>5))%x中大于5的元素

ans=

67869710811

»x(4)=100%给x的第四个元素重新给值

x=

12345678

410067891011

»x(3)=[]%删除第三个元素(不是二维数组)

x=

Columns1through12

14100364758697

Columns13through15

10811

»x(16)=1%加入第十六个元素

x=

Columns1through12

14100364758697

Columns13through16

108111

当元素很多的时候,则须采用以下的方式:

»x=(1:

2.5:

120);%以:

起始值=1,增量值=2,终止值=120的矩阵

»x=linspace(0,1,100);%利用linspace,以区隔起始值=0,终止值=1之间,元素数目=100

»a=[]%空矩阵

a=

[]

»zeros(2,2)%全为0的矩阵

ans=

00

0          0

»ones(3,3)%全为1的矩阵

ans=

111

111

111

»rand(2,4);%随机矩阵

»a=1:

7,b=1:

0.2:

5;%更直接的方式

»c=[ba];%可利用先前建立的阵列a及阵列b,组成新阵列

以下将阵列的运算符号及其意义列出,除了加减符号外其余的阵列运算符号均须多加.符号。

阵列运算功能(注意:

一定要多加.符号)

+加-减.*乘./左除.\右除.^次方.'转置

>>a=1:

5;a-2%从阵列a减2

ans=

-10123

>>2*a-1%以2乘阵列a再减1

ans=

13579

>>b=1:

2:

9;a+b%阵列a加阵列b

ans=

2581114

>>a.*b%阵列a及b中的元素与元素相乘

ans=

16152845

>>a./b%阵列a及b中的元素与元素相除

ans=

1.00000.666670.60000.57140.5556

>>a.^2%阵列中的各个元素作二次方

ans=

1491625

>>2.^a%以2为底,以阵列中的各个元素为次方

ans=

2481632

>>b.^a%以阵列b中的各个元素为底,以阵列a中的各个元素为次方

ans=

19125240159049

>>b=a'%阵列b是阵列a的转置结果

b=

1

2

3

4

5

 

矩阵的几种基本变换操作

1. 通过在矩阵变量后加’的方法来表示转置运算

>>a=[10,2,12;34,2,4;98,34,6];

>>a'

ans=

103498

2234

1246

2.      矩阵求逆

>>inv(a)

ans=

-0.01160.0372-0.0015

0.0176-0.10470.0345

0.0901-0.0135-0.0045

3.      矩阵求伪逆

>>pinv(a)

ans=

-0.01160.0372-0.0015

0.0176-0.10470.0345

0.0901-0.0135-0.0045

4.      左右反转

>>fliplr(a)

ans=

12210

4234

63498

5.      矩阵的特征值

>>[u,v]=eig(a)

u=

-0.29600.3635-0.3600

-0.2925-0.41280.7886

-0.9093-0.83520.4985

v=

48.839500

0-19.84510

00-10.9943

6.      上下反转

>>flipud(a)

ans=

98346

3424

10212

7.      旋转90度

>>rot90(a)

ans=

1246

2234

103498

8. 取出上三角和下三角

>>triu(a)

ans=

10212

024

006

>>tril(a)

ans=

1000

3420

98346

>>[l,u]=lu(a)

l=0.10200.15001.0000

0.34691.00000

1.000000

u=98.000034.00006.0000

0-9.79591.9184

0011.1000

9.      正交分解

>>[q,r]=qr(a)

q=

-0.0960-0.1232-0.9877

-0.3263-0.93360.1482

-0.94040.33650.0494

r=

-104.2113-32.8179-8.0989

09.3265-3.1941

00-10.9638

10.奇异值分解

>>[u,s,v]=svd(a)

u=

0.1003-0.88570.4532

0.3031-0.4066-0.8618

0.94770.22390.2277

s=

109.589500

012.03730

008.0778

v=

0.9506-0.0619-0.3041

0.30140.41760.8572

0.0739-0.90650.4156

11.求矩阵的范数

>>norm(a)

ans=

109.5895

>>norm(a,1)

ans=

142

>>norm(a,inf)

ans=

138

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

当前位置:首页 > 工程科技 > 环境科学食品科学

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

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