第6章MATLAB符号计算-资料
合集下载
Matlab符号计算

s=log(2*x/y);
simplify(s)
ans =
log(2)+log(x/y)
s=(-a^2+1)/(1-a)
simplify(s)
ans =
a+1
函数simple试用几种不同的化简工具,然后选择在结果中含有最少字符的那种形式。如下例:
syms x y;
syms x y;
V=3*x^2-5*y+2*x*y+6
V =
3*x^2-5*y+2*x*y+6
二.基本的符号运算
1.四则运算:
符号表达式的加减乘除可以分别利用函数symadd、symsub、symmul、symdiv来实现,幂运算可以由sympow来实现。
例:
f=‘2*x^2+3*x-5’ %定义符号表达式
④limit(f,x,a,’right’),求极限,’right’表示变量x从右边趋近于a。
⑤limit(f,x,a,’left’),求极限,’left’表示变量x从左边趋近于a。
例:求下列极限
syms a m x;
f=(x^(1/m)-a^(1/m))/(x-a);
g=‘x^2-x+7’
U=symadd(f,g) %求f+g
V=symsub(f,g) %求f-g
W=symmul(f,g) %求f*g
X=symdiv(f,g) %求f/g
Y=sympow(f,’3*x’) %求f^(3x)
另外,与数值运算一样,也可以用+ - * / ^运算符来实现符号运算。如:
①limit(f,x,a)求符号函数f(x)的极限。当x趋向于a时,f(x)的极限值。
MATLAB 中的符号运算

时函数的极限。
,求当 x 1, x 0 , x 0 , x
► syms x
%声明符号变量
► fx= 1/(1+exp(-1/x)); %建立符号函数fx
► limit(fx,x,1)
%求fx : x->1的极限
► limit(fx,x,0, 'right') %求fx : x->0的右极限
► limit(fx,x,0, 'left') %求fx : x->0的左极限
2、通过画图观察极限
lim
x0
cos
1 x
,
lim
x0
1 x
sin
1 x
,理解振荡间断点的
概念,无界量和无穷大量之间的关系。
3、设 y
3 e4t sin(4 2
3t
3
)
要求以
0.01秒为间隔,求出y的151个点,
并求出其导数的值和曲线.
fx=a*x^2+b*x+c %建立符号函数
solve(fx)
%求方程fx=0的符号解
ans = [ 1/2/a*(-b+(b^2-4*a*c)^(1/2))]
solve(fx, b )
%求方程fx=0关于变量b的符号解
ans = -(a*x^2+c)/x
上机练习题
1、已知函数 f (x) ex sin 4x, x [1,6] ,求出函数 f (x)的一阶导函数、 二阶导函数,并画出它们相应的曲线;研究函数性态,如单 调区间,极值点、拐点及凹凸区间。
或:
syms 符号变量1 符号变量2 …
f=表达式
例:符号多项式运算
MATLAB中的符号运算精品PPT课件

符号变量 当字符表达式中含有多于一个的变量时,只有一个变 量是独立变量。如果不告诉MATLAB哪一个变量是独 立变量,MATLAB将基于以下规则选择一个:
在符号表达式中缺省的独立变量是唯一的,除去i和j 的小写字母,不是单词的一部分。如果没有这种字 母,就选择x作为独立变量。如字符不是唯一的,就 选择在字母顺序中最接近x的字母。如果有相连的字 母,就选择在字母表中较后的那一个。
symvar( ' 3*i+4*j ' ) % i and j are equel to sqrt(-1) ans= x
symvar( ' y+3*s ' , ' t ' ) ans= s % find the variable closest to t rather than x
如果利用规则symvar不能找到一个缺省独立变量, 它便假定无独立变量并返回x。这一结论对含有由 多个字母组成的变量,如:alpha或s2的表达式, 或不含变量的符号常数均成立。如果需要,绝大多 数命令都使用用户选项以指定独立变量。
symvar( ' a*x+y*) % find the default symbolic variable ans= x
symvar( ' a*t+s/(u+3) ' ) % u is the closest to ' x ' ans= u
symvar( ' sin(omega) ' ) % ' omega ' is not a singlee character。 ans= x
MATLAB中的符号运算
2004.8.4
MATLAB所具有的符号数学工具箱与其 它所有工具不同,它适用于广泛的用 途,而不是针对一些特殊专业或专业 分支。另外,MATLAB符号数学工具 箱与其它的工具箱区别还因为它使用 字符串来进行符号分析,而不是基于 数组的数值分析。
MATLAB的符号计算

符号数学工具箱中的工具是建立在功能强大 符号数学工具箱中的工具是建立在功能强大 的称作Maple软件的基础上。它最初是由加拿 软件的基础上。 大的滑铁卢( 大的滑铁卢 ( Waterloo ) 大学开发的。 当要 大学开发的 。 求MATLAB进行符号运算时,它就请求Maple 进行符号运算时, 去计算并将结果返回到MATLAB命令窗口。 命令窗口。 因此, 因此 , 在 MATLAB 中的符号运算是 MATLAB 处理数字的自然扩展。 处理数字的自然扩展。
积分 运用函数可以求得符号表达式的积分,该函数用 以演算函数的积分项,这个函数要找出一符号表 达式F使得diff(F)=f。相关的用法如下: 达式F使得diff(F)=f。相关的用法如下: ①int(f)返回f对预设独立变量的积分值。 int(f)返回f ② int(f,’t’)返回f对独立变量t的积分值。 int(f,’ 返回f对独立变量t ③ int(f,a,b)返回f对预设独立变量的积分值,积分 int(f,a,b)返回f对预设独立变量的积分值, 区间为[a,b], 区间为[a,b],a和b为数值表达式。 ④ int(f,’t’,a,b)返回f对独立变量t的积分值,积分区 int(f,’ ,a,b)返回f对独立变量t的积分值, 间为[a,b], 间为[a,b],a和b为数值表达式。 ⑤ int(f,’m’,’n’)返回f对预设独立变量的积分值,积 int(f,’ 返回f对预设独立变量的积分值, 分区间为[m,n], 分区间为[m,n],m和n为符号表达式。
左趋近于a
lim f ( x )
x →a −
limit(f,x,a,’left’)
lim f ( x )
x →a +
右趋近于a limit(f,x,a,’right’)
MATLAB学习 第6章 MATLAB符号计算

目录
(2)因式分解与展开 factor(S) 对S分解因式,S是符号表达式或符号 矩阵。 expand(S) 对S进行展开,S是符号表达式或符 号矩阵。 collect(S) 对S合并同类项,S是符号表达式或符 号矩阵。 collect(S,v) 对S按变量v合并同类项,S是符号表 达式或符号矩阵。
目录
6.2 符号导数及其应用
6.2.1函数的极限 limit函数的调用格式为: limit(f,x,a) limit函数的另一种功能是求单边极限,其调用格式为: limit(f,x,a,'right') 或 limit(f,x,a,'left')
目录
例6.10求极限
x a sin(x a) sin(x a) lim , lim , x a x a x 0 / x
f=
f = 2/5 -3*x+2*x^3 f= (x+y)*(x-y)
syms x y z; f=2*x+x^2*x-5*x+x^3 %符号表达式的结果为最简形式 f=2*x/(5*x) %符号表达式的结果为最简形式 f=(x+y)*(x-y) %符号表达式的结果不是x^2-y^2,而是(x+y)*(x-y)
syms x y; s=(x^2+y^2)^2+(x^2-y^2)^2; simple(s) %MATLAB自动调用多种函数对s进行化简,并显示每步结果
目录
2. 符号矩阵运算 transpose(S) 返回S矩阵的转置矩阵。 determ(S) 返回S矩阵的行列式值。 colspace(S) 返回S矩阵列空间的基。 [Q,D]=eigensys(S) Q返回S矩阵的特征向量,D返回S矩阵的 特征值。
MATLAB的符号运算V精简版

ans=[2+y,4+y,6+y]
>> subs(f,x,[1:3]) >> subs(f,{x,y},{[1:3],[5:7]})
ans=[7 10 13]
>> subs(f,{x,y},{a+b,a-b}) >> subs(f,{x,y},{x+y,x-y})
Copyright © CUGB
2024/4/3
Matlab的符号运算
符号对象建立时可以附加属性: real、positive 和 unreal
>> x=sym('x','real') >> k=sym('k','positive') >> x=sym('x','unreal')
表明 x 是实的 表明 k 是正的 去掉 x 的附加属性
Copyright © CUGB 2024/4/3
Matlab的符号运算
符号表达式的建立
>> syms x >> f1=sin(x)+cos(x)
推荐!
>> f2=sym(’sin(x)+cos(x)’)
Copyright © CUGB 2024/4/3
Matlab的符号运算
相关函数
➢ findsym: 查找符号表达式中的符号变量
findsym(f) 按字母顺序列出符号表达式 f 中的所有自由变量 findsym(f,N) 列出 f 中距离 x 最近的 N 个自由变量(i,j 除外)
Matlab的符号运算
其它运算
MATLAB符号运算PPT课件

sym函数用来建立单个符号量,一般调用格式为: 符号量名=sym('符号字符串') 该函数可以建立一个符号量,符号字符串可以是常量、变 量、函数或表达式。 应用sym函数还可以定义符号常量,使用符号常量进行 代数运算时和数值常量进行的运算不同。
2021/5/8
8
2.9 符号变量和符号达式
(2) syms 函数
符号变量和符号表达式在使用前必须说明
syms函数 如果一个数学符号表示式中有多个符号,
如
z = a*t^2+b*t+c 可以用多个符号变量定义语
句放在此式前面。
>> clear
>> syms a b c t
>> whos
Name Size
Bytes Class
a
1x1
126 sym object
运算复杂的数学式,这也是我们使用它的目的。
2021/5/8
5
2.8数值运算与符号运算
数值运算在运算前必须先对变量赋值,再参加 运算。
符号运算不需要对变量赋值就可运算,运算结 果以标准的符号形式表达。
2021/5/8
6
2.8数值运算与符号运算
在MATLAB中是将一符号表示式储存唯 一字串 (character string),即是以二个单 引号之内的表示式来定义其为 一符号式, 例如:
b
1x1
126 sym object
c
1x1
126 sym object
t
1x1
126 sym object
2021/5/8
12
2.10 符号表示式的运算
2.10.1 算术运算或四则运算
2021/5/8
8
2.9 符号变量和符号达式
(2) syms 函数
符号变量和符号表达式在使用前必须说明
syms函数 如果一个数学符号表示式中有多个符号,
如
z = a*t^2+b*t+c 可以用多个符号变量定义语
句放在此式前面。
>> clear
>> syms a b c t
>> whos
Name Size
Bytes Class
a
1x1
126 sym object
运算复杂的数学式,这也是我们使用它的目的。
2021/5/8
5
2.8数值运算与符号运算
数值运算在运算前必须先对变量赋值,再参加 运算。
符号运算不需要对变量赋值就可运算,运算结 果以标准的符号形式表达。
2021/5/8
6
2.8数值运算与符号运算
在MATLAB中是将一符号表示式储存唯 一字串 (character string),即是以二个单 引号之内的表示式来定义其为 一符号式, 例如:
b
1x1
126 sym object
c
1x1
126 sym object
t
1x1
126 sym object
2021/5/8
12
2.10 符号表示式的运算
2.10.1 算术运算或四则运算
Matlab 第六讲:符号计算

例:计算级数 及其前100项的部分和
>> syms n; f=1/n^2; >> S=symsum(f,n,1,inf) >> S100=symsum(f,n,1,100)
例:计算函数级数 S
x n2 n 1
>> syms n x; f=x/n^2; >> S=symsum(f,n,1,inf)
下面的命令运行结果会是什么? f=2*u ans=4
f2=2*(u+2)
ans=14 ans=2*((a+2)+2) f3=2*x+2*y ans=6
>> subs(f3,[x,y],[x+y,x+y])
15
符号矩阵
使用 sym 函数直接生成
>> A=sym('[1+x, sin(x); 5, exp(x)]') 将数值矩阵转化成符号矩阵 >> B=[2/3, sqrt(2); 5.2, log(3)]; >> C=sym(B) 符号矩阵中元素的引用和修改 >> A=sym('[1+x, sin(x); 5, exp(x)]'); >> A(1,2) % 引用 >> A(2,2)=sym('cos(x)') % 重新赋值
9
基本符号运算
Matlab 符号运算采用的运算符和基本函数,在形状、名称 和使用上,都与数值计算中的运算符和基本函数完全相同
基பைடு நூலகம்运算符
普通运算:+ 数组运算:.* 矩阵转置:'
-
>> syms n; f=1/n^2; >> S=symsum(f,n,1,inf) >> S100=symsum(f,n,1,100)
例:计算函数级数 S
x n2 n 1
>> syms n x; f=x/n^2; >> S=symsum(f,n,1,inf)
下面的命令运行结果会是什么? f=2*u ans=4
f2=2*(u+2)
ans=14 ans=2*((a+2)+2) f3=2*x+2*y ans=6
>> subs(f3,[x,y],[x+y,x+y])
15
符号矩阵
使用 sym 函数直接生成
>> A=sym('[1+x, sin(x); 5, exp(x)]') 将数值矩阵转化成符号矩阵 >> B=[2/3, sqrt(2); 5.2, log(3)]; >> C=sym(B) 符号矩阵中元素的引用和修改 >> A=sym('[1+x, sin(x); 5, exp(x)]'); >> A(1,2) % 引用 >> A(2,2)=sym('cos(x)') % 重新赋值
9
基本符号运算
Matlab 符号运算采用的运算符和基本函数,在形状、名称 和使用上,都与数值计算中的运算符和基本函数完全相同
基பைடு நூலகம்运算符
普通运算:+ 数组运算:.* 矩阵转置:'
-
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例6.9化简 命令如下:
syms x y; s=(x^2+y^2)^2+(x^2-y^2)^2; simple(s) %MATLAB自动调用多种函数对s进行化简,并显示每步结果
目录
2020/4/12
2. 符号矩阵运算 transpose(S) 返回S矩阵的转置矩阵。 determ(S) 返回S矩阵的行列式值。 colspace(S) 返回S矩阵列空间的基。 [Q,D]=eigensys(S) Q返回S矩阵的特征向量,D返回S矩阵的
g= 1/3*((x+1)*x)^(1/2)*x^2+1/12*((x+1)*x)^(1/2)*x1/8*((x+1)*x)^(1/2)+1/16*log(1/2+x+((x+1)*x)^(1/2))
2020/4/12
6.3.2 符号函数的定积分
定积分在实际工作中有广泛的应用。在MATLAB中,定 积分的计算使用函数:
f1=a*cos(t);f2=b*sin(t);
diff(f2)/diff(f1)
%求(3)。按参数方程求导公式求y对x的导数
(diff(f1)*diff(f2,2)-diff(f1,2)*diff(f2))/(diff(f1))^3 %求(3)。求y对x的二阶 导数
f=x*exp(y)/y^2;
diff(f,x)
2020/4/12
目录
例6.10求极限
11
xmam sixna ()sixna ()
lim ,lim
,
x a xa x 0/
x
在MATLAB命令窗口,输入命令:
ans =
syms a m x;
a^(1/m)/a/m
f=(x^(1/m)-a^(1/m))/(x-a);
limit(f,x,a)
%求极限(1)
命令如下:
>>syms a b c; >>U=[a,b,c]; >>A=[[1,1,1];U;U.^2] %建立范得蒙符号矩阵
A=
>>factor(ans)
ans =
[ 1, 1, 1] >[>dae,t(Ab), c] %计算A的行列式值 [anas^2=, b^2, c^2]
2020/4/12
-(-c+b)*(a-c)*(a-b)
在求函数的极限、导数和积分时,如果用户没有 明确指定自变量,MATLAB将按缺省原则确定 主变量并对其进行相应微积分运算。可用 findsym(S,1)查找系统的缺省变量,事实上, MATLAB按离字符'x'最近原则确定缺省变量。
2020/4/12
目录
6.2 符号导数及其应用
6.2.1函数的极限 limit函数的调用格式为: limit(f,x,a) limit函数的另一种功能是求单边极限,其调用格式为: limit(f,x,a,'right') 或 limit(f,x,a,'left')
目录
(2)因式分解与展开
factor(S) 对S分解因式,S是符号表达式或符号 矩阵。
expand(S) 对S进行展开,S是符号表达式或符 号矩阵。
collect(S) 对S合并同类项,S是符号表达式或符 号矩阵。
collect(S,v) 对S按变量v合并同类项,S是符号表 达式或符号矩阵。
2020/4/12
>>syms x y;
%建立符号变量x、y
>3>*Vx=^32*+x5^2*+y5+*2y*+x2**xy*+y+66%定义符号Fra bibliotek达式VV=
ans =
>> 2*U-V+6
%求符号表达式的值
3*x^2+5*y+2*x*y+6
2020/4/12
3*x^2+5*y+2*x*y+12
例6.4计算3阶范得蒙矩阵行列式的值。设A是一个由符号变量a,b,c确 定的范得蒙矩阵。
第6章 MATLAB符号计算
• 在工程、应用数学和科学上经常要用到符号 计算功能。MATLAB开发商Mathwork公司以 maple的内核为符号计算的引擎,依赖 MAOLE已有的库函数,开发了在MATLAB环 境下实现符号计算的工具箱Symbolic Math Toolbox(符号数学工具箱)。
2020/4/12
函数定义符号变量var1,var2,…,varn等。用这种格式定 义符号变量时不要在变量名上加字符分界符('),变量 间用空格而不要用逗号分隔。
2020/4/12
目录
2. 建立符号表达式 例6.3用两种方法建立符号表达式。 在MATLAB窗口,输入命令:
>>U=sym('3*x^2+5*y+2*x*y+6') %定义符号表达式U U=
int(f)
%求不定积分(1)
f=sqrt(x^3+x^4);
int(f)
%求不定积分(2)
g=simple(ans)
%调用simple函数对结果化简
2020/4/12
目录
ans = 27*x-1/7*x^7+9/5*x^5-9*x^3
ans = -1/48*(x^3+x^4)^(1/2)*(16*(x^2+x)^(3/2)+12*(x^2+x)^(1/2)*x+6*(x^2+x)^(1/2)3*log(1/2+x+(x^2+x)^(1/2)))/x/((x+1)*x)^(1/2)
2020/4/12
目录
6.3 符号积分
6.3.1不定积分 在MATLAB中,求不定积分的函数是int,其调用格式为: int(f,x) int函数求函数f对变量x的不定积分。参数x可以缺省,缺省原则
与diff函数相同。
2020/4/12
目录
例6.13求不定积分。
命令如下:
x=sym('x');
f=(3-x^2)^3;
目录
• 6.1 符号计算基础 • 6.2 符号导数及其应用 • 6.3 符号积分 • 6.4 级数 • 6.5 代数方程的符号求解 • 6.6 常微分方程的符号求解
2020/4/12
6.1 符号计算基础
• 符号数学工具箱是操作和解决符号表达式的 版本号数学工具的集合,它包含复合、简化 、微分、积分以及求代数方程和微分方程的 工具。
特征值。
2020/4/12
目录
6.1.3 符号表达式中变量的确定
MATLAB中的符号可以表示符号变量和符号常数 。findsym可以帮助用户查找一个符号表达式 中的的符号变量。该函数的调用格式为:
findsym(S,n)
函数返回符号表达式S中的n个符号变量,若没有 指定n,则返回S中的全部符号变量。
f=(sin(a+x)-sin(a-x))/x;
ans = 2*cos(a)
limit(f)
%求极限(2)
limit(f,inf) %求f函数在x→∞
(包括+∞和-∞)处的极限
ans = 0 ans = 0
limit(f,x,inf,'left')
%求极限(3)
ans =
f=(sqrt(x)-sqrt(a)-sqrt(x-a))/sqrt(x*x-a*a);
>>a=sym('a');b=sym('b');c=sym('c');d=sym('d'); %定义4个符号变量
>>w=10;x=5;y=-8;z=11;
%定义4个数值变量
>>A=[a,b;c,d]
%建立符号矩阵A
A=
>>B=[w,x;y,z] %建立数值矩阵B
[ a, b] [ c, d]
>> det(B)
目录
例6.5建立x,y的一般二元函数。 在MATLAB命令窗口,输入命令: syms x y; f=sym('f(x,y)');
2020/4/12
目录
6.1.2 基本的符号运算
f=
1. 符号表达式运算
(1)符号表达式的四则运算 例6.6符号表达式的四则运算示例。
-3f*=x+2/25*x^3 f=
目录
例6.7 对符号矩阵A的每个元素分解因式。
命令如下:
syms a b x y;
A=[2*a^2*b^3*x^2-4*a*b^4*x^3+10*a*b^6*x^4,3*x*y5*x^2;4,a^3-b^3];
factor(A)
%对A的每个元素分解因式
ans =
[ 2*a*b^3*x^2*(5*b^3*x^2-2*b*x+a),
limit(f,x,a,'right')
%求极限(4)
-1/2*2^(1/2)/a^(1/2)
目录
2020/4/12
6.2.2 符号函数求导及其应用 MATLAB中的求导的函数为:
diff(f,x,n)
diff函数求函数f对变量x的n阶导数。参数x的用 法同求极限函数limit,可以缺省,缺省值与 limit相同,n的缺省值是1。
%求(4)。z对x的偏导数
diff(f,y)
%求(4)。z对y的偏导数
f=x^2+y^2+z^2-a^2;
zx=-diff(f,x)/diff(f,z) %求(5)。按隐函数求导公式求z对x的偏导数
syms x y; s=(x^2+y^2)^2+(x^2-y^2)^2; simple(s) %MATLAB自动调用多种函数对s进行化简,并显示每步结果
目录
2020/4/12
2. 符号矩阵运算 transpose(S) 返回S矩阵的转置矩阵。 determ(S) 返回S矩阵的行列式值。 colspace(S) 返回S矩阵列空间的基。 [Q,D]=eigensys(S) Q返回S矩阵的特征向量,D返回S矩阵的
g= 1/3*((x+1)*x)^(1/2)*x^2+1/12*((x+1)*x)^(1/2)*x1/8*((x+1)*x)^(1/2)+1/16*log(1/2+x+((x+1)*x)^(1/2))
2020/4/12
6.3.2 符号函数的定积分
定积分在实际工作中有广泛的应用。在MATLAB中,定 积分的计算使用函数:
f1=a*cos(t);f2=b*sin(t);
diff(f2)/diff(f1)
%求(3)。按参数方程求导公式求y对x的导数
(diff(f1)*diff(f2,2)-diff(f1,2)*diff(f2))/(diff(f1))^3 %求(3)。求y对x的二阶 导数
f=x*exp(y)/y^2;
diff(f,x)
2020/4/12
目录
例6.10求极限
11
xmam sixna ()sixna ()
lim ,lim
,
x a xa x 0/
x
在MATLAB命令窗口,输入命令:
ans =
syms a m x;
a^(1/m)/a/m
f=(x^(1/m)-a^(1/m))/(x-a);
limit(f,x,a)
%求极限(1)
命令如下:
>>syms a b c; >>U=[a,b,c]; >>A=[[1,1,1];U;U.^2] %建立范得蒙符号矩阵
A=
>>factor(ans)
ans =
[ 1, 1, 1] >[>dae,t(Ab), c] %计算A的行列式值 [anas^2=, b^2, c^2]
2020/4/12
-(-c+b)*(a-c)*(a-b)
在求函数的极限、导数和积分时,如果用户没有 明确指定自变量,MATLAB将按缺省原则确定 主变量并对其进行相应微积分运算。可用 findsym(S,1)查找系统的缺省变量,事实上, MATLAB按离字符'x'最近原则确定缺省变量。
2020/4/12
目录
6.2 符号导数及其应用
6.2.1函数的极限 limit函数的调用格式为: limit(f,x,a) limit函数的另一种功能是求单边极限,其调用格式为: limit(f,x,a,'right') 或 limit(f,x,a,'left')
目录
(2)因式分解与展开
factor(S) 对S分解因式,S是符号表达式或符号 矩阵。
expand(S) 对S进行展开,S是符号表达式或符 号矩阵。
collect(S) 对S合并同类项,S是符号表达式或符 号矩阵。
collect(S,v) 对S按变量v合并同类项,S是符号表 达式或符号矩阵。
2020/4/12
>>syms x y;
%建立符号变量x、y
>3>*Vx=^32*+x5^2*+y5+*2y*+x2**xy*+y+66%定义符号Fra bibliotek达式VV=
ans =
>> 2*U-V+6
%求符号表达式的值
3*x^2+5*y+2*x*y+6
2020/4/12
3*x^2+5*y+2*x*y+12
例6.4计算3阶范得蒙矩阵行列式的值。设A是一个由符号变量a,b,c确 定的范得蒙矩阵。
第6章 MATLAB符号计算
• 在工程、应用数学和科学上经常要用到符号 计算功能。MATLAB开发商Mathwork公司以 maple的内核为符号计算的引擎,依赖 MAOLE已有的库函数,开发了在MATLAB环 境下实现符号计算的工具箱Symbolic Math Toolbox(符号数学工具箱)。
2020/4/12
函数定义符号变量var1,var2,…,varn等。用这种格式定 义符号变量时不要在变量名上加字符分界符('),变量 间用空格而不要用逗号分隔。
2020/4/12
目录
2. 建立符号表达式 例6.3用两种方法建立符号表达式。 在MATLAB窗口,输入命令:
>>U=sym('3*x^2+5*y+2*x*y+6') %定义符号表达式U U=
int(f)
%求不定积分(1)
f=sqrt(x^3+x^4);
int(f)
%求不定积分(2)
g=simple(ans)
%调用simple函数对结果化简
2020/4/12
目录
ans = 27*x-1/7*x^7+9/5*x^5-9*x^3
ans = -1/48*(x^3+x^4)^(1/2)*(16*(x^2+x)^(3/2)+12*(x^2+x)^(1/2)*x+6*(x^2+x)^(1/2)3*log(1/2+x+(x^2+x)^(1/2)))/x/((x+1)*x)^(1/2)
2020/4/12
目录
6.3 符号积分
6.3.1不定积分 在MATLAB中,求不定积分的函数是int,其调用格式为: int(f,x) int函数求函数f对变量x的不定积分。参数x可以缺省,缺省原则
与diff函数相同。
2020/4/12
目录
例6.13求不定积分。
命令如下:
x=sym('x');
f=(3-x^2)^3;
目录
• 6.1 符号计算基础 • 6.2 符号导数及其应用 • 6.3 符号积分 • 6.4 级数 • 6.5 代数方程的符号求解 • 6.6 常微分方程的符号求解
2020/4/12
6.1 符号计算基础
• 符号数学工具箱是操作和解决符号表达式的 版本号数学工具的集合,它包含复合、简化 、微分、积分以及求代数方程和微分方程的 工具。
特征值。
2020/4/12
目录
6.1.3 符号表达式中变量的确定
MATLAB中的符号可以表示符号变量和符号常数 。findsym可以帮助用户查找一个符号表达式 中的的符号变量。该函数的调用格式为:
findsym(S,n)
函数返回符号表达式S中的n个符号变量,若没有 指定n,则返回S中的全部符号变量。
f=(sin(a+x)-sin(a-x))/x;
ans = 2*cos(a)
limit(f)
%求极限(2)
limit(f,inf) %求f函数在x→∞
(包括+∞和-∞)处的极限
ans = 0 ans = 0
limit(f,x,inf,'left')
%求极限(3)
ans =
f=(sqrt(x)-sqrt(a)-sqrt(x-a))/sqrt(x*x-a*a);
>>a=sym('a');b=sym('b');c=sym('c');d=sym('d'); %定义4个符号变量
>>w=10;x=5;y=-8;z=11;
%定义4个数值变量
>>A=[a,b;c,d]
%建立符号矩阵A
A=
>>B=[w,x;y,z] %建立数值矩阵B
[ a, b] [ c, d]
>> det(B)
目录
例6.5建立x,y的一般二元函数。 在MATLAB命令窗口,输入命令: syms x y; f=sym('f(x,y)');
2020/4/12
目录
6.1.2 基本的符号运算
f=
1. 符号表达式运算
(1)符号表达式的四则运算 例6.6符号表达式的四则运算示例。
-3f*=x+2/25*x^3 f=
目录
例6.7 对符号矩阵A的每个元素分解因式。
命令如下:
syms a b x y;
A=[2*a^2*b^3*x^2-4*a*b^4*x^3+10*a*b^6*x^4,3*x*y5*x^2;4,a^3-b^3];
factor(A)
%对A的每个元素分解因式
ans =
[ 2*a*b^3*x^2*(5*b^3*x^2-2*b*x+a),
limit(f,x,a,'right')
%求极限(4)
-1/2*2^(1/2)/a^(1/2)
目录
2020/4/12
6.2.2 符号函数求导及其应用 MATLAB中的求导的函数为:
diff(f,x,n)
diff函数求函数f对变量x的n阶导数。参数x的用 法同求极限函数limit,可以缺省,缺省值与 limit相同,n的缺省值是1。
%求(4)。z对x的偏导数
diff(f,y)
%求(4)。z对y的偏导数
f=x^2+y^2+z^2-a^2;
zx=-diff(f,x)/diff(f,z) %求(5)。按隐函数求导公式求z对x的偏导数