MATLAB实用教程(第2版)郑阿奇第三章
MATLAB软件实用教程
MATLAB软件实用教程第一章 MATLAB简介1.1 MATLAB的起源和发展历程1.2 MATLAB的基本特点1.3 MATLAB在不同领域的应用第二章 MATLAB环境介绍2.1 MATLAB桌面及常见工具2.2 MATLAB命令窗口的使用2.3 MATLAB脚本文件的编写与运行第三章 MATLAB基本操作3.1 变量定义与操作3.2 矩阵与数组的使用3.3 数据类型与转换3.4 基本运算及函数调用第四章 MATLAB图形绘制4.1 二维图形绘制函数的使用4.2 三维图形绘制函数的使用4.3 图形属性设置与美化第五章数据处理与分析5.1 数据导入与导出5.2 数据预处理与清洗方法5.3 常见的数据分析技术5.4 统计学工具在MATLAB中的应用第六章 MATLAB编程基础6.1 程序的控制结构6.2 函数的定义与使用6.3 脚本文件与函数文件的区别与联系6.4 调试与错误处理技巧第七章 MATLAB高级技巧7.1 高效算法设计与优化7.2 并行计算与多线程技术7.3 MATLAB与其他编程语言的结合7.4 机器学习与深度学习算法的应用第八章 MATLAB在工程领域的应用8.1 电子与通信工程8.2 控制与自动化工程8.3 机械与航空航天工程8.4 土木与建筑工程第九章 MATLAB在科学研究中的应用9.1 生命科学与医学研究9.2 环境科学与气候研究9.3 数学建模与仿真9.4 物理学与天文学研究第十章 MATLAB在数据可视化中的应用10.1 数据可视化的重要性10.2 常见的数据可视化方法10.3 MATLAB在数据可视化中的优势与应用第十一章 MATLAB在教育领域的应用11.1 MATLAB在大学课程中的应用11.2 MATLAB在高中教育中的应用11.3 MATLAB教学资源与平台推荐结语:MATLAB作为一款功能强大、广泛应用的科学计算软件,在各个领域都有着广阔的应用前景。
希望本教程能够帮助读者快速掌握MATLAB的基本操作与应用技巧,并进一步发掘其在专业领域中更多的应用可能性。
matlab第三章课件
【例】A=[1 2 3;4 5 6],求其主对角线和第1条对角线 的元素
【例】产生一个主对角线元素分别为[1 2 -1 4]的对角 阵和第-1条对角线元素分别为[1 2 3]的对角阵。
2.三角阵 三角阵又进一步分为上三角阵和下三角阵, 所谓上三角阵,即矩阵的对角线以下的元素全为 0的一种矩阵,而下三角阵则是对角线以上的元 素全为0的一种矩阵。 (1) 上三角矩阵
矩阵求值 MATLAB提供的部分矩阵求值函数如下表所示
向量和矩阵的范数
矩阵或向量的范数用来度量矩阵或向量在 某种意义下的长度。范数有多种方法定义,其 定义不同,范数值也就不同。
在MATLAB中,求向量或矩阵的范数函数为:V (1) norm(V)或norm(V,2):计算X的2—范数。 (2) norm(V,1):计算X的1—范数。 (3) norm(V,inf):计算X的∞—范数。
方阵的行列式
把一个方阵看作一个行列式,并对其按行列式 的规则求值,这个值就称为矩阵所对应的行列式 的值。在MATLAB中,求方阵A所对应的行列式的 值的函数是 det(A)。
线性代数中定义行列式为0的矩阵为奇异矩阵。
3.1.2 线性方程组 附加:矩阵求逆
若方阵A,B满足等式A*B = B*A = I (I为单位矩阵) 则称A为B的逆矩阵,或称B为A的逆矩阵。这时 A,B都称为可逆矩阵(或非奇异矩阵、或满秩矩 阵),否则称为不可逆矩阵(或奇异矩阵、或降秩 矩阵)。
【例】试用矩阵求逆解法求解矩阵A为系 数矩阵的线性代数方程组Ax=b的解。 A=[1 -1 1;5 -4 3;2 1 1]; b=[2;-3;1]; x=inv(A)*b x = -3.8000 1.4000 7.2000
2. 直接解法
第2章 MATLAB数值计算 MATLAB实用教程(第2版)[郑阿奇主编][电子教案]
产生m×n的全0矩阵
产生m×n的全1矩阵
产生均匀分布的随机矩阵,元素取值范 围0.0~1.0。 产生正态分布的随机矩阵
产生N阶魔方矩阵(矩阵的行、列和对角 线上元素的和相等) 产生m×n的单位矩阵
2.2.2 矩阵元素
1. 矩阵的下标(Subscript) (1) 全下标方式 一个m×n的a矩阵的第i行第j列的元素表示 为a(i,j)。 (2) 单下标方式 以m×n的矩阵a为例,若元素a(i,j)则对应 的“单下标”为s= (j-1)×m+i。a(1,2)
4. 矩阵和数组的数学函数
MATLAB中exp、sqrt、sin、cos等数学函数可以 直接使用在数组上,这些运算是分别对数组的每个 元素进行运算。
expm、sqrtm、logm等数学函数用于矩阵运算。
比较:round 、fix 、floor 、ceil 比较:sqrt、sqrtm
5. 关系操作和逻辑操作
'(矩阵转置)、^(矩阵幂)和.'(数组转置)、.^( 数组幂) ~(逻辑非) *(乘)、/(左除)、\( 右除)和.*(点乘)、./(点左除)、.\(点右除) + 、-(加减): (冒号) <、<=、>、>=、~= &( 逻辑与) |(逻辑或) &&(先决与) ||(先 决或)
2.2.5多维数组 (Multidementional Arrays)
三维数组用三个下标表示,在二维数组的基础 上增加了一维称为页,三维数组可以看成“长方 体”。
三维数组的元素存放遵循“单下标”的编号规 则:第一页第一列下接该页的第二列,下面再接 第三列,依此类推;第一页的最后列下面接第二 页第一列。
多维数组的创建
MATLAB程序设计教程(第二版)第三章实验报告
for i=1:n
a=((2*i*i*2)/((2*i-1)*(2*i+1)))*a;
end
disp(a);
clear
i=1:n;%用prod函数实现
b=prod((2.*i).*(2.*i)./((2.*i-1).*(2.*i+1)))
6.建立 矩阵,要求输出矩阵第n行元素。当n值超过矩阵的行数时,自动转为输出矩阵最后一行元素,并给出出错信息。
班级
Class
姓名
Name
学号
ID
指导老师
Teacher
课程名称
Course
MATLAB
编制日期
Date
实验名称
Title
MATLAB程序设计
一、实验目的(ExperimentTarget)
1.掌握利用if语句、switch语句实现选择结构的方法。
2.掌握利用for语句、while语句实现循环结构的方法。
>> lx2_1
请输入一个百分制分数100
A
>> lx2_1
请输入一个百分制分数90
A
>> lx2_1
请输入一个百分制分数80
B
>> lx2_1
请输入一个百分制分数70
C
>> lx2_1
请输入一个百分制分数60
D
>> lx2_1
请输入一个百分制分数30
E
>> lx2_1
请输入一个百分制分数123
输入出错
(1)
clear
n=input('输入一个数:');%用循环结构实现
>> lx51
MATLAB实用教程第三讲
补充:医学图像处理
• MATLAB图像处理工具箱支持四种图像类型,分别为真 彩色图像(RGB)、索引色图像、灰度图像(I)和二值 图像(BW)。许多图像处理工作对图像类型有特定的要 求,比如要对一幅索引图滤波,首先要把它转换成真彩色 图像或灰度图像,直接滤波的结果是毫无意义的。 • 在图像处理工具箱中有类型转换函数可以实现各种图像类 型之间的相互转换,如rgb2gray、ind2gray、im2bw 等。 • 在MATLAB中,改变图像文件格式的方法是:先用阅读 函数将文件读入工作空间,然后用写入函数以适当的格式 保存文件。由此可以方便的实现医学图像格式与其他格式 之间的相互转换,以利于医学图像的传输和应用。
绘制多边形
任意多边形及多边形区域是用Patch对 象表示的,该对象由patch函数创建。 使用patch函数生成面片,有两种方 法,一种是顶点/颜色法,通过指定每个小 面的顶点坐标和颜色来创建;另一种是顶 点/小面法,通过指定所有顶点的坐标和各 小面的顶点和颜色来创建。
绘制文本
文本用Text对象表示,该对象由text函数创 建,text函数是创建文本图形对象的低级函数。使 用它将文本字符串放在指定的位置上。 下面创建多种形式的文本:
例:把一个TIF格式的图像li2.tif转换 成DICOM格式的图像li2.dcm。
x=imread('li2.tif'); %将转换文件读入工作空间 imshow(x) %如图(a)显示的TIF格式图像 st=dicomwrite(x,‘li2.dcm’); %转换为DICOM格式 I=dicomread('li2.dcm'); %读入DICOM文件 imshow(I) %如图(b)显示的DICOM格式图像
第3章(213) 教材配套课件
第 3 章 MATLAB的仿真测量仪器
图3-9 七踪信号显示在同一示波器上的仿真框图
第 3 章 MATLAB的仿真测量仪器
图3-10 七踪信号显示在同一示波器上
第 3 章 MATLAB的仿真测量仪器
其次是有一个Constant(常数矢量), 它是一个7列的行 矢量。 在运行时叠加在信号发生器输出的7列数据流上, 譬如 第7列信号的每一个值加上了3.6, 相当于直流电平增加了3.6 V, 在示波器上波形垂直平移了3.6 V(等效于调节了示波器 的垂直位移旋钮)。 应用这样的方法可以将每一列信号移动 到希望摆放的位置。 示波器参数设置时, 应考虑到多踪信号 与常数矢量叠加后, 在垂直方向占有较大的空间。 Y量程的 上、 下限Y max、 Y min设置范围不够大时, 有的信号就 看不见了(在屏幕外)。 表3-9~表 3-11分别显示信号源、 常 数、 示波器的主要参数。 表3-12显示了图3-9仿真系统的 Simulation Parameters(仿真时间参数)的设置。
3.3.1 示波器
无论是通信还是信号与系统分析, 电子工程领域的绝大 多数信号是时间的函数, 系统的时间域特性也用冲激响应来 描述。 从事信号与系统的分析和试验离不开时间域的测量仪 器。
让人们最先想到的时间域的测量仪器就是普通示波器和 数字存储示波器。
示波器最基本的构成如下:
第 3 章 MATLAB的仿真测量仪器
表3-6显示了Generic Numeric LED(通用数字发光二极管) 的主要参数。 通过参数设置可以得到不同的背景色, 发光二 极管的开启、 关闭的颜色, 笔画的宽度、 间距, 显示器的位 数等。
第 3 章 MATLAB的仿真测量仪器
第 3 章 MATLAB的仿真测量仪器
matlab第3章ppt课件
fplot('[sin(x),cos(x)]',[0,2*pi,-1.5,1.5],1e-3,'r.')
观察上述语句绘制的正余弦曲线采样点的分布,可发现
曲线变化率大的区段,采样点比较密集。
16
1.图形窗口的分割 分割后的图形窗口由若干个绘图区并绘制图形。同一图形窗口中的不同图形称 为子图。 subplot(m,n,p) 该函数将当前图形窗口分成m × n个绘图区,即每行n个,共m 行,区号按行优先编号,且选定第p个区为当前活动区。在每 一个绘图区允许以不同的坐标系单独绘制图形。
18
2.图形叠加
一般情况下,绘图命令每执行一次就刷新当前图形窗口,
图形窗口原有图形将不复存在。若希望在已存在的图 形上再叠加新的图形,可使用图形保持命令hold。 hold on/off命令控制是保持原有图形还是刷新原有图 形。例如:
x=0:pi/100:2*pi;
y1=0.2*exp(-0.5*x).*cos(4*pi*x);
8
表 3.1 线型选项
选项
线型
-
实线(默 认值)
:
虚线
--
双画线
-.
点画线
表 3.2 颜色选项
选项 颜色
b( blue )
蓝色
g( green )
绿色
r(red)
红色
c(cyan)
青色
选项 颜色
m(magenta) 品红色
y(yellow)
黄色
k(black)
黑色
w( whit e)
白色
表 3.3 选项 . O(字母) X(字母) + * s(square )
令来控制。grid on/off命令控制是画还是不画网格 线,box on/off命令控制是加还是不加边框线。
数学建模 matlab 教程
变量名 = 起点: 步长: 终点
例2: 请同学们输入 x = 0:0.1:pi 然后打开 Workspace Browser, 双击变量 x, 观察其取值范围
1. 2. 3.
4.
起点是 0 步长确实是 0.1 最后一个点是 3.1000 最后一个点的精确值
思考题 30 个 0.1 相加是多少?
必须满足矩阵运算的规则 矩阵对应元素之间的运算,运算符前 加.
例4 x*x与 x.*x 以及 norm(x)^2
例5 绘制
sin( x), x [ , ] 2 2
x = linspace(-pi/2, pi/2, 20); y = sin(x); plot(x,y);
坐标轴不好看?请输入
Menu & Toolbar
和所有的 Windows 程序一样, 都有 Menu 和 Toolbar。
Start 菜单
将大量的 MATLAB 有用的信息集中到这个 菜单上。跟 Windows 的开始菜单的功能很 相像。
最大窗口, 人机交互主要方式。 >> 叫做命令行提示符。
问题: 提示符在提示什么?
变量名 = linspace( 起点, 终点, 总点数)
例3: 请同学们输入 x = linspace(0,pi,30) 然后打开 Workspace Browser, 双击变量 x, 观察其取值范围
变量名 = logspace( 起点, 终点, 总点数)
作为函数的自变量
基本函数表(p. 50 表 2.5)
代表向前或向后调回Command History中的命令
Lecture 1 Fundamentals of MATLAB Application
矩阵元素操作--下标(subscripts) 小结:
>> A=[1:3;3:5], A= 1 2 3 3 4 5 >> A(2,2) ans = 4 赋值A(3,2),第三行其他 [ ]: 产生矩阵
产生随机[0,1]之间均匀分布的数值矩阵
Matlab Operations
生成矩阵
例 建立随机矩阵: (1) 在区间[20,50]内均匀分布的5阶随机矩阵。 命令如下: x=20+(50-20)*rand(5)
Matlab Operations
矩阵元素操作--下标(subscripts)
第一个元素下标是1
Matlab Operations
系统预定义 的变量
变量
教材P32页
Matlab Operations
命名变量的注意事项: • 不要命名函数名为变量 • 不要命名 i、j为变量
变量
• 不要命名关键字为变量
Matlab Operations
变量的维数:
变量
单值变量 例如 X=2
向量变量 一维数组 矩阵变量 二维数组
课程介绍
怎样学习本课程?
• 掌握基本的编程技巧!
MATLAB程序设计及应用第2版课件全全书教学教程完整版电子教案最全幻灯片
第1章 MATLAB入门与基本操作
1.3 MATLAB的安装启动 与操作桌面简介
1.3.1 MATLAB的安装和启动
MATLAB 可以在Windows环境下直接安装。在
MATLAB安装完成后,会在Windows桌面上自动生成
MATLAB的快捷方式图标
。
1.3.1 MATLAB的安装和启动
双击图标
1.3.2 MATLAB默认窗口简介
• 指令窗(Command Window) 该窗口是进行各种MATLAB操作的最主要窗口。它位于 MATLAB默认窗口的正中间。用户可以在该窗口中提示符 “fx>>”后直接键入指令,按“Enter”键后,即可运行并 显示除窗口外的所有运行结果。当指令窗口提示符为 “fx>>”时,表示系统已经准备好,用户可以输入指令、函 数、表达式,按“Enter”键后便可执行。
1.4 MATLAB指令窗操作入门
,就打开了如图1.1所示的MATLAB默认窗口
(Desktop)。
图1.1
1.3 MATLAB的安装启动 与默认窗口简介
1.3.2 MATLAB默认窗口简介
图1.1所示的MATLAB默认窗口分为5个区域:指令窗、 当前目录窗、历史指令窗、工作空间窗和Details窗。 另外,在MATLAB默认窗口的上方,还嵌入了菜单栏 和工具栏,如图1.1所示。它们的使用及选择方式与 Windows环境中的相同。
图1.2
第1章 MATLAB入门与基本操作
1.4 MATLAB指令窗操作入门
1.4.1 MATLAB指令窗简介
MATLAB指令窗位于MATLAB默认窗口的正中间,如图 1.1所示。如果用户希望得到脱离默认窗口的几何独立的指 令窗,只要单击图1.2中的图标 ,并在下拉菜单中选择
matlab教学第三章解析
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
7
8
9
10
2020/11/23
线性插值
1
0.8
0.6
0.4
0.2
0
-0.2
-0.4-0.6来自-0.8-10
1
2
3
4
5
6
7
8
9
10
三次样条插值
20
3.2.2 高维插值 N维插值函数:interpN() 其中:N可以为2,3,...,等。例如,N=2为二维
2020/11/23
12
对于三次样条插值呢,每一个区间上的三次函 数的四个参数,在该区间上由两个端点的函数 值只能够产生两个方程,仅此不足以唯一确定 四个参数。
注意到三次样条函数对整体光滑性要求,其二 阶导数存在且连续,从全局的角度上考虑参数 个数与方程个数的关系如下:
参数:每个小段上4个,n个小段共计4n个。
不能够超过x的范围。
2020/11/23
16
2.对于三次样条插值,还可以采用命令: y=spline(x,y,xi) 该命令还可处理第一类边界条件,只需将输入数
组y改为yy=[a y b],其中a,b分别为S (x0), S (xn)。
3.若要得到插值函数,可以采用以下函数: pp1=spline(x,y) disp(pp1.coefs) 则显示分段插值函数的系数数组。
第3章 插值方法
2020/11/23
1
在工程实践和科学实验中,常常需要从一组实 验观测数据,揭示自变量x与因变量y之间的关 系,一般可以用一个近似的函数关系式: y=f(x)来表示。函数f(x)的产生办法因观测数 据与要求的不同而异,通常可以采用两种方法: 一个是插值的方法,一个是曲线拟合的方法。
MATLAB实用教程经典课件
聚合矩阵的特殊函数
下表列出了聚合矩阵的一些特殊函数。
函数
cat horzcat vertcat repmat blkdiag
描述
沿指定的维聚合矩阵 水平聚合矩阵 垂向聚合矩阵 通过复制和叠置矩阵来创建新矩阵 用已有矩阵创建块对角矩阵
获取矩阵的元素
使用编号索引 使用线性索引 使用冒号 使用end关键字
用索引生成多维数组
创建多维数组的方法之一是先创建一个 二维数组,然后扩展它。如:
A = [5 7 8; 0 1 9; 4 3 6];
A是一个3×3的数值,即它的行维和列 维都是3。给A添加第三维。
A(:,:,2) = [1 0 4; 3 5 6; 9 8 7]
用特殊函数生成多维数组
可以使用与生成二维数组相同的方式, 用randn,ones和zeros函数等生成多维数 组。提供的每个变量表示生成的数组中 对应维的大小。如:要创建一个正态分 布随机数的4×3×2的数组,可以输入:
其中,变量为字段名和它们的对应值。
单元数组
创建单元数组 获取单元数组的数据 删除单元和重塑单元数组
创建单元数组
用赋值语句创建单元数组 可以使用单元索引和内容索引两种方
式创建单元数组。 用cell函数创建单元数组
使用cell函数,可以预分配指定大小的 空单元数组,如,下面的语句创建一个 空的单元数组:
B = cell(2,3);
然后可以用赋值语句填充B单元。
函数句柄
函数句柄是一种MATLAB数据类型, 它包含用于引用函数的信息。创建函数 句柄时,MATLAB在句柄中保存所有与 要运行的函数有关的信息。
第3章将对函数句柄进行比较详细的介 绍。
第3章 M文件设计
L1 MATLAB应用基础
linspace(X1, X2, N) generates N points between X1 and X2. For N < 2, linspace returns X2.
生成行向量
2013-10-24 30/49
Matlab Operations
生成矩阵
冒号“ :” 的替代语句linspace 语句
a1 a2 a3 a n
24/49
Matlab Operations
>> x=[1 3 5],y=[3,5,6],z=[1;2;3] x= 1 3 5 y= 空格或逗号:列分隔符 3 5 6 z= 分号: 行分隔符 1 2 返回向量的长度 length(x) 3
向量
ans = 3
2013-10-24
25/49
Matlab Operations
矩阵 matrix : 二维数组(2-D array)
行向量(row vector)可以当成1×n矩阵 列向量(column vector) 可以当成n×1矩阵
单值(scalar)可以当成1×1矩阵
Matlab 是 Matrix Laboratory的简称
2013-10-24
基于矩阵的操作!
26/49
Matlab Operations
生成矩阵
>> A=[1,2,3;4,5,6] A= 1 2 3 4 5 6 >> size(A) ans = 2 3
size() :返回矩阵的行数和列数
2013-10-24 27/49
Matlab Operations
Matlab Operations
基本数学函数(教材 附录G:P417-418)
matlab教程ppt(完整版) (3)
数值积分与微分
数值积分
使用MATLAB的`integral`函数进 行数值积分,可以选择不同的积
分方法。
数值微分
可以使用差分法或`diff`函数进行 数值微分。
符号积分与微分
使用符号计算工具箱中的函数, 如`syms`、`int`和`diff`,进行符
号积分和微分。
常微分方程求解
欧拉法
简单的一阶常微分方程的初值问题可以使用欧拉法求解。
图形可视化
MATLAB具有强大的图形可视化功能,支 持多种图形类型和交互操作。
编程语言
MATLAB是一种高级编程语言,具有丰富 的函数库和工具箱。
数据分析
MATLAB提供了多种数据分析工具,包括 数据导入、处理、分析和可视化。
MATLAB的应用领域
科学计算
广泛应用于数学、物理、工程等 领域。
控制系统设计
短时傅里叶变换
通过在时间上滑动窗口并对每个窗口内的信号进 行傅里叶变换,实现信号的时频分析。
小波变换
利用小波基函数的特性,对信号进行多尺度分析 ,从而在时频域上展示信号的细节。
信号滤波与变换
数字滤波器设计
使用MATLAB中的滤波器设计工具,如butterworth、 chebyshev等,设计数字滤波器以实现信号的滤波。
03 多目标优化
使用`gamultiobj`函数求解多目 标最优化问题。
0 最小二乘问题 4使用`lsqlin`或`lsqnonlin`函数
求解线性或非线性最小二乘问 题。
05
MATLAB在信号处理中的应用
信号的时频分析
信号的时频表示
将信号从时间域转换到时频域,以便更好地理解 和分析信号的特性。
MATLAB实用教程第郑阿奇
MATLAB 实用教程
返回
4. pause命令
用来使程序运行暂停等待用户按任意键继续。
0011 0010 1p0a10u1s1e01 0001 0100 101%1 暂停
pause(n)
%暂停n秒
5. keyboard命令
用来使程序暂停运行,等待键盘命令,输入return 语句,程序就继续运行。
>> movie(M,3)
1 %固定坐标轴
42 %抓取画面
MATLAB 实用教程
返回
2.以对象方式产生动画 0011 0010 1010 1101 0001 0100 1011
产生动画的具体步骤是:
(1) 先产生一个对象,其EraseMode属性 为xor、background或none;
1 (2) 在循环中产生动画,每次循环改变此对
0011 0010 1010 1101 0001 0100 1011
使包含break的最内层的for或while语句强 制终止,立即跳出该结构。
2. continue命令 用于结束本次for或while循环,只结束本次
1 循环而继续进行下次循环。 3. return命令 2 终止当前命令的执行,并且立即返回到上一
1 、格式说明; (4) 编写和修改记录一般在空一行后,记录作者、日
2 期和版本记录,用于软件档案管理。 (5) 函数体由实现M函数文件功能的MATLAB命令
4 组成。
MATLAB 实用教程
返回
5.1.3 M函数文件
(Function M-files)
0011 00(110)10函10数11声01 0明00行1 0以100“10f1u1nction”引导,是M函数文件 必须有的;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MATLAB 实用教程
符号运算的功能
符号线性代数(linear algebra) 因式分解、展开和简化(simplification and substitution) 符号代数方程求解(solving equations) 符号微积分(Calculus) 符号微分方程
例:
>> f=sym('x^3-6*x^2+11*x-6') >> x=5 >> subs(f) >>subs(f,5) >>subs(f,’x’,5) 可以用来计算多项式的值,以及化简。 MATLAB 实用教程
3.3.4 求反函数和复合函数
1. 求反函数 对于函数 f(x) ,存在另一个函数 g(.) 使得 g(f(x)) =x成立,则函数g(.)称为函数f(x)的反函数。 g=finverse(f,v) %对指定自变量v的函数f(v)求反函数 2. 求复合函数 运用函数 compose 可以求符号函数 f(x) 和 g(y) 的复 合函数。 compose(f,g,z)%求f(x)和g(y)的复合函数f(g(z))
MATLAB 实用教程
3.4.3 符号积分(Integration)
积分有定积分和不定积分,运用函数 int 可 以求得符号表达式的积分,即找出一个符号表 达式F使得diff(F)=f,也可以说是求微分的逆 运算。 int(f,’t’) %求符号变量t的不定积分 int(f,’t’,a,b) %求符号变量t的定积分 int(f,’t’,’m’,’n’) %求符号变量t的定积分
第3章 MATLAB符号计算 Using Symbolic Math Toolbox
3.1 符号表达式的建立 3.2符号表达式的代数运算 3.3符号表达式的操作和转换 3.4 符号极限、微积分和级数求和 3.5 符号积分变换 3.6符号方程的求解
MATLAB 实用教程
MATLAB具有符号数学工具箱(Symbolic Math Toolbox) 。 符号计算是可以对未赋值的符号对象(可以 是常数、变量、表达式)进行运算和处理。
MATLAB 实用教程
1. 符号运算中的运算符 (1)基本运算符 运算符“+”,“-”,“*”,“\”,“/”,“^” 分别实现符号矩阵的加、减、乘、左除、右除、求幂 运算。 运算符“.*”,“./”,“.\”,“.^”分别实现符号数 组的乘、除、求幂,即数组间元素与元素的运算。 运算符“′”,“.′”分别实现符号矩阵的共轭转置、 非共轭转置。 (2)关系运算符 运算符“= =”、“~=”分别对运算符两边的符号对象 进行“相等”、“不等”的比较。
syms arg1 arg2 …,参数
MATLAB 实用教程
例如: >> f1=sym(‘a*x^2+b*x+c’) %创建表达式 >> syms a b c x %创建变量 >> f2=a*x^2+b*x+c %创建表达式 >> syms('a','b','c','x') >> f3=a*x^2+b*x+c
将符号矩阵转化为数值矩阵 函数调用格式: numeric(A)
EX:>> a=sym('2/3') >> b=numeric(a)
MATLAB 实用教程
3.3符号表达式的操作和转换 3.3.1符号表达式中自由变量的确定
自由变量的确定原则(The Default Symbolic Variables)
MATLAB 实用教程
Байду номын сангаас
3.3.5 符号表达式的转换
1. 符号表达式与多项式的转换 构成多项式的符号表达式 f(x) 可以与多项式系数 构 成 的 行 向 量 进 行 相 互 转 换 , MATLAB 提 供 了 函 数 sym2poly和poly2sym实现相互转换。
2. 提取分子和分母 如果符号表达式是一个有理分式(两个多项式之比), 可以利用numden函数来提取分子或分母,还可以进行 通分。 [n,d]=numden(f)
MATLAB 实用教程
EX:提取分子和分母系数。 >> f=sym('(1+2*s)/(s^2+2*s+1)') >> pretty(f) 1+2s -----------2 s +2s+1 >> [n,d]=numden(f) >> n1=sym2poly(n) >> d1=sym2poly(d)
MATLAB 实用教程
3.3.3 符号表达式的替换(Substitutions)
subs函数:对符号表达式中符号变量的替换。 subs(s)%用给定值替换符号表达式s中的所有变量 subs(s,new)%用new替换符号表达式s中的自由变量 subs(s,old,new) %用new替换符号表达式s中的old变量
任意精度的VPA型运算可以使用digits和vpa命令来 实现。 digits(n) %设定默认的精度 S=vpa(s,n) %将s表示为n位有效位数的符号对象
MATLAB 实用教程
3.2.3 符号对象与数值对象的转换
将数值矩阵转化为符号矩阵 函数调用格式:sym(A)
EX:>> A=[1/3,2.5;1/0.7,2/5] >> sym(A)
MATLAB 实用教程
3.5.3 Z变换及其反变换
1. ztrans函数 F=ztrans(f,n,z) %求时域序列f的Z变换F 说明:返回结果F是以符号变量z为自变量; 当参数 n 省略,默认自变量为 'n' ;当参数 z 省 略,返回结果默认为'z'的函数。 2. iztrans函数 f=iztrans(F,z,n) %求F的z反变换f >> syms a n z t
MATLAB 实用教程
3 2 x - 6 x + 11 x - 6 。
horner:将多项式形式写成嵌套形式
-6+(11+(6+x)*x)*x
factor:将表达式写成因式形式
(x-1)*(x-2)*(x-3)
expand:将表达式写成多项式形式 simplify:对表达式进行化简 例如: k=sym('cos(x)^2-sin(x)^2') simplify(k) 2*cos(x)^2-1 simple :寻求表达式的多种简化形式,使之包含 最少数目的字符
MATLAB 实用教程
3.5 符号积分变换 3.5.1傅里叶变换及其反变换
3.5.2拉普拉斯变换及其反变换
1. Laplace变换 F=laplace(f,t,s) %求时域函数f的Laplace变换F 说明:返回结果 F为 s的函数,当参数 s省略,返回 结果 F默认为 's'的函数;f为 t的函数,当参数 t省略, 默认自由变量为't'。 2. Laplace反变换 f=ilaplace(F,s,t) %求F的Laplace反变换f >> syms a t s >> F1=laplace(sin(a*t),t,s) %sinat的Laplace变换 F1 =a/(s^2+a^2)
3.3.2符号表达式的化简 (Simplificate)
同一个多项式的符号表达式可以表示成三种 形式: 多项式形式的表达方式:f(x)=x3+6x2+11x-6 因式形式表达方式:f(x)=(x-1)(x-2)(x-3) 嵌套形式的表达方式:f(x)=x(x(x-6)+11)-6
pretty:给出排版形式的输出结果 collect:将表达式写成多项式形式. x^3-6*x^2+11*x-6
MATLAB 实用教程
3.1.2 创建符号变量和表达式
(Creating Symbolic Variables and Expression)
1. 使用sym命令创建符号变量和表达式 sym(‘ 变量’ , 参数 ) % 把变量定义为符号对 象
2.使用syms命令创建符号变量和符号表达式 syms(‘arg1’, ‘arg2’, …,参数)
MATLAB 实用教程
3.2符号表达式的代数运算 3.2.1符号表达式的代数运算 由于MATLAB采用了重载技术,使得符号表达 式的运算符和基本函数都与数值计算中的几乎 完全相同 。 例如: 例如: >> f=sym('2*x^2+3*x+4') >> A+2 >> g=sym('5*x+6') >> A.’ >> f+g >> f*g >> det(A) >> A^2
符号表达式()中的参数一定要用' 号括起来。
MATLAB 实用教程
' 单引
3.1.3 符号矩阵
例如,使用sym命令创建的符号矩阵: >> A=sym('[a,b;c,d]') 例如,使用syms命令创建相同的符号矩阵: >> syms a b c d >> A=[a b;c d] 比较符号矩阵与字符串矩阵 : >> B=‘[a,b;c,d]’ %创建字符串矩阵 >> C=[a,b;c,d] %创建数值矩阵 ??? Undefined function or variable 'a'.