附录A MAT L A B初步
matlab2_matlab教程
x1+2x2+3x3=1 2x1+3x2+4x3=2 a=[1 2 3;2 3 4];b=[1;2]; x=a\b x= 1.00 0 x=
x1 1 2 3 1 x2 = 2 3 4 2 x3
a
x = b
x=pinv(a)b
0.83 0.33
0
-0.17
六、微分方程求解
微分方程求解的仿真算法有多种,常用 的有Euler(欧拉法)、Runge Kutta(龙 格-库塔法。 Euler法称一步法,用于一阶微分方程
a=[1 2 3;4 5 6;7 8 9]; b=[2 4 6;1 3 5;7 9 10]; a.*b ans = 2 8 18 4 15 30 49 72 90
a=[1 2 3;4 5 6;7 8 9]; b=[2 4 6;1 3 5;7 9 10];
a*b ans = 25 55 85
37 85 133
二、数据的保存与获取
把matlab工作空间中一些有用的数 据长久保存下来的方法是生成mat数 据文件。 save —— 将工作空间中所有的变 量存到matlab.mat文件中。 默认文件名
save data——将工作空间中所
有的变量存到data.mat文件中。
save data a b ——将工作空间 中a和b变量存到data.mat文件中。
rand —— 随机矩阵
eye —— 单位矩阵
zeros ——全部元素都为0的矩阵
ones ——全部元素都为1的矩阵
还有伴随矩阵、稀疏矩阵、魔方 矩阵、对角矩阵、范德蒙等矩阵的创 建,就不一一介绍了。
注意:matlab严格区分大小写字母,因
此a与A是两个不同的变量。 matlab函数名必须小写。
Matlab基本运算
2.1 变量和数据操作2.1.1 变量与赋值1.变量命名在MA TLA B 6.5中,变量名是以字母开头,后接字母、数字或下划线的字符序列,最多63个字符。
在MA TLA B中,变量名区分字母的大小写。
2.赋值语句(1) 变量=表达式(2) 表达式其中表达式是用运算符将有关运算量连接起来的式子,其结果是一个矩阵。
2.1.2 预定义变量在MA TLA B工作空间中,还驻留几个由系统本身定义的变量。
例如,用pi表示圆周率π的近似值,用i,j表示虚数单位。
预定义变量有特定的含义,在使用时,应尽量避免对这些变量重新赋值。
2.1.3 内存变量的管理1.内存变量的删除与修改MATLAB工作空间窗口专门用于内存变量的管理。
在工作空间窗口中可以显示所有内存变量的属性。
当选中某些变量后,再单击Delete 按钮,就能删除这些变量。
当选中某些变量后,再单击Ope n按钮,将进入变量编辑器。
通过变量编辑器可以直接观察变量中的具体元素,也可修改变量中的具体元素。
clear命令用于删除M A TLA B工作空间中的变量。
w ho和wh os这两个命令用于显示在MAT LAB工作空间中已经驻留的变量名清单。
who 命令只显示出驻留变量的名称,whos在给出变量名的同时,还给出它们的大小、所占字节数及数据类型等信息。
2.内存变量文件利用MA T文件可以把当前MA TL AB工作空间中的一些有用变量长久地保留下来,扩展名是.mat。
MA T文件的生成和装入由save和load 命令来完成。
常用格式为:save 文件名[变量名表] [-append][-ascii]load 文件名[变量名表] [-ascii]其中,文件名可以带路径,但不需带扩展名.mat,命令隐含一定对.mat文件进行操作。
matlab实验内容
2017年-matlab实验内容2017年文化素质课 MATLAB实验实验一、MATLAB基本操与运算基础【实验目的】(1)熟悉MATLAB基本环境,掌握MATLAB变量的使用(2)掌握MATLAB数组的创建(3)掌握MATLAB数组和矩阵的运算【实验内容及步骤】熟悉建立数组的方法:逐个元素输入法、冒号法、特殊方法(使用函数linspace建立)1、有关向量、矩阵或数组的一些运算(1)设A=15;B=20;求C=A+B与c=a+b?(2)设A=[1 2 3;4 5 6;7 8 9],B=[9 8 7;6 5 4;3 2 1];求A*B与A.*B?(3)设a=10,b=20;求i=a/b=?与j=a\b= ?(4)设a=[1 -2 3;4 5 -4;5 -6 7](5)在MATLAB命令行窗口运行A=[1,2;3,4]+i*[5,6;7,8];看结果如何?如果改成运行A=[1,2;3,4]+i[5,6;7,8],结果又如何?(6)请写出完成下列计算的指令:a=[1 2 3;3 4 2;5 2 3],求a^2=?,a.^2=?(7)有一段指令如下,请思考并说明运行结果及其原因clearX=[1 2;8 9;3 6];X( : ) %转化为列向量(8)写出下列指令的运行结果>> A = [ 1 2 3 ]; B = [ 4 5 6 ];>> C = 3.^A>> D = A.^B2、设有矩阵A和B,A=[1 2 3 4 5;6 7 8 9 10;11 12 13 14 15;16 17 18 19 20;21 2223 24 25],B=[3 0 16;17 -6 9;0 23 -4;9 7 0;4 13 11]1)求它们的乘积C2)将矩阵C的右下角3x2子矩阵赋给D3、完成下列操作1)求[100,999]之间能被61整除的数及其个数(提示:先利用冒号表达式,再利用find和length 函数。
第2章_MATLAB的基本操作1
MATLAB数据类型
浮点数
浮点数
单精度浮点数(4字节)
双精度浮点数(8字节默认)
转换函数: single(x),double(x)
浮点数与其它类型数据运算表
operand single double int/uint char logical X single single single single single double single double int/uint double double
2. 矩阵拆分
A(i,j) 第i行、第j列元素 第i行的全部元素 第i~i+m行的全部元素
A(i,:)
A(i:i+m,:)
A(i:i+m,k:k+m)
A(i:end,:)
第i~i+m行内第k~k+m列元素 第i行到最后一行的全部元素
(三) 矩阵元素的修改
(1) 直接修改
可用↑键找到所要修改的矩阵,用←移动到需 要修改的矩阵元素上即可修改
使用struct函数产生结构体: struct_name = struct(‘field1’,value1,‘field2’,value2,…..)
MATLAB数据类型
细胞变量(细胞数组)cell
MATLAB从5.0版开始引入了一种新的数据类型 ---细胞(cell),该结构把不同属性的数据纳入 到一个变量中。 普通数组中的每个元素都必须具有相同的属性, 而细胞则没有此要求。 细胞变量的表示方法类似于带有下标的数组, 但这些下标不是用圆括号括起来,而是用大括 号括起来。
char(字符型) logical(逻辑型) cell(单元型) struct(结构)
Matlab实验指导书(含答案)
实验一:Matlab操作环境熟悉一、实验目的1.初步了解Matlab操作环境。
2.学习使用图形函数计算器命令funtool及其环境。
二、实验内容熟悉Matlab操作环境,认识命令窗口、内存工作区窗口、历史命令窗口;学会使用format命令调整命令窗口的数据显示格式;学会使用变量和矩阵的输入,并进行简单的计算;学会使用who和whos命令查看内存变量信息;学会使用图形函数计算器funtool,并进行下列计算:1.单函数运算操作。
求下列函数的符号导数(1) y=sin(x);(2) y=(1+x)^3*(2-x);求下列函数的符号积分(1) y=cos(x);(2) y=1/(1+x^2);(3) y=1/sqrt(1-x^2);(4) y=(x-1)/(x+1)/(x+2);求反函数(1) y=(x-1)/(2*x+3);(2) y=exp(x);(3) y=log(x+sqrt(1+x^2));代数式的化简(1) (x+1)*(x-1)*(x-2)/(x-3)/(x-4);(2) sin(x)^2+cos(x)^2;(3) x+sin(x)+2*x-3*cos(x)+4*x*sin(x);2.函数与参数的运算操作。
从y=x^2通过参数的选择去观察下列函数的图形变化(1) y1=(x+1)^2(2) y2=(x+2)^2(3) y3=2*x^2(4) y4=x^2+2(5) y5=x^4(6) y6=x^2/23.两个函数之间的操作求和(1) sin(x)+cos(x)(2) 1+x+x^2+x^3+x^4+x^5乘积(1) exp(-x)*sin(x)(2) sin(x)*x商(1) sin(x)/cos(x);(2) x/(1+x^2);(3) 1/(x-1)/(x-2);求复合函数(1) y=exp(u) u=sin(x)(2) y=sqrt(u) u=1+exp(x^2)(3) y=sin(u) u=asin(x)(4) y=sinh(u) u=-x三、设计提示1.初次接触Matlab应该注意函数表达式的文本式描述。
MATLAB运算基础(第2章)答案
实验01讲评、参考答案讲评未交实验报告的同学名单数学:6人(11、12级)信科:12-04, 12-22, 13-47批改情况:问题1:不仔细,式子中出错。
问题2:提交的过程不完整。
问题3:使用语句尾分号(;)不当,提交的过程中不该显示的结果显示。
问题4:截屏窗口没有调整大小。
附参考答案:《MATLAB软件》课内实验王平实验01 MATLAB运算基础(第2章MATLAB数据及其运算)一、实验目的1. 熟悉启动和退出MATLAB 的方法。
2. 熟悉MATLAB 命令窗口的组成。
3. 掌握建立矩阵的方法。
4. 掌握MATLAB 各种表达式的书写规则以及常用函数的使用。
二、实验内容1. 数学表达式计算先求下列表达式的值,然后显示MATLAB 工作空间的使用情况并保存全部变量。
1.1 计算三角函数122sin 851z e=+(注意:度要转换成弧度,e 2如何给出) 示例:点击Command Window 窗口右上角的,将命令窗口提出来成悬浮窗口,适当调整窗口大小。
命令窗口中的执行过程:1.2 计算自然对数221ln(1)2z x x =++,其中2120.455i x +⎡⎤=⎢⎥-⎣⎦(提示:clc 命令擦除命令窗口,clear 则清除工作空间中的所有变量,使用时注意区别,慎用clear 命令。
应用点乘方) 命令窗口中的执行过程:1.3 求数学表达式的一组值0.30.330.3sin(0.3)ln , 3.0, 2.9,,2.9,3.022a a e e a z a a --+=++=--提示:利用冒号表达式生成a 向量,求各点的函数值时用点乘运算。
命令窗口中的执行过程:1.4 求分段函数的一组值2242011122123t t z t t t t t ⎧≤<⎪=-≤<⎨⎪-+≤<⎩,其中t =0:0.5:2.5提示:用逻辑表达式求分段函数值。
命令窗口中的执行过程:1.5 对工作空间的操作接着显示MATLAB当前工作空间的使用情况并保存全部变量提示:用到命令who, whos, save, clear, load,请参考教材相关内容。
matlabMATLAB的数值计算
4. 矩阵的其它运算
inv —— 矩阵求逆 det —— 行列式的值 eig —— 矩阵的特征值 diag —— 对角矩阵
’ —— 矩阵转置 sqrt —— 矩阵开方
5.矩阵的一些特殊操作
矩阵的变维
a=[1:12];b=reshape(a,3,4) c=zeros(3,4);c(:)=a(:) 矩阵的变向 rot90:旋转; fliplr:上翻; flipud:下翻 矩阵的抽取 diag:抽取主对角线;tril: 抽取主下三角;
2. 数组乘除(,./,.\)
ab —— a,b两数组必须有相同的行
和列两数组相应元素相乘。
a=[1 2 3;4 5 6;7 8 9];
b=[2 4 6;1 3 5;7 9 10];
a.*b
ans =
2
8
18
4
15
30
49
72
90
a=[1 2 3;4 5 6;7 8 9]; b=[2 4 6;1 3 5;7 9 10];
save data a b ——将工作空间 中a和b变量存到data.mat文件中。 下次运行matlab时即可用load指 令调用已生成的mat文件。
load —— load data —— load data a b ——
即可恢复保 存过的所有 变量
mat文件是标准的二进制文件, 还可以ASCII码形式保存。
3. 数组乘方(.^) — 元素对元素的幂
例:
a=[1 2 3];b=[4 5 6];
z=a.^2
z=
1.00
4.00
9.00
z=a.^b
z=
1.00 32.00 729.00
四、 多项式运算
学习笔记-MATLAB
学习笔记-MATLAB⼀,基操1,命令窗⼝中的标点符号:空格:⽤于输⼊变量之间的分隔符以及数组⾏元素之间的分隔符。
逗号:⽤于要显⽰计算结果的命令之间的分隔符;⽤于输⼊变量之间的分隔符;⽤于数组⾏元素之间的分隔符。
点号:⽤于数值中的⼩数点。
分号:⽤于不显⽰计算结果命令⾏的结尾;⽤于不显⽰计算结果命令之间的分隔符;⽤于数组元素⾏之间的分隔符。
冒号:⽤于⽣成⼀维数值数组,表⽰⼀维数组的全部元素或多维数组的某⼀维的全部元素。
百分号:⽤于注释的前⾯,在它后⾯的命令不需要执⾏。
单引号:⽤于括住字符串。
圆括号:⽤于引⽤数组元素;⽤于函数输⼊变量列表;⽤于确定算术运算的先后次序。
⽅括号:⽤于构成向量和矩阵;⽤于函数输出列表。
花括号:⽤于构成元胞数组。
下划线:⽤于⼀个变量、函数或⽂件名中的连字符。
续⾏号:⽤于把后⾯的⾏与该⾏连接以构成⼀个较长的命令。
“At”号:⽤于放在函数名前形成函数句柄;⽤于放在⽬录名前形成⽤户对象类⽬录。
+,-,*,/,Λ:算术运算符。
2,数值计算结果的显⽰格式:命令含义范例format short短格式(默认) 3.1416(⼩数点后4位有效)format short e短格式科学格式 3.1416e+000(5位科学计数)format long长格式 3.141592653589793(15位)format long e长格式科学格式 3.141592653589793e+000format rat有理格式355/113format hex⼗六进制格式400921fb54442d18format bank 银⾏格式 3.14(元⾓分格式)3,命令窗⼝的常⽤控制命令:clc: 清屏。
清除命令窗⼝中的所有已显⽰的内容。
clear: 删除内存中的变量。
what:列出当前⽬录下的M、MAT、MEX⽂件清单。
dir:显⽰当前⽬录或指定当前⽬录下的⽂件。
cd 路径:改变或显⽰当前⼯作⽬录;路径可省略,省略时为显⽰当前⼯作⽬录;cd ..表⽰回到上⼀级⽬录。
MATLAB基础(矩阵运算和矩阵操作)2
223445.68
数学运算符号及标点符号
+ — * .* / ./ ^ 减法运算 乘法运算 点乘运算 除法运算 点除运算 乘幂运算
加法运算,适用于两个数或两个同阶矩阵相加
(1)MATLAB的每条命令后,若为逗号或无标点符号, .^ 点乘幂运算 则显示命令的结果;若命令后为分号,则禁止显示结果. \ 后面所有文字为注释. (2)“%” 反斜杠表示左除. 36 (3) “...”表示续行.
10
命令窗口
11
工作间
12
当前目录
13
历史命令
14
设置路径搜索 当前目录
15
进入搜索对话框
16
设置搜索路径对话框
17
18
Editpath or pathtool
20
‘帮助’的使用
help 命令:已知命令 lookfor命令:知道命令的关键词 MATLAB Help:命令查找,索引,说明书 Demo
2.2345e+005
>> format rat >> 223445.6778987654
>> format bank >> 223445.6778987654
ans =
ans =
670337/3 >> format long e >> 223445.6778987654 ans = 2.234456778987654e+005
39
clear命令用于删除MATLAB工作空间中的变 量。 who和whos这两个命令用于显示在MATLAB工 作空间中已经驻留的变量名清单。 who命令只显示出驻留变量的名称,whos在给 出变量名的同时,还给出它们的大小、所占 字节数及数据类型等信息。
MATLAB介绍(2)
eig —— 矩阵的特征值
diag —— 对角矩阵
’ —— 矩阵转置 sqrt —— 矩阵开方
数组运算
数组运算指元素对元素的算术运
算,与通常意义上的由符号表示的
线性代数矩阵运算不同 1. 数组加减(.+,.-) a.+b a.- b 对应元素相加减(与矩阵加 减等效)
通过根创建多项式poly 其调用格式如下:
P=poly(A) 如A为向量,则P是多项式的系数行向量, 该多项式的根A。
注意: 如A为n×n的矩阵,则P是一个长度为n+1 的行向量,它是A的特征多项式的系数;
例:
A=[6 -8 6;1 0 0;0 2 0]; p=poly(A), roots(p), D=eig(A)
例、用简短命令计算并绘制在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)
1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 0 1 2 3 4 5 6
逗号可作为指令间的分隔符, matlab允许多条语句在同一行出 现。
ห้องสมุดไป่ตู้
数据的保存与获取
把matlab工作空间中一些有用的数据 长久保存下来的方法是生成mat数据 文件。 save —— 将工作空间中所有的变量 存到matlab.mat文件中。
默认文件名
save filename——将工作空间中所
1.0042 + 0.0025i 1.0042 - 0.0025i 1.0000 + 0.0049i 1.0000 - 0.0049i 0.9958 + 0.0024i 0.9958 - 0.0024i
第2章 MATLAB的基本语法(1)
handmard
Handmard矩 rosser 阵
hankel hilb invhilb
Hankel矩阵 toeplize Hilbert矩阵 vander
Hilbert逆矩 wilkinson 阵
魔方矩阵
Pascal矩阵
经典的对称 特征值测试 矩阵 Toeplize矩阵
Vandermond e矩阵 Wilkinson’s 特征值测试 矩阵
• 这几个函数的调用格式相似,下面以产生零矩阵 的zeros函数为例进行说明。其调用格式是:
zeros(m) 产生m×m零矩阵
zeros(m,n) 产生m×n零矩阵。 zeros(size(A)) 产生与矩阵A同样大小的零矩阵
• 相关的函数有:length(A)给出行数和列数中的较 大者,即length(A)=max(size(A));ndims(A)给出 A的维数。
1/0
Inf (1/0)
Warning: Divide by zero. ans =
Inf
NaN (0/0,0*Inf,Inf/Inf)
Inf/Inf ans = NaN
ans pi Inf NaN i或j Nargin nargout realmax realmin flops eps
基本赋值矩阵
MATLAB中所有的运算符和函数对复数 有效
f=sqrt(1+2i) f=
1.2720 + 0.7862i
>> f*f ans =
1.0000 + 2.0000i
变量检查
在调试程序时,要检查工作空间中的 变量及其阶数
变量检查用who命令
who
Your variables are:
实验五 matlab基础知识(简单)
本次实验注意:《实验五MALTAB基础知识(简单)》《实验五基于Matlab的信号频谱分析(复杂)》选作一个即可实验五MALTAB基础知识(一)实验目的 (2)(二)实验设备 (2)(三)实验要求 (2)(四)实验内容 (2)1.1 MATLAB基础知识 (2)1.1.1 MATLAB程序设计语言简介 (2)1.1.2 MA TLAB界面及帮助 (2)1.2 MA TLAB基本运算 (4)1.2.1 MA TLAB内部特殊变量和常数 (4)1.2.2 变量类型 (4)1.2.3 内存变量管理 (5)1.2.4 MA TLAB常用数学函数 (5)1.2.5 MA TLAB矩阵生成 (5)1.2.6 MA TLAB矩阵运算 (8)1.2.7 MA TLAB中的矩阵分析 (10)1.3 MA TLAB程序设计 (10)1.3.1 M文件 (10)1.3.2 程序控制结构 (12)实验五MALTAB基础知识(一)实验目的●了解MA TLAB 程序设计语言的基本特点,熟悉MA TLAB软件运行环境●掌握创建、保存、打开m文件及函数的方法●掌握变量等有关概念,具备初步的将一般数学问题转化为对应的计算机模型并进行处理的能力(二)实验设备计算机,Matlab软件(三)实验要求本实验属于验证实验,请根据(四)实验内容的步骤,运行相应的指令或例子,并将仿真结果截图至文档(请自己新建一个word文档,注意,并不一定所有指令或例子的实验结果都要截图,截图数目大于等于5个即可,自己选择性截图,答案不唯一,自由发挥)请在页眉处填写班级、学号、姓名,并将实验报告命名为“实验五_学号_姓名”,并通过FTP上传至指定文件夹。
(四)实验内容1.1 MATLAB基础知识1.1.1 MATLAB程序设计语言简介MA TLAB,Matrix Laboratory的缩写,是由MathWorks公司开发的一套用于科学工程计算的可视化高性能语言,具有强大的矩阵运算能力。
矩阵在matlab中的基本命令
一、矩阵的表示在MATLA B中创建矩阵有以下规则:a、矩阵元素必须在”[]”内;b、矩阵的同行元素之间用空格(或”,”)隔开;c、矩阵的行与行之间用”;”(或回车符)隔开;d、矩阵的元素可以是数值、变量、表达式或函数;e、矩阵的尺寸不必预先定义。
二,矩阵的创建:1、直接输入法最简单的建立矩阵的方法是从键盘直接输入矩阵的元素,输入的方法按照上面的规则。
建立向量的时候可以利用冒号表达式,冒号表达式可以产生一个行向量,一般格式是:e1:e2:e3,其中e1为初始值,e2为步长,e3为终止值。
还可以用li nspac e函数产生行向量,其调用格式为:linspa ce(a,b,n) ,其中a和b是生成向量的第一个和最后一个元素,n是元素总数。
2、利用MATL AB函数创建矩阵基本矩阵函数如下:(1) ones()函数:产生全为1的矩阵,ones(n):产生n*n维的全1矩阵,ones(m,n):产生m*n 维的全1矩阵;(2) zeros()函数:产生全为0的矩阵;(3) rand()函数:产生在(0,1)区间均匀分布的随机阵;(4) eye()函数:产生单位阵;(5) randn()函数:产生均值为0,方差为1的标准正态分布随机矩阵。
3、利用文件建立矩阵当矩阵尺寸较大或为经常使用的数据矩阵,则可以将此矩阵保存为文件,在需要时直接将文件利用load命令调入工作环境中使用即可。
同时可以利用命令res hape对调入的矩阵进行重排。
reshap e(A,m,n),它在矩阵总元素保持不变的前提下,将矩阵A重新排成m*n的二维矩阵。
二、矩阵的简单操作1.获取矩阵元素可以通过下标(行列索引)引用矩阵的元素,如 Matrix(m,n)。
也可以采用矩阵元素的序号来引用矩阵元素。
Matlab基础及其应用 第2章 MATLAB数据对象
y=
0.5690 + 1.3980i
2.2 变量及其操作
2.2.1 变量与赋值
3.预定义变量
MATLAB基础与应用教程
2.2 变量及其操作
MATLAB基础与应用教程
2.2.2 变量的管理
1.内存变量的显示与修改
who函数按字母顺序列出当前工作区中的所有变量,whos函 数工作区中按字母顺序列出当前工作区中的所有变量及大小、 类型。
2.2 变量及其操作
MATLAB基础与应用教程
2.2.1 变量与赋值
1.变量命名 在MATLAB中,变量名是以字母开头,后跟字母、数字或下划 线的字符序列,最多63个字符。 变量名区分字母的大小写。 不能使用MATLAB的关键字作为变量名。
2.2 变量及其操作
MATLAB基础与应用教程
2.2.1 变量与赋值
构建二维字符数组可以使用创建数值数组相同的方法matlab基础与应用教程25字符数据及操作251字符向量与字符数组matlab还有许多与字符处理有关的函数matlab基础与应用教程25字符数据及操作例22建立一个字符串向量然后对该向量做如下处理
MATLAB基础与应用教程
第2章 MATLAB数据对象
【本章学习目标】 掌握MATLAB数据对象的特点。 掌握变量的创建与管理。 掌握矩阵的生成、转换与运算。 掌握MATLAB基本的运算规则。
0 -2 -4 -6 -8
2.3 MATLAB数组
MATLAB基础与应用教程
2.3.1 构造数组
2.构造行向量 用linspace函数构建线性等间距的行向量,logspace函数构 建对数等间距的行向量: linspace(a, b, n) logspace(a, b, n) 其中,参数a和b是生成向量的第1个和最后1个元素,选项n 指定向量元素个数。当n省略时,默认生成100个元素。
计算方法
实验一阅读和练习第1章M AT L A B是什么没有M AT L A B就没有乐趣MAT L A B能做什么⏹M AT L A B是一个可视化的计算程序,被广泛地使用于从个人计算机到超级计算机范围内的各种计算机上.⏹M AT L A B包括命令控制、可编程,有上百个预先定义好的命令和函数.这些函数能通过用户自定义函数进一步扩展.⏹M AT L A B有许多强有力的命令.例如,M AT L A B能够用一个单一的命令求解线性系统,能完成大量的高级矩阵处理.⏹M AT L A B有强有力的二维、三维图形工具.⏹M AT L A B能与其他程序一起使用.例如,M AT L A B的图形功能,可以在一个FO RT R A N程序中完成可视化计算.⏹ 2 5个不同的M AT L A B工具箱可应用于特殊的应用领域.M AT L A B在以下的领域里解决各种问题是一个十分有效的工具:⏹工业研究与开发.⏹数学教学,特别是线性代数.所有基本概念都能涉及.⏹在数值分析和科学计算方面的教学与研究.能够详细地研究和比较各种算法.⏹在诸如电子学、控制理论和物理学等工程和科学学科方面的教学与研究.⏹在诸如经济学、化学和生物学等有计算问题的所有其他领域中的教学与研究.第一节概述⏹MATLAB:matrix laboratory.⏹开始:用于矩阵数值计算的软件.⏹发展:由美国MathWorks公司开发,成为最具有吸引力,应用最为广泛的科学计算语言.1.启动和退出M AT L A B双击桌面M AT L A B图标而启动.MATLAB桌面平台:⏹主窗口:整个大的窗口(其它几个窗口都包括在其中)⏹命令窗口(command window):》为运算提示符,表示MATLAB在准备状态.当在提示符后输入一段运算式并按回车键后,就给出计算结果.注:(1)MATLAB的每条命令后,若为逗号或无标点符号,则显示命令的结果;若命令后为分号,则禁止显示结果.(2)“=”是赋值符,“%” 后面所有文字为注释,不运行.(3)“...”表示续行,如输入很长的行向量时需用到.⏹历史窗口(command history):保留命令历史记录,这方便于使用者查询.双击历史窗口中的某一行命令,即可在命令窗口中执行该命令.⏹当前目录窗口(current directory):在当前目录窗口中可显示或改变当前目录,也可以显示当前目录下的文件,并提供搜索功能.工作间管理窗口(workspace):显示目前内存中所有的MATLAB变量的变量名、数学结构、字节数及其类型.2. 常用的命令命令集1 退出和中断:e x i t,q u i t 结束M AT L A B会话.程序完成,如果没有明确保存,则变量中的数据丢失C t r l - c 中断一个M A T L A B任务.例如,当M AT L A B正在计算或打印时,中断一个任务,但会话并没有结束.命令集2 特殊的功能键↑或C t r l_p 恢复前面的命令.↓或C t r l_n 恢复当前命令之后键入的命令.→或C t r l_f 向右移动一个字符.←或C t r l_b 向左移动一个字符.Delete, Backspace 删除字符.C t r l_l 或C t r l_←向左移动一个字.C t r l_r 或C t r l_→向右移动一个字.C t r l_a 或H o m e 移动到行的第一个字符.C t r l_e 或end 移动到行尾.C t r l_k 删除到行尾.3. 预定义变量命令集3 M AT L A B中预定义变量ans分配最新计算表达式的值,这个表达式并没有给定一个名字.eps返回机器精度,定义1与最接近可代表的浮点数之间的差. eps数在一些命令中用作偏差.用户可以设定一个新的eps值,但要注意这个eps值不能由命令clea r恢复.r e a l m a x 返回计算机能处理的最大浮点数.r e a l m i n 返回计算机能处理的最小的非零浮点数.p i返回π,即3 . 1 4 1 5 9 2 6 5 3 5 8 9 7 9 3,如果e p s足够小,那么用1 6位十进制数来表示其精度.i n f 定义为1 / 0 .当出现被零除时,M AT L A B就返回i n f,并不中断执行而继续计算.N a N定义为“Not a Number”,这个非数值要么是%类型,要么是i n f / i n f.i,j,虚数单位.可以为i和j分配其他值,它们将不再是预定义常数.可以由c l e a r命令恢复.第二节实例1. 完成下列命令,观察结果:① pi*2+exp(1)=的解② %求方程组Ax b[2,3,1;8,3,2;45,1,9]A=--b=[4;2;17]\x A b =③ %画出sin ,cos x x 的图像[0:0.5:360]/180;x pi =*(,sin(),,cos())plot x x x x④ %求方程432379230x x x ++-=的根 [3,7,9,0,23];p =-()x roots p =⑤ %魔方矩阵(4)A magic =(),('),()a sum A b sum A c trace A ===⑥ %无穷大、不定式1x =;2/(1)x -(1)/(1)x x x *--⑦ A=1:10;A(2)仔细比较下列各题⑧ %求和0;1:10;;kfor j k k j end k = = =+ ⑨0;1:10;k for j k k j end k = = =+ ⑩1:10;for j k k j end = =+⑾ 0;1:10;k for j k k j endk= ==+2. 练习matlab 的基本命令实验二第2章MATLAB数值计算功能MATLAB强大的数值计算功能使其在诸多数学计算软件中傲视群雄,是MATLAB的基础.本章将简要介绍MATLAB的数据类型、矩阵的建立及运算.第一节MATLAB 的数据类型MATLAB 的数据类型主要包括:数字、字符串、矩阵、单元型数据及结构型数据等,此处仅介绍几个常用类型.一、MATLAB中的变量与常量不需要对所使用的变量进行事先声明,也不需要指定其类型,它会自动根据所赋予变量的值或所进行的操作来确定变量的类型.如果变量重新赋值将会用新值代替旧值并以新值类型代替旧值类型.例1 a=1;b=0.5;c=a*b,c=‘a*b’⏹变量的命名规则是:(1)变量名可以有63个字符.字母A~Z、a~z、数字和下划线‘_’都可以作为变量名,但第一个字符必须是一个字母;(2)变量名区分大小写,如矩阵a和A是不一样的;(3)变量名中不允许使用标点符号、空格、运算符;(4)预定义变量名也可以像一个变量名那样使用,但函数只有在变量由命令clear删除后才能使用,所以,不主张这样使用;(5)MATLAB提供的标准函数及命令通常是用小写字母书写.⏹例2 命令abs (A)给出了A的绝对值,但ABS(A)会导致在屏幕上显示错误信息.二、算术表达式及显示格式在MATLAB中对十进制数,使用科学记数法可以书写十分大和十分小的数.例如1.23E-6,代表1.23×10-6 .MATLAB有算术运算符的扩展集,它们是:1) ^幂; 2) *乘; / 右除(正常除); \ 左除;3) +加;-减这是按序给出的运算,1)是最高优先级.在带相同优先级的运算符表达式中,按从左到右的顺序执行.圆括号( )能够用于改变优先级次序.两种不同的除法:对于数量右除 2 / 5得0 . 4与左除5 \ 2是相同的,斜线号“靠着”的表达式或数字是分母.如a/(b+c)即为ab c+,而a\(b+c)即为b ca+.命令集4 显示格式format defformat 将输出格式改为由defformat 定义的格式,这类格式可以是如下之一: short 、long 、short e 、long e 、hex 、+、bank 、rat也有compact 或loose ,它给出了一个较紧缩或较宽松的输出格式,但并不影响数值输出格式.■ 例3 设 p = 1 + 1/3,先定义格式,然后在屏幕上显示p :format short 得 1.3333 4位小数format long 得 1.33333333333333 14位小数format short e 得 1.3333e + 00 4位小数format long e 得 1.333333333333333e + 00 15位小数format hex 得 3ff5555555555555 16进制数format + 得 + 正:+format bank 得 1.33 美元和美分format rat 得 4/3 作为一个有理数三、数学函数命令集5 数学函数abs(x) 求x 的绝对值,即 |x| .sign(x) 求x 的符号,如果是正的得1;负的得-1;零得0 .sqrt(x) 求x .exp(x) 求x 的指数函数,即x e .log(x) 求x 的自然对数,即lnx .log10(x) 求x 以10为底的对数,即10log x . sin(x) 求正弦x ,x 为弧度 .cos(x) 求余弦x ,x 为弧度.tan(x) 求正切x ,x 为弧度.cot(x) 求余切x ,即1 / ( tanx),x 为弧度.asin(x) 求反正弦,即1sin x - . acos(x) 求反余弦,即1cos x -.sec(x) 求正割x ,即1/(cosx) .csc(x) 求余割x ,即1/(sinx) .命令集6 取整命令round(x)求最接近x的整数.如果x是一个向量,则适用于所有元素.fix(x) 求0方向最接近x的整数.即负x向上四舍五入,正x向下四舍五入.floor(x) 求小于或等于x的最接近的整数.ceil(x)求大于或等于x的最接近的整数.rem(x, y)求整除x/y的余数.gcd(x, y) 求正整数x和y的最小公倍数,也能用于决定最小公因子.第二节MATLAB的矩阵的建立与运算矩阵是 MATLAB 数据存储的基本单元,而矩阵的运算是 MATLAB 语言的核心,几乎一切运算均是以对矩阵的操作为基础的.一、矩阵的建立1. 直接输入法从键盘上输入矩阵是最方便、最常用的创建数值矩阵的方法,尤其适合较小的简单矩阵.规则如下:⏹输入矩阵时要以“[ ]”为其标识符号,矩阵的所有元素必须都在中括号内.⏹矩阵同行元素之间由空格或逗号分隔,行与行之间用分号或回车键分隔.⏹矩阵大小不需要预先定义.⏹矩阵元素可以是运算表达式.⏹若"[ ]"中无元素表示空矩阵.例4 >> A=[1 2 3;4 5 6;7 8 9]A= 1 2 34 5 67 8 92. 利用“:”生成矩阵(1)生成等距的行向量,如>> a=1:0.5:4a= Columns 1 through 71 1.52 2.53 3.5 4(2)截取指定矩阵中的部分生成新矩阵,如>> B=A (1:2, : )B= 1 2 34 5 6即矩阵B是例4中A矩阵的前两行生成.3. 外部文件读入法以文件的形式存储,适合大型矩阵输入.读入形式:>> Load+文件名Load 函数将会从文件名所指定的文件中读取数据,并将输入的数据赋给以文件名命名的变量,如果不给定文件名,则将自动认为 matlab.mat 文件为操作对象,如果该文件 在 MATLAB 搜索路径中不存在时,系统将会报错.4. 特殊矩阵的生成命令集7 1矩阵、零矩阵、单位矩阵和随机矩阵ones (n) 建立一个n ×n 的1矩阵.ones (m , n) 建立一个m ×n 的1矩阵.ones (size(A)) 建立一个和矩阵A 同样大小的1矩阵.zeros(n) 建立一个n ×n 的0矩阵.zeros(m , n) 建立一个m ×n 的0矩阵.zeros(size(A)) 建立一个和矩阵A 同样大小的0矩阵.eye(n) 建立一个n ×n 的单位矩阵.eye(m, n) 建立一个m ×n 的单位矩阵.eye(size(A)) 建立一个和矩阵A 同样大小的单位矩阵.rand 产生在0~1之间均匀分布的随机数;每调用一次给一个新的数值.rand + i*rand 产生一个复数随机数.rand(n) 产生一个n ×n 的矩阵,其元素为0~1之间均匀分布的随机数.rand(m , n) 产生一个m ×n 的矩阵,其元素为0~1之间均匀分布的随机数.二、矩阵的运算MATLAB 中的大多数运算可以直接对矩阵应用.除了算术运算+、-、*、^、/、\外,还有用于转置和共轭的运算符(撇号 ’:实数时为转置,复数时为共轭转置,复数时转置为 .’)、关系运算符和逻辑运算符.1. 除法 在MATLAB 中,有两个矩阵除法的符号,左除 \和右除/.如果A 是一个非奇异方阵,那么A \ B 和B / A 对应A 的逆与B 的左乘1A B -和右乘1BA -,即分别等价于命令 i n v ( A ) *B 和B* i n v ( A ).2. 元素操作算术运算算术运算也可以元素与元素逐次进行.参与运算的矩阵维数要相同.如果运算是由一点进行的,那么这个运算实行的是元素方式,称为数组运算或点运算.对于加法和减法,数组运算(点运算)和矩阵运算没有差别.数组运算(点运算)符是:+ - . * . / . \ . ^例5 >> A=[1 2 3;4 5 6;7 8 9];B=one(3); C=A.*BC=1 2 34 5 67 8 93. 关系运算符MATLAB有用于比较矩阵的六个关系运算符,也可以对矩阵与一个标量进行比较,即矩阵中的每个元素与标量进行比较.关系运算符如下:< 小于< = 小于等于> 大于> = 大于等于= = 等于~ = 不等于关系运算符比较对应的元素,产生一个仅包含 1和0的具有相同维数的矩阵.其元素是:1 比较结果是真0 比较结果是假在一个表达式中,算术运算符优先级最高,其次是关系运算符,最低级别是逻辑运算符.圆括号可以改变其顺序.4. 逻辑运算符在MATLAB中有四种逻辑运算符:& 与;| 或;~ 非;xor 异或;逻辑运算符的运算优先级最低.在一个表达式中,关系运算符和算术运算符的运算级别要高于逻辑运算符.x o r和o r之间的差别在于:表达式中至少有一个是真,那么 o r是真;x o r是表达式中有一个是真但不能两者均为真时才为真.运算符&和|比较两个相同维数的矩阵,它也能使一个标量与一个矩阵进行比较.逻辑运算符是按元素比较的.零元素表示逻辑值假,任何其他值的元素表示逻辑值真.其结果是一个包含1和0的矩阵.命令集8 逻辑运算符A & B返回一个与A和B相同维数的矩阵.在这个矩阵中, A和B对应元素都为非零时,则对应项为1;有一个为零的项则为0.A | B返回一个与A和B相同维数的矩阵.在这个矩阵中, A和B对应元素只要有一个为非零,则对应项为1;两个矩阵对应元素均为零时,则对应项为0.~A返回一个与A和B相同维数的矩阵.在这个矩阵中,A对应元素是零时,则对应项为1;A对应元素是非零时,则对应项为0.xor(A, B) 返回一个与A和B相同维数的矩阵.在这个矩阵中,如果 A和B均为零或均为非零时,则对应项为 0;如果A或B是非零但不是两者同时为非零时,则对应项为1.练习题1. 在计算机上,求下列表达式的值.①6(10.3424510)w -=+⨯ ;② 2(2)/[tan()]b c x a e b c a abc ππ+=+-+++,其中 3.5,5,9.8a b c ===-; ③ 22[(1)(0.8333)]44y a b a πππ=---, 其中 3.32,7.9a b ==-; ④21(2t z e ln t =+,其中2t = ; ⑤ 0cos sin 78x y u x y +-=+,其中12,3x i y =+=- .2. 完成下列操作,观察结果:① a=1:5,b=(1:5)’② y=0:pi/4:pi③ x=(0:0.2:3)’,y=exp(-x).* sin(x)④ A=[1 2 3;4 5 6;7 8 9]B=[1,2,3;4,5,6;7,8,9]C=[1 2 34 5 67 8 9]⑤ [sin(),2*cos(/3);5*,exp(2)]A pi pi pi =-3. 已知 11112111,1312A B ⎡⎤⎡⎤⎢⎥⎢⎥=- 1 = -⎢⎥⎢⎥⎢⎥⎢⎥ 1 -1 1 1 4⎣⎦⎣⎦, 求 ① AB-2A , ② AB-BA,A.*B,B.*A , ③ 11A B B A --- .4. 21350.65i x ⎡⎤⎢⎥⎣⎦- = -,求21ln(2x y e x =+ . 5.23100.7780414565532503269.5454 3.14D - ⎛⎫ ⎪ - ⎪= ⎪ ⎪ - ⎝⎭,求 2,.*,.^2D D D D . 6.x = (1,1,1,1),y = (2,3,4,5)’ ,求 ,x y y x .7.完成下列操作并观察结果① (6),(5,6),(6,5)ones ones ones② (4),(3,4),(4,3)zeros zeros zeros③ (5),(4,5),(5,4)eye eye eye④ ,(3),(3,4)x rand i rand A rand B rand =+* = = ⑤ (3),(4),(3)hilb hilb invhilb⑥ [12345],[54321],(,),()x y T toeplitz x y S toeplitz x = = = =⑦ (),()A compan x B compan y = =⑧ (),()vander x vander y⑨ C=[ones(4),zeros(4);eye(4),rand(4)]⑩ C=[ones(4),zeros(4);eye(4),rand(5)]8. 建立向量 ① (1:3),(1:0.5:3),(4:0.5:0)x y z = = =-② (/4,/4),(1,3,5)w linspace v linspace ππ=- =9. 完成下列命令,观察结果① a=[1:3;4:6;7:9];x=5;xa=x<=a② b=[0 4 1;1 0 8;2 0 0];ab=a &b③ n_b=~b10. 练习format 命令:对第1题练习各种输出格式.11. 计算P265x=1;y(1)=x ;for k=1:15x=1/(x+1); y(k)=x;endy12. 计算P266x=1;y(1)=x ; w=7/25;for k=1:10x=w*x+(1-w)/(x+1); y(k)=x;endy实验三第三节 矩阵基本函数运算与矩阵元素的提取(第二章)一、 矩阵基本函数运算此运算是矩阵运算中最实用的部分,其基本命令如下: 命令集9 矩阵的大小、行列式、逆、特征值、秩、迹、范数size(A) 给出包含A 的维数的一个行向量.在这个返回向量中的第一个元素是行数,随后是列数 .[ m ,n ]=size(A) 给出A 的维数、m 行数和n 列数,即两个标量. length(x) 给出一个向量的长度,即x 分量个数. sum(A) 若A 是矩阵,给出一个行向量,其每个分量表示A 相应的列和;若A 是向量,给出此向量的分量和.det(A) 求矩阵A 的行列式. eig(A) 求包含矩阵A 的特征值的向量.[X,D]=eig(A) 求包含矩阵A 的特征值对应的对角阵D 和以相应特征向量为列的矩阵. inv(A)或A ^ (-1) 求矩阵A 的逆矩阵. rank(A) 求矩阵A 的秩.trace(A) 求矩阵A 的迹(对角线元素之和).norm(A ,1) 矩阵A 的1—范数或列和范数,定义如下. norm(A ,2) 矩阵A 的2—范数. norm(A ,inf) 矩阵A 的∞—范数.norm(x ,1) 向量x 的1—范数或列和范数,定义如下. norm(x ,2) 向量x 的2—范数. norm(x ,inf) 向量x 的∞—范数. 范数定义如下:设'12(,,,)n x x x x = ,()ij n m A a ⨯=,则相应范数定义如下11ni i x x ==∑;2x =;max i ixx ∞=11max nij ji A a ==∑,1max nij ij A a ∞==∑,2A'A i A λ,其中为的最大特征值二、矩阵元素的提取在MA TLAB 中还有利用已存在的矩阵建立新矩阵的命令.以下假设矩阵 A 是m ×n 的矩阵,x 是个有n 个元素的向量. 1. 对角阵与三角阵的生成 命令集10diag(A) 生成一个由矩阵A 主对角线元素组成的列向量.主对角线总是从矩阵左上角开始.对于方阵来说它结束于矩阵的右下角.diag(x) 生成一个n 维的方阵,它的主对角线元素值取自向量 x ,其余元素的值都为0.diag(A , k) 生成一个由矩阵A 第k 条对角线的元素组成的列向量. k= 0为主对角线;k<0为下第k对角线;k> 0为上第k对角线.diag(x , k)生成一个(n+ a b s (k) )×(n+ a b s (k) )维的矩阵,该矩阵的第k条对角线元素取自向量x,其余元素都为零.关于参数k可参考上个命令.triu(A)生成一个和A大小相同的上三角矩阵.该矩阵的主对角线及以上元素取自A 中相应元素,其余元素都为零.triu(A , k)生成一个和A大小相同的上三角矩阵.该矩阵的第k条对角线及以上元素取自A中相应元素,其余元素都为零.命令t r i u ( A , 0 )等同于命令t r i u ( A ).tril(A)生成一个和A大小相同的下三角矩阵.该矩阵的主对角线及以下元素取自A中相应元素,其余元素都为零.tril(A , k) 生成一个和A大小相同的下三角矩阵.该矩阵的第k条对角线及以下元素取自A中相应元素,负数k表示主对角线下的对角线.其余元素都为零.命令t r il ( A , 0 )等同于命令t r i l ( A ).2. 向量和子矩阵的生成在MA TLAB中可以使用冒号‘:’来代表一系列数值.有时也使用它来定义一个子矩阵. 命令集11i : k创建从i开始、步长为1、到k结束的数字序列,即i ,i+1, i+2, . . . , k .如果i>k,MATLAB则返回一个空矩阵,也就是[ ].数字i和k不必是整数,该序列的最后一个数是小于或等于k.i : j : k创建从i开始、步长为1、到k结束的数字序列,即i, i+j, i+ 2j, . . ., k .对于j=0,则返回一个空矩阵.数字i、j和k不必是整数,该序列的最后一个数是小于或等于k.linspace(a , b)在区间[a, b]上创建一个有1 0 0个元素的向量,这1 0 0个数把整个区间线性分隔.其中a是第一个元素,b是最后一个.linspace(a, b, n)在区间[a, b]上创建一个有n个元素的向量.这个命令和冒号表示形式相近,但是它直接定义了数据的个数,其步长为(b-a)/(n-1) .命令集12 定义子阵A ( i , j )返回矩阵A中第ij元素的值.A ( : , j )返回矩阵A中第j列列向量.A ( i , : )返回矩阵A中第i行行向量.A ( : , j : k )返回由矩阵A中的第j列,第j+ 1列,直到第k列列向量组成的子阵.A ( i : k , : )返回由矩阵A中的第i行,第i+ 1行,直到第k行行向量组成的子阵.A ( i : k , j : l )返回由二维矩阵A中的第i行到第k行行向量和第j列到第l 列列向量组成的子阵.A ( : )将矩阵A中的每列合并成一个长的列向量.A(j:k)返回一个行向量,其中的元素为A ( : )中的从第j个元素到第k个元素.A([j1 j2 . . . ] )返回一个行向量,其中的元素为A ( : )中的第j1、j2 元素.A(:,[j1 j2 . . .] )返回矩阵A的第j1列、第j2列等的列向量.A([i1 i2. . . ] : , )返回矩阵A的第i1行、第i2行等的行向量.A([i1 i2. . . ] ,[j1 j2. . . ] ) 返回矩阵第i1行、第i2行等和第j1列、第j2列等的元素.二、矩阵元素的增减在MA TLAB中可以通过增加元素、行和列将一个矩阵或者向量进行扩展.由于MATLAB可以自动地改变矩阵的大小,所以使用已存在的矩阵的一部分来创建一个新矩阵是很容易的这在许多应用中都很有用.从已存在的矩阵中建立一个矩阵就和定义一个新矩阵一样.元素用空格或逗号分隔,行用分号或回车分隔. ■ 例1 假设下列矩阵已经定义为:()()125611,,,,13143412A B x y z ⎛⎫⎛⎫⎛⎫= = =9 10 = = ⎪ ⎪ ⎪ 7 8⎝⎭⎝⎭⎝⎭(a) 有几种方式可以将向量x 扩展成1×4.假设想要的新向量是:xnew=(9 10 0 5)下列的三种方法都可以给出想要的结果:① xnew=x; xnew(3)=0;xnew(4)=5; ② xnew=[x 0 5]; ③ t=[0 5]; xnew=[x t];(b) 以下两种方法可以对矩阵A 扩展一个新行,如向量z :① Anew1=[A ; z] , ② Anew1=[A ; [13 14]] .它们在屏幕上显示的结果如下: Anew1=1 2 2 4 13 14有时还可以对矩阵添加多个新行:>> Anew2=[A ;x ;z;[0 0]](c) 对矩阵A 扩展一个新列,如y ,可以这样做:>> Anew3=[A y ] 或者 >> Anew3=[A [11;12] ] (d) 对矩阵A 扩展一个矩阵的操作是相似的,输入命令: >> Anew4=[A; B ] , >> Anew5=[A B ]对于Anew4来说,它的列数一定等于矩阵 A 和B 的列数;而对于Anew5来说,它的行数一定等于矩阵A 和B 的行数. (e) 改变矩阵的元素① >>A(3,3)=15 矩阵A 的(3,3)元素变为15 ② >>A(2,:)=[1 0] 矩阵A 的第2行变为[1 0] ③ >>A(2,:)=[ ] 矩阵A 变为一个行向量(f) 为了生成规则的矩阵块可以下列的方式使用命令 repmat.■ 例2① >>repmat([1 0; 0 1],3,3) 返回一个由[1 0; 0 1]组成的6阶矩阵 ② >>repmat([1 0],1,5)得到:返回一个由[1 0]组成的10维行向量 ③ 如果要创建一个所有元素都是同一个值的矩阵,可以使用命>>repmat(42,[2 2]) 返回一个由42组成的2阶矩阵第四节 字符串(第二章)在M AT L A B 中可能会遇到对字符和字符串的操作.字符串能够显示在屏幕上,也可以用来构成一些命令,这些命令在其他的命令中用于求值或者被执行.一个字符串是存储在一个行向量中的文本,这个行向量中的每一个元素代表一个字符.实际上,元素中存放的是字符的内部代码,也就是ASCII码.当在屏幕上显示字符变量的值时,显示出来的是文本,而不是ASCII数字.由于字符串是以向量的形式来存储的,所以可以通过它的下标对字符串中的任何一个元素进行访问.字符矩阵也可以这样,但是它的每行字符数必须相同.一、输入格式MATLAB中的字符串用单引号来定义:Name Of Variable ='text'这里的text 可以是字母、数字和特殊字符(a)简单的分配方法,如name = 'John Smith ',在屏幕上就会有如下显示:name =John Smith(b)分配一个字符.如果(a)中变量name已存在,令name (3)= 'a ',则会给出:name =Jo a n Smith(c)将上例中的字符串name的元素前后互换位置,可以输入:for i=length(name):-1:1enam(i)=name(length(name)+1-i);endenam下面显示出字符串eman的值:eman =htimS naoJ(d)在字符串中用两个单引号来表示一个单引号:whoscat='Joan"s cat'显示结果为:whoscat =Joan's cat(e) 字符串的组成可以象数字矩阵一样:>>name1='Joan'; name2='John' ;heart='is in love with';>>sentence=[name1,' ',heart, ' ', name2]显示的结果为:sentence=Joan is in love with John(f) 冒号表达式的使用和在数字矩阵中的使用情况一样:>>name='Charles Johnson';firstname= name(1:7)firstname =Charles二、字符串求值MATLAB命令可以以字符串的形式进行输入和存储.这些命令字符串通过eval命令来求值.命令集13字符串求值eval (str)执行st 中包含的MA TLAB命令并返回结果.eval(str1, str2)执行str1中的MATLAB命令,如果没有错误就和执行eval(str1)一样;如果在对str1求值中第一个字符串是一个错误,则对字符串str2进行求值,给出一个错误信息或者其他内容.g = inline (str ,arg1, arg2) 从字符串str中建立一个叫内联的函数g,如存储在工作内存中的函数,可以用g (val1 ,val2 )来调用.函数中参数的名字可以在字符串arg1,arg2,中给出,如果没有给出,MATLAB将从str中找出小写字母作为参数的名字.■ 例3>>b=[1 2 3];k=[2 2 2 ];x=[1.2 1.5 1.2];str1= 'b.* sin(k.*x) '; >>y=eval(str1) y=0.6755 0.2822 2.0264>>g=inline('3*sin(x)+5*cos(y) ', 'x ', 'y ');g(pi,2*pi) ans= 5练习题1. 建立新矩阵 已知(5)A magic =,求① (),(()),((),2),(,2),(,2)diag A diag diag A diag diag A diag A diag A - ② (),(),(,1),(,2),(,2)triu A tril A triu A triu A tril A - - ③ (3,2),(:,2),(4,:)A A A④ (2:3,3:4),(:),(:,:)A A A 2. 计算下列各题,已知(4)A magic =,(1234)x = ①A 的行和、列和,A 的迹、秩,A 的大小② A 的特征值、特征向量及1A A - ,③12,,A A A ∞④ 12,,x x x∞3. 已知(4)A magic =,(4)B ones =,'(1234),(5678)x y = = ,建立下列矩阵: ① 在A 的左边增加一列y ,A 的右边增加一列y ; ② 在A 的上面增加一行x ,A 的下面增加一行x ;③ 在A 的左边增加矩阵B 变为矩阵C ,A 的下面增加矩阵B 变为矩阵D ;④ 由矩阵C 的第1、2、5、8行组成矩阵F ;由矩阵C 的第1、3、5、7列组成矩阵G ;⑤ 由矩阵D 的第1、2、5、8行及第1、3、5、7列组成矩阵H ; ⑥ 删除C 的第二行,删除D 的第三列 ;第3章 MATLAB 程序设计Matlab 作为一种广泛应用于科学计算的工具软件,不仅具有强大的数值计算能力和丰富的绘图功能;可以人机交互式的命令行的方式工作;作为一种高级语言,同时也可以与 C 、FORTRAN 等高级语言一样进行程序设计.利用 Matlab 的程序控制功能,将相关 Matlab 命令编成程序存储在一个文件中(M 文件),然后在命令窗口中运行该文件,Matlab 就会自动依次执行文件中的命令,直到全部命令执行完毕.■ 例1 用 mesh 绘制半径为 3 的球命令行方式: 编程方式:新建一个M 文件 qiu.m 如下:保存后,在命令窗口输入 qiu ,即可执行该 M 文件.第一节 M 文件一、 M 文件介绍● 用 Matlab 语言编写的程序称为 M 文件 ● M 文件以 .m 为扩展名● M 文件是由若干 Matlab 命令组合在一起构成的,它可以完成某些操作,也可以实现某种算法● 文件的命名规则与变量相同!文件名应尽量与程序要表达的意义相符合,以方便今后调用.(如例1)二、 M 文件的建立、打开与保存M 文件是文本文件,可以用任何文本编辑器来建立和编辑,通常使用Matlab 自带的M 文件编辑器.① 新建一个M 文件● 菜单操作 ( Fil e → New → M-File ) ● 命令操作 ( edit M 文件名 )>> u=[0:pi/60:2*pi]; >> v=[0:pi/60:pi]; >> [U,V]=meshgrid(u,v); >> R=3;>> X=R*sin(V).*cos(U); >> Y=R*sin(V).*sin(U); >> Z=R*cos(V); >> mesh(X,Y,Z); >> axis equal;u=[0:pi/60:2*pi]; v=[0:pi/60:pi]; [U,V]=meshgrid(u,v); R=3;X=R*sin(V).*cos(U); Y=R*sin(V).*sin(U); Z=R*cos(V); mesh(X,Y,Z); axis equal;● 命令按钮 ( 快捷键 ) ② 打开已有的 M 文件● 菜单操作 ( File →Open ) ● 命令操作 ( edit M 文件名 ) ● 命令按钮 ( 快捷键 )● 双击M 文件 (在当前目录窗口) ③ 保存M 文件● 菜单操作 ( File →Save ) ● 命令按钮 ( 快捷键 )三、 M 文件分类(根据调用方式的不同)● Script :脚本文件/命令文件(可以直接运行的M 文件)命令文件就是命令行的简单叠加,matlab 会自动按顺序执行文件中的命令.这样就解决了用户在命令窗口中运行许多命令的麻烦,还可以避免用户做许多重复性的工作.(如例1)● Function :函数文件函数文件主要用以解决参数传递和函数调用的问题.(1) 第一行必须指定函数名、输入变量 (参数)和输出变量(参数).输入参数是从MATLAB 的工作空间复制到函数工作空间的变量.第一行举例如下:function [输出形参表] = name(输入形参表)(2) 一个函数可以有0个、一个或几个输入参数和返回值.当输出形参表的参数个数大于2时,[ ]不可缺省!(3) 建议函数名和文件名一样.调用时所用的变量并不需要与函数文件中定义的变量有相同的名字.■ 例2 比较下列两个程序,注意命令文件(以dd1命名)与函数文件(以dd2命名)的区别与联系.四、 两类文件的区别● 函数文件的第一行必须包含字 function ,命令文件没有这种要求.因此,没有这样第一行的M 文件是命令文件. ● 命令文件没有输入参数,也不返回输出参数,而函数文件可以带输入参数,也可以返回输出参数;● 命令文件对matlab 工作空间中的变量进行操作,文件中所有命令的执行结果也完全返回到工作空间中,而函数文件中定义的变量为局部变量,当函数文件执行完毕时,这些变量被清除.● 命令文件可以直接运行.在MATLAB 命令窗口输入命令文件的名字,就会顺序执行命令文件中的命令,而函数文件不能直接运行,而要以函数调用的方式运行.五、M 文件的调用对已存在的M 文件● 命令文件在命令窗口直接输入该文件名即可;如例1>>qiu● 函数文件调用的一般格式x=input(…输入初值x=‟); n=input(…输入迭代次数=‟); y(1)=x ; for k=1:nx=1/(x+1); y(k)=x; end y function y=dd2(x,n) y(1)=x ;for k=1:n x=1/(x+1); y(k)=x; end。
MATLAB 基础
MATLAB基础一、MATLAB概述1.1 MATLAB的发展1.2 MATLAB的主要功能1.3 MATLAB系统的运行环境与安装1.4 MATLAB系统的启动与退出1.5 MATLAB命令窗口1.6 MATLAB文件管理1.7 MATLAB帮助系统1.8 MATLAB功能演示1.1 MATLAB的发展1980年前后,MATLAB的雏形:LINPACK EISPACK的接口程序。
1984年成立MathWorks公司,推出MATLAB第1 (DOS版)。
1993年推出4.0版。
1994年推出4.2版。
1997年推出5.0版。
1999年初推出5.3版。
2001年7月,推出6.1版。
2002年6月,推出6.5版。
2004年5月,推出最新版本7.0版。
1.2 MATLAB的主要功能1. 数值计算和符号计算功能2. 绘图功能3. MATLAB语言体系4. MATLAB工具箱符号数学工具箱、SIMULINK仿真工具箱 控制系统工具箱、信号处理工具箱、图象处理工具箱、通讯工具箱、系统辨识工具箱、神经元络工具箱、金融工具箱等1.3 MATLAB的运行环境与安装1.3.1 运行环境1. 硬件环境2. 软件环境1.3.2 安装(1)启动Windows 95/98,windows2000/XP。
(2)将MATLAB 6.5光盘放入光驱,运行setup.exe文件。
(3)按界面提示进行操作。
1.4 MATLAB系统的启动与退出1.4.1 启动有3种常见方法:(1)“开始”→“程序”→“Matlab”→“Matlab6.5”。
(2)运行MATLAB系统启动程序matlab.exe。
(3)建立MATLAB快捷方式。
操作桌面的缺省外貌1.4.2 退出也有3种常见方法:(1)在MATLAB命令窗口File菜单中选择Exit MATLAB命令。
(2)在MATLAB命令窗口输入Exit或Quit命令。
(3)单击MATLAB命令窗口的关闭按钮。
MATLAB-第1章
1.3 MATLAB的帮助功能
1.3.1 帮助界面 进入MATLAB帮助界面可以通过以下3种方法。 ●单击MATLAB主窗口工具栏中的Help按钮。 ●在命令窗口中输入“helpwin”、“helpdesk”或“doc”命令。 ●选择Help菜单中的“MATLAB Help”选项。
1.3.2 帮助命令 1.help命令 help命令是查询函数语法的最基本方法,查询信息直接显示 在命令窗口。在命令窗口中直接输入help命令将会显示当前 帮助系统中所包含的所有项目,即搜索路径中所有的目录名 称。 同样,可以通过help加函数名来显示该函数的帮助说明。例 如,为了显示magic函数的使用方法与功能 help magic 2.lookfor命令 help命令可以帮助用户了解函数的用法。例如,输入命令 lookfor fourier
5.命令历史窗口 自动保留自安装起所有用过的命令的历史记录,并且还标明 了使用时间,从而方便用户查询。而且,通过双击命令可进 行历史命令的再运行。 6.Start按钮
1.2.2 MATLAB的搜索路径
MATLAB的文件是通过不同的路径进行组织和管理的。当用户在命令窗 口输入一条命令后,MATLAB将按照下列顺序搜索所输入的命令。 ● 检查该命令是不是一个变量。 ● 检查该命令是不是一个内部函数。 ● 检查该命令是否为当前目录下的M文件。 ● 检查该命令是否为MATLAB搜索路径中其他目录下的M文件。 2.设置搜索路径 (1)用path命令设置搜索路径 例如,将用户目录c:\mydir加到搜索路径下: path(path,'e:\matlab\work') (2)用对话框设置搜索路径 在MATLAB的File菜单中选择Set Path命令或在命令窗口执行pathtool命 令
Matlab基础知识
Matlab基础知识⼀、matlab简介MATLAB是matrix&laboratory两个词的组合,意为矩阵⼯⼚(矩阵实验室),由美国MathWorks公司出品的商业数学软件,⽤于算法开发、数据可视化、数据分析以及数值计算的⾼级技术计算语⾔和交互式环境,主要包括MATLAB和Simulink两⼤部分。
⼆、数据类型1、函数句柄:是⼀个可调⽤的matlab函数的关联,有了函数句柄这种关联,⽤户在任何情况下都可以通过函数句柄调⽤matlab函数,即使是超出正常的函数调⽤范围仍然可以。
函数句柄四个⽤途:(1)可以将⼀个函数传递给另⼀个函数;(2)可以捕获⼀个函数的数值供下⼀次使⽤;(3)可以在正常范围外调⽤函数;(4)可以在函数句柄以.mat⽂件类型保存,供下⼀次matlab运⾏时使⽤。
2、结构类型结构类型是包含⼀组彼此相关、数据结构相同但类型不同的数据类型。
3、细胞数组类型细胞数组是matlab特有的⼀种数据类型,组成它的元素是细胞,细胞是⽤来存储不同类型数据的单元。
相同数组的第⼆个细胞的类型与⼤⼩可以和第⼀个细胞完全不⼀样。
三、matlab运算符1、算式运算符2、关系运算符关系运算符两侧的矩阵维数必须相同。
关系运算为真返回逻辑1,反之返回值为逻辑0。
3、逻辑运算符参与矩阵元素逻辑运算符的逻辑矩阵必须是位数相同的矩阵。
4、运算优先级四、matlab的矩阵1、矩阵合并纵向合并矩阵(要求矩阵A、B的列数相同):C = [A;B]横向合并矩阵(要求矩阵A、B的维数相同):C = [A B]2、矩阵拆分3、矩阵运算相关函数求矩阵⾏列式的值:det()求转置矩阵:transpose()或者⽤运算符"'"eg:B=transpose(A)等价于B=A'求逆矩阵:inv()求⼴义逆矩阵:pinv()(即矩阵不是⽅阵或者是⼀个⾮满秩的⽅阵时,矩阵没有逆矩阵,但可以求得伪逆矩阵也成为⼴义逆矩阵)求矩阵的秩:rank()五、控制语句1、每个if、for、while语句必须以end语句结束,否则是错误的;2、for i=1:4等价于for i=[1 2 3 4]。
Matlab 教程第2章 MATLAB矩阵及其运算
H=invhilb(4)
(4) 托普利兹矩阵 托普利兹(Toeplitz)矩阵除第一行第一列外, 其他每个元素都与左上角的元素相同。生 成托普利兹矩阵的函数是toeplitz(x,y),它 生成一个以x为第一列,y为第一行的托普 利兹矩阵。这里x, y均为向量,两者不必等 长。toeplitz(x)用向量x生成一个对称的托普 利兹矩阵。例如
它专门建立一个M文件。下面通过一个简 单例子来说明如何利用M文件创建矩阵。
例2-2 利用M文件建立MYMAT矩阵。 (1) 启动有关编辑程序或MATLAB文本编辑 器,并输入待建矩阵:
(2) 把输入的内容以纯文本方式存盘(设文 件名为mymatrix.m)。 (3) 在MATLAB命令窗口中输入mymatrix, 即运行该M文件,就会自动建立一个名为 MYMAT的矩阵,可供以后使用。
M=100+magic(5)
(2) 范得蒙矩阵 范得蒙(Vandermonde)矩阵最后一列全为1, 倒数第二列为一个指定的向量,其他各列 是其后列与倒数第二列的点乘积。可以用 一个指定向量生成一个范得蒙矩阵。在 MATLAB中,函数vander(V)生成以向量V 为基础向量的范得蒙矩阵。例如, A=vander([1;2;3;5])即可得到上述范得蒙矩 阵。
(2) 利用空矩阵删除矩阵的元素 在MATLAB中,定义[]为空矩阵。给变
量X赋空矩阵的语句为X=[]。注意,X=[]与 clear X不同,clear是将X从工作空间中删
除,而空矩阵则存在于工作空间中,只是 维数为0。
2.2.3 特殊矩阵 1.通用的特殊矩阵 常用的产生通用特殊矩阵的函数有:
zeros:产生全0矩阵(零矩阵)。 ones:产生全1矩阵(幺矩阵)。 eye:产生单位矩阵。 rand:产生0~1间均匀分布的随机矩阵。 randn:产生均值为0,方差为1的标准正态 分布随机矩阵。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
附录A MAT L A B初步这是一个M A T L A B的简短介绍。
建议在阅读本书的同时使用介绍的命令。
若要详细地了解有关命令,请参见每一节的内容和/或使用h e l p或h e l p d e s k。
所有的命令见附录D和命令列表。
A.1 启动和退出M A T L A B根据使用的计算机,单击图标或输入m a t l a b就可以启动M A T L A B。
详细内容见2 .1节。
以下信息出现在M A T L A B的命令窗口中:使用这些命令是非常好的。
命令t o u r和d e m o也是非常有实用价值的。
在M A T L A B提示符后键入一个命令,当按下回车键后,就执行该命令。
在本书的其他节将不给出M A T L A B提示符,因为这将使读者阅读起来比较困难。
命令应在提示符> >后键入,但提示符不在每一行中列出。
注意,本书使用不同的字体以区别用户在提示符处输入的命令和M A T L A B返回的运行结果。
见1 .2节。
退出M A T L A B,只需输入q u i t并回车即可。
从这以后将不强调在命令行后输入回车键。
> >q u i t如果想要终止M A T L A B的运行,就要同时按下‘C T R L’和‘c’键。
M A T L A B将停止其运行的所有工作,并且在屏幕上给出提示符,等待输入。
> >A.2 基本赋值和计算通常,M A T L A B能被当作计算器使用:同一行上可以有多条命令:通常,变量用于保存所赋的值和结果。
如果没有赋值,M A T LAB 将结果存放在名为a n s的变量中。
现在定义变量并赋值:所有的基本数学函数在M A T L A B 中有定义(见2 .4节):圆括号’( )’,可在数学式子中使用。
注意,在命令行尾的分号‘;’是M A T L A B ‘q u i e t l y ’执行赋值命令,即在屏幕上不回显信息,但计算照常执行。
M A T L A B 中的变量通常为向量或矩阵:注意,各行要用分号隔开。
在单个命令中,函数可用于向量或矩阵。
到现在为止,已经定义了许多变量。
输入以下命令,可以得到变量列表:命令wh os 也将显示当前的变量,同时还显示出每个变量的其他信息。
试使用这个命令,并看看如何区别变量是标量还是向量。
M A T L A B 在程序运行过程中保存所有的变量,清除变量应输入:C l e a r先前的变量现在全被清除。
此时,如果输入w h o ,将不会返回任何信息;见2 .3节。
向量可通过使用元素操作运算符来生成;见4 .3节。
命令l i n s p a c e 和l o g s p a c e 也可用来创建向量;见4 .3节。
通过使用双操作符向量也可直接计算。
注意,先前使用的运算符^,表示应对向量中的每一个元素进行操作。
见3 .5节。
借助箭头键,能重复先前所给的命令;见2 .1节。
如果输入有误,它就能避免再写过长的下载表达式,这样能节省很多时间。
将向量或矩阵放入括号中能定义一个新的表达式,但是大小必须匹配:A.3 简单图形M A T L A B 对于处理简单图形和高级图形都是一种非常好的工具。
在M A T L A B 中画图形,其数据必须存储在向量或矩阵中。
例如,画出2的乘幂的图形有三步。
首先,创建一个有值的向量。
第二,用这些值对函数求值。
第三,画出向量图形;见 1 3.1节。
因为已经在A .2节中创建了变量vector 和v a l u e s ,所以就能直接使用以下命令来画图形:plot(vector, values)结果是一个简单图,其刻度是自动给定的;见图A -1。
图A-1 函数2x 的分段线性图形为了使图形更加光滑,应使用更多的值,例如使用0~8之间的1 00个数值。
l i n s p a c e 命令对于创建长向量是非常有效的,输入:用命令c l f 在画图之前清除图形窗口。
现在试着使用不同的线型。
给出命令p l o t ,及额外的参数‘:’或‘+’。
这些能结合颜色;例如,用兰色的点划曲线:plot(vector, values,’b -.’) ;其他线型和颜色可以在1 3.1节,特别是在表1 3-1中找到。
三维图形可用相同的方法画出。
例如,使用s u r f 和m e s h 命令,生成数据放入矩阵中并画出图形。
当在画带有两个变量的函数图形时,生成所需的数据可稍微灵活些。
这些值或网格点在平面上是离散的点。
生成这些网格最好的方法是使用命令m e s h g r i d ,参见1 3.4节。
括号‘[ ]’用于接收多个返回参数。
分号‘;’用来控制结果的回显。
如果是大矩阵,就有必要记住这些。
给出的网格图形如图A -2所示。
曲面图形和网状图形非常相似,画出的是实际的曲面而不是网格线,见图 A -3。
曲面图形是用命令s ur f生成的。
结果如图A -3所示。
画统计图表应使用命令h i s t ,见6 .5节。
举例说明,用命令r a n d 生成元素值在区间[ 0,1 ]中的随机向量,r a n d 命令见4 .1节。
h i st 给出的结果如图A -4所示。
试着使用别的命令,如s t a i r s 和b a r ,见6 .5节。
图A-4 频数统计直方图图A-2 函数2x + 2y 的网状图形图A-3 使用s u rf 命令生成函数c o s (x / 2)s i n (y / 2)的图形曲面A.4 线性系统和矩阵特征值定义矩阵:用下面的语句:用命令B *A 来做矩阵相乘,结果如下:但是A *B 的结果为:因为这种矩阵的乘法没有定义,见3 .2节。
计算A 的行列式值,可使用命令d e t :B 的行列式值没有定义。
也可试着对同一矩阵使用t r a c e 、n u l l 、o r t h 和i n v 命令,这些命令在7 .1节有定义。
下面来看看线性方程组:或者是矩阵表达式A x =b ,A 是上面定义的,b 如下:可用反斜杠运算符‘\’来求解方程组。
可以用同样的方法来解超定方程组。
因为通常这些方程组没有真解,M A T L A B 用最小二乘法来解。
见7 .2和7 .7节。
特征值和特征向量可由命令e i g 求得。
例如,对上面的矩阵A 求:矩阵E i g e n V e c t o r s 的列就是A 的特征向量,矩阵E i g e n V a l u e s 的对角线上的元素就是A 的特征值;见8 .1节。
A.5 曲线拟合及多项式多项式可由系数矩阵来表示;见1 0.1节。
多项式:可用向量p =(2 1 5 17)来表示,而且可用p o l y v a l 命令对任何值进行求值:用命令p o l y d e r 可对多项式进行微分,并且用命令c o n v 对其进行乘法运算。
这代表p ’(x ) =6x 2+ 2x + 5。
这代表p (x )2= 4x 6+ 4x 5+ 21x 4+ 78x 3+ 59x 2+ 170x + 289。
下面在同一个图中用三个子图画出这三个多项式。
命令s u b p l o t 见1 3.3节。
命令x l abe l可在当前图形中x 轴下方写一字符串;如图A -5所示。
图A-5 多项式p (x ) =2x 3+x 2+ 5x + 17及其微分和多项式p (x )2的图形多项式可用来拟合数据曲线。
假设以下数据在一次实验中获得,并且输入到M A T L A B 中:命令p o l y f i t 可返回多项式,也就是多项式的系数,该多项式表示对指定的次数拟合最好的最小二乘曲线;见1 0.4节。
例如此例,最好的4次多项式已经找到。
同时,原始数据点也在多项式的同一图中画出。
结果如图A -6所示。
注意,有些向量可用相同的p l o t 命令画出彼此的连线图形。
命令l e g e n d 给出一个含有对不同向量表示图解释的工具包。
此命令定义在 1 3.3节中。
对不同次数的多项式和不同的数据集合使用p o l y f i t 和p o l y v a l 命令。
3 5 4图A-6 数据集合和拟合的4次多项式内插值法和外插值法可用不同的i n t e r p 命令来实现。
若想对x = 4.3在上面的数据集合中内插求值,可输入:这是线性内插值法,也可看成是‘向上查阅表’。
当然,其他可能性也是存在的,输入help interp1来看看。
内插值法定义在1 0.4节中。
A.6 简单的程序一段程序是M A T L A B语句的序列,它们由条件语句和循环语句来控制。
在M 文件中方便地就能保存这些命令。
其中M 文件是后缀名为. m 的文本文件。
下面来看看保存在d r a w . m 文件中的M A T L A B 语句:在M A T L A B 提示符后输入d r a w 便可运行该程序。
例如下列情况:%绘制函数图形的程序%在%标记后做注释%显示解释文本%从用户读入数据%绘制该函数图形根据上面的输入,程序运行的结果如图A -7所示。
图A-7 用M 文件d r aw 绘制函数2xc os x 2的图形程序d r a w . m 是一个命令文件的例子。
还有函数文件,它的后缀名也必须是.m ,并且在第一行有关键字f u n c t i o n 。
现在举个例子,下面的函数保存在M 文件d i v . m 中:该函数可以作为M A T L A B 中的一个函数来被调用:有关M 文件的信息见2.9 和1 2.3节。
A.7 函数分析可用命令f m i n 来寻找单变量函数的局部最小值,对于多变量函数可用命令 f m i n s ;见1 0.3节。
求函数的最小值:首先要创建一个计算函数f (x )值的文件。
该文件取名为f .m 。
3 5 6%该函数用来计算整数的除法%因此n= rem(n, d)+y*d命令:给出的结果如下:用下面给出的命令画出函数图形,就能知道所得的结果是否正确:t itl e命令可给出图形的标题,此命令在1 3.3节中介绍。
命令g r i d 可给图形加上网格,它的介绍也在1 3.3节中。
也能找到0值的准确位置,即对f (x ) =0成立的x 值。
这是用命令f z e r o 来求的,它需要一个迭代的初始值(见10.2节)。
在图A-8中,可以看到2接近于f (x )=0,于是就输入:图A-8 用f p l o t 绘制的M 文件函数图形A.8 积分可以使用11 .1节中介绍的命令q u a d 来计算定积分。
计算:必须在名为s i n x _x .m 的M 文件中定义函数s i n (x ) /x :现在只需输入:q u a d (’s i n x _x ’, 1E -8,p i )给出的结果为:a n s =1 .8520注意,该积分不能被解析。