matlab详细手册(投影版)_第1页
matlab详细手册(投影版)_第2页
matlab详细手册(投影版)_第3页
matlab详细手册(投影版)_第4页
matlab详细手册(投影版)_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数数学学建建模模matlabmatlab详细手册详细手册功能强的数值运算 - 在MATLAB环境中,有超过500种数学、统计、科学及工程方面的函数可使用,函数的标示自然,使得问 题和解答像数学式子一般简单明了,让使用者可全力发挥在解题方面,而非浪费在电脑操作上 先进的资料视觉化功能 - MATLAB的物件导向图形架构让使用者可执行视觉数据,制作高品质的图形,完成科学性或工程性图文并茂的文章。 高阶但简单的程式环境 - 做为一种直译式的程式语言,MATLAB容许使用者在短时间内写完程式,所花的时间约为用 FORTRAN 或 C 的几分之一,而且不需要编译(compile)及联结 (link) 即

2、能执行,同时包含了更多及更容易使用的内建 功能。 开放及可延伸的架构 - MATLAB容许使用者接触它大多数的数学原使码,检视运算法,更改现存函数,甚至加入自己的函数使 MATLAB成为使用者所须要的环境。 丰富的程式工具箱 - MATLAB的程式工具箱融合了套装前软体的优点,与一个灵活的开放但容易操作之环境,这些工具箱提 供了使用者在特别应用领域所需之许多函数。现有工具箱有:符号运算(利用Maple V的计算核心执行 )、影像处理、统计分析、讯号处理、神经网路、模拟分析、控制系统、即时控制、系统确认、强建控 制、弧线分析、最佳化、模糊逻辑、mu分析及合成、化学计量分析。 MATLABMATL

3、AB几个特色几个特色 数数学学建建模模matlabmatlab详细手册详细手册简易数学简易数学 我们先从MATLAB的数学运算开始说明。就像你的计算器一样,数学式的计算是直接了当。如果我们要算 1+2+3及110+220+330这二个式子,以下例子接著提示符号之后的是要键入的算式,MATLAB将计算的结果以ans显示。如果算式是x=1+2+3,MATLAB将计算的结果以x显示 1+2+3 ans = 6 1*10 + 2*20 + 3*30 ans = 140 x=1+2+3 x = 6 如果在上述的例子结尾加上;,则计算结果不会显示在指令视窗上,要得知计算值只须键入该变数值即可 x=1+2+

4、3; xx = 6 apple=5 apples = 5 orange=10 orange = 10 total_cost=apple*2+orange*4 total_cost = 50 average_cost=total_cost/(apple+orange) average_cost = 3.33334数数学学建建模模matlabmatlab详细手册详细手册简易数学简易数学 MATLAB提供基本的算术运算有: 加 (+)、减 (-)、乘 (*)、除 (/)、幂次方 (),范例为:5+3, 5-3, 5*3, 5/3, 53要计算面积Area = r2,半径r = 2,则可键入 r=2;

5、 area=pi*r2; area = 12.5664可以将上述指令打在同一行,以, 或是; 分开 r=2, area=pi*r2 r=2; area=pi*r2;注意上述二式的差异,前者有计算值显示,而后者则无 如果一个指令过长可以在结尾加上.(代表此行指令与下一行连续), r=2; area = pi . *r2数数学学建建模模matlabmatlab详细手册详细手册简易数学简易数学 注解是由%起头,也就是说在%之后的任何文字都被视为程式的注解。注解的功能是简要的说明程式的内容 r=2; % 键入半径 area=pi*r2; % 计算面积 MATLAB可以将计算结果以不同的精确度的数字格式

6、显示,我们可以在指令视窗上的功能选单上的Options下选 Numerical Format,或者直接在指令视窗键入以下的各个数字显示格式的指令,以值为例 指令数字值说明 format short3.1416预设的 4 位有效小数位数 format long3.1415926535897915 位有效小数位数 format short e3.1416e+0004 位有效小数位数加上指数表格式 数数学学建建模模matlabmatlab详细手册详细手册变数变数 MATLAB对使用变数名称的规定 变数名称的英文大小写是有区别的(apple, Apple, AppLe,三个变数不同) 变数的长度上限为

7、 19 个字元 变数名的第一个字必须是一英文字,随后可以掺杂英文字、数字或是底线MATLAB所定义的特别变数及其意义 变数名意义help线上说明, 如 help quit who列出所有定义过的变数名称 ans预设的计算结果的变数名 epsMATLAB定义的正的极小值=2.2204e-16 pi内建的值 inf值,无限大 ( 1/0 ) NaN无法定义一个数目 ( 0/0 ) 数数学学建建模模matlabmatlab详细手册详细手册其它功能其它功能 MATLAB利用了二个游标键可以将所下过的指令叫回来重覆使用。按下则前一次指令重新出现,之后再按Enter键,即再执行前一次的指令。而键的功用则是

8、往后执行指令 键入who可以查看所有定义过的变数名称。而键入clear则是去除所有定义过的变数名称;如果只是要去除x及y 二个变数则可以键入clear x y。 Ctrl-C(即同时按Ctrl及C二个键)可以用来中止执行中的MATLAB的工作。 线上说明 利用help指令,直接键入help 。 利用lookfor指令,它可以从你键入的关键字(key-word) 列出所有相关的题材,例如lookfor cosine, lookfor sine。 利用指令视窗的功能选单中的Help,从中选取Table of Contents(目录)或是Index(索引)。 数数学学建建模模matlabmatlab

9、详细手册详细手册简易阵列简易阵列 MATLAB的运算事实上是以阵列 (array) 及矩阵 (matrix) 方式在做运算,而这二者在MATLAB的基本运算性质不同,阵列强调元素对元素的运算,而矩阵则采用线性代数的运算方式。 宣告一变数为阵列或是矩阵时,如果是要个别键入元素,须用中括号 将元素置于其中。阵列为一维元素所构成,而矩阵为多维元素所组成 x = 1 2 3 % 一维 1x3 阵列 x = 1 2 3; 4 5 6 % 二维 2x3 矩阵,以;区隔各列的元素 x = 1 2 3 % 二维 2x3 矩阵,各列的元素分二行键入4 5 6要计算 y = sin (x), 0 x而x = 0,

10、 0.2, 0.4,.,,即可用阵列方式运算 x = 0 0.2*pi 0.4*pi 0.6*pi 0.8*pi pi % 注意阵列内也可作运算 x = 0 0.6283 1.2566 1.8850 2.5133 3.1416 y=sin(x) y = 0 0.5878 0.9511 0.9511 0.5878 0.0000数数学学建建模模matlabmatlab详细手册详细手册要找出阵列的某个元素或数个元素 x(3) % 第三个x的元素 ans = 1.2566 y(5) % 第五个y的元素 ans = 0.5878 x(1:5) % 列出第一到第五个x的元素 ans = 0 0.6283

11、1.2566 1.8850 2.5133 y(3:-1:1) % 列出第三到第一个y的元素,3为起始值,1为终止值,-1为增量 ans = 0.9511 0.5878 0 x(2:2:6) % 列出第二到第六个x的元素,2为起始值,6为终止值,2为增量 ans = 0.6283 1.8850 3.1416 y(4 2 5 1) % 列出y元素,排列元素依序为原来y阵列的4,2,5,1个 ans = 0.9511 0.5878 0.5878 0数数学学建建模模matlabmatlab详细手册详细手册建立阵列建立阵列 如果要建立的阵列的元素多达数百个,则须采用以下的数种方式 x=(0:0.0.2:

12、1) % 以:区隔起始值=0、增量值=0.0.2、终止值=1 x=linspace(0,1,51) % 利用linspace,以区隔起始值=0终止值=1之间的数目=51 x=(0:0.01:1)*pi % 注意阵列外也可作运算 a=1:5, b=1:2:9 % 这二种方式更直接 a = 1 2 3 4 5 b = 1 3 5 7 9 c=b a % 可利用先前建立的阵列 a 及阵列 b ,组成新阵列 c = 1 3 5 7 9 1 2 3 4 5 d=b(1:2:5) 1 0 1 % 由阵列 b 的三个元素再加上三个元素组成 d = 1 5 9 1 0 1数数学学建建模模matlabmatla

13、b详细手册详细手册阵列运算 除了加减符号外其余的阵列运算符号均须多加 . 符号 阵列运算功能 + 加- 减 .* 乘./ 左除. 次. 转置 a=1:5; a-2 % 从阵列a减2 ans = -1 0 1 2 3 2*a-1 % 以2乘阵列a再减1 ans = 1 3 5 7 9 b=1:2:9; a+b % 阵列a加阵列b ans = 2 5 8 11 14 a.*b % 阵列a及b中的元素与元素相乘 ans = 1 6 15 28 45 a./b % 阵列a及b中的元素与元素相除 ans = 1.0000 0.66667 0.6000 0.5714 0.5556 a.2 % 阵列中的各个

14、元素作二次方 ans = 1 4 9 16 25 数数学学建建模模matlabmatlab详细手册详细手册 b.a % 以阵列b中的各个元素为底,以阵列a中的各个元素为次方 ans = 1 9 125 2401 59049 a.2 % 阵列中的各个元素作二次方 ans = 1 4 9 16 25 b=a % 阵列b是阵列a的转置结果 b = 1 2 3 4 5阵列运算 数数学学建建模模matlabmatlab详细手册详细手册阵列运算的特色阵列运算的特色 MATLAB 在许多运算皆是以阵列为对象,即是以阵列的元素为对象。 除了+, - 这二个运算外,其余的运算符号(乘、除、次方)皆须加上.来强调

15、阵列之间的运算。 如果a,b各代表二个不同的阵列,a与b 之间的运算是元素对元素的方式 x = 1.5; % x 是纯量 y = exp(x2); % exp(x2) 是纯量运算 y1 = x/y % x/y 是纯量运算 x = 1:0.1:2; % x 是阵列 y = exp(x.2); % exp(x.2) 是阵列运算 y1= x./y % x./y 是阵列运算 x=2.0 % x 是一纯量 nume = x3 - 2*x2 + x - 6.3; deno = x2 + 0.05*x - 3.14; f = nume/deno x=1:5; % 注意 x 是一阵列 nume = x.3 -

16、 2*x.2 + x - 6.3; deno = x.2 + 0.05*x - 3.14; f = nume./deno数数学学建建模模matlabmatlab详细手册详细手册简易绘图简易绘图 plot是用来划函数x对函数y的二维图,例如要划出 y = sin (x), 0 x2 plot可以在一个图上划数条曲线,且以不同的符号及颜色来标示曲线 如要在x及y轴及全图加注说明,则可利用指令xlabel, ylabel, title 三维图的指令为plot3 二维图及三维图皆可使用指令grid 加上格线 数数学学建建模模matlabmatlab详细手册详细手册 v1=linspace(0,2*pi

17、,20); v2=sin(v1); % 建立 v1 及 v2 阵列 plot(v1,v2) % 利用 plot,输入的变数为 x 轴接著的变数为 y 轴 v3=cos(v1); % 建立 v3 阵列 plot(v1,v2,v1,v3) % 划二条曲线,一条代表 v1-v2 函数关系 %一条代表 v1-v3 函数关系 plot(v1,v2,v1,v2,+) % 一样划二条曲线,不过第二条曲线以符号 + 标示 plot(v1,v2,v1,v2.*v3,-) % 划二条曲线,一条代表 v1-v2 函数关系,一条 % 代表 v1-(v2.*v3) 函数关系且以符号标示 xlabel(x-axis) %

18、 加上 x 轴的说明,在二个单引号 之间键入文字的说明 ylabel(y-axis) % 加上 y 轴的说明 title(2D plot) % 加上图的说明 plot3(v2,v3,v1), grid % 将 v2-v1-v3 函数关系分别以x轴y轴及z轴划,%并加上格线简易绘图简易绘图 数数学学建建模模matlabmatlab详细手册详细手册如何撰写如何撰写 MATLAB MATLAB 程式程式 MATLAB提供了所谓的 M-file 的方式,可让使用者自行将指令及算式写成巨集程式然后储存成个特别的档案,其附加档是m,譬如 test.m,其中的test就是档案名称。 在指令视窗中的功能选单可

19、以选择File 再选择New,即进入指定的编辑软体或是文书处理软体。当程式写完后要存档时,必须以.m 档名称储存。 要执行 M-file 可以在指令视窗下直接键入该档名如test;或是选择功能表上的Run M-file来找到 M-file 的所在目录再执行M-file。 Run M-file 如果要修改 M-file 可以选择功能表上的Open M-file ,即可搜寻要修改的 M-file,修改后再存档。 数数学学建建模模matlabmatlab详细手册详细手册如何撰写如何撰写 MATLAB MATLAB 程式程式 tutex1.m档是一个简易绘图程式做为示范使用M-file % M-fil

20、e, tutex1.m % Simple plot for illustration of using M-file. % 简易绘图以做为示范使用M-file x=linspace(0,2*pi,20); y=sin(x); plot(x,y,r+) xlabel(x-value) ylabel(y-value) title(2D plot) 写好上述程式后即可在指令视窗下键入tutex1,即可执行已建立的tutex1.m 程式。 % M-file, tutex2.m % 计算一个球的体积 r = input(Type radius:); area=pi*r2; volume=(4/3)*pi

21、*r3; fprintf(The radius is %12.5fn,r) fprintf(The area of a circle is %12.5fn,area) fprintf(The volume of a sphere is %12.5fn,volume) 数数学学建建模模matlabmatlab详细手册详细手册其它绘图功能其它绘图功能 简易的二维绘图功能,例如在图上加注说明的指令有title, xlabel,ylabel,除此之外还有二个指令 text, gtext 可以在图中加上文字用以说明图中的曲线或图形代表什么。 text是依据所绘图的座标来放置文字说明,其语法为text(x

22、,y, string),x, y是要放置说明的座标值,string是说明的文字。 gtext则是依据滑鼠或上下左右游标键来放置文字说明,其语法为gtext(string) x=linspace(0,2*pi,30); y=sin(x); z=cos(x); plot(x,y,x,z) % 划二条曲线 y=sin(x), z=cos(x) text(2.5,0.7,sin(x) % (2.5,0.7)是依据绘图大小的座标值 gtext(cos(x) % 将滑鼠移至适当位置再按滑鼠键数数学学建建模模matlabmatlab详细手册详细手册其它绘图功能其它绘图功能 y=0:0.1:10; x=10.

23、y plot(x,y) % 会画出的看不出所以然的图 semilogx(x,y) % 改以对数尺度绘图就清楚多了 x=0 2 5 7 10 12 15 17 20 21; y=0.1 0.2 0.5 0.6 0.9 1 1.2 1.26 1.22 1.2; plot(x,y) % 先以线性尺度绘图,再分别以三种对数尺度绘 semilogx(x,y) % 图,注意各个图长像会改变 semilogy(x,y) loglog(x,y)MATLAB 提供三种对数尺度的绘图指令:semilogx,semilogy, loglog,它们的作用分别是x轴以对数尺度绘图,y 轴以对数尺度绘图,x 和 y 轴以

24、对数尺度绘图。数数学学建建模模matlabmatlab详细手册详细手册绘图选项绘图选项- -横轴和纵轴的控制横轴和纵轴的控制 要控制绘图的横轴及纵轴比例,可以用 axis配合下列的相关的选项: axis(xmin xmax ymin ymax) 以 xmin xmax 设定横轴的下限及上限,以 ymin ymax 设定纵轴的下限及上限 axis auto 横轴及纵轴依照数据大小的上下限来订定,横轴及纵轴比例是4:3 axis square 横轴及纵轴比例是 1:1 axis equal 将横轴纵轴的尺度比例设成相同值axis xy 预设值使用卡氏座标即将图原点设在左下角横轴由左往右增纵轴由下往

25、上递增 axis ij 使用矩阵格式即是将图原点设在左上角横轴不变纵轴由上往下递增 axis normal 以预设值画纵轴及横轴axis off 将纵轴及横轴取消axis on 恢复纵轴及横轴 x=linspace(0,2*pi,30); y=sin(x); z=cos(x); plot(x,y,x,z) axis off axis on axis(square,equal) axis(xy,normal) 数数学学建建模模matlabmatlab详细手册详细手册绘图选项绘图选项- -子图子图 要将数个相关的图画在同一页时,可以用subplot这个指令。其语法为 subplot(m,n,p),

26、其中 m, n代表绘图成 m x n 个子图,m表示在 y方向有 m 个图, n表示在 x 方向有 n 个图,p 是代表第几个子图。 x=0 2 5 7 10 12 15 17 20 21; y=0.1 0.2 0.5 0.6 0.9 1 1.2 1.26 1.22 1.2; subplot(2,2,1), plot(x,y) % 画左上角的图 subplot(2,2,2), semilogx(x,y) % 画右上角的图 subplot(2,2,3), semilogy(x,y) % 画左下角的图 subplot(2,2,4), loglog(x,y) % 画右下角的图 数数学学建建模模mat

27、labmatlab详细手册详细手册绘图选项绘图选项- -图形放大及缩小图形放大及缩小 zoom 指令可以将图形放大或缩小,若要将图形放大时用 zoom on,zoom out,当不再须要放大或缩小图形时用 zoom off。 M=peaks(25); % peaks 是MATLAB内建的一个像山峰的特别函数 plot(M) % 函数矩阵的大小,如果数值愈大则画出的山峰图愈平滑 zoom on % 开始放大图形,每按一次Enter键图形就放大一次 zoom out % 开始缩小图形,每按一次Enter键图形就缩小一次 zoom off % 停止图形放大或缩小功能数数学学建建模模matlabmat

28、lab详细手册详细手册绘图选项绘图选项- -函数分布的快速绘图函数分布的快速绘图 fplot的指令可以用来自动的画一个已定义的函数分布图,而无须产生绘图所须要的一组数据做为变数。其语法为fplot(fun,xmin xmax ymin ymax),其中 fun为一已定义的函数名称,例如 sin, cos等等;而 xmin, xmax, ymin, ymax 则是设定绘图横轴及纵轴的下限及上限。 将一函数 f(x)=sin(x)/x在-20 x20,-0.4y1.2之间画出 fplot(sin(x)./x,-20 20 -0.4 1.2) title(Fplot of f(x)=sin(x)/x

29、) xlabel(x), ylabel(f(x)数数学学建建模模matlabmatlab详细手册详细手册三维的曲线绘图三维的曲线绘图 plot3 可以用来画一个三维的曲线,它的格式类似 plot ,不过多了 z方向的数据。其与法可以是 plot3(X,Y,Z) 或是 plot3(X,Y,Z,linetype),其中的 linetype是设定画线的符号和颜色。 t=0:pi/50:10*pi; plot3(sin(t),cos(t),t) title(Helix), xlabel(sin(t), ylabel(cos(t), zlabel(t) axis(ij) % 加上这个指令,注意图的y轴及

30、曲线方向改变了数数学学建建模模matlabmatlab详细手册详细手册曲面及等值线绘图曲面及等值线绘图 如果要画一个三维的曲面,MATLAB是以meshgrid配合与mesh或surf指令来绘图。 x=-7.5:0.5:7.5; y=x; % 先产生x及y二个阵列 X,Y=meshgrid(x,y); % 再以meshgrid形成二维的网格数据 R=sqrt(X.2+Y.2)+eps; % 加上eps可避免当R在分母时趋近零时会无法定义 Z=sin(R)./R; % 产生z轴的数据 mesh(X,Y,Z) % 将z轴的变化值以网格方式画出 surf(X,Y,Z) % 将z轴的变化值以曲面方式画

31、出 mesh(peaks) % 直接将以定义的peaks函数以网格方式画出 title(Mesh plot of peaks)先要以meshgrid产生在x-y平面的二维的网格数据,再以一组z轴的数据对应到这个二维的网格,即可画出三维的曲面。数数学学建建模模matlabmatlab详细手册详细手册曲面及等值线绘图曲面及等值线绘图 与三维绘图有关的还有等值线图,相关指令为contour,contour3。 contour是将等值线图以二维图表示,其语法有几个方式。一是contour(Z), contour(Z,n),其中Z是一个二维矩阵,而 n为等值线的数目(如果不给即以自动方式设定)。另一种语

32、法则是将z轴的值对应到指定的x,y轴的值,语法为contour(X,Y,Z),contour(X,Y,Z,n),其中X,Y, Z代表x,y,z轴的数据。 contour3则是将等值线以三维图表示,其语法与contour类似,只是将对应的关键字contour 改成contour3,其余部份相同。 X,Y,Z=peaks; % x,y及z轴的数据由peaks函数定义 subplot(2,2,1) contour(Z,20) % 画出peaks的Z轴二维等值线图,20为等值线的数目 subplot(2,2,2) contour(X,Y,Z,20) % 画出peaks的二维等值线图,注意x,y轴与上图

33、不同 subplot(2,2,3) contour3(Z,20) % 画出peaks的Z轴二维等值线图 subplot(2,2,4) contour3(X,Y,Z,20) % 画出peaks的三维等值线图,注意x,y轴与上图不同数数学学建建模模matlabmatlab详细手册详细手册常见数学函数常见数学函数 MATLAB还提供许多内建函数,如对数函数、三角函数、多项式函数等 angle1=pi/2; b=sin(angle1); %注意angle1为径度,sin函数计算值需以径度表示 angle2=90; %注意angle2为角度 b=sin(angle2*pi/180); %也可在函数内作角

34、度与径度转换 x=sqrt(2)/2; y=asin(x); y_deg=y*180/pi x = 0.7071 y = 0.7854 y_deg = 45.0000数数学学建建模模matlabmatlab详细手册详细手册常见数学函数常见数学函数 使用函数须注意几点。首先函数一定出现在计算等式的右边,等式左边是代表这个函数的计算值。此外,一个函数可以被当做另一个函数的引数(argument)。 例如:log_x=log(abs(x)其中abs和log皆为内建函数,其意思是先计算abs(x),所得值再代入log函数。 round(x) 将x值进位至最接近的整数 fix(x) 将x值进位至最接近0

35、的整数 floor(x) 将x值进位至最接近-的整数 ceil(x) 将x值进位至最接近的整数 sign(x) 如果x 0传回值为 1 rem(x,y) 传回x/y的余数,例如rem(25,4)的值为1 exp(x) 指数函数 log(x) 以2.718282为底的对数函数,及自然对数 log10(x) 为10底的对数函数数数学学建建模模matlabmatlab详细手册详细手册三角和双曲线函数三角和双曲线函数 至于三角函数和双曲线函数的使用,和一般数学式相似,其语法也很直接易懂。例如三角函数有:sin(x), cos(x), tan(x), asin(x), acos(x), atan(x),

36、 atan2(y,x)。常用到的双曲线函数有:sinh(x), cosh(x), tanh(x), asinh(x), acosh(x), atanh(x)。 数数学学建建模模matlabmatlab详细手册详细手册复数复数 根有实部 (-2) 及虚部 (3)MATLAB 是以i或j字元来代表虚部,其它的复数相关函数有real, imag, conj, abs, angle等等 如果复数表示为 x=a+bi 共轭复数 复数大小 复数向量的夹角 复数实部 复数虚部 复数指数表示法 real(x)imag(x)conj(x)abs(x)angle(x)r*exp(i*angle(x)数数学学建建模

37、模matlabmatlab详细手册详细手册复数复数 x=1-2*i; % 注意是 2*i 不是 2i real(x) % 列出实部 ans = 1 imag(x) % 列出虚部 ans = -2 conj(x) % 计算共轭复数 ans = 1.0000 + 2.0000i abs(x) % 计算复数的大小 ans = 2.2361 angle(x) % 计算复数向量的夹角%(以径度表示) ans = -1.1071 a=1; b=4; c=13; x1=(-b+sqrt(b2-4*a*c)/(2*a) % 以解二次方程式根的公式计算复数根 x1 = -2.0000 + 3.0000i x2=

38、(-b-sqrt(b2-4*a*c)/(2*a) x2 = -2.0000 - 3.0000iy=exp(i) % 以复数指数方式表示一个复数 y = 0.5403 + 0.8415i 数数学学建建模模matlabmatlab详细手册详细手册复数复数 和复数有关的图以极座标来表示会比一般的卡氏座标要合适,polar指令可以将数据以极座标方式加以绘图,其语法为 polar(theta,r),(theta,r)分别代表极座标上的角度及半径值。 t=0:0.01:2*pi; r=sin(2*t).*cos(2*t); polar(t,r) title(Polar plot of sin(2t)cos

39、(2t) angle=0:2*pi/100:2*pi; r=angle/(2*pi); polar(angle,r) title(Polar plot) grid数数学学建建模模matlabmatlab详细手册详细手册多项式函数多项式函数 令p(x) 代表一个多项式如下 MATLAB 以一最简便方式代表上述的多项式 p=1 4 -7 -10,其中的数值是多项式的各阶项(从高到低)的 各个系数,其实p 也是一个阵列不过是用以代表这个多项式。 假设要计算一组数据x对应的多项式值,依照一般的函数计算须以下列式子计算: p=x.3+4*x.2-7*x-10 为了能直接运用多项式,可以用函数 polyv

40、al直接做运算,语法为 polyval(p,x),其中p 即是代表多项式各阶系数 的阵列。 x=linspace(-1,3,10); p=1 4 7 -10; v=polyval(p,x);数数学学建建模模matlabmatlab详细手册详细手册多项式函数多项式函数 如何对二个多项式做加减乘除运算,以及对多项式微分。当二个多项式间要做加减乘除时,加减运算可以直接进行。 ( )( )( )c xa xb x当二多项式相乘,在数学上等于二个阵列做旋积(convolution)运算(因为我们是以阵列来代表一个多项式的各阶系数),因此可利用conv函数做乘法运算,其语法为conv(a,b),其中a,

41、b代表二个多项式的阵列。 二多项式相除就相 当于反旋积(de-convolution) 运算,因此有 deconv 函数,其语法稍有不同 q,r=deconv(a,b),其中q,r分别代表整除多项式及余数多项式。数数学学建建模模matlabmatlab详细手册详细手册多项式函数多项式函数 a=1 2 3 4; b=1 4 9 16; c=a+b c = 2 6 12 20 d=a-b d = 0 -2 -6 -12 e=conv(a,b) e = 1 6 20 50 75 84 64 g=e+0 0 0 c g = 1 6 20 52 81 96 84 f,r=deconv(e,b) f =

42、1 2 3 4 r = 0 0 0 0 0 0 0 % 因为是整除所以余数多项式的各系数皆为零 h,r=deconv(g,a) f = 1 4 9 18 r = 0 0 0 0 2 6 12 % 余数多项式为 2*x2 + 6*x + 12数数学学建建模模matlabmatlab详细手册详细手册多项式函数多项式函数 一个多项式视其阶数而定,它的根可以有一个到数个,可能为实数也可能是复数。要求一高阶多项式的根往往须借助数值方法,MATLAB已将这些数值方法写成一函数roots(p),只要输入多项式的各阶系数(以p代表)即可求解到对应的根。 p=1 3 2; r=roots(p) r = -2 -

43、1 p=1 -12 0 25 116; % 注意二阶项系数为零须要输入,%否则多项式的阶数就不对 r=roots(p) % 有实数根及复数根 r = 11.7473 2.7028 -1.2251 + 1.4672i -1.2251 - 1.4672i数数学学建建模模matlabmatlab详细手册详细手册多项式函数多项式函数 与 roots 相关的函数尚有 poly, real,这二个函数的用途是要验算求解的根展开能求得原多项式。 poly函数就是在求出多项式的各阶系数,其语法为 poly(r),其中 r 是代表根的阵列。real则是用来去除因计算时产生的假虚部系数 r=-2 -1; pp=p

44、oly(r) % pp=(x+2)(x+1)=x2+3x+2 pp = 1 3 2 p=1 -4 6 -4; r=roots(p) r = 2.0000 1.0000 + 1.0000i 1.0000 - 1.0000i pp=poly(r) % 这个多项式的系数%与原多项式 p 相同 pp = 1 -4 6 -4 pp=1 7 12 9; % 再看另一个多项式 r=roots(pp) r = -4.9395 -1.0303 + 0.8721i -1.0303 - 0.8721i pp=poly(r) % 注意因计算的误差会%有假虚部产生 pp = 1.0000 7.0000 12.0000

45、9.0000 + 0.0000i pp=real(pp) % 可以real将假虚部去除,%将原多项式还原 pp = 1.0000 7.0000 12.0000 9.0000数数学学建建模模matlabmatlab详细手册详细手册极值、平均、总和、连乘及排序极值、平均、总和、连乘及排序 max(x) 找出x阵列的最大值 max(x,y) 找出x及y阵列的最大值,会有二个极值分属x及y阵列 y,i=max(x) 找出x阵列的最大值以y显示,其在x阵列的位置以i显示 min(x) 找出x阵列的最小值 min(x,y) 找出x及y阵列的最小值,会有二个极值分属x及y阵列 y,i=min(x) 找出x阵

46、列的最小值以y显示,其在x阵列的位置以i显示 mean(x) 找出x阵列的平均值 median(x) 找出x阵列的中位数 sum(x) 计算x阵列的总和值 prod(x) 计算x阵列的连乘值 cumsum(x) 计算x阵列的累积总和值 cumprod(x) 计算x阵列的累积连乘值最大值max,最小值min,平均值 mean,一组数据的中位数median,总和值sum,连乘值prod,累积总和值cumsum,累积连乘值cumprod,排序函数sort。 数数学学建建模模matlabmatlab详细手册详细手册极值、平均、总和、连乘及排序极值、平均、总和、连乘及排序 rains % rains为一

47、个6x2的阵列 rains = 126.8 148.5 173.0 148.4 194.7 208.9 328.8 300.7 268.3 210.5 278.4 321.5 avg_rain=mean(rains) % 将rains阵列中的每一行的平均值列出 avg_rain = 227.8000 224.6000 220.6500 179.4500 236.5500 265.2000 avg_rain=mean(avg_rain) % 将上述阵列中的平均值列出 avg_rain = 225.7083 max_rain=max(rains) % 将rains阵列中的每一行的最大值列出 max

48、_rain = 328.8000 300.7000 268.3000 210.5000 278.4000 321.5000 max_rain,x=max(rains) % 将rains阵列中的每一行的最大值及其位置列出 max_rain = 328.8000 300.7000 268.3000 210.5000 278.4000 321.5000 x = 2 2 2 2 2 2 数数学学建建模模matlabmatlab详细手册详细手册 min_rain=min(rains) % 将rains阵列中的每一行的最小值列出 min_rain = 126.8000 148.5000 173.0000

49、148.4000 194.7000 208.9000 s_sort=sort(rains) % 将rains阵列的值由小到大做排序 s_sort = 126.8000 148.5000 173.0000 148.4000 194.7000 208.9000 328.8000 300.7000 268.3000 210.5000 278.4000 321.5000 x=1 2 3 4 5; sum(x) % 将x阵列的值做总和 ans = 15 prod(x) % 将x阵列的值做连乘 ans = 120 cumsum(x) % 将x阵列的值累积后做总和 ans = 1 3 6 10 15 cum

50、prod(x) % 将x阵列的值累积后做连乘 ans = 1 2 6 24 120极值、平均、总和、连乘及排序极值、平均、总和、连乘及排序 数数学学建建模模matlabmatlab详细手册详细手册关系及逻辑运算关系及逻辑运算 在执行关系及逻辑运算时,MATLAB 将输入的不为零的数值都视为真 (True)而为零的数值则视为否 (False)。 运算的输出值将判断为真者以 1 表示而判断为否者以 0 表示。 小于 大于 = 大于等于= 等于 = 不等于& 逻辑 and | 逻辑 or 逻辑 not a=1:5, b=5-a, a = 1 2 3 4 5 b = 4 3 2 1 0 tf= a4

51、tf = 0 0 0 0 1 tf= a=b tf = 0 0 0 0 0 tf= b-(a2) tf = 4 3 1 0 -1 tf= (a4) tf = 1 1 1 1 0 tf= (a2)&(a x=linspace(0,10,100); % 产生数据 y=sin(x); % 产生 sine 函数 z=(y=0).*y; % 将 sin(x) 的负值设为零 z=z + 0.5*(y z=(x hold on plot(x,z) xlabel(x),ylabel(z=f(x) title(A discontinuous signal) hold off除了上述的运算元之外,尚有以下的逻辑关

52、系函数:xor(x,y), any(x), all(x), isnan(x), isinf(x), finite(x), find(x) 关系及逻辑运算关系及逻辑运算 数数学学建建模模matlabmatlab详细手册详细手册For For 回圈回圈 for 回圈是用在须重复执行且执行次数有一定的算式,它的结构如下 for index = array command A end for k = 1:length(d) if d(k) for n=1:10 x(n)=sin(n*pi/10); end disp(x) for n=1:5 for m=5:-1:1 A(n,m)=n2+m2; end

53、 disp(n) end disp(A)数数学学建建模模matlabmatlab详细手册详细手册如果可以用阵列或是矩阵运算来取代以for 回圈计算,就应采用前者因为计算速度快多了 使用 for 回圈的规则如下: 上述的 for 回圈中的指标 (index) 须为是一变数。 如果 array 代表阵列是空无一物,则回圈不会被执行,例如 k=1:0。 如果 array 代表阵列是一纯量,则回圈会被执行一次,例如 k=1:1。 如果 array 代表阵列是一向量,则回圈会被依序的执行,例如 k=1:b, b=1 3 5。 如果 array 代表阵列是一矩阵,则回圈会被逐行依序的执行,例如 k=1:B

54、, B=1 2; 3 4。 for 完整的语法为: for k = first:increment:last,其中的 first, increment, last分别为初始值,增量,终止值。而回圈被执行的次数由以下的算式决定: floor(last-first)/increment)+1 如果计算得到的值为负,则回圈不被执行。For For 回圈回圈 数数学学建建模模matlabmatlab详细手册详细手册while回圈是用在须重复执行且执行次数不定的算式,它的结构如下 whilewhile回圈回圈while expressioncommand group Aendsum = 0; k = 1

55、; while x(k) = 0 & k A=2 5 1; 7 3 8; 4 5 21; 16 13 0; A % A的转置矩阵 A = 2 7 4 16 5 3 5 13 1 8 21 0 A=4 -1 3; B=-2 5 2; dot_prod = sum(A.*B) % 二个阵列%做内积 dot_prod = -7 c=dot(A,B) % 以dot函数也可%做内积运算 c = -7 A=4; -1; 3; dot_prod = sum(A.*B); % 如果A是行阵列%则先做转置,再做内积 F=2 5 -1; G=0 1 -3; out_prod=F*G; % 二矩阵做外积 A=2,5

56、,1; 0,3,-1; B=1,0,2; -1,4,-2; 5,2,1; C=A*B % 矩阵相乘,矩阵的大小须相容 C = 2 22 -5 -8 10 -7 A=2 1; 4 3; A2 % 矩阵次方 ans = 4 1 16 9数数学学建建模模matlabmatlab详细手册详细手册矩阵多项式矩阵多项式 函数polyvalm是以矩阵方式做多项式函数计算,有别于polyval是以阵列方式计算函数值。它的语法为 polyvalm(a,X),其中X为一矩阵而a则是一多项式。 X=1 1 1; 2 2 2; 3 3 3; a=1 1 1; % 注意a=X*X+X+I f=polyvalm(a,X)

57、 f = 8 7 7 14 15 14 21 21 22 数数学学建建模模matlabmatlab详细手册详细手册反矩阵、矩阵秩与行列式反矩阵、矩阵秩与行列式 MATLAB的反矩阵函数、秩函数、行列式的函数,语法分别为inv(A), rank(A), det(A) A=2 1; 4 3; rank(A) 2 % 表示A秩数为2且等于矩阵的列数 inv(A) % 反矩阵 ans = 1.5000 -0.5000 -2.0000 1.0000 B=2 1; 3 2; 4 5; % B为奇异矩阵 rank(B) ans = 2 % 表示B秩数为2,但是其列数为3 inv(B) ? Error usi

58、ng = inv Matrix must be square. A=1 3 0; -1 5 2; 1 2 1; det(A) % 矩阵之行列式值 ans = 10数数学学建建模模matlabmatlab详细手册详细手册特徵值与特徵向量特徵值与特徵向量 假设 A为一个nn矩阵,而 X 为一个有n列的栏向量,为一纯量。考虑以下的数学式 AX=X。上式也可改写为 (A-I)X=0,其中 I 为单位阵如果X由不为零的元素所组成,其中要满足上式称为矩阵A的特徵值(eigenvalue),而X称为矩阵A的特徵向量 (eigenvector)。特徵向量代表一个正规正交(orthonormal) 的向量组,所

59、谓的正规正交向量,是指这向量与自身做内积的值为一单位向量;在几何关系上是指二量相互垂直且此其内积值再做正规化(normalization)。数数学学建建模模matlabmatlab详细手册详细手册特徵值与特徵向量特徵值与特徵向量 相关函数的语法为eig(A),得到一栏向量代表A的特徵值;而Q,d=eig(A),其中Q代表A的特徵向量,d为一对角矩阵其元素代表A的特徵值。 A = 0.5 0.25; 0.25 0.5; Q,d = eig(A) Q = 0.7071 0.7071 -0.7071 0.7071 d = % 注意在对角线上的值才是特徵值 0.2500 0 0 0.7500 Q*Q

60、% Q*Q=I ans= 1 0 0 1 A*Q(:,1); 0.25* Q(:,1) % 验证 AX=X ,%注意X=Q(:,1) 为第一个特徵向量 ans = % 为A*X的结果 0.1768 -0.1768 ans = % 为 的结果 0.1768 -0.1768数数学学建建模模matlabmatlab详细手册详细手册矩阵分解矩阵分解 三角分解法是将原正方 (square) 矩阵分解成一个上三角形矩阵或是排列(permuted) 的上三角形矩阵和一个下三角形矩阵,这样的分解法又称为LU分解法。以MATLAB函数计算上述的LU分解法,其语法为L,U=lu(A),其中L代表下三角形矩阵U代表

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论