matlab第三讲
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
20 2013-1-29
本章内容
符号对象(常量、变量、表达式、矩阵)的建立 符号表达式的代数运算 符号表达式的操作和转换 自由变量的确定 变形与化简 符号变量的替换 符号表达式的极限、微分、积分 各种积分变换和逆变换:傅立叶、拉普拉斯、Z变换 代数方程的求解
பைடு நூலகம்
21
2013-1-29
(一)符号表达式中自由变量的确定(重要!)
1. 自由变量的确定原则 当符号表达式中有多于一个的符号变量时,只有一个变量可做为独立变量 (自由变量),其余的当常量处理。此时,除非特别指定(如何指定?), 否则MATLAB将基于以下原则确定一个默认的自由变量: 小写字母i保留,不能做为自由变量。 除i外,其余的,按照以下顺序确定:首先选择x作为自由变量;如果没有x ,则选择在字母顺序中最接近x的字符变量;如果与x相同距离,则在x后面的 优先。 大写字母比所有的小写字母都靠后。 例:sym('a*x+b*y+z+u+5*j') %x sym('5*v^u-3*w+Y+z') %w还是z?
16 2013-1-29
(一)符号表达式中自由变量的确定
2. findsym函数:用于确定符号表达式中默认的自由变量
findsym(EXPR,n) %确定默认的自由变量 说明:EXPR可以是符号表达式或符号矩阵;n为按顺序得出符号变量 的个数。当n省略时,则不按顺序得出EXPR中所有的符号变量。 例5:求符号表达式中的默认的符号变量。 >>f = sym('5*v^u-3*w+Y+z') >>findsym(f) %得出所有的符号变量,不按次序 ans =Y, u, v, w, z >>findsym(f,5) ans =w,z,v,u,Y %uvwx y z >>findsym(f,3) ans =w,z,v >>findsym(f,2) ans = w,z >>findsym(f,1) %n=1可以用来确定默认的自由变量 ans = w 17 2013-1-29
24 2013-1-29
本章内容
符号对象(常量、变量、表达式、矩阵)的建立 符号表达式的代数运算 符号表达式的操作和转换 自由变量的确定 变形与化简 符号变量的替换 符号表达式的极限、微分、积分 各种积分变换和逆变换:傅立叶、拉普拉斯、Z变换 代数方程的求解
25
2013-1-29
13
2013-1-29
二、符号表达式的代数运算
例4:符号表达式f =2x2+3x+4与g=5x+6的代数运算。
>>f=sym('2*x^2+3*x+4') >>g=sym('5*x+6') >>f+g %符号表达式相加 ans = 2*x^2+8*x+10 >>f*g %符号表达式相乘 ans = (2*x^2+3*x+4)*(5*x+6)
4
2013-1-29
一、符号对象的建立
进行符号计算时,要创建基本符号对象,才能进行符号运算!(重 要) 符号对象包括:符号常量、符号变量、符号表达式、符号矩阵等
(一)创建符号常量 法一:sym('常量') %创建符号常量 法二:sym(常量,参数) %把数值常量按某种格式转换为符号 常量 说明:参数可选为‘d’ (十进制) 、‘f’ (浮点)等。
19
2013-1-29
(三)符号变量的替换
subs函数:对符号表达式中符号变量的替换 语法: subs(s,new) %用new替换符号表达式s中的自由变量 subs(s,old,new) %用new替换符号表达式s中的old变量 注:new可以是符号变量,也可以是符号常量或数值常量
例7:
syms s f=s^2+3*s^(1/2)+5; f3=subs(f, s,5) g = sqrt(s); g3 = subs(f*g,s,10)
四、符号极限、微积分
(一)符号极限 p97
22
2013-1-29
四、符号极限、微积分
(二)符号微分
函数diff是用来求符号表达式或符号矩阵的微分。用于符号矩阵时, 是对矩阵的每一个元素进行微分运算。 例:(注意和书上例子的区别) 语法: diff(f) %求f对默认自由变量的一阶微分 diff(f,t) %求f对指定符号变量t的一阶微分 diff(f,n) %求f对默认自由变量的n阶微分 diff(f,t,n) %求f对指定符号变量t的n阶微分 例8: syms t x y g=[2*y t^2;t*sin(y) exp(x)] %创建符号矩阵 diff(g) %对默认自由变量求一阶微分 diff(g,'t') %对符号变量t求一阶微分 diff(g,'y') diff(g,2) %对默认自由变量求二阶微分 23 2013-1-29
(二)符号表达式的变形或化简
3. expand函数:多项式展开形式f(x)=x3+6x2+11x-6 4. horner函数:嵌套形式f(x)=x(x(x-6)+11)-6 5. factor函数:因式相乘形式f(x)=(x-1)(x-2)(x-3) 6. simplify函数:化简函数,对三角函数、对数函数、幂函数 等特别有效
MATLAB的数学计算:包括数值计算和符号计算 数值计算:不允许使用未赋值的变量 符号计算:可以使用未赋值的符号变量进行运算 , 基 于 符 号 数 学 工 具 箱 (Symbolic Math Toolbox)和Maple软件内核,结合数值运算环境
3
2013-1-29
本章内容
符号对象(常量、变量、表达式、矩阵)的建立 符号表达式的代数运算 符号表达式的操作和转换 自由变量的确定 变形与化简 符号变量的替换 符号表达式的极限、微分、积分 各种积分变换和逆变换:傅立叶、拉普拉斯、Z变换 代数方程的求解
8 2013-1-29
一、符号对象的建立
(三)符号矩阵 用sym和syms命令也可以创建符号矩阵。 A=sym('[a,b;c,d]') %等效写法 syms a b c d A=[a b;c d]
9
2013-1-29
本章内容
符号对象(常量、变量、表达式、矩阵)的建立 符号表达式的代数运算 符号表达式的操作和转换 自由变量的确定 变形与化简 符号变量的替换 符号表达式的极限、微分、积分 各种积分变换和逆变换:傅立叶、拉普拉斯、Z变换 代数方程的求解
四、符号极限、微积分
(三)符号积分
积分有定积分和不定积分 对于定积分,积分区间可以是数值区间,也可以是符号区间. 语法: int(f,’t’) %求符号变量t的不定积分 int(f,’t’,a,b) %求符号变量t的积分 int(f,’t’,’m’,’n’) %求符号变量t的积分 说明:t为符号变量,当t省略则为默认自由变量;a和b为数值, [a,b]为积分区间;m和n为符号对象,[m,n]为积分区间;与符号微 分相比,符号积分复杂得多。 因为函数的积分有时可能不存在,即使存在,也可能限于很多条件 ,MATLAB无法顺利得出。当MATLAB不能找到积分时,将给出警 告提示。
(二)创建符号变量和符号表达式
2.使用syms命令创建多个符号变量和符号表达式 语法: syms arg1 arg2 … 参数 %定义多个符号变量的简洁 形式 说明:参数设置和前面的sym命令相同,符号表达式直接由各符 号变量组成。 例3: syms a b c x %创建多个符号变量 f2=a*x^2+b*x+c %创建符号表达式 上面两式等效为:f2=sym('a*x^2+b*x+c')
MATLAB及其应用
福州大学物理与信息工程学院 郭里婷
1
2013-1-29
课程内容
第一章MATLAB7.3环境
第二章MATLAB数值计算
第三章MATLAB符号计算 第四章MATLAB的可视化输出 第五章MATLAB程序设计 实验环节
2
2013-1-29
第三章 MATLAB符号计算
二、符号表达式的代数运算
2. 函数运算
(1) 三角(反三角)函数和双曲函数 sin、cos、tan asin、acos、atan sinh、cosh、tanh (2) 指数和对数函数 sqrt、exp、expm 自然对数log(表示ln) (3) 复数函数 conj、real、imag、abs 无angle函数 (4) 矩阵代数命令 inv,det,rank, eig
14
2013-1-29
本章内容
符号对象(常量、变量、表达式、矩阵)的建立 符号表达式的代数运算 符号表达式的操作和转换 自由变量的确定 变形与化简 符号变量的替换 符号表达式的极限、微分、积分 各种积分变换和逆变换:傅立叶、拉普拉斯、Z变换 代数方程的求解
15
2013-1-29
三、符号表达式的操作和转换
5
2013-1-29
(一)创建符号常量
例1: (注意各命令的运行结果和workspace的内容)
>>a=sym('sin(2) ') %创建符号常量,注意和 >>a=sin(2)的区别 a = sin(2) >>a1=2*sqrt(5)+pi %创建数值常量 a1 = 7.6137 >>a2=sym('2*sqrt(5)+pi') %创建符号常量 a2 = 2*sqrt(5)+pi >>a4=sym(2*sqrt(5)+pi, 'd') %按最接近的十进制浮点数表示符号常量 a4 = 7.6137286085893727261009189533070 >>a5='2*sqrt(5)+pi' %字符串常量,注意和第3条命令的执行结果比较 a5 = 2*sqrt(5)+pi
10
2013-1-29
二、符号表达式的代数运算
符号运算与数值运算的区别:
符号运算比数值运算准确。
符号运算可以得出封闭解或任意精度的数值解。 符号运算的时间较长,而数值型运算速度快。
11
2013-1-29
二、符号表达式的代数运算
符号表达式的运算符和基本函数与数值计算中的几乎相同。 1. 算术和关系运算符 (1) 算术运算符 “+”,“-”,“*”,“\”,“/”,“^”分别实现符号矩阵 的运算。 “.*”,“./”,“.\”,“.^”分别实现符号数组的运算。 “′”,“.′”分别实现符号矩阵的共轭转置、非共轭转置。 (2) 关系运算符 在符号对象的比较中,没有“大于”、“大于等于”、“小于 ”、“小于等于”的概念,而只有是否“等于”的概念(“= 12 2013-1-29
6 2013-1-29
一、符号对象的建立
(二)创建符号变量和符号表达式
1. 使用sym命令创建单个符号变量和符号表达式 语法:sym('变量',参数) %把数值变量转换为符号变量 语法:sym('表达式') %创建符号表达式 说明:参数用来设置限定符号变量的数学特性,可以选择为 'positive'、'real'和'unreal', 'positive' 表示为“正、实”符号变量 ,'real'表示为“实”符号变量,'unreal'表示为“非实”符号变量。 如果不限定则参数可省略。 例2: sym('x','real') %创建实数符号变量 sym('y','real') z=sym('x+i*y'); %创建z为复数符号变量,也可以看成符号表达式 real(z) %取复数z的实部 7 2013-1-29
三、符号表达式的操作和转换
(二)符号表达式的变形或化简
多项式形式的表达方式:f(x)=x3+6x2+11x-6 因式形式的表达方式:f(x)=(x-1)(x-2)(x-3) 嵌套形式的表达方式:f(x)=x(x(x-6)+11)-6
1. pretty函数: 排版形式 2. collect函数:合并同类项,当有多个符号变量,可指定按某个符 号变量来合并,否则按默认的自由变量进行 例6:(说明如何指定的例子) >>f1=sym('x^3+2*x^2*y+4*x*y+6') >>collect(f1, ‘y’) %按y来合并同类项 ans=(2*x^2+4*x)*y+x^3+6 >>collect(f1, 'x') %等效于collect(f1),为什么? ans=x^3+2*x^2*y+4*x*y+6 18 2013-1-29
本章内容
符号对象(常量、变量、表达式、矩阵)的建立 符号表达式的代数运算 符号表达式的操作和转换 自由变量的确定 变形与化简 符号变量的替换 符号表达式的极限、微分、积分 各种积分变换和逆变换:傅立叶、拉普拉斯、Z变换 代数方程的求解
பைடு நூலகம்
21
2013-1-29
(一)符号表达式中自由变量的确定(重要!)
1. 自由变量的确定原则 当符号表达式中有多于一个的符号变量时,只有一个变量可做为独立变量 (自由变量),其余的当常量处理。此时,除非特别指定(如何指定?), 否则MATLAB将基于以下原则确定一个默认的自由变量: 小写字母i保留,不能做为自由变量。 除i外,其余的,按照以下顺序确定:首先选择x作为自由变量;如果没有x ,则选择在字母顺序中最接近x的字符变量;如果与x相同距离,则在x后面的 优先。 大写字母比所有的小写字母都靠后。 例:sym('a*x+b*y+z+u+5*j') %x sym('5*v^u-3*w+Y+z') %w还是z?
16 2013-1-29
(一)符号表达式中自由变量的确定
2. findsym函数:用于确定符号表达式中默认的自由变量
findsym(EXPR,n) %确定默认的自由变量 说明:EXPR可以是符号表达式或符号矩阵;n为按顺序得出符号变量 的个数。当n省略时,则不按顺序得出EXPR中所有的符号变量。 例5:求符号表达式中的默认的符号变量。 >>f = sym('5*v^u-3*w+Y+z') >>findsym(f) %得出所有的符号变量,不按次序 ans =Y, u, v, w, z >>findsym(f,5) ans =w,z,v,u,Y %uvwx y z >>findsym(f,3) ans =w,z,v >>findsym(f,2) ans = w,z >>findsym(f,1) %n=1可以用来确定默认的自由变量 ans = w 17 2013-1-29
24 2013-1-29
本章内容
符号对象(常量、变量、表达式、矩阵)的建立 符号表达式的代数运算 符号表达式的操作和转换 自由变量的确定 变形与化简 符号变量的替换 符号表达式的极限、微分、积分 各种积分变换和逆变换:傅立叶、拉普拉斯、Z变换 代数方程的求解
25
2013-1-29
13
2013-1-29
二、符号表达式的代数运算
例4:符号表达式f =2x2+3x+4与g=5x+6的代数运算。
>>f=sym('2*x^2+3*x+4') >>g=sym('5*x+6') >>f+g %符号表达式相加 ans = 2*x^2+8*x+10 >>f*g %符号表达式相乘 ans = (2*x^2+3*x+4)*(5*x+6)
4
2013-1-29
一、符号对象的建立
进行符号计算时,要创建基本符号对象,才能进行符号运算!(重 要) 符号对象包括:符号常量、符号变量、符号表达式、符号矩阵等
(一)创建符号常量 法一:sym('常量') %创建符号常量 法二:sym(常量,参数) %把数值常量按某种格式转换为符号 常量 说明:参数可选为‘d’ (十进制) 、‘f’ (浮点)等。
19
2013-1-29
(三)符号变量的替换
subs函数:对符号表达式中符号变量的替换 语法: subs(s,new) %用new替换符号表达式s中的自由变量 subs(s,old,new) %用new替换符号表达式s中的old变量 注:new可以是符号变量,也可以是符号常量或数值常量
例7:
syms s f=s^2+3*s^(1/2)+5; f3=subs(f, s,5) g = sqrt(s); g3 = subs(f*g,s,10)
四、符号极限、微积分
(一)符号极限 p97
22
2013-1-29
四、符号极限、微积分
(二)符号微分
函数diff是用来求符号表达式或符号矩阵的微分。用于符号矩阵时, 是对矩阵的每一个元素进行微分运算。 例:(注意和书上例子的区别) 语法: diff(f) %求f对默认自由变量的一阶微分 diff(f,t) %求f对指定符号变量t的一阶微分 diff(f,n) %求f对默认自由变量的n阶微分 diff(f,t,n) %求f对指定符号变量t的n阶微分 例8: syms t x y g=[2*y t^2;t*sin(y) exp(x)] %创建符号矩阵 diff(g) %对默认自由变量求一阶微分 diff(g,'t') %对符号变量t求一阶微分 diff(g,'y') diff(g,2) %对默认自由变量求二阶微分 23 2013-1-29
(二)符号表达式的变形或化简
3. expand函数:多项式展开形式f(x)=x3+6x2+11x-6 4. horner函数:嵌套形式f(x)=x(x(x-6)+11)-6 5. factor函数:因式相乘形式f(x)=(x-1)(x-2)(x-3) 6. simplify函数:化简函数,对三角函数、对数函数、幂函数 等特别有效
MATLAB的数学计算:包括数值计算和符号计算 数值计算:不允许使用未赋值的变量 符号计算:可以使用未赋值的符号变量进行运算 , 基 于 符 号 数 学 工 具 箱 (Symbolic Math Toolbox)和Maple软件内核,结合数值运算环境
3
2013-1-29
本章内容
符号对象(常量、变量、表达式、矩阵)的建立 符号表达式的代数运算 符号表达式的操作和转换 自由变量的确定 变形与化简 符号变量的替换 符号表达式的极限、微分、积分 各种积分变换和逆变换:傅立叶、拉普拉斯、Z变换 代数方程的求解
8 2013-1-29
一、符号对象的建立
(三)符号矩阵 用sym和syms命令也可以创建符号矩阵。 A=sym('[a,b;c,d]') %等效写法 syms a b c d A=[a b;c d]
9
2013-1-29
本章内容
符号对象(常量、变量、表达式、矩阵)的建立 符号表达式的代数运算 符号表达式的操作和转换 自由变量的确定 变形与化简 符号变量的替换 符号表达式的极限、微分、积分 各种积分变换和逆变换:傅立叶、拉普拉斯、Z变换 代数方程的求解
四、符号极限、微积分
(三)符号积分
积分有定积分和不定积分 对于定积分,积分区间可以是数值区间,也可以是符号区间. 语法: int(f,’t’) %求符号变量t的不定积分 int(f,’t’,a,b) %求符号变量t的积分 int(f,’t’,’m’,’n’) %求符号变量t的积分 说明:t为符号变量,当t省略则为默认自由变量;a和b为数值, [a,b]为积分区间;m和n为符号对象,[m,n]为积分区间;与符号微 分相比,符号积分复杂得多。 因为函数的积分有时可能不存在,即使存在,也可能限于很多条件 ,MATLAB无法顺利得出。当MATLAB不能找到积分时,将给出警 告提示。
(二)创建符号变量和符号表达式
2.使用syms命令创建多个符号变量和符号表达式 语法: syms arg1 arg2 … 参数 %定义多个符号变量的简洁 形式 说明:参数设置和前面的sym命令相同,符号表达式直接由各符 号变量组成。 例3: syms a b c x %创建多个符号变量 f2=a*x^2+b*x+c %创建符号表达式 上面两式等效为:f2=sym('a*x^2+b*x+c')
MATLAB及其应用
福州大学物理与信息工程学院 郭里婷
1
2013-1-29
课程内容
第一章MATLAB7.3环境
第二章MATLAB数值计算
第三章MATLAB符号计算 第四章MATLAB的可视化输出 第五章MATLAB程序设计 实验环节
2
2013-1-29
第三章 MATLAB符号计算
二、符号表达式的代数运算
2. 函数运算
(1) 三角(反三角)函数和双曲函数 sin、cos、tan asin、acos、atan sinh、cosh、tanh (2) 指数和对数函数 sqrt、exp、expm 自然对数log(表示ln) (3) 复数函数 conj、real、imag、abs 无angle函数 (4) 矩阵代数命令 inv,det,rank, eig
14
2013-1-29
本章内容
符号对象(常量、变量、表达式、矩阵)的建立 符号表达式的代数运算 符号表达式的操作和转换 自由变量的确定 变形与化简 符号变量的替换 符号表达式的极限、微分、积分 各种积分变换和逆变换:傅立叶、拉普拉斯、Z变换 代数方程的求解
15
2013-1-29
三、符号表达式的操作和转换
5
2013-1-29
(一)创建符号常量
例1: (注意各命令的运行结果和workspace的内容)
>>a=sym('sin(2) ') %创建符号常量,注意和 >>a=sin(2)的区别 a = sin(2) >>a1=2*sqrt(5)+pi %创建数值常量 a1 = 7.6137 >>a2=sym('2*sqrt(5)+pi') %创建符号常量 a2 = 2*sqrt(5)+pi >>a4=sym(2*sqrt(5)+pi, 'd') %按最接近的十进制浮点数表示符号常量 a4 = 7.6137286085893727261009189533070 >>a5='2*sqrt(5)+pi' %字符串常量,注意和第3条命令的执行结果比较 a5 = 2*sqrt(5)+pi
10
2013-1-29
二、符号表达式的代数运算
符号运算与数值运算的区别:
符号运算比数值运算准确。
符号运算可以得出封闭解或任意精度的数值解。 符号运算的时间较长,而数值型运算速度快。
11
2013-1-29
二、符号表达式的代数运算
符号表达式的运算符和基本函数与数值计算中的几乎相同。 1. 算术和关系运算符 (1) 算术运算符 “+”,“-”,“*”,“\”,“/”,“^”分别实现符号矩阵 的运算。 “.*”,“./”,“.\”,“.^”分别实现符号数组的运算。 “′”,“.′”分别实现符号矩阵的共轭转置、非共轭转置。 (2) 关系运算符 在符号对象的比较中,没有“大于”、“大于等于”、“小于 ”、“小于等于”的概念,而只有是否“等于”的概念(“= 12 2013-1-29
6 2013-1-29
一、符号对象的建立
(二)创建符号变量和符号表达式
1. 使用sym命令创建单个符号变量和符号表达式 语法:sym('变量',参数) %把数值变量转换为符号变量 语法:sym('表达式') %创建符号表达式 说明:参数用来设置限定符号变量的数学特性,可以选择为 'positive'、'real'和'unreal', 'positive' 表示为“正、实”符号变量 ,'real'表示为“实”符号变量,'unreal'表示为“非实”符号变量。 如果不限定则参数可省略。 例2: sym('x','real') %创建实数符号变量 sym('y','real') z=sym('x+i*y'); %创建z为复数符号变量,也可以看成符号表达式 real(z) %取复数z的实部 7 2013-1-29
三、符号表达式的操作和转换
(二)符号表达式的变形或化简
多项式形式的表达方式:f(x)=x3+6x2+11x-6 因式形式的表达方式:f(x)=(x-1)(x-2)(x-3) 嵌套形式的表达方式:f(x)=x(x(x-6)+11)-6
1. pretty函数: 排版形式 2. collect函数:合并同类项,当有多个符号变量,可指定按某个符 号变量来合并,否则按默认的自由变量进行 例6:(说明如何指定的例子) >>f1=sym('x^3+2*x^2*y+4*x*y+6') >>collect(f1, ‘y’) %按y来合并同类项 ans=(2*x^2+4*x)*y+x^3+6 >>collect(f1, 'x') %等效于collect(f1),为什么? ans=x^3+2*x^2*y+4*x*y+6 18 2013-1-29