Matlab简介
MATLAB简介
logspace 对数等分的行矢量
Logspace(x1,x2,n)生成从10x1到10x2包含n 个数据的矢量 >> logspace(1,3,3) >> magic(3) ans = ans = 10 100 1000 8 1 6 >> cell(3) 3 5 7 >> eye(3) ans = 4 9 2 ans = [] [] [] 1 0 0 Magic(n)为元素1到n^2 [] [] [] 0 1 0 之间,行、列、对角线 [] [] [] 0 0 1 的和都相等的n维矩阵
例1:
0 5 cos 47 例2:计算表达式的值 并将结果赋给变量x 1 7 2i
4、表达式从左至右、指数最先,乘除加减、括号提前。
>>6+4*3^2 ans = >> x=(5+cos(47*pi/180))/(1+sqrt(7)-2i) 42
例9:演示内带程序 >>ballode %自由下落小球与地面非弹性碰撞的运动轨迹 >>demo %演示Matlab的基本功能
2、数据格式:
① 10的幂为e加上正负数字: 1.062e-20 6.022e23 ② 数字后直接加 i 或 j表示虚数 :-3.14i 5+3i
3、算符
算术运算算符: + - * / ^ ( ) sqrt( ) 关系运算算符:<、>、 <=、 ==、 >=、 ~= 逻辑运算算符:与 &、或│、非 ~
例3:输入10个学生的成绩并对成绩按升序排序。 在指令窗口输入命令: g=input('请输入学生成绩:') sort(g) 请输入学生成绩: [65 78 96 98 91 84 79 83 74 81]
Matlab简介
MATLAB简介MATLAB是一个集数值计算、符号分析、图象显示、文字处理于一体的大型集成化软件.它最初由美国的Cleve Moler博士所研制.其目的是为线性代数等课程中的矩阵运算提供一种方便可行的实验手段.经过十几年的市场竞争和发展,MATLAB已发展成为在自动控制、生物医学工程、信号分析处理、语言处理、图像信号处理、雷达工程、统计分析、计算机技术、金融界和数学界等各行各业中都有极其广泛应用的数学软件.归纳起来,MATLAB具有以下几个特点:易学、适用范围广、功能强、开放性强、网络资源丰富.由于MATLAB的强大功能,它能使使用者从繁重的计算工作中解脱出来,把精力集中于研究、设计以及基本理论的理解上,所以,MATLAB已成为在校大学生、硕士生、博士生所热衷的基本数学软件.在此,我们把MATLAB作为学习数学的工具介绍给读者,希望能有利于读者今后的学习.一MATLAB的运行启动MATLAB点击MATLAB图标,进入到MATLAB命令窗(MATLAB Command Window).在命令窗内,可以输入命令、编程、进行计算.学会使用help命令在命令窗内输入help命令,再敲回车键.在屏幕上出现了在线帮助总览.(注意:MATLAB命令被输入后,必需敲回车键才能执行.为行文方便,以后不再每次提醒“敲回车键”.)学会使用help命令,是学习MATLAB的有效方法.例如:要想知道MATLAB中的基本数学函数有哪些,可以在总览的第五行查到:MATLAB中的“基本数学函数”用elfun表示,于是,可进一步键入:“help elfun”,屏幕上将出现“基本数学函数”表.(注意:help elfun之间有空格,以后不再每次提醒.)如果想了解sin函数怎样使用,可进一步键入help sin.在工具栏中点击help按扭,或点击?号按扭,与上面获取帮助信息的方法是等效的.学会使用demo命令在命令窗内输入demo命令,再敲回车,键屏幕上将出现演示窗口.(MATLAB Demo Window)一共有三个窗口,左边的窗口显示欲演示内容的大标题,选定其中一项,右下方的小窗口显示欲演示的具体内容,选中其中一栏,再点击run按扭,屏幕上将演示选定的演示程序.右上方的窗口显示关于大标题的一些说明.在命令窗内输入type (文件名),将显示演示程序的M文件,仔细研究演示程序的M文件,是学习MATLAB的又一有效方法.进入演示窗还有另一方法:在工具栏中点击Help栏,下拉式菜单中点击examples and demos项,即可进入演示窗口.退出在工具栏中点击File按钮,在下拉式菜单中单击Exit MATLAB项即可.二变量、语句、矩阵与函数1.变量在MATLAB 中,变量由字母、数和下划线组成.第一个字符必须是字母.一个变量最多由31个字符组成,并区分大小写.下面是MATLAB 中表示特殊量的字符:pi (圆周率)、eps (最小浮点数)、Inf (正无穷大)、NaN (表示0/0或inf-inf 等不定值)、i,j (虚数单位)2.语句MATLAB 语句的一般形式为:变量=表达式.当某一语句的输入完成后,按回车键,计算机就执行该命令.如果该语句末没输入其它符号或输入了逗号,将显示结果;如果句末输入了分号,将不显示结果.如果语句中省略了变量和等号,那么计算机将结果赋值给变量ans .3.矩阵把m ×n 个数排成m 行n 列的数表,此数表被称为m 行n 列的矩阵,记为⎪⎪⎪⎭⎫ ⎝⎛=⨯mn m n n m a a a a A 1111MATLAB 中矩阵的输入方法如下:A=[a 11,…,a 1n ;…;a m1,…,a mn ].逗号是数之间的分隔符(也可用空格代替);分号是换行符.3.函数MATLAB 提供了大量的函数.可以通过help 查询.例如sqrt (开方)、log (常用对数)、log 10(以10为底的对数)、sin (正弦)等.这些函数都遵循下列规则:对于⎪⎪⎪⎭⎫ ⎝⎛=mn m n a a a a A 1111经过函数f 后得:⎪⎪⎪⎭⎫ ⎝⎛=)()()()()(1111mn m n a f a f a f a f A f例:我们要计算sin 6π,可键入:y=sin(pi/6)得 y =0.5000如果我们键入:x=[0,pi/6,pi/3,pi/2,2*pi/3,5*pi/6,pi];y=sin(x),得y = 0 0.5000 0.8660 1.0000 0.8660 0.5000 0.0000这里,对于x 有更简洁的输入方法:x=0:pi/6:pi ,此命令表示x 从0开始,以pi /6为步长变到pi 为止.如果我们键入:x=[0,pi/6;pi/3,pi/2];y=sin(x) 得y = 0 0.50000.8660 1.0000其它的函数的用法与此类似.三绘图绘制二维图形绘制二维图形的基本命令是plot(x,y).其中x、y是1×n阶矩阵.也可以用格式plot(x1,y1,x2,y2,…)把多条曲线画在同一坐标系下.在这种格式中,每个二元对x-y的意义都与plot(x,y)的相同,每个二元对x-y的结构也必须符合plot(x,y)的要求.但二元对之间没有约束关系.以上三种格式中的x、y都可以是表达式,但表达式的运算结果必须符合上述格式要求.MATLAB的图形功能还提供了一组开关命令.关于颜色和线形用下面的方法进行控制.plot(x,'r*') 表示用红色*号画线, plot(x,y,'b+')表示用蓝色+号画线,plot(x1,y1,'y-',x2,y2,'g:')表示第一组用黄色实线画线,第二组用绿色点线画线.MATLAB的线型字符有很多,可以随心所欲地把图画得很漂亮.下面几个线型字符大家可以选用:S:小方块;H:六角星;D:钻石形;V:向下三角形;^:向上三角形.MATLAB还提供了图形的加注命令:title题头标注. xlabel x轴标注.ylabel y轴标注. gtext鼠标定位标注.grid 网格.axis([xmin xmax ymin ymax]) []中给出x轴和y轴的最小、最大值如果要把y1=6sin t,y2=6cos t,y3=sin t2-t cos t绘制在一张图上,则可输入如下的命令:t=0:pi/12:2*pi;y1=6*sin(t);y2=6*cos(t);y3=sin(t.^2)-t.*cos(t);plot(t,y1,'r-',t,y2,'bo',t,y3,'k:') %用红线画y1,用蓝圈画y2,用黑虚线画y3.如果还想在图上加一个题头,可继续键入命令:title('曲线比较')注:MATLAB中,%后面的语句起注释作用.特别要注意y3中的运算符号“.^”和“.*”,详情可通过help查阅,或查阅有关MATLAB的参考书.命令polar(theta,rho)或polar(theta,rho,‘s’)绘制极坐标系的二维图形.详情可通过help查阅.绘制三维图形⑴空间曲线的绘制绘制空间曲线的基本命令为:plot3(x,y,z);plot3(x,y,z,'s')或plot3(x1,y1,z1,'s1',x2,y2,z2,'s2',…)其中x,y,z是同维的向量或矩阵.当它们是矩阵时,以它们的列对应元素为空间曲线上点的坐标.s是线形、颜色开关,这一点与二维曲线时的情形相同.⑵曲面的绘制绘制空间曲面的基本命令为mesh(x,y,z).如果x、y是向量,则要求x的长度=矩阵z的列维;y的长度=矩阵z的行维.以z ij为竖坐标,x的第i个分量为横坐标,y的第j个分量为纵坐标绘网格图.如果是同维矩阵,则数据点的坐标分别取自这三个矩阵.meshc(x,y,z) 带等高线的网格图, waterfall(x,y,z)瀑布水线图,surf(x,y,z,'c')可着色的曲面图,surfc(x,y,z)带等高线的可着色的曲面图.以上这些命令都可用来绘制曲面图,用法与mesh完全一样.例如:要想画马鞍面,可输入如下命令:x=-3:1/16:3;y=x;[x,y]=meshgrid(x,y); %(生成绘图时所需的x-y坐标)z=-x.^2+y.^2;mesh(x,y,z) %(或换为surfc(x,y,z) %带等高线的着色图)3.多幅图形的创建有时同一曲面或曲线需要从不同的角度去观察,或用不同的表现方式去表现,这时,为了便于比较,往往在一个窗口内画多幅图形.MATLAB用subplot命令实现这一目的.具体格式为:subplot(m,n,p)使用此命令后,把窗口分为m×n个图形区域,p表示当前区域号.例如把sin x,cos x,atan x,sin x cos y画在一个窗口内,可键入:x=0:pi/6:2*pi;y=x;z1=sin(x);z2=cos(x);z3=atan(x);subplot(2,2,1); plot(x,z1,'r',x,z2,'g')subplot(2,2,2);plot(x,z3,'m')subplot(2,2,3);[x,y]=meshgrid(x,y);z4=sin(x).*cos(y);mesh(x,y,z4);subplot(2,2,4);surfc(x,y,z4)四关系运算和逻辑运算1.关系运算符〈小于〈= 小于等于〉大于〉= 大于等于 = = 等于 ~= 不等于运算法则:如果两个比较量a、b是标量,那么,当a、b之间的关系成立时输出值为1;否则输出值为0.如果两个比较量a、b是相同维数的数组,那么就按标量的运算法则,对a、b的对应元素进行运算,最后的输出结果为一个与a(或b)同维的0—1数组.如果a是标量,b是数组,那么按标量的运算法则将a与b的每个元素逐一比较,最后的输出结果为一个与b同维的0—1数组.在算术运算、关系运算中,算术运算优先.2.逻辑运算符& 与 | 或 ~ 非运算法则:参与逻辑运算的量称为逻辑量,非零逻辑量为“真”,用1表示;零逻辑量为“假”,用0表示.如果参与逻辑运算的两个量a、b都是标量,那么:a&b当a与b全为非零时,运算结果为“1”;否则为“0”a|b a与b中只要有一个非零,运算结果为“1”~a 当a是零时,运算结果为“1”;否则为“0”如果参与逻辑运算的两个量a、b是相同维数的数组,那么就按标量的运算法则,对a、b 的对应元素进行运算,最后的输出结果为一个与a(或b)同维的0—1数组.如果参与逻辑运算的a是标量、b是数组,那么就按标量的运算法则,将a与b的每个元素进行运算,最后的输出结果为一个与b同维的0—1数组.逻辑“非”是一个一元运算符,也服从数组运算规则.在算术、关系、逻辑运算中,算术运算的最优先,其次是关系运算,再其次是逻辑运算.五 MATLAB编程1.控制语句MATLAB也有控制流语句,用于控制程序的流程.主要有for循环、while循环、if和break 三种控制语句.虽然语句很少,但功能很强.ⅰfor循环语句for循环语句的一般表达形式为:for i=表达式可执行语句1……可执行语句nend例:求S=1+2+3+…+50,可编程如下:s=0;for k=1:50s=s+k;endⅱwhile循环while循环语句用来控制一个或一组语句在某逻辑条件下重复预先确定或不确定的次数.while循环语句的一般表达形式为:while表达式循环体语句end例:对于上面同样的问题,可编程如下:S=0; k=0;while k<51S=S+k;k=k+1; % 当条件k〈51时,反复执行语句S=S+k,k=k+1end以上这个例子事先已知循环次数是51,下面再看一个预先不能确定循环次数的例子.例:用迭代法x k+1=e k x k=0,1,2,…求解方程x-e-x=0的根.初始值x0=0.5,相对误差限ε=10-8 ,编程如下:ep=10^(-8);dx=1;x0=0.5;k=0;while dx>epk=k+1;x=exp(-x0);dx=abs(x-x0)/(1+abs(x));x0=x;endⅲif和break语句MATLAB中if和break语句的作用与使用方式同其它编程语言一样,用来将控制流程进行分流与中断退出.例:可以把上面的解方程的例子中的循环语句改写成:x0=0;while(1)k=k+1;x=exp(-x0);dx=abs(x-x0)/(1+abs(x));if dx<=eps break;endx0=x;end程序中while(1)说明循环条件总是真,直到满足dx<=eps条件跳出循环体. ⅳif – else –end分支结构分支结构有三种形式:if 表达式执行语句end如果表达式的值非0,则执行下面的语句.否则执行end后面的语句.if表达式执行语句1else执行语句2endif表达式1执行语句1elseif表达式2执行语句2elseif 表达式3执行语句3……else (此句可以省略)执行语句nend例:对函数⎪⎩⎪⎨⎧≥<<-<=10, x 11-3x 10,x 1 121, x )(x x x f可编如下的程序:if x<1y=x;elseif x>=1&x<10y=2*x-1;elsey=3*x-11;end2. 创建M文件创建M文件是MATLAB中的非常重要的内容.事实上,正是由于在MATLAB 工具箱中存放着大量的M文件,使得MATLAB在应用起来显得简单、方便,且功能强大.如果用户根据自己的需要,开发出适用于自己的M文件,不仅能使MATLAB更加贴近用户自己,而且能使MATLAB的功能得到扩展.M文件有两种形式:命令文件和函数文件当用户要运行的命令较多时,如果直接在命令窗口中逐条输入和运行,有诸多不便.此时可通过编写命令文件来解决这个问题.另外,从前面的许多例子可以看到:MATLAB的许多命令,需要用户通过编写函数文件来执行.ⅰ命令文件的创立进入MATLAB命令窗口后,选择“file”下拉式菜单中的“new”进入编辑/调试器(Editer/Debugger),在编辑/调试器中,编写符合语法规则的命令.编写完命令文件后,选择“file”下拉式菜单中的“save”项,然后依提示输入一个文件名.至此,完成了命令文件的创建.ⅱ函数文件的创立函数文件的创立方法与命令文件的创立方法完全一样,只是函数文件的第一句可执行语句是以function引导的定义语句,并且输入文件名时要与定义语句中的函数名相同.建立了函数文件或命令文件后,只要在命令窗口键入命令文件名或函数名,就可执行M 文件中所包含的所有命令.下面分别创建并运行一个命令文件和一个函数文件,以了解M文件的创建和运行的全过程.计算所有小于1000的Fibonnaci数.命令文件的创建和运行:⑴在MATLAB的命令窗口点击“新建”工具栏或在“file”下拉菜单中选“New”中的“M-file”项,进入编辑/调试器.⑵在编辑/调试器中,输入以下命令:% 计算小于1000的Fibonnaci数f=[1,1];i=1;while f(i)+f(i+1)<1000f(i+2)=f(i)+f(i+1);i=i+1;endf,i⑶在“file”下拉菜单中选“Save”项,依提示输入文件名“fibno”至此,完成了命令文件fibno.m的创建.⑷执行fibno.在MATLAB窗口中输入fibno并敲回车键,计算机依次执行fibno中的各条命令后显示如下的结果:ans =Columns 1 through 121 123 5 8 13 21 34 55 89 144Columns 13 through 16233 377 610 987函数文件的创建和运行:⑴在MATLAB的命令窗口点击“新建”工具栏或在“file”下拉菜单中选“New”中的“M-file”项,进入编辑/调试器.⑵在编辑/调试器中,输入以下命令:function f=ffibno(n)f=[1,1];i=1;while f(i)+f(i+1)<nf(i+2)=f(i)+f(i+1);i=i+1;endf⑶在“ffile”下拉菜单中选“Save”项,依提示输入文件名“ffibno”至此,完成了函数文件ffibno.m的创建.⑷执行ffibno.在MATLAB窗口中输入ffibno(1000)并敲回车键即可.六MATLAB的符号运算前面介绍的内容基本上是MATLAB的数值计算功能,参与运算过程的变量都是被赋了值的数值变量.在MATLAB环境下,符号运算是指参与运算的变量都是符号变量,即使是数字也认为是符号变量. 数值变量和符号变量是不同的.1 符号微积分下面着重介绍一些与微积分有关的指令,这些指令都需要符号表达式作为输入宗量.求和symsum(S) 对通项S 求和,其中k 为变量且从0变到k-1.symsum(S,v) 对通项S 求和,指定其中v 为变量且v 从0变到v-1. symsum(S,a,b) 对通项S 求和,其中k 为变量且从a 变到b .symsum(S,v,a,b) 对通项S 求和,指定其中v 为变量且v 从a 变到b . 例:求∑-=10k i i ,键入k=sym('k') % k 是一个符号变量;symsum(k)得 ans = 1/2*k^2-1/2*k例:求∑=1002k k,键入:symsum(k^2,0,10)得 ans = 385 例:求∑+∞=0!k kk x 键入symsum('x'^k/sym('k!'),k,0,inf),得 ans = exp(x)这最后的一个例子是无穷项求和.求极限limit(P) 表达式P 中自变量趋于零时的极限limit(P,a) 表达式P 中自变量趋于a 时的极限limit(P,x,a,'left') 表达式P 中自变量x 趋于a 时的左极限 limit(P,x,a,'right') 表达式P 中自变量x 趋于a 时的右极限 例:求xx x sin lim 0→,键入 P=sym('sin(x)/x');limit(P)得 ans = 1 例:求xx 1lim 0+→ 键入 P=sym('1/x');limit(P,'x',0,'right')得 ans = inf 例:求hx h x h sin )sin(lim 0-+→,键入: P=sym('(sin(x+h)-sin(x))/h');h=sym('h');limit(P,h,0)得ans = cos(x) 例:求)lim , )1(lim (-x x x x e xa -∞→-∞→+, 键入 v=sym('[(1+a/x)^x,exp(-x)]');limit(v,'x',inf,'left')得 ans = [ exp(a), 0]求导数diff(S,v) 求表达式S 对变量v 的一阶导数.diff(S,v,n) 求表达式S 对变量v 的n 阶导数.例如:设A=⎪⎪⎪⎭⎫ ⎝⎛++21cos 11x e x x b a ,求dx dA 键入命令: syms a b x; A= [1/(1+a),(b+x)/cos(x);1,exp(x^2)];diff(A,'x')得 ans = [0, 1/cos(x)+(b+x)/cos(x)^2*sin(x)][0, 2*x*exp(x^2)]例:求y=sinx+e x 的三阶导数,键入命令:diff('sin(x)+x*exp(x)',3)得 ans = -cos(x)+3*exp(x)+x*exp(x) 例:设⎪⎪⎪⎭⎫ ⎝⎛+=xyi n e xy y x y x A 1sin ,求A 的先对x 再对y 的混合偏导数.可键入命令: S=sym('[x*sin(y),x^n+y;1/x/y,exp(i*x*y)]');dsdxdy=diff(diff(S,'x'),'y')得: dsdxdy = [ cos(y), 0] [ 1/x^2/y^2, i*exp(i*x*y)-y*x*exp(i*x*y)]例:求y=(lnx)x的导数.可键入命令:p='(log(x))^x';p1=diff(p,'x')得:p1 = log(x)^x*(log(log(x))+1/log(x))例:求y=xf(x2)的导数.可键入命令:p='x*f(x^2)';p1=diff(p,'x')得:p1 = f(x^2)+2*x^2*D(f)(x^2)例:求xy=e x+y的导数.可键入命令:p='x*y(x)-exp(x+y(x))';p1=diff(p,'x')得:p1 = y(x)+x*diff(y(x),x)-(1+diff(y(x),x))*exp(x+y(x))再键入p2='y+x*dy-(1+dy)*exp(x+y)=0';dy=solve(p2,'dy')%把dy作为变量解方程得dy= -(y-exp(x+y))/(x-exp(x+y))求Taylor展开式taylor(f,v) f对v的五阶Maclaurin展开.taylor(f,v,n) f对v的n-1阶Maclaurin展开.例:求sinxe-x 的7阶Maclaurin展开.可键入f=sym('sin(x)*exp(-x)');F=taylor(f,8)得F = x-x^2+1/3*x^3-1/30*x^5+1/90*x^6-1/630*x^7例:求sinxe-x 在x=1 处的7阶Taylor展开.可键入f=sym('sin(x)*exp(-x)');F=taylor(f,8,1) 得F = sin(1)*exp(-1)+(-sin(1)*exp(-1)+cos(1)*exp(-1))*(x-1)-cos(1)*exp(-1)*(x-1)^2+(1/3*sin(1)*exp(-1)+1/3*cos(1)*exp(-1))*(x-1)^3-1/6*sin(1)*exp(-1)*(x-1)^4+(1/30*sin(1)*exp(-1)-1/30*cos(1)*exp(-1))*(x-1)^5+1/90*cos(1)*exp(-1)*(x-1)^6+(-1/630*cos(1)*exp(-1)-1/630*sin(1)*exp(-1))*(x-1)^7 多元函数的Taylor展开MATLAB不能直接进行多元函数的Taylor展开.必须先调用MAPLE函数库中的mtaylor命令.方法为:在MATLAB的工作窗口中键入maple('readlib(mtaylor)')mtaylor的格式为mtaylor(f,v,n)f为欲展开的函数式v为变量名.写成向量的形式:[var1=p1,var2=p2,…,varn=pn],展开式将在(p1,p2,…,pn)处进行.如只有变量名,将在0点处展开.n为展开式的阶数(n-1阶).要完成Taylor展开,只需键入maple('mtaylor(f,v,n)')即可.例:在(x0,y0,z0)处将F=sin xyz进行2阶Taylor展开.键入syms x0 y0 z0maple('readlib(mtaylor)');maple('mtaylor(sin(x*y*z),[x=x0,y=y0,z=z0],2)')得:ans = sin(x0*y0*z0)+cos(x0*y0*z0)*y0*z0*(x-x0)+cos(x0*y0*z0)*x0*z0*(y-y0) +cos(x0*y0*z0)*x0*y0*(z-z0)求积分int(P) 对表达式P 进行不定积分.int(P,v) 以v 为积分变量对P 进行不定积分.int(P,v,a,b) 以v 为积分变量,以a 为下限,b 为上限对P 进行定积分. 例:求⎰+-dx x x22)1(2,可键入int('-2*x/(1+x^2)^2')得 ans = 1/(1+x^2) 例:求⎰+dz z x)1(2,可键入键入int('x/(1+z^2)','z')得 ans = atan(z)*x例:求⎰+10)1ln(dx x x ,可键入int('x*log(1+x)',0,1) 得ans = 1/4例:求⎰tt xdx ln sin 2可键入:int('2*x','sin(t)','log(t)') 得:ans = log(t)^2-sin(t)^2对(符号)矩阵积分例:求()⎰⎰dt e dt e at t ,输入int('[exp(t),exp(a*t)]'),得:ans = [ exp(t), 1/a*exp(a*t)]求符号方程的解ⅰ线性方程组的求解线性方程组的形式为A*X=B ;其中A 至少行满秩.X=linsolve(A,B) 输出方程的特解X .例:解方程组⎪⎪⎭⎫ ⎝⎛=⎪⎪⎭⎫ ⎝⎛11cos sin sin cos X t t t t .键入 A=sym('[cos(t),sin(t);sin(t),cos(t)]');B=sym('[1;1]');c=linsolve(A,B)c =[ 1/(sin(t)+cos(t))][ 1/(sin(t)+cos(t))]ⅱ 代数方程的求解solve(P,v)对方程P 中的指定变量v 求解.v 可省略.solve(p1,P2,…,Pn,v1,v2,…,vn)对方程P1,P2,…Pn 中的指定变量v1, v2…vn 求解.例:解r x p =+sin ,可输入solve('p+sin(x)=r') 得:ans =-asin(p-r)例:解⎩⎨⎧=+-=++034322x x y xy x ,可输入: P1='x^2+x*y+y=3';P2='x^2-4*x+3=0';[x,y]=solve(P1,P2) 得:x = [ 1][ 3]y = [ 1][ -3/2]解⎩⎨⎧=-=++1022v u v u a ,可输入: P1='a+u^2+v^2=0';P2='u-v=1';[u,v]=solve(P1,P2,'u','v') 得:u = [ 1/2+1/2*(-1-2*a)^(1/2)][ 1/2-1/2*(-1-2*a)^(1/2)]v = [ -1/2+1/2*(-1-2*a)^(1/2)][ -1/2-1/2*(-1-2*a)^(1/2)]对于有些无法求出解析解的非线性方程组,MATLAB 只给出一个数值解.这一点可以从表示解的数字不被方括号括住而确定.例:解⎪⎩⎪⎨⎧=-=-+20)sin(2y x ye y x x 键入: [x,y]=solve('sin(x+y)-exp(x)*y=0','x^2-y=2') 得:x = -6.0173272500593065641097297117905y = 34.208227234306296508646214438330由于这两个数字没有被[ ]括住,所以它们是数值解.另外,可利用solve 来解线性方程组的通解.例:解⎪⎪⎪⎭⎫ ⎝⎛=⎪⎪⎪⎭⎫ ⎝⎛246714922531372X 键入P1='2*x1+7*x2+3*x3+x4=6'; P2='3*x1+5*x2+2*x3+2*x4=4';P3='9*x1+4*x2+x3+7*x4=2';u=solve(P1,P2,P3,'x1','x2','x3','x4')Warning: 3 equations in 4 variables.u = x1: [1x1 sym]x2: [1x1 sym]x3: [1x1 sym]x4: [1x1 sym]可以看到:屏幕提示“有3个方程4个变量”,意为解不唯一(有时会提示解不唯一).且输出的是解的结构形式.为进一步得到解,可输入:u.x1,u.x2,u.x3,u.x4, 得:ans = x1ans = -5*x1-4*x4ans = 11*x1+9*x4+2ans = x4这样就得到了原方程组的通解.⑷ 解符号微分方程解符号微分方程的命令格式为: dsolve('eq1','eq2',…).其中eq 表示相互独立的常微分方程、初始条件或指定的自变量.默认的自变量为t .如果输入的初始条件少于方程的个数,则在输出结果中出现常数c1,c2等字符.关于微分方程的表达式有如下的约定:字母y 表式函数,Dy 表示y 对t 的一阶导数;Dny 表示y 对t 的n 阶导数. 例如:求⎪⎩⎪⎨⎧-==x dtdy ydt dx 的解可键入:[x,y]=dsolve('Dx=y','Dy=-x') 得x =cos(t)*C1+sin(t)*C2y =-sin(t)*C1+cos(t)*C2dsolve 中的输入宗量最多只能有12个,但这并不妨碍解具有多个方程的方程组,因为可以把多个方程或初始条件定义为一个符号变量进行输入.例如求 g f dt df43+= ,g f dt dg34+-= , f(0)=0 , g(0)=1的解.可输入指令: P='Df=3*f+4*g,Dg=-4*f+3*g';v='f(0)=0,g(0)=1';[f,g]=dsolve(P,v)f = exp(3*t)*sin(4*t)g = exp(3*t)*cos(4*t)注意:微分方程表达式中字母D 必须大写. 例如求解微分方程⎪⎩⎪⎨⎧=''='=-=0(0)y 0,(0)y 1,y(0)33y dx yd可输入y=dsolve('D3y=-y','y(0)=1,Dy(0)=0,D2y(0)=0','x') 得:y = (1/3+2/3*exp(1/2*x)*cos(1/2*3^(1/2)*x)*exp(x))/exp(x)最后看一个解非线性微分方程的例子:dsolve('(Dy)^2+y^2=1','y(0)=0','x')ans = [ sin(x)][ -sin(x)]对于无法求出解析解的非线性微分方程,屏幕将提示出错信息.微分方程的数值解及其它问题的数值解ⅰ常微分方程的数值解MATLAB提供了求微分方程数值解的指令:[t,x]=ode23('fname',[t0,tf],x0,tol,trace)[t,x]=ode45('fname',[t0,tf],x0,tol,trace)这两个格式中的输入参数意义完全一样.下面介绍这两个格式的有关内容及各参数的意义.这两个格式都采用Runge--Kutta法求解微分方程的数值解.它们是针对一阶微分方程组设计的.因此,如果待解的是高阶微分方程,那么首先要化成形式为x'=f(t,x)的一阶微分方程组.称为“状态方程”.‘fname’是f(t,x)的函数名.该函数以x'为输出,以t,x为输入变量,注意次序不能颠倒.t0和tf分别是积分的起始值和终止值.x0是初始值,以向量的形式输入.tol是用来控制精度的参数,可缺省.缺省时ode23默认tol=1.e-3;ode45默认tol=1.e-6.trace用来控制是否显示中间结果,可缺省.缺省时,默认trace=0,不显示.输出结果t和x分别是时间向量和相应的状态向量.虽然ode45比ode23的精度高,但它的运算速度更快.例:求著名的Van der pol 方程⎩⎨⎧=--=x yy x y x )1(2,并绘出其解的图形. 第一步:在编辑器中编写名为fname 的M 文件.function X=fname(t,x)X=zeros(2,1);X(1)=(1-x(2)^2)*x(1)-x(2);X(2)=x(1);第二步:将此文件存放于自己的文件夹中听候调用.第三步:在MATLAB 的命令窗口调用这个函数,即键入如下命令:[t,x]=ode45('fname',[0,20],[0,0.5]);plot(t,x)ⅱ 数值积分quad('fname',a,b,tol,trace) Simpson 法求数值积分.quad8('fname',a,b,tol,trace) Newton-Cotes 法求数值积分.fname 是被积函数文件名b,a 分别是积分上下限用tol 来控制积分精度.可缺省.缺省时默认tol=0.001.用trace 来控制是否用图形显示积分过程.可缺省.缺省时默认trace=0,不显示图形.例如:求 ⎰-302x e dx第一步:在编辑器中建立被积函数的M文件.取名为fname即在编辑器中输入:function y=fname(x)y=exp(-x^2);第二步:将此文件存放于自己的文件夹中.第三步:在MATLAB环境下调用fname.即输入s=quad8('fname',0,3)就可以得到结果:s =8862。
MATLAB百科
MATLAB目录MATLAB的简介发展历程应用Matlab的优势和特点Matlab常用工具箱常用函数[编辑本段]MATLAB的简介MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLA B和Simulink两大部分。
MATLAB是矩阵实验室(Matrix Laboratory)的简称,和Mathematica、Mapl e并称为三大数学软件。
它在数学类科技应用软件中在数值计算方面首屈一指。
MAT LAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完相同的事情简捷得多,并且mathwork也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。
在新的版本中也加入了对C,FORTRAN,C++ ,JAVA的支持。
可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。
[编辑本段]发展历程20世纪70年代,美国新墨西哥大学计算机科学系主任Cleve Moler为了减轻学生编程的负担,用FORTRAN编写了最早的MATLAB。
1984年由Little、Moler、St eve Bangert合作成立了的MathWorks公司正式把MATLAB推向市场。
到20世纪9 0年代,MATLAB已成为国际控制界的标准计算软件。
版本更新[编辑本段]应用MATLAB 产品族可以用来进行以下各种工作:● 数值分析● 数值和符号计算● 工程与科学绘图● 控制系统的设计与仿真● 数字图像处理● 数字信号处理● 通讯系统设计与仿真● 财务与金融工程MATLAB 的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。
matlab简介
MATLAB简介一.MATLAB的特点MATLAB(Matrix Laboratory)是美国Math Works软件公司于1982年推出的一套用于工程和科学计算的可视化工具软件。
以矩阵运算为基础,把计算、可视化、程序设计融合到了一个简单易用的交互式工作环境中。
在这里可以实现工程计算、算法研究、符号运算、建模和仿真、原型开发、数据分析及可视化、科学和工程绘图、应用程序设计等等功能。
它现在已经成为世界上应用最广泛的工程计算软件。
以下为其几个特色:•功能强的数值运算 - 在MATLAB环境中,有超过500种数学、统计、科学及工程方面的函数可使用,函数的标示自然,使得问题和解答像数学式子一般简单明了,让使用者可全力发挥在解题方面,而非浪费在电脑操作上。
•先进的资料视觉化功能 - MATLAB的物件导向图形架构让使用者可执行视觉数据分,并制作高品质的图形,完成科学性或工程性图文并茂的文章。
•高阶但简单的程式环境 - 做为一种直译式的程式语言,MATLAB容许使用者在短时间内写完程式,所花的时间约为用 FORTRAN 或 C 的几分之一,而且不需要编译(compile)及联结 (link) 即能执行,同时包含了更多及更容易使用的内建功能。
•开放及可延伸的架构 - MATLAB容许使用者接触它大多数的数学原使码,检视运算法,更改现存函数,甚至加入自己的函数使 MATLAB成为使用者所须要的环境。
•丰富的程式工具箱 - MATLAB的程式工具箱融合了套装前软体的优点,与一个灵活的开放但容易操作之环境,这些工具箱提供了使用者在特别应用领域所需之许多函数。
现有工具箱有:符号运算(利用Maple V的计算核心执行)、影像处理、统计分析、讯号处理、神经网路、模拟分析、控制系统、即时控制、系统确认、强建控制、弧线分析、最佳化、模糊逻辑、mu分析及合成、化学计量分析。
MATLAB主要包括主包、Simulink和工具箱三大部分组成。
MATLAB简介
3、矩阵运算
基本算术运算 、-( *(乘 /(右除 右除) 左除) +(加)、-(减)、*(乘)、/(右除)、\(左除)、 ^(乘方 乘方) ^(乘方) • 运算是在矩阵意义下进行的,单个数据的算术 运算是在矩阵意义下进行的, 运算只是一种特例。 运算只是一种特例。 • 加减运算允许参与运算的两矩阵之一是标量。 加减运算允许参与运算的两矩阵之一是标量。 标量与矩阵的所有元素分别进行加减操作。 标量与矩阵的所有元素分别进行加减操作。 • 标量可与任何矩阵相乘。 标量可与任何矩阵相乘。
2、函数文件: 函数文件:
在函数文件中,定义了用户所需要的函数, 在函数文件中,定义了用户所需要的函数, 当某些程序使用该函数时即可调用该函数。 当某些程序使用该函数时即可调用该函数。 MATLAB函数文件的组成: MATLAB函数文件的组成: 函数文件的组成 文件第一行: ★文件第一行:函数定义行
常用的矩阵生成函数有: 常用的矩阵生成函数有: eye 产生单位矩阵 产生0 zeros(m,n) 产生0矩阵 ones(m,n) 产生幺矩阵 rand(m,n) 产生0~1间均匀分布的随机矩阵 产生0 产生均值为0 方差为1 randn 产生均值为0,方差为1的标准正 态分布随机矩阵。 态分布随机矩阵。
function[返回参数1 返回参数2 function[返回参数1,返回参数2,……]= 返回参数 ]= 函数名(输入参数1 输入参数2 函数名(输入参数1,输入参数2,……) )
这一行的有无, 这一行的有无,是区分命令文件与函数文件 的重要标志; 的重要标志; 注意: 注意:函数文件保存的文件名应与用户定义 的函数名一致。 的函数名一致。
MATLAB简介 MATLAB简介
Matlab操作基础 一、Matlab操作基础
第1章 MATLAB简介
帮助演示
选择菜单Help中的“Demo”选项。 在帮助导航/浏览器窗口中选择“Demo”面板。 在命令窗口中输入“Demo”命令。
河北科技大学信息学院
27
1.6 SIMULINK简介
1.6.1 Simulink基本知识
Simulink模块库
在命令窗口输入simulink 或者单击工具栏中的 Simulink图标,打开 Simulink模块库窗口。
河北科技大学信息学院
16
MATLAB主窗口
工具栏
工具栏中各项的作用由左到右依次是: 新建一个M文件; 打开一个已有的M文件; 剪切; 复制; 粘贴; 撤销上一步操作; 恢复上一步操作; 打开Simulink仿真器; 打开用户界面设计窗口; 打开MATLAB帮助系统; 设置当前目录
河北科技大学信息学院
河北科技大学信息学院
3
河北科技大学信息学院
4
有用的网址
/products/m
atlab/
/ /
河北科技大学信息学院
5
1.2 MATLAB的特点
友好的工作平台和编程环境
河北科技大学信息学院
30
Logic and Bit Operations:逻辑和位操作模数块组
包含常用的逻辑运算(Logical Operator)和关系运算(Relation Operator)模块, 另外还有检测开区间(Interval Test)、动态检测开区间(Interval Test Dynamic)、组合逻辑(Combinatorial Logic)、与零比较 (Compare to Zero)、与常数比较(Compare to Constant)、 位置位(Bit Set)、位清零(Bit Clear)、逐位操作(Bitwise Operator)、移位运算(Shift Arithmetic)、位提取(Extract Bits)、检测递增(Detect Increase)、检测递减(Detect Decrease)、检测跳变(Detect Change)、检测正上升沿 (Detect Rise Positive)、检测负下降沿(Detect Fall Negative)、检测非负上升沿(Detect Rise Nonnegative)、检 测非负下降沿(Detect Fall Nonnegative)。
MATLAB简介
数学软件MATLAB简介MATLAB是美国MathWorks公司于1984年推出的数学软件,它集数值分析、矩阵运算、信号处理和图形显示于一身,构成了一个使用方便、界面友好的用户环境。
在MATLAB窗口下,对于所要求解的问题,用户只需简单地列出数学表达式,其结果便以数值或图形的方式显示出来。
1.MATLAB的发展历程(1)20世纪70年代中期:Cleve Moler博士等人开发了EISPACK(求解特征值)和LINPACK(求解线性方程)的FORTRAN程序库(代表了当时矩阵计算软件的最高水平)。
(2)20世纪70年代后期,Cleve Moler(美国New Mexico大学计算机系主任)给学生讲授线性代数时,为学生编写了使用EISPACK 和LINPACK的接口程序,并以MARLAB来命名(Matrix Laboratory 两个单词的前3个字母组合,即矩阵实验室)。
以后数年中,MARLAB在多所大学里作为教学辅助软件使用,并作为免费软件广为流传。
(3)1983年春天,Cleve Moler到Stanford大学讲学,MATLAB 引起了工程师John Little的极大兴趣,他敏锐地觉察到MATLAB 在工程领域的广阔前景。
同年他和Cleve Moler、Steve Bangert一起,用C语言开发了第二代专业版MATLAB,使之同时具备了数值计算和数据图视化功能。
(4)1984年,Cleve Moler和John Little成立了MathWorks 公司,正式把MATLAB推向市场,并继续进行MATLAB的研究与开发。
1992年MathWorks公司推出MATLAB4.0。
1997年推出MATLAB5.0(真正32位计算)。
2000年推出MATLAB6.0版本,2003年推出MATLAB6.5。
2004年7月,推出MATLAB7.0版本,2007年推出MATLAB7.3。
经过多年的国际竞争,MATLAB已经占据了数值计算软件市场的主导地位,发展成为适合多学科、多种工作平台的功能强劲的大型数学软件。
什么是MATLAB
MATLAB简介MATLAB软件是由美国Mathworks公司推出的用于数值计算和图形处理的科学计算系统环境。
MATLAB是英文MATrix LABoratory(短阵实验室)的缩写。
它的第1版(DoS版本1.0)发行于1984年,经过十几年不断改进,现今已推出它的WINDWS XP版本(2009b版)。
新的版本集中了日常数学处理中的各种功能,包括高效的数值计算、矩阵运算、信号处理和图形生成等功能。
在MATLAB环境下,用户可以集成地进行程序设计、数值计算、图形绘制、输入输出、文件管理等各项操作。
MATLAB提供了一个人机交互的数学系统环境,该系统的基本数据结构是矩阵,在生成矩陈对象时,不要求作明确的维数说明。
与利用C语言或FORTRAN语言作数值计算的程序设计相比,利用MATLAB可以节省大量的编程时间。
在工程技术界,MATLAB被用来解决一些实际课题和数学模型问题。
典型的应用包括数值计算、算法预设计与验证,以及一些特殊的短阵计算应用,如自动控制理论、统计、数字信号处理(时间序列分拆)等。
进入了20世纪90年代,MATLAB已经成为国际控制界公认的标准计算软件。
MATLAB因其提供计算、图形、文字处理的统一环境而深受欢迎。
MTALAB系统由五个主要部分组成,下面分别加以介绍。
(1)MATALB语言是高层次的矩阵/数组语言。
具有条件控制、函数调用、数据结构、输入输出、面向对象等程序语言特性。
利用它既可以进行小规模编程,完成算法设计和算法实验的基本任务,也可以进行大规模编程,开发复杂的应用程序。
(2)MATLAB工作环境这是对MATLAB提供给用户使用的管理功能的总称。
包括管理工作空间中的变量据输入输出的方式和方法,以及开发、调试、管理M 文件的各种工具。
(3)MATLAB图形系统的基础,包括完成2D和3D数据图示、图像处理、动画生成、图形显示等功能的高层MATLAB命令,也包括用户对图形图像等对象进行特性控制的低层MATLAB命令,以及开发GUI应用程序的各种工具。
MATLAB 简介
第4章MATLAB简介MATLAB是一门计算机编程语言,取名来源于Matrix Laboratory,本意是专门以矩阵的方式来处理计算机数据,它把数值计算和可视化环境集成到一起,非常直观,而且提供了大量的函数,使其越来越受到人们的喜爱,工具箱越来越多,应用范围也越来越广泛。
MATLAB最突出的特点就是简洁。
MATLAB用更直观的,符合人们思维习惯的代码,代替了C和FORTRAN语言的冗长代码。
MATLAB给用户带来的是最直观,最简洁的程序开发环境。
MATLAB还具有以下特点:(1) 语言简洁紧凑,使用方便灵活,库函数极其丰富。
(2) 运算符丰富。
(3) MATLAB既具有结构化的控制语句(如for循环,while循环,break语句和if语句),又有面向对象编程的特性。
(4) 程序限制不严格,程序设计自由度大。
(5) 程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上运行。
(6) MATLAB的图形功能强大。
(7) MATLAB的缺点是,它和其他高级程序相比,程序的执行速度较慢。
由于MATLAB的程序不用编译等预处理,也不生成可执行文件,程序为解释执行,所以速度较慢。
(8) 功能强大的工具箱是MATLAB的另一特色。
(9) 源程序的开放性。
开放性也许是MATLAB最受人们欢迎的特点。
4.1 MATLAB的安装MATLAB的安装非常简单,这里以MATLAB 7.0版本为例。
运行setup后,输入正确的序列号,选择好安装路径和安装的模块,几乎是一直回车就可以了。
这里有一点要注意的是,由于不同操作系统设置,可能会出现一些意外错误,而且越高版本的MATLAB对计算机系统的要求也越高,如6.1版本要求至少64M内存,最好128M。
所以根据自身情况选择适合的版本安装,最好还要在操作系统初安装后就安装,避免出现意外。
4.2 MATLAB的启动运行MATLAB的启动运行:#:\MATLAB7.0\bin\win32\matlab.exe(其中#为安装盘符)。
2024版Matlab简介PPT课件
Matlab简介PPT课件•Matlab概述•Matlab基础知识•矩阵运算与线性代数应用•图形绘制与可视化技巧目录•数值计算与优化方法探讨•程序设计实践案例分析Matlab概述01Matlab定义与发展历程定义Matlab是一种用于算法开发、数据可视化、数据分析以及数值计算的高级语言和交互式环境。
发展历程由MathWorks公司开发,历经多个版本迭代,逐渐成为科学计算和工程领域的标准工具。
主要功能及应用领域主要功能数值计算、符号计算、图形处理、编程与仿真等。
应用领域信号处理、控制系统、通信、图像处理、金融建模等。
编程环境与界面介绍编程环境提供丰富的函数库和工具箱,支持多种编程范式,如面向对象编程。
界面介绍集成开发环境包括编辑器、命令窗口、工作区等,方便用户进行代码编写、调试和数据可视化。
版本更新与兼容性版本更新Matlab不断推出新版本,增加新功能和优化性能,提高用户体验。
兼容性新版本通常兼容旧版本的文件和代码,但部分功能可能有所调整或改进。
同时,Matlab也提供了丰富的文档和社区支持,帮助用户顺利过渡到新版本。
Matlab基础知识02Matlab支持多种数据类型,包括数值型、字符型、逻辑型、结构体、单元数组等。
变量声明在Matlab中,变量无需事先声明,可以直接赋值使用。
同时,Matlab也支持显式声明变量类型和大小。
数据类型数据类型与变量声明VSMatlab提供了丰富的运算符,包括算术运算符、关系运算符、逻辑运算符等。
在书写表达式时,需要注意运算符的优先级和结合性,以及使用括号来改变运算顺序。
运算符表达式书写规则运算符和表达式书写规则03其他流程控制语句Matlab 还支持break 、continue 、return 等流程控制语句,用于在特定条件下控制程序的执行流程。
01条件语句Matlab 中常用的条件语句有if 语句和switch 语句,用于根据条件执行不同的代码块。
02循环语句Matlab 提供了for 循环和while 循环两种循环结构,用于重复执行某段代码。
matlab简介
6
-3
符号的作用
• 分号如果出现在指令后,屏幕上将不显示结果。
• 只要是赋过值的变量,不管是否在屏幕上显示
过,都存储在工作空间中,以后可随时显示或 调用。变量名尽可能不要重复,否则会覆盖 。
• 当一个指令或矩阵太长时,可用…续行。
数值运算-矩阵
生成方法:
通过语句和函数产生矩阵; 在命令窗口中直接输入矩阵(矩阵元素必须用[ ] 括住;矩阵元素必须用逗号或空格分隔;在[ ]内 矩阵的行与行之间必须用分号分隔;矩阵按列向 量来访问) 在M文件中建立矩阵; 从外部的数据文件中导入矩阵。
第一专题计算机作业
1、编写GUI界面
第二专题
Matlab数值运算及符号运算
数值运算—变量
变量名不超过19个字符,区分字母大小写 a=1+2i; b=sin(2)+cos(2)*i; z=complex(x,y); %x,y is real
z=complex(x);
i=10;
工具大大提高工作效率。
GUIDE设计工具
GUIDE设计工具
按钮
滚动条
单选按钮
编辑框 下拉列表 牵牢按钮 面板
复选按钮 静态文本
列表框 坐标盒
部分控件的概念和作用
按钮:通过鼠标点击按钮实现某种行为,并调用相
应的回调子函数;
牵牢按钮:能够产生on或off。点击该按钮将使按
钮外观保持下陷状态,同时调用回调函数。再次点
数值运算-数组运算
数组之间运算时,每个数组必须维数相同的,且 用点乘或点除。 数组与标量的四则运算是指数组中的每个元素与 标量进行加、减、乘、除运算。 数组运算exp,pow2,log,log10,log2,sqrt是 数组中每个元素进行相对应的运算。 数组排序:sort(a,mode), ascend按升序排列, descend按降序排列 。
Matlab简介
常用函数
eps:浮点相对精度 exp:自然对数的底 i 或j:基本虚数单位 数e
nan或NaN:非数值 inf 或Inf:无限大, (Not a number), 例如1/0 例如0/0,∞/∞
pi:圆周率π
Matlab内部常数
intmax:可表达的最 intmin:可表达的最 lasterr:存放最新的 大正整数。 小负整数。 错误信息
优势特点:
1) 高效的数值计算及符号计算功能,能使用户从繁杂的 数学运算分析中解脱出来; 2) 具有完备的图形处理功能,实现计算结果和编程的可 视化; 3) 友好的用户界面及接近数学表达式的自然化语言,使 学者易于学习和掌握; 4) 功能丰富的应用工具箱(如信号处理工具箱、通信工具 箱等) ,为用户提供了大量方便实用的处理工具。
语言 MATLAB语言是一种高级的基于矩阵/数组的语言,它有程序流控制、
函数、数据结构、输入/输出和面向对象编程等特色。
图形处理系统 图形处理系统使得MATLAB能方便的图形化显示向量和矩阵,而且能对
图形添加标注和打印。它包括强大的二维三维图形函数、图像处理和动
画显示等函数。 应用程序接口 MATLAB应用程序接口(API)是一个使MATLAB语言能与C、Fortran等 其它高级编程语言进行交互的函数库。该函数库的函数通过调用动态链
财务与金融工程
常用工具箱:
MATLAB包括拥有数百个内部函数的主包和三十几种工具包。 工具包又可以分为功能性工具包和学科工具包。功能工具包用 来扩充MATLAB的符号计算,可视化建模仿真,文字处理及实时 控制等功能。学科工具包是专业性比较强的工具包,控制工具
包,信号处理工具包,通信工具包等都属于此类。
realmax:系统所能 nargin:函数的输入引 lastwarn:存放最新 表示的最大正实数, 数个数 的警告信息 默认1.7977×10^308
Matlab软件介绍
龙格库塔方法应用实例之一
采用ode45求解如下方程:
y ' ( y 3t ) / t 2 , 且1 t 4 t0 1, y (t0 ) 2
odefun=@(t,y) (y+3*t)/t^2; %定义函数 tspan=[1 4];%求解区间 y0=-2;%初值 [t,y]=ode45(odefun,tspan,y0); plot(t,y)%作图 title('t^2y''=y+3t,y(1)=-2,1<t<4') legend('t^2y''=y+3t') xlabel('t') ylabel('y')
[x,y]=ode45('myfun02',[0 15],[25 2]); plot(x,y(:,1),'-',x,y(:,2),'*') %画出y(1),y(2)的函数图 legend('y1函数图','y2函数图')
Matlab工具箱扩展(Robotics Toolbox )
安装Robotics Toolbox for MATLAB 1、下载该工具箱 2、将压缩包解压到Toolbox文件夹下
拆分窗口:subplot命令
x=0.1:pi/15:2*pi 拆分窗口绘图实例。在同一窗口作出如下的函数图 y1=exp(x); x y log(x) y sin(x) y cos(x) y e y2=log(x); y3=sin(x); y4=cos(x); subplot(2,2,1); plot(x,y1); title('exp(x)'); subplot(2,2,2); plot(x,y2); title('ln(x)'); subplot(2,2,3); plot(x,y3); title('sin(x)'); subplot(2,2,4); plot(x,y4); title('cos(x)');
matlab简介
1 2 3 建立矩阵 A 5 2 1 ,方法如下: 0 4 7
1 2 3 建立矩阵 A 5 2 1 ,方法如下: 0 4 7 >>clear; A=[1,-2,3;5,2, -1;0,4,7] A= 1 -2 3 5 2 -1 或 0 4 7
limit(f,x,a,'right') 求x从右侧或从左侧趋近a 或limit(f,x,a,'left') 时表达式 f 的极限.
例 求极限 (1) lim (
n
n n n ), (2) lim 1 2 x x
3x
解 MATLAB命令及运行结果为
(1) >> syms n; %定义符号变量 n
解线性方程组 例 判断方程组解的情况,若有无穷多解,求出通解.
x1 x2 4 x3 2 x4 0 x1 x2 x3 2 x4 0 3 x x 7 x 2 x 0 2 3 4 x 1 1 3 x2 12 x3 6 x4 0 解 先判断方程组解的情况. 用rref命令将系数矩阵化
+ (加)、 - (减)、 * (乘)、 / (除)、^ (乘幂)
例 建立变量y并使其值为3,并计算
时x的值,其步骤为
x y y
3
① 用键盘在MATLAB指令窗中输入以下内容 >> y=3; 若表达式后面跟分号,将不显示结果.
>> x=y^3-sqrt(y) ② 按【Enter】键,该指令就被执行.
运行结果为
MATLAB图形功能 基本的绘图命令 例 作函数y(x)=x2sin(x2-x-2), -2 ≤x≤2的图形. 所用命令为
(完整版)Matlab简介
Matlab 简介1980 年,美国CleveMoier 博士在新墨西哥大学讲课时,认为高级语言的运用十分不便,于是创立了Matlab(MatrixLaboratory 的缩写),即矩阵实验室,早期的Matlab 软件是为了帮助老师和学生更好地学习,是作为一个辅助工具而之后逐渐演变成了一种实用性很强的工具。
1984,MathWorks 软件公司推出了一种高级语言。
它不但能编程还能用于数值计算以及图形显示,并用与控制系统以及工程设计。
90年,MathWorks 软件公司为Matlab 开发了一种新的用于图形控制及仿真模型建立的软件Simulink 。
它是Matlab 的一个扩展软件模块,这个模块为用户提供了一个用于建模仿真各种数学物理模型的软件,并且提供各种动态的结构模型,是用户可以快速方便的建模并且仿真,而不必写任何程序。
基于此优点,该工具很快被业界认可,并用于各种控制系统。
Matlab 编程工具不像C 语言那样难以掌握,所以在这种仿真环境下用户只需要简单的列出计算式,结果便会以数值或图形的方式显示出来。
从Matlab 被发明以来,它的快速性集成性、以及应用的方便性在高校中得到了好评。
它可以很方便的进行图形输出输入,同时还具有工具箱函数库,也能针对各个学科领域实现各种计算功能。
另外,Matlab 和其他高级语言也具有良好的接口,可以方便地与其他语言实现混合编程,这都进一步拓宽了它的应用范围和使用领域。
Matlab 由主程序、Simulink 动态仿真系统、和Matlab 工具箱三部分组成。
其中主程序包括Matlab 语言、工作环境以及应用程序;Simulink 动态仿真系统是一个相互交互的系统,用户制作一个模拟系统,并动态控制它;而工具箱就是Matlab 基本语句的各种子程序和函数库。
它有可以分为功能性和学科性工具箱。
功能性的工具箱主要用于扩展Matlab 的符号计算功能、图形建模功能、文字处理功能和与硬件的实时交互过程,如符号计算工具箱等;学科性的工具箱则有较强的专业性,用于解决特定的问题,如信号处理工具箱和通信工具箱。
matlab简介 特点
03
数值计算:MATLAB可以进行高效的数值计算,包括线性代数、数值积分、数 值微分、常微分方程求解等。
MATLAB矩阵运算
绘图功能
MATLAB具有强大的绘 图功能,可以方便地绘 制各种二维和三维图形 ,并且可以自定义图形
的样式和属性。
函数库
MATLAB提供了大量的 内置函数库,包括数学 函数库、科学计算函数 库、信号处理函数库、 图像处理函数库等。
MATLAB应用案例分析
• Matlab 是一种广泛应用于科学计算、算法开发、数据分析、图像处理、视频处理、信号处理、金融建模和分 析等领域的编程语言和开发环境。
THANKS
01
在MATLAB GUI中,事件是指 用户与图形界面交互时发生的 行为。例如,点击按钮,移动 滑动条,选择菜单项等。
02
回调函数是用于处理这些事件 的函数。当特定事件发生时, 回调函数将被执行。
03
通过使用回调函数,MATLAB GUI可以响应用户的输入并执 行相应的操作。
06
MATLAB应用案例分析
数据类型
MATLAB支持多种数据类型,包括数值型、字符型、逻辑型、结构体等。每种数据类型都有其特定的 操作和函数。
MATLAB语言的运算符和函数
运算符
MATLAB支持多种运算符,包括算术运算符(如加、减、乘、除)、比较运算符(如大于、小于、等于)、逻辑 运算符(如与、或、非)等。
函数
MATLAB具有大量的内置函数,这些函数可以对数据进行各种操作,如矩阵运算、绘图、拟合等。用户也可以自 定义函数以满足特定需求。
算法开发
MATLAB支持各种算法开发,包 括信号处理、图像处理、控制系 统等。
数据可视化
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
p = 3.1484 p = 3.1396
当n提高到50000时, 重复计算4次,计算结果: p = 3.1396 p = 3.1431
p = 3.1296 p = 3.1421
三、绘图功能
3.1 二维图形 plot(y)、 ezplot是绘制二维图形常用的命令 例 画出函数 y sin x 在-5 x 5的图形。
Matlab软件简介 哈尔滨理工大学 数学建模组
Matlab是数学建模常用软件之一,也是 在各个专业领域,特别是在工程实际领域 应用最广泛的计算软件,并已成为一个通 用的计算工具。
一、Matlab概述
1.1 Matlab的发展 Matlab语言是由美国的Clever Moler博 士于1980年开发的。
计算符号表达式F在x→a下的极限。 例2.计算 lim (3x 5) 1
x
x3 sin(
x
2
)
>> syms x; >> f=('(3*x-5)/(x^3*sin(1/x^2))'); >> limit(f,x,inf)
ans=3
3. 符号微分
diff(S)
求符号表达式S的微分 (即求一元导数)
1.3 Matlab语言的特点:
语言简洁紧凑,语法限制不严,程序设计 自由度大,可移植性好 运算符、库函数丰富 图形功能强大 界面友好、编程效率高 扩展性强
它将一个优秀软件的易用性与可靠性、通用 性与专业性 、一般目的的应用与高深的科学 技术应用有机地相结合。
Matlab是一种直译式的高级语言,比其它程 序设计语言容易。
>> R=1-binocdf (19,1000,0.028) R= 0.9544
2.4 概率应用实例-蒙特卡罗方法计算
随机投石试验
向图中边长为1的正 方形里随机投n块小石 头
n 很大
均匀分布在正方形中
假定有k个落在 四分之一圆里
4k / n
图5.1 随机投一块小石头落在四分之一单位圆里
Matlab具有十分强大的功能,
以上只是冰山一角 希望感兴趣的同学进一步研究 学习
2 4 11 3 5 x 1 3 x 1 2 2 6 2 1 7
原方程组写成矩阵形式为 则正规方程组为
2 4 11 2 3 1 2 3 5 x1 2 3 1 2 3 4 5 2 1 1 2 x 4 5 2 1 6 2 2 1 7
二、Matlab的简单应用
2.1 在线性代数中的应用
Matlab以矩阵作为数据操作的基本单位,
可以清楚地看到线性代数的运算由Matlab
轻松完成。
矩阵的运算
A = [1 2 0; 2 5 -1; 4 10 -1] %输入矩阵A A=
1 2 4
2 0 5 -1 10 -1
矩阵的转置
5. 解微分方程 在Matlab中,用大写字母D表示微分方程的 导数,例如Dy表示y’,D2y表示y”;D2y+Dy6*x= 0;Dy(1)=2表示y’(1)=2; 命令格式: dsolve(' 微分方程 ',' 初始条件 ',' 变量 ')
例 解
求解方程
d2y sin t 2 dt
d x 例3 求 dx (sin( 2 )) >> sym x >> diff(sin(x/2)) ans = 1/2*cos(1/2*x)
4. 符号积分
int(S,v)
计算表达式S对符号自变量v的不定积分 。 >> syms x t; >> A=cos(x*t); >> int(A,t) ans = 1/x*sin(x*t)
1.4 Matlab能在各领域做什么
工业研究与开发
数学教学,特别是线性代数
数值分析和科学计算方面的教学与研究
电子学、控制理论和物理学等工程和科学学科 方面的教学与研究 经济学、化学和生物学等计算问题的所有其他 领域中的教学与研究
1.5 Matlab工具箱
Matlab包含两部分内容:基本部分和各种可选的工 具箱。 Matlab工具箱分为两大类:功能性工具箱和学科性 工具箱。
2.2 在高等数学中的应用
Matlab和著名的符号计算语言Maple相结合,使得
Matlab具有符号计算功能。
符号运算即用字符串进行数学分析。 允许变量不赋值而参与运算。 用于微积分、复合导数、积分、二重积分、有理函 数、微分方程、泰勒级数展开、寻优等等,可求得 解析符号解。
1. 方程求根
2.4.1
应用实例-蒙特卡罗方法计算
重复计算4次,计算结果: p = 3.1364 p = 3.1360
解: 编写M文件如下:
n=10000; x=rand(2,n); k=0; for i=1:n if x(1,i).^2+x(2,i).^2<=1 k=k+1; en 1 P{X 19} 1 P{X 0} P{X 19} 1 (0.972)1000 1000(0.028)(0.972)100019 ?
在Matlab中用命令binocdf 很容易得到结果。
P{X 20} 1 P{X 19}
许多学科,在Matlab中都有专用工具箱,现已有30
多个工具箱,但Matlab语言的扩展开发还远远没有 结束,各学科的相互促进,将使得Matlab更加强大。
Matlab主工具箱 符号数学工具箱 Simulink仿真工具箱 控制系统工具箱 信号处理工具箱 图象处理工具箱 通讯工具箱 系统辨识工具箱 神经元网络工具箱 金融工具箱
2.3
概率应用实例
独立射击1000次,试求至少击中20次的概率。
例 某人进行射击,设每次射击的命中率为0.028,
解:设击中的次数为X,则X~B(1000,0.028). X的分布率为
1000 k 1000 k P( X k ) , k 1, 2,,1000, (0.028) (0.98) k
int(S,a,b)
计算表达式S对默认符号变量从a到b的定积分; a和b为双精度或符号变量。
int(S,v,a,b)
计算表达式S对变量v从a到b的定积分
例4
t2 2
e dt
>> syms t >> int(exp(-t^2/2),-inf,inf) ans = 2^(1/2)*pi^(1/2)
即 18 3 x1 51
3 46 x 48 2
3 46
令
18 A 3
,
x1 , x x2
51 b 48
利用MATLAB中矩阵的左除 >>X=A\b 即得
x1 3.0403 x2 1.2418 ,
2
解:
x=-5:.1:5;↙ %取绘图横坐标向量点x
y=sin(x.^2); ↙
plot(x,y),grid on↙
1 0.5 0 -0.5 -1 -5
0
y sin x2 图 曲线
5
3.2 三维图形 函数mesh用来生成函数的网格曲面
例
画出函数
z sin(x sin y)
在-3 x ,y 3上的图形。 t=-3:.1:3; [x,y]=meshgrid(t); z=sin(x+sin(y)); mesh(x,y,z)
设计者的初衷是为解决“线性代数”课 程的矩阵运算问题。
取名MATLAB即Matrix Laboratory 矩 阵实验室的意思。
1.2 Matlab的影响
就影响而言,至今仍然没有一个别的计算软件可与 Matlab匹敌。 在欧美大学里, Matlab是大学生必须掌握的基本工 具,诸如应用代数、数理统计、自动控制、数字信 号处理、模拟与数字通信、时间序列分析、动态系 统仿真等课程的教科书都把Matlab作为内容。 在国际学术界,Matlab已经被确认为准确、可靠的 科学计算标准软件。在许多国际一流学术刊物上, (尤其是信息科学刊物),都可以看到Matlab的应 用。
1
0.5
0
-0.5
-1 4 2 0 -2 -4 -3 -2 -1 0 1 2 3
cylinde(r,n) —— 三维柱面绘图函数
r 为半径;n为柱面圆周等分数
例:绘制三维陀螺锥面
t1=0:0.1:0.9;
t2=1:0.1:2;
r=[t1 -t2+2];
[x,y,z]=cylinder(r,30); surf(x,y,z); grid
3.7321 0.2679 1.0000
线性方程组求解
2. 无穷多解情况 用函数rref将增广矩阵化为最简形,如
x1 2 x2 3 x3 x4 x5 7 x x x x 2x 2 1 2 3 4 5 x1 x2 x3 2 x5 7 2 x1 2 x2 5 x3 x4 x5 18
用rref化简,有
ans=
1 0 0 0 -2 3 0 1 0 0 -1 1 0 0 1 0 1 2 0 0 0 1 -2 0 则方程的解即可给出
例 解:
2 x1 4 x2 11 3x1 5 x2 3 求超定方程组 x1 2 x2 6 的最小二乘解。 2 x1 x2 7