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