MATLAB7.0教学2012简介及数值运算1_第1页
MATLAB7.0教学2012简介及数值运算1_第2页
MATLAB7.0教学2012简介及数值运算1_第3页
MATLAB7.0教学2012简介及数值运算1_第4页
MATLAB7.0教学2012简介及数值运算1_第5页
已阅读5页,还剩131页未读 继续免费阅读

下载本文档

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

文档简介

主讲:郑雪飞2013.2.20MATLAB语言与应用MATLAB7.0课程介绍目标:了解MATLAB,能够熟练掌握数学(矩阵)运算,简单编程,简单的数据处理及基本图形绘制.了解常用工具箱。学习内容

MATLAB概述

MATLAB基本命令与基本函数

MATLAB符号运算

MATLAB的数值运算

MATLAB的数据图形表示

一、前言1、简介:MATLAB是美国Mathworks公司生产的一个可以完成各种精确计算和数据处理的、可视化的、强大的计算工具。

2、名称的由来:MATLAB是matrixlaboratory的前三个字母组成,矩阵实验室的意思。一开始它是一种专门用于矩阵数值计算的软件。自MATLAB4.0版本问世以来,该软件成为最具有吸引力,应用最为广泛的科学计算语言。我们这个课就拿MATLAB7.0版本来讲。

应用于数值计算、算法开发、数学建模、应用仿真、数据分析及可视、工程绘图以及应用开发方面。3、

主要包括以下六部分:MATLAB语言

MATLAB工作环境

MATLAB函数库MATLAB绘图MATLAB工具箱与simulinkMATLAB应用程序接口。二、matlab能在各领域做什么工业研究与开发数学教学,特别是线性代数数值分析和科学计算方面的教学与研究电子学、控制理论和物理学等工程和科学学科方面的教学与研究经济学、化学和生物学等计算问题的所有其他领域中的教学与研究例、用一个简单命令求解线性系统

3x1+x2-x3=3.6x1+2x2+4x3=2.1-x1+4x2+5x3=-1.4A=[31-1;124;-145];b=[3.6;2.1;-1.4];x=A\bx=1.4818-0.46060.3848对于线性系统有Ax=b例、用简短命令计算并绘制在0x6范围内的sin(2x)、sinx2、sin2x。x=linspace(0,6)y1=sin(2*x),y2=sin(x.^2),y3=(sin(x)).^2;plot(x,y1,x,y2,x,y3)阶梯图用四种方法描述cos(x)*sin(y)图形二、

MATLAB7.0的启动与工作界面历史命令窗口工作空间窗口开始按钮命令窗口MATLAB菜单MATLAB工具栏2.1MATLAB的启动和退出

启动:双击MATLAB图标在开始菜单中找到MATLAB程序MATLAB.exe退出:使用简捷键命令窗口中输入quit主窗口文件菜单中选择File/ExitMATLAB2.2通用窗口MATLAB7.0工作界面中的常用窗口包括命令窗口、历史命令窗口、当前工作目录窗口、工作空间浏览器窗口、变量编辑窗口、M文件编辑/调试窗口、帮助窗口和程序性能剖析窗口等。所有窗口都可以单独显示,使用Undock和Dock可使窗口单独出来和返回到MATLAB工作界面中。1.命令窗口(CommandWindow)在命令窗口中输入MATLAB的命令和数据后按回车键,立即执行运算并显示结果。MATLAB在命令窗口中的语句形式为:>>变量=表达式;说明:命令窗口中的每个命令行前会出现提示符“>>”,没有“>>”符号的行则是显示的结果。例1-1

在命令窗口中输入不同的命令和数值,并查看其显示方式。>>a=0.5a=0.5000>>b='sin'b=sin>>ifa<1c=true%如果a<1则c为trueendc=1

练习2.历史命令窗口(CommandHistory)历史命令窗口默认地出现在MATLAB界面的左下侧,用来记录并显示已经运行过的命令、函数和表达式。在默认设置下,该窗口会显示自安装以来所有使用过命令的历史记录,并标明每次开启MATLAB的时间。3.当前目录浏览器窗口(CurrentDirectoryBrowser)用来设置当前目录,并显示当前目录下的M文件、MAT文件、MDL文件等文件信息,窗口中包括文件类型(FileType)、文件大小(Size)、最后修改(LastModified)时间和文件的说明信息(Description)等。4.工作空间浏览器窗口(Workspace)工作空间浏览器窗口用于显示内存中所有的变量名、数据结构、类型、大小和字节数,不同的变量类型使用不同的图标。在MATLAB7.0的命令窗口中也可以通过命令来查看工作空间的变量,以下是常用的命令:Who:查阅MATLAB内存变量名。Whos:查阅MATLAB内存变量名、大小、类型和字节数。clear变量名1变量名2…:删除内存中的变量,变量名1变量名2可省略,省略时表示删除所有变量。5.M文件编辑/调试器窗口(Editor/Debugger)打开M文件编辑/调试器窗口的方法有:单击MATLAB工作界面工具栏上的图标;单击菜单“File”→“New”→“M-file”创建新M文件;1.2MATLAB的基本命令与基本函数1)基本的系统函数例如cdD:\MATLAB7\work\处理数据loadff(文件名)2)工作区和变量的基本命令clearclc(清除窗口命令)format输出格式命令formatlonge:将系统默认的5位数字的显示格式转换位16位数字加3位指数位的显示格式。formatshort-----恢复系统默认设置以4位小数的浮点格式输出。>>formatlonge>>pp=Column1-1.000000000000000e+000Column20Column31.000000000000000e+000Column40Column5-9.093000000000000e-001p=[-1,0,1,0,-0.9093];3)MATLAB中的预定义变量4)算数表达式和基本数学函数MATLAB的算数表达式由字母或数字用运算符号联结而成。MATLAB的语法举例:

例:在MATLAB中可写为:在执行本句之前首先要对a、b、c赋值。MATLAB的语法举例:

1-d*c^(x+2)d*c^x

或2+d*c^x

(d*c^x+2)/g^2.7

sqrt(d*c^x+2)或(d*c^x+2)^0.5

y=sqrt(abs(pi-sin(x)/cosh(a)-ln(x+a)))例:一个长管,其内表面半径为a,温度为Ta;外表面半径为Tb;则其径向和切向应力可分别表示为:式中r为管子的径向坐标,E为管子材料的弹性模量,ɑ为热膨胀系数。沿径向管壁的温度分布为:用MATLAB表达形式写出该方程并用如下值进行验证:ɑ=1.2x10-5,E=3x107,v=0.3,Ta=500,Tb=300,a=0.25,b=0.5,r=0.375。=-8011.5=5231.9,=383.0075]

压力为po的气体在可逆绝热条件下从容器中溢出,其质量与流量之比如下:式中pe为容器出口的外部压力,k为可逆绝热的气体常数。用MATLAB表达形式写出该方程并用如下给出值进行验证:k=1.4,pe/p0=0.3。

=0.4271]{2.基本赋值和运算

1简单的数学计算:>>3721+7428/24ans=4.0305e+003>>abs(-27)ans=27>>sin(29)小括号ans=-0.6636>>3^4,6^3*(3+2)一行输入多个表达式用逗号(显示结果)

隔开ans=81ans=10802)简单赋值运算:>>x=18将18赋值给变量xx=18>>y=3*x^2-78将3*x^2-78赋值给变量yy=894命令行尾为分号则屏幕上不显示计算信息2.2向量、向量运算MATLAB是一门语言,它的运算指令和语法基于一系列基本的矩阵运算以及它们的扩展运算。2.2.1向量的创建第一种方法是使用冒号来指定数值范围和相邻值的步长;第二种方法是指定数值的范围和期望的数值个数

第一种方法:x=s:d:f其中,s=初值,d=增量或减量值,f=结束值或终值。可产生如下的行向量x:x=[s+d,s+2d,…,s+nd]其中,s+nd〈=f

。当d省略时,MATLAB默认d=1。即:x=s:f

产生向量:x=[s+1,s+2,…,s+n]向量或矩阵赋值方式:变量名=[变量值]

直接输入:如A=(1,2,3,4,5)]>>A=[12345]行向量数字之间用空格隔开A=12345>>B=[1;2;3;4]列向量数字之间用分号隔开B=1234例1:若想创建[-2,1,3,5,7,9,10]的向量x。

x=[-2,1:2:9,10]或x=[-2,1,3,5,7,9,10]若z=x-1

→z=[-3,0,2,4,6,8,9]

若z=x;z(2)=z(2)/2;→z=[-2,0.5,3,5,7,9,10]

若:z=x;z(2)=z(2)/2;z(3:4)=z(3:4)*3-1;其中z(3:4)为z的第三个和第四个元素z=[-2,0.5,8,14,7,9,10]例2:确定sin(x)的值,其中x在-π≤x≤π的区间内以π/5的步长变化。x=-pi:pi/5:pi;y=sin(x)y→[0.0000-0.5878-0.9511-0.9511-0.58780.00000.58780.95110.58780.0000]第二种方法:(指定n个从s到f的等间隔值)s=linspace(s,f,n)其中,增量或减量值d由MATLAB通过下式计算得出:如果没有指定n的值,MATLAB则默认n=100。例如:linspace(1,3,3)ans=1232.2.2向量的基本运算(1)向量的加减:用+、-。

同维向量才可以加、减。相应元素加减

(2)向量与数可以加、减。用+、-。

数与向量的每个元素进行作用。

(3)向量与数可以相乘。用*。

(4)向量与数可以相除。向量/数,数./向量。

(5)两个向量点积。必须是同维向量。用dot(a,b)。

(6)两个向量叉积。cross(a,b),a,b必须有是3维且次序不能颠倒,。

(7)混合积。由以上两个函数实现。dot(a,cross(b,c))算术操作符:

+、-:加,减;可以通用。*,^,\,/:分别为矩阵乘,乘方,左除,右除;.*,.^,.\,./:分别为数组乘,乘方,左除,右除;小结MATLAB概述MATLAB基本命令与基本函数第二讲数值运算的功能创建矩阵矩阵运算多项式运算

2.1、矩阵的创建

直接输入:如:a=[1,3,4;4,3,2].a=134432(2)第二种方法:1直接输入法例子2-7用直接输入矩阵元素的方法创建矩阵。在MATLAB的命令行窗口中键入下面的指令:>>A=[123;456;789]A=123456789>>whosNameSizeBytesClassA3x372doublearrayGrandtotalis9elementsusing72bytes图2-1MATLAB的工作空间浏览器在上面的例子中创建了一个3×3的矩阵,在创建矩阵的时候,需要注意:*整个矩阵的元素必须在“[]”中键入;*矩阵的元素行与行之间需要使用分号“;”间隔,也可以在需要分行的地方用回车键间隔;*矩阵的元素之间可以使用逗号“,”或者空格间隔。其实创建上面的矩阵时还可以这么做>>B=[1:3;4:6;7:9]B=1234567892.1.1函数生成矩阵表2-2MATLAB的矩阵生成函数函数的格式(1)zeros(n):生成n×n阶0矩阵。(2)zeros(m,n):生成m×n阶0矩阵。(3)zeros(size(a)):生成与a阶数相同的0矩阵。(4)eye(n):生成n阶单位矩阵。(5)eye(m,n):生成m×n阶单位矩阵。(6)eye(size(a)):生成与a阶数相同的单位矩阵。(7)ones(n):生成n阶全1矩阵。(8)ones(m,n):生成m×n阶全1矩阵。(9)ones(size(a)):生成与a阶数相同的全1矩阵。(10)rand(n):生成n×n阶随机矩阵,其元素值在0和1之间。

(11)rand(m,n):生成m×n阶随机矩阵。(12)rand:生成一个随机数。(13)rand(size(a)):生成与a阶数相同的随机矩阵。例子2-12

函数生成矩阵的示例。在MATLAB命令行中键入下面的指令:>>%创建三阶帕斯卡矩阵>>A=pascal(3)A=111123136>>%从矩阵A生成下三角矩阵>>tril(A)ans=100120136>>%获取矩阵A的对角线元素>>diag(A)ans=126>>%利用向量生成对角矩阵>>diag(ans)ans=100020006两个非常有用的函数可以生成矩阵的元素。1、创建一个元素为1的(rc)阶矩阵:其中r,c分别为行数与列数

one=ones(r,c)2、创建一个元素为0的(rc)阶矩阵:

zero=zeros(r,c)c=eye(3)c=100010001

d=ones(3)d=111111111试创建如下矩阵a=[3:2:11;linspace(20,21,5);ones(1,5)]a(1,1)→3,a(3,4)→1,a(:,2)→[520.251]‘a(2,:)→[2020.2520.520.7521]a(1:3,3:5)→[7911;20.520.7521;111]例:已知A2=[1,2,3,4,5]>>B1=[sqrt(A2)]利用函数(p29)B1=1.00001.41421.73212.00002.2361>>B2=[sin(A2)]B2=0.84150.90930.1411-0.7568-0.95892.2基本矩阵运算针对矩阵的运算MATLAB提供了若干函数和基本的运算规则,这些规则和函数都分别和线性代数的基本概念和运算规则对应。矩阵的基本运算参见表2-2。表2-2矩阵的基本运算>>A=[136;489;102578]A=136489102578>>det(A)ans=-147>>AN=inv(A)AN=-2.71430.57140.14291.5102-0.1224-0.1020-0.1361-0.03400.0272练习:已知水的黏度随温度的变化公式为

μ=μ0/(1+at+bt2)其中μ0=1.785×10-3,

a=0.03368,b=0.000221,

求水在0,20,40,60,80℃时的黏度。程序如下:miu0=1.785e-3;a=0.03368;b=0.000221;t=0:20:80miu=miu0./(1+a*t+b*t.^2)矩阵的运算举例一、矩阵运算(p38)+、-、*:加、减、乘运算。

(2)矩阵的除法有两种形式:左除“\”和右除‘/’。左除是先计算逆再做乘法;右除不计算逆直接进行除法运算,这样可避免奇异矩阵无法求逆带来的麻烦.如:A=[1,2,3,2;3,2,4,1;3,1,5,6;2,5,3,2],b=[1;3;2;1],求方程组Ax=b的解。

由于rank(A)=rank(B)=4(B为增广矩阵B=[A,b])

所以有唯一解,x=A\b,或x=inv(A)*b又如:A=[361,625,961,1444,1936;1,1,1,1,1],b=[1;1],求方程组Ax=b的解.由于rank(A)=rank(B)=2(B为增广矩阵),所以有无穷多个解,MATLAB中用除法解方程组时所得到的解是所有解中范数最小的一个x=A\b。求解线性方程组矩阵的特征值函数eig给出特征值和特征向量的值A=[73-2;34-1;-2-13][X,Y]=eig(A)说明:X为特征向量矩阵,Y为特征值矩阵>>A=[73-2;34-1;-2-13][X,Y]=eig(A)A=73-234-1-2-13X=0.5774-0.0988-0.8105-0.57740.6525-0.49080.57740.75130.3197Y=2.00000002.39440009.6056练习题:A=11121314212223243132333441424344求(1)A(:,1)(2)A(2,:)(3)A(:,2:3)(4)A(2:3,2:3)(5)A(:)(6)A(:,:)(7)ones(2,2)(8)eye(2)(9)diag(A)A=[11,12,13,14;21,22,23,24;31,32,33,34;41,42,43,44]

(1)A(:,1)(2)A(2,:)

(3)A(:,2:3)1213222332334243A(2:3,2:3)22233233>>A(:,1:2:3)ans=1113212331334143A(:)ans=11213141122232421323334314243444>>A(:,:)ans=11121314212223243132333441424344

ones(2,2)ans=1111

eye(2)ans=1001

diag(A)ans=112233442.3、多项式、多项式运算2.3.1多项式表示方法

在MATLAB中多项式p(x)=anxn+an-1xn-1+…+a0是以向量p=[an,an-1,…,a0]的形式储存的(从高次幂到低次幂)。(1)系数向量直接输入:例输入多项式x^3-5x^2+6x-33.p=[1,-5,6,-33];

poly2sym(p)%polynomial多项式,将系数向量表示成符号多项式>>p=[1,-5,6,-33];>>poly2sym(p)

ans=

x^3-5*x^2+6*x-33

(2)矩阵的特征多项式输入

a=[1,2,3;2,3,4;3,4,5];

p=poly(a);%求a的特征多项式的系数向量p1=poly2sym(p);%即为a的特征多项式p=1.0000-9.0000-6.0000-0.0000p1=x^3-9*x^2-6*x-8399472656541061/2535301200456458802993406410752(3)由根创建多项式:例

root=[-5,-3+4i,-3-4i];%是某个多项式的根p=poly(root)%求相应的多项式的系数向量P1=poly2sym(p)%将多项式系数向量表示成符号多项式>>a=[1,2,3;2,3,4;3,4,5]p=poly(a)%求a的特征多项式系数向量

p1=poly2sym(p)a=123234345p=1.0000-9.0000-6.0000-0.0000p1=

x^3-9*x^2-6*x-8399472656541061/2535301200456458802993406410752

2.3.2多项式运算:(1)求多项式的值:Polyval(p,x)计算以向量p为系数的多项式在变量为x时的值例

p=[1,11,55,125];a=1.2b=[1,2;2,3]

polyval(p,a)polyvalm(p,b)例

p=[1,11,55,125];a=1.2b=[1,2;2,3]

polyval(p,a)%polynomialvalue求多项式在1.2的值(208.5680)

polyvalm(p,b)%多项式在b的值

256232232488(2)求多项式的根roots(p)

例求多项式

2x^4-5x^3+6x^2-x+9=0的所有根.p=[2,-5,6,-1,9]

roots(p)%得到多项式的根

1.6024+1.2709i1.6024-1.2709i-0.3524+0.9755i-0.3524-0.9755i(3)多项式乘除运算分别用conv和deconv:(convolution,deconvolution)例

p1=[2,-5,6,-1,9];p2=[3,-90,18];p=conv(p1,p2)%为p1和p2所相应的多项式的乘积多项

式的系数向量(p=[6-195504-633225-828162])p3=deconv(p,p1)%为p2p4=deconv(p,p2)%为p1poly2sym(p1);poly2sym(p2);poly2sym(p)poly2sym(p3)poly2sym(p4)%观看这几个多项式p3=[3-9018]p4=[2-56-19]poly2sym(p3)3*x^2-90*x+18poly2sym(p4)2*x^4-5*x^3+6*x^2-x+9polyfit(x,y,n)其中x,y为拟合数据,n为拟合多项式的阶数。例

用最小二乘法拟合数据x:0.501.001.502.002.503.00y:1.752.453.814.808.008.60x1=0.5:0.05:3

2.3.3多项式拟合x=[0.5,1,1.5,2,2.5,3],y=[1.75,2.45,3.81,4.80,8.00,8.60]

a=polyfit(x,y,2)%用2次多项式拟合上组数据,a为拟合多项式的系数向量x1=0.5:0.05:3(51维)y1=a(1)*x1.^2+a(2)*x1+a(3)

plot(x1,y1,'o')%画出拟合曲线的图形

holdon%保留上面的图形和坐标,可在该坐标系中继续作图

plot(x,y,'*')%用*号的形式画出被拟合的数据图形MATLAB进行符号运算的主要功能:符号表达式和符号矩阵的基本操作、符号矩阵的基本运算、符号微积分运算、符号线性方程求解、符号微分方程求解、特殊数学符号函数、符号函数图形等。三、符号运算1符号表达式的生成(1)创建符号函数(用单引号或sym定义如f='log(x)‘f=log(x)(2)创建符号方程如g='a*x^2+b*y^2+c=0‘a*x^2+b*y^2+c=0(3)创建微分方程如q='Dy-y=x'或者:f=sym('log(x)')、g=sym('a*x^2+b*y^2+c=0')、q=sym('Dy-y=x')说明:符号函数也可以用另一方法创建(该方法不能创建方程):symsx%用syms可以定义多个变量,变量间用空格分开symsxyuv2符号与数值之间的转换vpa函数:如

digits(25)%设置有效数字的精度为25位有效数字

vpa(pi+1)%显示在上述digits函数设置下的精度的数值4.141592653589793115997963或者vpa(pi+1,25)例求函数f(x)=x-cos(x)在x=2的值。解:

symsxf=x-cos(x);%定义符号函数ff1=subs(f,'2',x)%字符替代,在符号函数f中用2代替xf1=2-cos(2)digits(20)

vpa(f1)2.4161468365471423870

例求方程3x^2-e^x=0的精确解和各种精度的近似解。解s=solve('3*x^2-exp(x)=0')

vpa(s,32)%显示32位有效数字

vpa(s,6)%显示6位有效数字

vpa(s,32)

ans=

[.91000757248870906065733829575944][3.7330790286328142006199540298434][-.45896226753694851459857243243408]]3符号函数运算1复合函数运算

设z=g(y),y=f(x)

compose(g,f)%即为g(f(x)),自变量的符号取为f函数的自变量符号。

compose(g,f,t)%即为g(f(x)),自变量的符号取t。反函数运算:finverse例symsx;symsy;symst;%或者symsxytg=sin(y);f=1/x;compose(g,f)compose(g,f,t)finverse(g)finverse(f)compose(g,f):

sin(1/x)

compose(g,f,t):sin(1/t)finverse(g):asin(y)finverse(f):1/x

collect(s,v)symsxyabF=(x+a)*(x+b)+(x-a)^2F1=collect(F)默认变量x,expand(s)将符号表达式s展开f=(x-3)^2*(x-1)-(x+1)^2expand(f)ans=

x^3-8*x^2+13*x-10factor(x)将符号表达式x因式分解a1=factor(sym('234'))

a1=

(2)*(3)^2*(13)符号矩阵创立

使用sym函数直接创建符号矩阵

a=sym('[1/sin(x),cos(x)^2;2*x,1+x^2]')或

symsxa=[1/sin(x),cos(x)^2;2*x,1+x^2]符号矩阵的运算

(1)+、-、*、\、/运算

(2)矩阵转置('):a'(3)行列式运算

det(a)%determinant的简写计算符号矩阵的行列式。

(4)求逆inv(a):求矩阵a的逆。

(5)求矩阵的秩rank(a):求矩阵a的秩。符号极限limit(f,x,a):求表达式f在x→a时的极限。limit(f):求f在x→0时的极限.imit(f,x,a,'left'):求表达式f在x→a时的左极限。limit(f,x,a,'right'):求表达式f在x→a时的右极限。例MATLAB标点的含义:(1)分号;

区分行以及取消运行显示等。例:A=[1,2;3,4]与A=[1,2;3,4];的区别。

(2)逗号,

区分列及函数参数分隔符等。例:A=[1,2;3,4],B=[1,4,3;3,2,1;4,5,6](3)小括号()

指定运算过程的先后次序等。例:

x=0.5;y=sin(x)/(2+cos(x))z=sin(x)/2+cos(x)(4)方括号[]矩阵定义标志等。见(1)2)

(5)续行号...

例:y=sin(x)/(2+cos(x))

也可写为y=sin(x).../(2+cos(x))(6)百分号%

注释标记,该行%以后的语句不执行。例:%线性规划程序%a=0.5;b=sin(x);%正弦函数(7)等号

=赋值标记。见上。

(8)单引号

'

'字符串表示符,单引号里面的内容为字符串。单引号一定在英文状态下输入例:

a='xingtaicollege'(9)冒号

:有多种应用功能,学习过程中注意。如:选取矩阵的所有行、列;矩阵定义特殊矩阵的生成(1)zeros(n):生成n×n阶0矩阵。(2)zeros(m,n):生成m×n阶0矩阵。(3)zeros(size(a)):生成与a阶数相同的0矩阵。(4)eye(n):生成n阶单位矩阵。(5)eye(m,n):生成m×n阶单位矩阵。(6)eye(size(a)):生成与a阶数相同的单位矩阵。(7)ones(n):生成n阶全1矩阵。(8)ones(m,n):生成m×n阶全1矩阵。(9)ones(size(a)):生成与a阶数相同的全1矩阵。(10)rand(n):生成n×n阶随机矩阵,其元素值在0和1之间。

(11)rand(m,n):生成m×n阶随机矩阵。(12)rand:生成一个随机数。(13)rand(size(a)):生成与a阶数相同的随机矩阵。矩阵的特殊操作:(1)变维操作reshape(a,m,n):把矩阵a变成n×n阶矩阵。如a=1:12,reshape(a,2,6),reshape(a,3,4)。注意变维操作要保证元素个数一致。例

s=1:12;c=zeros(3,4);c(:)=s(:);%符号“:”表示变维操作,这两个矩阵必须预先定义维数,结果c取的是s的元素。

(2)对角元素抽取diag(a,k)(注:diagonal为对角线的意思)

抽取矩阵a的第k条对角线的元素作为向量,k=0时为主对角线,k为正值时为上方第k条对角线,k为负值时为下方第k条对角线。

diag(a)相当于diag(a,0)例a=rand(3);v=diag(a)

说明:如果b是一个向量,则diag(b)为对角矩阵,其对角线元素为b的元素。如:b=1:3,diag(b).(3)tril(a)(注:trianglelow):提取矩a的主下三角。

(4)tril(a,k):提取矩a的第k条对角线下面部分。k=0时为主对角线,k为正值时为上方第k条对角线,k为负值时为下方第k条对角线。(5)triu(a,k)(注:triangleup):提取矩a的第k条对角线上面部分。逻辑运算符(1)==:等于。(2)~=:不等于。(3)〈:小于。(4)〉:大于。(5)〈=:小于等于。(6)〉=:大于等于。(7)&:逻辑与。(8)|:逻辑或。(9)~:逻辑非。说明:

①在关系比较中,若双方为同维数组(矩阵),则比较的结果也是同维数组(矩阵)。它们的元素有0和1组成。对应位置上的元素满足比较关系时为1,否则为0。当常数与数组(矩阵)比较时,结果与数组(矩阵)同维,其值依次为常数与数组元素依次比较的结果。例:a=[1:3;4:6;7:9]x=5y=x<=a运行结果y=000011111y.*a②逻辑运算的意义是:

与:当运算双方的对应元素值都为非0时,结果为1,否则为0;

或:当运算双方的对应元素值有一非0时,结果为1,否则为0;

非:当运算数组

(矩阵)的对应位置上的元素值为0时,结果为1,否则为0。例a=[1,2;3,2];b=[0,1;3,0];d=a&b

e=a|b

f=~b

③算术运算、比较运算、逻辑与或非运算的优先级:先比较运算、再算术运算、最后逻辑与或非运算。4、常用函数sin(x):正弦函数

(sine);例:x=-pi:0.1:pi;y=sin(x);plot(x,y)asin(x):反正弦函数

(anti-sine);cos(x):余弦函数

(cosine);acos(x):反余弦函数

(anti-cosine);tan(x):正切函数

(tangent);atan(x):反正切函数

(anti-tangent);cot(x):余切函数

(cotangent);acot(x):反余切函数

(anti-cotangent);sec(x):正割函数

(secant);asec(x):反正割函数

(anti-secant);csc(x):余割函数

(cosecant);acsc(x):反余割函数

(anti-cosecant);sinh(x):双曲正弦

(hyperbolicsine);asinh(x):反双曲正弦(anti-hyperbolicsine);cosh(x):双曲余弦

(hyperboliccosine);acosh(x):反双曲余弦

(anti-hyperboliccosine);tanh(x):双曲正切函数

(hyperbolictangent);atanh(x):反双曲正切函数

(anti-hyperbolictangent);coth(x):双曲余切函数

(hyperboliccotangent);acoth(x):反双曲余切函数

(anti-hyperboliccotangent);exp(x):e指数函数

(exponent);log(x):自然对数函数

(logarithm);log10(x):以10为底的对数;log2(x):以2为底的对数;sqrt(x):平方根函数

(squareroot);abs(x):求模函数

(absolute)symsxlimit(sin(x)/x,x,1)limit(sin(x)/x)limit((1+1/x)^(1/x),x,inf)f=atan(1/(1-x))y=limit(f,x,1)%没极限

y1=limit(f,x,1,'left')y2=limit(f,x,1,'right')f=1/x,y1=limit(f,x,0,'left')y2=limit(f,x,0,'right')符号积分(积分:integral)(1)int(f,x):计算符号表达式f,自由变量为x的不定积分.

(2)int(f,x,a,b):计算符号表达式f,自由变量为x,从a到b的定积分说明:符号表达式可以是符号函数,也可是符号矩阵。例

symsx

int(sin(x),x)

int(sin(x),x,0,1)

int(sin(x),x,0,1)说明:变量x省略时默认对x积分。a=sym('[1/sin(x),cos(x)^2;2*x,1+x^2]')

int(a,x)符号函数求导(微分:differential)

(1)diff(f,x)%求表达式f,自由变量为x的导数。

(2)diff(f,x,n)%求表达式f,自由变量为x的n阶导数。symsxf=sin(x)^2

diff(f,x)%变量x省略时默认对x求导diff(f,x,2)%x省略时默认对x求导线性方程组的符号解法(linsolve)例a=sym('[10,-1,0;-1,10,-2;0,-2,10]')b=sym('[9;7;6]')x=linsolve(a,b)%x为线性方程ax=b的解。注:这里a,b也可是double型,但得到的x为sym型。vpa(x)%转化为浮点近似解,32位有效数字。非线性方程(组)的符号解法符号微分方程的符号解(dsolve)

(1)fsolve('f',x0):其中f为被求零点的函数,x0为初值。注:fsolve对sym型函数无效;可用于有函数文件、字符串、和inline定义的函数。

(2)slove('方程1','方程2',…)。例、求解下面非线性方程组

x1-0.7sinx1-0.2cosx2=0x2-0.7cosx1+0.2sinx2=0解首先编写函数文件f.m如下functiony=fc(x)y(1)=x(1)-0.7*sin(x(1))-0.2*cos(x(2));y(2)=x(2)-0.7*cos(x(1))+0.2*sin(x(2));y=[y(1);y(2)];在命令窗口中输入x0=[0.502,0.51];%x0为初始向量fsolve('fc',x0)符号微分方程的符号解(dsolve):desolve(‘eq1,eq2,…’,’cond1,cond2,…’,’v’)desolve(‘eq1,eq2’,…,’cond1,cond2,…’,’v’)eq1,eq2指常微分方程的符号解;v为自变量;参数cond1,cond2为用来指定方程的边界条件或初始条件。例求dy/dt=-ay的解解dsolve('Dy=-a*y')%得到通解。

dsolve('Dy=-a*y','y(0)=1')%给定了初始条件,求特解。方程和初始条件用逗号分开,都用单引号引起来。dsolve(‘Dy=-a*y’,‘y(0)=1’,‘x’)%指定自变量为x求二阶常微分方程

的通解。>>symsxyS=dsolve('D2y=cos(2*x)-y','y(0)=1','Dy(0)=0','x');符号函数的二维图形

(1)ezplot(f):绘制f(x)的图形,x的范围为[-2π,2π]。如

ezplot('sin(x)')。

(2)ezplot(f,a,b):绘制f(x)的图形,x的范围为[a,b]。如

ezplot('sin(x)',0,9)。四、图形处理图形可视化是数学计算人员所喜欢和追求的一项技术。把结果用图形描述出来,便于理解、分析。二维绘图命令基本二维绘图命令为:plot(u1,v1,c1,u2,v2,c2,…)ui,vi分别为一系列点的x和y坐标;ci是字符串:如‘s’(用方框画点),‘*’用*画点),‘-’(用实线画点),‘--’(用虚线画点),‘b—d’(用蓝色虚线连接蓝色菱形点)等等。

(1)plot(y)%若y是向量,就以向量的索引为横坐标,以向量的元

温馨提示

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

评论

0/150

提交评论