matlab学习笔记--数值计算

1、matlab开发环境

命令窗口(Command Window)

MATLAB是交互式的语言,输入命令即给出运算结果。而命令窗口则是MATLAB的主要交互窗口,用于输入和编辑命令行等信息,显示结果(图形除外)。 

启动平台(Launch Pad)

启动平台用于启动和管理系统中安装的MATLAB系统。可以通过双击来启动相应的选项。

工作空间(Workspace)

工作空间用于保存MATLAB变量的信息。在工作空间可以对变量进行观察、编辑、保存和删除。保存在工作空间中的自定义变量,直到使用了“clear”命令清除工作空间或关闭了MATLAB系统才被清除。在命令窗口中键入“whos”命令,可以显示出保存在工作空间中的所有变量的名称、大小、数据类型等信息,如果键入“who”命令,则只显示变量的名称。

命令历史窗口(Command History)

命令历史窗口记录用户每一次启动MATLAB的时间以及在命令窗口运行过的所有指令。命令历史窗口中的指令可以被复制到命令窗口重新运行。如果要清除掉这些记录,可以选择“Edit”菜单中的“Clear Command History”项。

当前路径窗口(Current Directory)

当前路径窗口也称为当前目录窗口。可以显示或改变当前目录。当前目录指的是MATLAB运行文件时的工作目录。只有在当前目录或搜索路径下的文件及函数可以被运用或调用,如果没有特殊指明,数据文件也将储存在当前目录下。如果要建立自己的工作目录,在运行文件前必须将该文件所在目录设置为当前目录。

2、 运行方式

  1. 果在输入的表达式后面跟上分号“;”,那么运行后就不会马上显示运算的结果,必须键入输出变量后才能显示运算结果。用分号关闭不必要的输出会使程序运行速度成倍甚至成百倍地提高。
  2. 如果在表达式后面跟上逗号“,”或什么都不跟,运行后会马上显示该表达式的运算结果,如果一个表达式很长,可以用续行号“…”将其延续到下一行。

3、m文件运行方式

    所谓m文件,就是用MATLAB语言编写的、可以在MATLAB中运行的程序。它是以普通文本格式存放的,故可以用任何文本编辑软件进行编辑。MATLAB提供的m文件编辑器就是程序编辑器。
    在File菜单中选择NEW,再选择M-file,或点击新建图标,就可以调出m文件编辑器,用户可以用此编辑器编写m文件。
    m文件有两种形式,一种称为命令文件(Script File),另一种称为函数文件(Function  File),两种文件的扩展名都是m。
    (程序中由符号“%”开始的文字都是注释文字,用来对程序或程序行行进行注释说明,符号“%”称为注释符,MATLAB在执行时将忽略“%”后的内容。)

函数文件

    是另一类m文件,可以像库函数一样方便地被调用,MATLAB提供的许多工具箱,是由函数文件组成的。对于某一类特殊问题,用户可以建立系统的函数文件,形成专用工具箱。函数文件的第一行有特殊的要求,它必须遵循如下的形式:
  function<因变量>=<函数名>(<自变量>)
  其他各行都是程序运行语句,没有特别要求。
  函数文件的文件名必须是<函数名>.m。

4、数值计算

MATLAB运算的基本数据对象是矩阵,标量可以看作是1×1的矩阵,向量可以看作是1×n或n×1的矩阵。因此,可以说MATLAB的数据结构就是矩阵,以矩阵运算为代表的基本运算功能一直是MATLAB引以为自豪的核心与基础。 

1.矩阵的创建

矩阵是线性代数的基本运算单元。
通常矩阵是指含有m行n列数值的矩形结构。矩阵中的元素可以是实数也可以是复数,由此可以将矩阵划分为实矩阵和复矩阵。
MATLAB支持线性代数所定义的全部矩阵运算。
在MATLAB中创建矩阵应遵循以下原则:
①矩阵的元素必须在方括号“[ ]”中。
②矩阵的同行元素之间用空格或逗号“,”分隔。
③矩阵的行与行之间用分号“;”或回车符分隔。
④矩阵的尺寸不必预先定义。
⑤矩阵元素可以是数值、变量、表达式或函数。如果矩阵元素是表达式,系统将自动计算出结果。

1.直接输入法-在命令窗口按规则输入方式创建矩阵
例1.在命令窗口创建简单的数值矩阵。
A=[1 3 2;3 1 0;2 1 5]

2.通过数据文件创建矩阵-导入其他程序创建的数据
(指出:
①通过load命令导入数据是形成矩阵的重要方法,解决了在工作现场没有MATLAB系统和其他数据管理系统的问题,可以只用基本的文字处理工具完成。
②MATLAB对文本形式的数据文件的扩展名并不计较,将上述数据文件换名保存为fort.1,仍然可以如上导入、应用。
③文件名可以定义为m1.txt或m1.1。
④但是,如果将文件命名为1m.txt,则显示出错信息:“Error: Missing operator(算子), comma(逗号), or semicolon(分号).”
⑤如果文件名命名为3.txt、1.txt、3.1等,则显示的是主文件名所用的数字。
⑥数据文件保存为word或wps等的文件格式同样可以引用。
⑦如果数据文件中有字母,则不能引用,显示出错信息,即使该字母在前面的指令中已经赋值也不可。
⑧如果数据文件中有算式,则不能完整显示,算式元素将仅显示第一个运算符(或关系符)前的数字。
⑨导入其他数据,如图像数据、Excel数据时,可以使用数据导入向导Import Wizard。
)

3.通过m文件创建矩阵-将矩阵建立为m文件
先将矩阵按创建原则写入一个m文件中,在MATLAB命令窗口或程序中直接运行该m文件(输入该m文件名),即可将矩阵调入工作空间。

4.用函数来创建矩阵
eye(n) : n阶单位矩阵
ones(n, m) : n*m的矩阵,值均为1
zeros(n,m) : n*m的矩阵,值均为0
[]空矩阵

指出
①当某一项操作无结果时,MATLAB将返回一个空矩阵,空矩阵的大小为0,但它确实存在于工作空间,可以通过变量名访问。
②输入后的矩阵将保存在MATLAB工作空间中,并可以随时被访问调用,如果用户不用“clear”命令清除它,或给它重新赋值,该矩阵将一直保存在工作空间直到MATLAB关闭为止。
③如果矩阵函数中只有一个参数,则为方阵。
④四种创建矩阵的方法各有优点:直接输入法方便简捷;通过数据文件创建有利于调用其他软件产生的数据;通过m文件创建是用于创建较大尺寸的矩阵并便于修改;通过函数创建可以由MATLAB内部函数创建一些特殊矩阵。)

5.其他构造矩阵的方法-冒号法
冒号法构造向量
冒号表达式的一般格式为:
向量名=初值:步长:终值
eg:x=0:0.5:2
回车后显示
x =
0 0.5000 1.0000 1.5000 2.0000。

(指出:
①步长可以省略,省略步长,则步长为1。
②步长可以为负,此时初值大于终值。
③向量的元素比较多而又有增减规律时,这种方法非常便利。
④冒号法表示向量时,向量的全体成员是从初值开始,以步长为增量,直到不超过终值的所有元素构成的序列。
⑤冒号法的应用可以避免使用循环,提高程序运行速度。)

在MATLAB中,还可以利用函数linspace产生行向量,其调用格式为:
linspace(a,b,n)。
其中a,b是向量的第一个和最后一个元素,n是元素的个数。这样产生的向量的元素成等差数列。
函数linspace被称为线性等分函数

2、矩阵的运算

说明:
a‘:表示a的转置
矩阵也可以和一个数之间进行运算。
线性代数没有定义除法运算,MATLAB为了便于计算,定义了矩阵的除法,并有左除和右除之分。
矩阵左除使用“\”运算符,右除使用“/”运算符。
X=A\B是解方程组A*X=B;X=B/A则是解方程组X*A=B。
一般地说,A\B≠B/A。
在算法上,A\B=inv(A)*B,inv是求某一个矩阵的逆矩阵;而B/A=B*inv(A)。
指出:如果A*B=B*A=I(单位矩阵),称A和B互为逆矩阵。
如果矩阵中有复数元素,那么转置后得到它的复数共轭矩阵 。

3、矩阵的操作

1.矩阵的大小测度
Size函数用来测试矩阵的大小,对于 矩阵A,size(A)返回一个行向量,它包含了矩阵的行数m和列数n。如果专门显示行数和列数,则可以采用如下格式:

2.矩阵块的操作
利用冒号表达式对矩阵进行拆分、提取子矩阵是矩阵操作的重要方面。提取的规则是
①A(:,j)表示取矩阵A的第j列的全部元素;
②A(i,:)表示取矩阵A的第i行的全部元素;
③A(i,j)表示取矩阵A的第i行第j列交叉位置的元素;
④A(i:i+m,:)表示取矩阵A的第i~i+m行的全部元素;
⑤A(:,k:k+n)表示取矩阵A的第k~k+n列的全部元素;
⑥A(i:i+m,k:k+n)表示取矩阵A的第i~i+m行内并在第k~k+n列中的全部元素。
end用来表示矩阵某一维末尾元素。

4、数据的输出格式

format命令的格式为:
format 格式符
格式符决定数据输出格式,常见格式及其含义有:
short:输出小数点后4位,最多不超过7位有效数字。 对于大于1000的实数,用5位有效数字的科学记数形式输出。
long:15位有效数字形式输出。
short e:5位有效数字的科学记数形式输出。
long e:15位有效数字的科学记数形式输出。
rat:近似有理数形式输出。
指出:
①format命令只影响数据的输出格式,而不影响数据的存储和计算。
②如果输出的矩阵的每个元素都是整数,则MATLAB就用整数格式显示结果。只要矩阵中有一个元素不是整数,MATLAB就按当前的输出格式显示。
③默认的输出格式是short。

5、符号运算

1、字符串变量的创建
字符串是一种特殊的符号对象,在数据处理、造表和函数求值中,字符串具有重要的应用。
用单引号界定的字符序列称为字符串。
指出:
①字符串中的字符可以是数字、英文字母、汉字、横线、括号、表达式、方程等。
②字符串也称字符串数据或字符变量。
③用赋值符号“=”把字符串赋给某个标识符,例如s,这个标识符称为字符串变量名,简称字符名。

2、符号变量和符号表达式的创建
MATLAB的符号数学工具箱提供了两个基本函数sym和syms,用来创建符号变量、符号表达式和符号矩阵。
①用函数sym建立符号变量、符号表达式和符号矩阵。
调用格式为:
变量=sym(‘表达式’)
y=sym(‘2+cos(x)’)
将显示
y =
2+cos(x)
这是一个符号表达式。

②用函数syms建立符号变量、符号表达式和符号矩阵。
调用格式为:
Syms var1 var2 var3 …
注意空格。
syms y u
p=exp(-y/u)
q=y^2+u^3+u*y
这样就建立了两个符号表达式,分别存放在变量p和q里。
指出:
①由于syms函数书写简洁,意义清楚,符合MATLAB的习惯特点,一般提倡使用syms创建符号变量、符号表达式和符号矩阵。
②注意用单引号创建的字符串变量和用函数sym、syms创建的符号变量性质并不完全一样。在符号工具箱中,有些指令的参数既可以用字符串型数据也可以用符号型数据,但也有一些指令的参数必须用符号型数据。
加法、求导等运算对数值形式的字符串和符号变量都按符号变量对待,不加区别,而级数求和命令symsum(s,’n’,h,k)(s是通项表达式,n为级数的项数,h、k分别是求和的起止项数)中的s必须用符号表达式而不能用字符串。
③MATLAB中,在没有规定的情况下,默认最接近x的字母表示自变量。

3、符号微积分
limit(f,x,a) 求表达式f当x→a时的极限
diff(f) 求表达式f对缺省变量的微分
diff(f,n) 求表达式f对缺省变量求n阶微分
diff(f,v) 求表达式f对变量v的微分
diff(f,v,n) 求表达式f对变量v的n阶微分
int(f) 求表达式f对缺省变量的积分
int(f,v) 求表达式f对变量v的积分
int(f,v,a,b) 求表达式f在区间(a,b)上对变量v的定积分

例.已知f(x)=ax2 +bx+c,求f(x)的微分和积分。
解:>>syms a b c x
        >>f=sym(‘a*x^2+b*x+c’)
             f =
                 a*x^2+b*x+c
         >>diff(f,a)
             ans =
                      x^2
        >>int(f)
             ans =
                     1/3*a*x^3+1/2*b*x^2+c*x
       >>int(f,x,0,2)
            ans =
                      8/3*a+2*b+2*c

你可能感兴趣的:(matlab)