Matlab符号运算详解
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
n
L = lim
ln( x + h ) − ln( x ) x 1 − , M = lim h →0 n→∞ h n
>> syms x h n; >> L=limit((log(x+h)-log(x))/h,h,0) >> M=limit((1-x/n)^n,n,inf)
9
>> syms x; >> f=sin(x)+3*x^2; >> g=diff(f,x)
Matlab 符号运算举例
u 求的根 f (x) = (cos x)2 的一次导数
>> syms x; >> diff(cos(x)^2)
u 计算 f (x) = x2 在区间 [a, b] 上的定积分
>> syms a b x; >> int(x^2,a,b)
3 4
符号对象与符号表达式
q 在进行符号运算时,必须先定义基本的符号对象:符号常 量、符号变量、符号表达式等。符号对象是一种数据结构 。 q 含有符号对象的表达式称为 符号表达式 q 符号变量声明 :syms syms 变量1 变量2 ... 变量n 例: >> syms x y q 符号表达式的建立: 使用已经定义的符号变量组成符号表达式 例: >> syms x y >> f=sin(x) + cos(y)
7
8
计算极限
f ( x) limit(f,x,a): 计算 lim x→ a limit(f,x,a,'right'): 计算右极限 limit(f,x,a,'left'): 计算左极限
例:计算
计算导数
q diff g=diff(f,x):求符号表达式 f 关于 x 的导数 g=diff(f,x,n):求 f 关于 x 的 n 阶导数
subs 举例
例:指出下面各条语句的输出结果 >> f=sym('2*u'); >> subs(f,'u',2) >> f2=subs(f,'u','u+2') >> a=3; >> subs(f2,'u',a+2) >> subs(f2,'u','a+2') >> syms x y >> f3=subs(f,'u',x+y) >> subs(f3,[x,y],[1,2])
10
计算积分
int(f,x,a,b): 计算定积分 int(f,x): 计算不定积分
例:计算 I =
符号计算小结
∫bΒιβλιοθήκη af ( x )dx
l 符号变量声明:syms l 符号表达式的建立 l 符号替换: subs(f,x,a)
∫ f ( x )dx
∫ (x
2
x2 + 1 dx 和 K = − 2 x + 2)2
∫
+∞
0
e − x dx
2
l 求极限:limits l 求导数:diff l 求积分:int
>> syms x; >> f=(x^2+1)/(x^2-2*x+2)^2; >> I=int(f,x) >> K=int(exp(-x^2),x,0,inf)
11
12
5
符号对象的基本运算
Matlab 符号运算采用的运算符和基本函数,在形状、名称 和使用上,都与数值计算中的运算符和基本函数完全相同
q 基本运算符
u 普通运算:+ 、- 、* 、\ 、/ 、^ u 矩阵转置:' 、.'
q 基本函数
三角函数与反三角函数、指数函数、对数函数等
6
符号表达式的替换
q 用给定的数据替换符号表达式中的指定的符号变量
数学实验
Matlab 符号运算介绍
q Matlab 符号运算是通过符号数学工具箱(Symbolic Math Toolbox )来实现的。Matlab 符号数学工具箱是建立在功能 强大的 Maple 软件的基础上的,当 Matlab 进行符号运算 时,它就请求 Maple 软件去计算并将结果返回给 Matlab。 q Matlab 的符号数学工具箱可以完成几乎所有得符号运算 功能。主要包括:符号表达式的运算,符号表达式的复合、 化简,符号矩阵的运算,符号微积分、符号作图,符号代 数方程求解,符号微分方程求解等。此外,该工具箱还支 持可变精度运算,即支持以指定的精度返回结果。
f=2*u ans=4 f2=2*(u+2) ans=14 ans=2*((a+2)+2) f3=2*x+2*y ans=6
subs(f,x,a) 用 a 替换字符函数 f 中的字符变量 x a 是可以是 数/数值变量/表达式 或 字符变量 /表达式
若 x 是一个由多个字符变量组成的数组或矩阵, 则 a 应该具有与 x 相同的形状的数组或矩阵。
1 2
Matlab 符号运算初步
Matlab 符号运算特点
u 计算以推理方式进行,因此不受计算误差累积所带来的 困扰 。 u 符号计算可以给出完全正确的封闭解,或任意精度的数 值解(封闭解不存在时)。 u 符号计算指令的调用比较简单,与数学教科书上的公式 相近 。 u 符号计算所需的运行时间相对较长 。
L = lim
ln( x + h ) − ln( x ) x 1 − , M = lim h →0 n→∞ h n
>> syms x h n; >> L=limit((log(x+h)-log(x))/h,h,0) >> M=limit((1-x/n)^n,n,inf)
9
>> syms x; >> f=sin(x)+3*x^2; >> g=diff(f,x)
Matlab 符号运算举例
u 求的根 f (x) = (cos x)2 的一次导数
>> syms x; >> diff(cos(x)^2)
u 计算 f (x) = x2 在区间 [a, b] 上的定积分
>> syms a b x; >> int(x^2,a,b)
3 4
符号对象与符号表达式
q 在进行符号运算时,必须先定义基本的符号对象:符号常 量、符号变量、符号表达式等。符号对象是一种数据结构 。 q 含有符号对象的表达式称为 符号表达式 q 符号变量声明 :syms syms 变量1 变量2 ... 变量n 例: >> syms x y q 符号表达式的建立: 使用已经定义的符号变量组成符号表达式 例: >> syms x y >> f=sin(x) + cos(y)
7
8
计算极限
f ( x) limit(f,x,a): 计算 lim x→ a limit(f,x,a,'right'): 计算右极限 limit(f,x,a,'left'): 计算左极限
例:计算
计算导数
q diff g=diff(f,x):求符号表达式 f 关于 x 的导数 g=diff(f,x,n):求 f 关于 x 的 n 阶导数
subs 举例
例:指出下面各条语句的输出结果 >> f=sym('2*u'); >> subs(f,'u',2) >> f2=subs(f,'u','u+2') >> a=3; >> subs(f2,'u',a+2) >> subs(f2,'u','a+2') >> syms x y >> f3=subs(f,'u',x+y) >> subs(f3,[x,y],[1,2])
10
计算积分
int(f,x,a,b): 计算定积分 int(f,x): 计算不定积分
例:计算 I =
符号计算小结
∫bΒιβλιοθήκη af ( x )dx
l 符号变量声明:syms l 符号表达式的建立 l 符号替换: subs(f,x,a)
∫ f ( x )dx
∫ (x
2
x2 + 1 dx 和 K = − 2 x + 2)2
∫
+∞
0
e − x dx
2
l 求极限:limits l 求导数:diff l 求积分:int
>> syms x; >> f=(x^2+1)/(x^2-2*x+2)^2; >> I=int(f,x) >> K=int(exp(-x^2),x,0,inf)
11
12
5
符号对象的基本运算
Matlab 符号运算采用的运算符和基本函数,在形状、名称 和使用上,都与数值计算中的运算符和基本函数完全相同
q 基本运算符
u 普通运算:+ 、- 、* 、\ 、/ 、^ u 矩阵转置:' 、.'
q 基本函数
三角函数与反三角函数、指数函数、对数函数等
6
符号表达式的替换
q 用给定的数据替换符号表达式中的指定的符号变量
数学实验
Matlab 符号运算介绍
q Matlab 符号运算是通过符号数学工具箱(Symbolic Math Toolbox )来实现的。Matlab 符号数学工具箱是建立在功能 强大的 Maple 软件的基础上的,当 Matlab 进行符号运算 时,它就请求 Maple 软件去计算并将结果返回给 Matlab。 q Matlab 的符号数学工具箱可以完成几乎所有得符号运算 功能。主要包括:符号表达式的运算,符号表达式的复合、 化简,符号矩阵的运算,符号微积分、符号作图,符号代 数方程求解,符号微分方程求解等。此外,该工具箱还支 持可变精度运算,即支持以指定的精度返回结果。
f=2*u ans=4 f2=2*(u+2) ans=14 ans=2*((a+2)+2) f3=2*x+2*y ans=6
subs(f,x,a) 用 a 替换字符函数 f 中的字符变量 x a 是可以是 数/数值变量/表达式 或 字符变量 /表达式
若 x 是一个由多个字符变量组成的数组或矩阵, 则 a 应该具有与 x 相同的形状的数组或矩阵。
1 2
Matlab 符号运算初步
Matlab 符号运算特点
u 计算以推理方式进行,因此不受计算误差累积所带来的 困扰 。 u 符号计算可以给出完全正确的封闭解,或任意精度的数 值解(封闭解不存在时)。 u 符号计算指令的调用比较简单,与数学教科书上的公式 相近 。 u 符号计算所需的运行时间相对较长 。