符号计算与符号微积分
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
>>syms x >> f=atan(x); >>limit(f,x,-inf) ans= -1/2*pi >>limit(f,x,inf) ans= 1/2*pi
求tanx当xpi/2时的左右极限 >>syms x >>f=tan(x) >>limit(f,x,pi/2,’left’) >>limit(f,x,pi/2,’right’)
f=2*u ans=4 f2=2*(u+2) ans=14 ans=2*((a+2)+2) f3=2*x+2*y ans=6
符号计算的应用
求函数的极限limit(f,x,a) 符号函数求导diff(f,x,n) 不定积分int(f,x) 定积分int(f,x,a,b) 线形方程组的符号求解 linsolve(A,b)%返回线型方程组AX
subs(f,x,a) 用 a 替换字符函数 f 中的字符变量 x a 是可以是 数/数值变量/表达式 或 字符变量/表达式
若 x 是一个由多个字符变量组成的数组或矩阵, 则 a 应该具有与 x 相同的形状的数组或矩阵。
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])
建立符号表达式
单引号定义
>>f1=‘a*x^2+b*x+c=0’ %这种方法a,x,b,c可以不用先定义成符号 向量
f1= a*x^2+b*x+c=0
sym/syms定义
>>f2=sym(‘x*log(x)-sin(x)’)
方法三
syms a,b,c,x f3=a*x^2+b*x+c symsvar(f3)
simpily(S) S进行简化,若S矩阵则化简其每一个元素 [m,n]=size(A) 符号矩阵的行数、列数 findsym(S) 求S的符号变量 g=finverse(f,v) 求f对指定变量v的反函数g
符号表达式运算(例)
将(x+a)(x+b)+(x-a)2,(x-y)3+(x-y)2+y4分别对变量x, y合并同类项 (collect 函数)
.49662797440907460178544085171994
x2 =
.67214622395756734146654770697884e-2
常微分方程组求解dsolve
微分或导数的输入时用Dy,D2y,D3y表示 dsolve(‘微分方程‘,’初始条件’,‘自变量’)
求定积分
2 0
x
sin 2
xdx
S=x*sin(x)^2;
int(S,0,pi/2)
ans=
-1/8*3^(1/2)+1/12*pi
级数求和 (symsum)
1 2n
前
n项和
n0
>> syms n k >> f=1/2^n >>r1=symsum(f,0,n-1) r1 =
=b的解 非线型方程组的符号求解
slove(‘eqn1’,eqn2’,…’eqnN’,var1,var2,…,varN’) 常微分方程的符号求解 dsolve(‘eqn1’,’condition’,’var’)
符号函数的极限(limit函数的用法)
求arctanx当x+∞和 x-∞的极限
A=sym(magic(3)) sigma=svd(A) digits(3) sig=svd(vpa(A))
符号表达式运算
基本运算函数 collect (S,v)合并同类项 expand(S) 将S展开 factor(x)因式分解 [N,D]=numden(A) 求分子N和分母D
29/5-1/5*721^(1/2) 29/5+1/5*721^(1/2) y=
9/10-1/10*721^(1/2) 9/10+1/10*721^(1/2)
z= 241/10-9/10*721^(1/2) 241/10+9/10*721^(1/2)
线性方程组求解
方法二 c=[1;2;3]; >> linsolve(A,c) ans =
4.1538 1.0769 -1.7692
能不能用solve?
非线性符号方程的求解
>> syms x1 x2 >> [x1,x2]=solve('x1-3*x2=sin(x1)','2*x1+x2=cos(x2)') x1 =
符号计算与符号微积 分
符号变量的定义
默认的自变量有x,x1,y,y1,z,v,u,t,theta,alpha
当表达式为cos(2*x*a^2),默认的自变量为x; 当表达式为cos(2*t*alpha),默认的自变量为t;
建立符号对象
建立符号对象的函数:sym和syms sym:建立单个符号量
符号函数的积分(int函数)
计算不定积分
2x 7 dx
>>syms x
4x2 12x 25
>>S=(2*x-7)/(4*x^2+12x+25)
>>int(S)
ans=
1/4*log(4*x^2+12*x+25)5/4*atan(1/2*x+3/4)
符号函数的积分(int函数)
,'y(0)=0','t')
符号函数的图形绘制
绘制函数 f (x, y) ex2y2 2(x2 y2 x y)
的等高线图(ezcontour) 例:ezc.m 绘制函数 f (x, y) 2 x2 y2在x, y [2,3] 时的等高线图和曲面图
x1 2x2 3x3 a x1 9x2 2x3 b 2x1 3x3 1
方法一:矩阵左除 >> A=[1 2 3;-1 9 2;2 0 3] >> syms a b >> b=[a;b;1] >> x=A\b x= 6/13*b+23/13-27/13*a 3/13*b+5/13-7/13*a -4/13*b-11/13+18/13*a
A=U*S*V
符号矩阵
例子:查看运行结果
syms a b c d A=[a c b d;d c b a ;b c a d]; v=diag(A) B=diag(v,0) c=diag(V,-2) rank(A)
符号矩阵
例子:查看运行结果 A=sym([1 0 2 4;0 2 4 5;1 4 5 3]); >> A=sym('[1 0 2 4+0;0 2 4 5;1 4 5 3]') A= [ 1, 0, 2, 4+0] [ 0, 2, 4, 5] [ 1, 4, 5, 3] >> rank(A) ans = 3 >> diag(A,3) ans = 4+0
符号表达式运算(例)
将符号常数243和符号表达式x5+y5及符号 矩阵 ax-ab x2-bx 因式分解 (factor函数)
(x-b)2 x2-b2
求e2x-2,(1-x)/(2+x)的反函数
sym x
finverse( exp(2*x)-2)
符号表达式的替换
用给定的数据替换符号表达式中的指定的符号 变量
矩阵转置(当为复数矩阵时有区别)
符号矩阵
运算函数(可用help 查看具体含义和使用方法)
det(A) 行列式 inv(A) 逆矩阵 rank(A) 秩 diag(A) 主对角元素 diag(A,k) 第k对角元素 [V,D]=eig(A) 特征值组成的列向量V和对角阵D sigma=svd(A) 计算奇异值向量 [U,S,V]=svd(A),奇异矩阵U和V包含奇异值D,有
(ezmeshc) ezmesh函数 曲面图
能用mesh实现么? ezm.m
展开式taylor函数
利用help命令,查看使用方法
练习
编写一个求函数lnx/x极限的函数文件,并 在命令窗口中调用,分别求x2和x+∞时 的极限
百度文库
>>syms x y a b >>f=(x+a)*(x+b)+(x-a)^2; >>f1=collect(f) %对f以默认变量x合并同类项 f1= 2*x^2+(-a+b)*x+a*b+a^2 >>f=(x-y)^3+(x-y)^2+y^4 f2=collect(f,y)
例如: >> a=sym('a');b=sym('b');c=sym('c');d=sym('d'); >> A=[a,b;c,d] A= [ a, b] [ c, d] >> det(A) ans = a*d-b*c
建立符号对象
syms,一次定义多个符号变量,例如:
>> syms a b c >> U=[a,b,c]; >> A=[[1,1,1];U;U.^2] A= [ 1, 1, 1] [ a, b, c] [ a^2, b^2, c^2] >> det(A) ans = b*c^2-c*b^2-a*c^2+a*b^2+a^2*c-a^2*b
>> [x,y]=dsolve('D2x+Dy+3*x=cos(2*t)','D2y4*Dx+3*y=sin(2*t)','t')
>> [x,y]=dsolve('D2x+Dy+3*x=cos(2*t)','D2y4*Dx+3*y=sin(2*t)','Dx(0)=1/5','x(0)=0','Dy(0)=6/5'...
符号函数的导数(diff 函数)
求 的一
ex( x 2x)
阶和三阶导数
>>syms x
>>S=exp(x)*( sqrt(x)+2^x);
>>diff(S)
>>diff(S,3)
求二元函数2xy/(x2+y2)的两个一阶偏 导和三个二阶偏导
>>S=2*x*y/(x^2+y^2); >> dfx=diff(S,’x’) >> dfy=diff(S,’y’) >> d2fx=diff(S,’x’,2) >> d2fxy=diff(dfx,’y’) >> d2fy=diff(S,’y’,2) >> d2fxy2=diff(dfy,’x’)
符号矩阵
运算符
+、-、*、.* \ 左除
AX=B A\B相当于求解矩阵方程AX=B的解
.\ 、 ./ 右除 /
XA=B B/A相当于求解矩阵方程XA=B的解
^
A^B A为方阵、B为整数 表示A*A*…*A (共B个)
.^
A.^B 对应分量进行幂运算
‘ .’
>> solve(x^3+2*a*x*y-3*b*y^2,y) ans = 1/6/b*(2*a+2*(a^2+3*b*x)^(1/2))*x 1/6/b*(2*a-2*(a^2+3*b*x)^(1/2))*x
求解多元高次方程组(solve)
>> [x y z]=solve(x-2*y-4,x^2-2*x*y+y-z,x^2-y*z+z) x=
-2*(1/2)^n+2
>>r1=symsum(f,0,n)
r1 = -2*(1/2)^(n+1)+2
求1+…+n?
符号方程求解(solve)
>> syms x y a b >> solve (x^4-3*a*x^2+4*b) ans = 1/2*(6*a+2*(9*a^2-16*b)^(1/2))^(1/2) -1/2*(6*a+2*(9*a^2-16*b)^(1/2))^(1/2) 1/2*(6*a-2*(9*a^2-16*b)^(1/2))^(1/2) -1/2*(6*a-2*(9*a^2-16*b)^(1/2))^(1/2)
求tanx当xpi/2时的左右极限 >>syms x >>f=tan(x) >>limit(f,x,pi/2,’left’) >>limit(f,x,pi/2,’right’)
f=2*u ans=4 f2=2*(u+2) ans=14 ans=2*((a+2)+2) f3=2*x+2*y ans=6
符号计算的应用
求函数的极限limit(f,x,a) 符号函数求导diff(f,x,n) 不定积分int(f,x) 定积分int(f,x,a,b) 线形方程组的符号求解 linsolve(A,b)%返回线型方程组AX
subs(f,x,a) 用 a 替换字符函数 f 中的字符变量 x a 是可以是 数/数值变量/表达式 或 字符变量/表达式
若 x 是一个由多个字符变量组成的数组或矩阵, 则 a 应该具有与 x 相同的形状的数组或矩阵。
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])
建立符号表达式
单引号定义
>>f1=‘a*x^2+b*x+c=0’ %这种方法a,x,b,c可以不用先定义成符号 向量
f1= a*x^2+b*x+c=0
sym/syms定义
>>f2=sym(‘x*log(x)-sin(x)’)
方法三
syms a,b,c,x f3=a*x^2+b*x+c symsvar(f3)
simpily(S) S进行简化,若S矩阵则化简其每一个元素 [m,n]=size(A) 符号矩阵的行数、列数 findsym(S) 求S的符号变量 g=finverse(f,v) 求f对指定变量v的反函数g
符号表达式运算(例)
将(x+a)(x+b)+(x-a)2,(x-y)3+(x-y)2+y4分别对变量x, y合并同类项 (collect 函数)
.49662797440907460178544085171994
x2 =
.67214622395756734146654770697884e-2
常微分方程组求解dsolve
微分或导数的输入时用Dy,D2y,D3y表示 dsolve(‘微分方程‘,’初始条件’,‘自变量’)
求定积分
2 0
x
sin 2
xdx
S=x*sin(x)^2;
int(S,0,pi/2)
ans=
-1/8*3^(1/2)+1/12*pi
级数求和 (symsum)
1 2n
前
n项和
n0
>> syms n k >> f=1/2^n >>r1=symsum(f,0,n-1) r1 =
=b的解 非线型方程组的符号求解
slove(‘eqn1’,eqn2’,…’eqnN’,var1,var2,…,varN’) 常微分方程的符号求解 dsolve(‘eqn1’,’condition’,’var’)
符号函数的极限(limit函数的用法)
求arctanx当x+∞和 x-∞的极限
A=sym(magic(3)) sigma=svd(A) digits(3) sig=svd(vpa(A))
符号表达式运算
基本运算函数 collect (S,v)合并同类项 expand(S) 将S展开 factor(x)因式分解 [N,D]=numden(A) 求分子N和分母D
29/5-1/5*721^(1/2) 29/5+1/5*721^(1/2) y=
9/10-1/10*721^(1/2) 9/10+1/10*721^(1/2)
z= 241/10-9/10*721^(1/2) 241/10+9/10*721^(1/2)
线性方程组求解
方法二 c=[1;2;3]; >> linsolve(A,c) ans =
4.1538 1.0769 -1.7692
能不能用solve?
非线性符号方程的求解
>> syms x1 x2 >> [x1,x2]=solve('x1-3*x2=sin(x1)','2*x1+x2=cos(x2)') x1 =
符号计算与符号微积 分
符号变量的定义
默认的自变量有x,x1,y,y1,z,v,u,t,theta,alpha
当表达式为cos(2*x*a^2),默认的自变量为x; 当表达式为cos(2*t*alpha),默认的自变量为t;
建立符号对象
建立符号对象的函数:sym和syms sym:建立单个符号量
符号函数的积分(int函数)
计算不定积分
2x 7 dx
>>syms x
4x2 12x 25
>>S=(2*x-7)/(4*x^2+12x+25)
>>int(S)
ans=
1/4*log(4*x^2+12*x+25)5/4*atan(1/2*x+3/4)
符号函数的积分(int函数)
,'y(0)=0','t')
符号函数的图形绘制
绘制函数 f (x, y) ex2y2 2(x2 y2 x y)
的等高线图(ezcontour) 例:ezc.m 绘制函数 f (x, y) 2 x2 y2在x, y [2,3] 时的等高线图和曲面图
x1 2x2 3x3 a x1 9x2 2x3 b 2x1 3x3 1
方法一:矩阵左除 >> A=[1 2 3;-1 9 2;2 0 3] >> syms a b >> b=[a;b;1] >> x=A\b x= 6/13*b+23/13-27/13*a 3/13*b+5/13-7/13*a -4/13*b-11/13+18/13*a
A=U*S*V
符号矩阵
例子:查看运行结果
syms a b c d A=[a c b d;d c b a ;b c a d]; v=diag(A) B=diag(v,0) c=diag(V,-2) rank(A)
符号矩阵
例子:查看运行结果 A=sym([1 0 2 4;0 2 4 5;1 4 5 3]); >> A=sym('[1 0 2 4+0;0 2 4 5;1 4 5 3]') A= [ 1, 0, 2, 4+0] [ 0, 2, 4, 5] [ 1, 4, 5, 3] >> rank(A) ans = 3 >> diag(A,3) ans = 4+0
符号表达式运算(例)
将符号常数243和符号表达式x5+y5及符号 矩阵 ax-ab x2-bx 因式分解 (factor函数)
(x-b)2 x2-b2
求e2x-2,(1-x)/(2+x)的反函数
sym x
finverse( exp(2*x)-2)
符号表达式的替换
用给定的数据替换符号表达式中的指定的符号 变量
矩阵转置(当为复数矩阵时有区别)
符号矩阵
运算函数(可用help 查看具体含义和使用方法)
det(A) 行列式 inv(A) 逆矩阵 rank(A) 秩 diag(A) 主对角元素 diag(A,k) 第k对角元素 [V,D]=eig(A) 特征值组成的列向量V和对角阵D sigma=svd(A) 计算奇异值向量 [U,S,V]=svd(A),奇异矩阵U和V包含奇异值D,有
(ezmeshc) ezmesh函数 曲面图
能用mesh实现么? ezm.m
展开式taylor函数
利用help命令,查看使用方法
练习
编写一个求函数lnx/x极限的函数文件,并 在命令窗口中调用,分别求x2和x+∞时 的极限
百度文库
>>syms x y a b >>f=(x+a)*(x+b)+(x-a)^2; >>f1=collect(f) %对f以默认变量x合并同类项 f1= 2*x^2+(-a+b)*x+a*b+a^2 >>f=(x-y)^3+(x-y)^2+y^4 f2=collect(f,y)
例如: >> a=sym('a');b=sym('b');c=sym('c');d=sym('d'); >> A=[a,b;c,d] A= [ a, b] [ c, d] >> det(A) ans = a*d-b*c
建立符号对象
syms,一次定义多个符号变量,例如:
>> syms a b c >> U=[a,b,c]; >> A=[[1,1,1];U;U.^2] A= [ 1, 1, 1] [ a, b, c] [ a^2, b^2, c^2] >> det(A) ans = b*c^2-c*b^2-a*c^2+a*b^2+a^2*c-a^2*b
>> [x,y]=dsolve('D2x+Dy+3*x=cos(2*t)','D2y4*Dx+3*y=sin(2*t)','t')
>> [x,y]=dsolve('D2x+Dy+3*x=cos(2*t)','D2y4*Dx+3*y=sin(2*t)','Dx(0)=1/5','x(0)=0','Dy(0)=6/5'...
符号函数的导数(diff 函数)
求 的一
ex( x 2x)
阶和三阶导数
>>syms x
>>S=exp(x)*( sqrt(x)+2^x);
>>diff(S)
>>diff(S,3)
求二元函数2xy/(x2+y2)的两个一阶偏 导和三个二阶偏导
>>S=2*x*y/(x^2+y^2); >> dfx=diff(S,’x’) >> dfy=diff(S,’y’) >> d2fx=diff(S,’x’,2) >> d2fxy=diff(dfx,’y’) >> d2fy=diff(S,’y’,2) >> d2fxy2=diff(dfy,’x’)
符号矩阵
运算符
+、-、*、.* \ 左除
AX=B A\B相当于求解矩阵方程AX=B的解
.\ 、 ./ 右除 /
XA=B B/A相当于求解矩阵方程XA=B的解
^
A^B A为方阵、B为整数 表示A*A*…*A (共B个)
.^
A.^B 对应分量进行幂运算
‘ .’
>> solve(x^3+2*a*x*y-3*b*y^2,y) ans = 1/6/b*(2*a+2*(a^2+3*b*x)^(1/2))*x 1/6/b*(2*a-2*(a^2+3*b*x)^(1/2))*x
求解多元高次方程组(solve)
>> [x y z]=solve(x-2*y-4,x^2-2*x*y+y-z,x^2-y*z+z) x=
-2*(1/2)^n+2
>>r1=symsum(f,0,n)
r1 = -2*(1/2)^(n+1)+2
求1+…+n?
符号方程求解(solve)
>> syms x y a b >> solve (x^4-3*a*x^2+4*b) ans = 1/2*(6*a+2*(9*a^2-16*b)^(1/2))^(1/2) -1/2*(6*a+2*(9*a^2-16*b)^(1/2))^(1/2) 1/2*(6*a-2*(9*a^2-16*b)^(1/2))^(1/2) -1/2*(6*a-2*(9*a^2-16*b)^(1/2))^(1/2)