MATLAB符号数学基础.docx
- 文档编号:30458498
- 上传时间:2023-08-15
- 格式:DOCX
- 页数:28
- 大小:52.98KB
MATLAB符号数学基础.docx
《MATLAB符号数学基础.docx》由会员分享,可在线阅读,更多相关《MATLAB符号数学基础.docx(28页珍藏版)》请在冰豆网上搜索。
MATLAB符号数学基础
符号数学基础
FoundationofSymbolicMathematics
一.符号对象的创建(Creatingasymbolicobject)
1.创建符号变量和表达式(Creatingasymbolicvariableandexpression)
创建符号变量和表达式的两个基本函数:
sym,syms
*x=sym(‘x’)创建一个符号变量x,可以是字符、字符串、表达式或字符表达式。
*syms用于方便地一次创建多个符号变量,调用格式为:
symsabcd.书写简洁意义清楚,建议使用。
例1:
使用sym函数创建符号变量.
a=sym(‘a’)
b=sym(‘hello’)
c=sym((‘(1+sqrt(5))/2’)
y=sym(‘x^3+5*x^2+12*x+20’)
a=
a
b=
hello
C=
(1+sqrt(5))/2
Y=
x^3+5*x^2+12*x+20
例2:
用syms函数创建符号变量。
symsabcd
2.创建符号矩阵(SymbolicmatrixCreating)
例1:
创建一个循环矩阵。
symsabcd
n=[abcd;bcda;cdab;dabc]
n=
[a,b,c,d]
[b,c,d,a]
[c,d,a,b]
[d,a,b,c]
例2:
将3阶Hilbert矩阵转换为符号矩阵。
h=hilb(3)
h1=sym(h)
h=
1.00000.50000.3333
0.50000.33330.2500
0.33330.25000.2000
h1=
[1,1/2,1/3]
[1/2,1/3,1/4]
[1/3,1/4,1/5]
注意符号矩阵于数值矩阵的区别。
3.默认符号变量(Impliedsymbolicvariable)
在MATLAB的符号数学工具箱中,以最接近x的顺序排列默认自变量的顺序,可利用findsym函数对默认自变量进行查询。
例1:
求符号函数在不同自变量情况下的结果。
创建符号变量x和n,建立函数f=xn,然后分别求f对x和f对n的导数.
symsxn
f=x^n
diff(f)%x作为自变量,求f对x的导数
diff(f,n)%n作为自变量,求f对n的导数
f=
x^n
ans=
x^n*n/x
ans=
x^n*log(x)
例2:
查询符号函数中的默认自变量。
创建符号变量a,b,n,x和t,建立函数f=axn+bt,然后求f的默认自变量。
symsabntx
f=a*x^n+b*t
findsym(f,1)
findsym(f,2)
findsym(f,5)%f表达式中按最接近x顺序排列的5个默认自变量
findsym(f)%f表达式中按最接近字母顺序排列的全部自变量
f=
a*x^n+b*t
ans=
x
ans=
x,t
ans=
x,t,n,b,a
ans=
a,b,n,t,x
>>
二.符号表达式的化简和替换(simplifyingandreplacingofSymbolicxpressions)
符号数学工具箱提供的符号表达式的因式分解、展开、合并、化简、通分等操作:
1.符号表达式的化简(Simplifyingofsymbolicexpression)
(1).因式分解(Factorization)
符号表达式的因式分解函数为factor(S),可分解符号表达式S的各个元素。
例1:
对表达式f=x9-1进行因式分解。
symsx
f=factor(x^9-1)
pretty(f)
f=
(x-1)*(x^2+x+1)*(x^6+x^3+1)
263
(x-1)(x+x+1)(x+x+1)
例2:
对大整数12345678901234567890进行因式分解。
factor(sym(‘12345678901234567890’))
ans=
(2)*(3)^2*(5)*(101)*(3803)*(3607)*(27961)*(3541)
(2)符号表达式的展开(Expandingofsymbolicexpressions)
符号表达式的展开函数为expand(S),此函数因数展开符号表达式S.
例:
展开表达式f=(x+1)5和f=sin(x+y)
symsxy
f=(x+1)^5;
expand(f)
f=sin(x+y);
expand(f)
ans=
x^5+5*x^4+10*x^3+10*x^2+5*x+1
ans=
sin(x)*cos(y)+cos(x)*sin(y)
(3).符号表达式的同类项合并(Similarteammergingforsymbolicexpression)
符号表达式的同类项合并函数为collect(S,n),此函数将符号表达式中自变量的同次幂项的系数合并。
例:
对于表达式f=x(x(x-6)+12)t,分别将自变量x和t的同类项合并。
symsxt
f=x*(x*(x-6)+12)*t;
collect(f)
collect(f,t)
ans=
t*x^3-6*t*x^2+12*t*x
ans=
x*(x*(x-6)+12)*t
COLLECTCollectcoefficients.
COLLECT(S,v)regardseachelementofthesymbolicmatrixSasa
polynomialinvandrewritesSintermsofthepowersofv.
COLLECT(S)usesthedefaultvariabledeterminedbyFINDSYM.
(4).符号表达式的化简(Simplifyingofsymbolicexpression)
符号表达式的两个化简函数:
simplify,simple,
simplify:
化简函数,可用于化简各种表达式
例1:
对表达式f=sin2(x)+cos2(x)进行化简.
symsx
f=sin(x)^2+cos(x)^2;
simplify(f)
ans=
1
[r,how]=simple(S)函数可寻找符号表达式S的最简型,r为返回的简化形式,how为化简过程中使用的主要方法,simple函数综合使用了下列化简方法:
*simplify函数对表达式进行化简
*radsimp函数对含根式(surd)的表达式进行化简
*combine函数对表达式中以求和、乘积、幂运算等形式出现的项进行合并
*collect合并同类项
*factor函数实现因式分解
*convert函数完成表达式形式的转换
例2:
最简表达式的获得。
symsxt
f=cos(x)^2-sin(x)^2;
[r,how]=simple(f)
r=
cos(2*x)
how=
combine
(5)符号表达式的分式通分(Reductionsymbolicexpressiontocommondenominator)
符号表达式的分式通分函数为[n,d]=numden(S),此函数将符号表达式转换为分子(Numerator)和分母(denominator)都是正系数的最佳多项式。
例:
对表达式f=x/y+y/x进行通分。
symsxy
f=x/y+y/x;
[n,d]=numden(f)
n=
x^2+y^2
d=
y*x
NUMDENNumeratoranddenominatorofasymbolicexpression.
[N,D]=NUMDEN(A)convertseachelementofAtoarationalformwherethenumeratoranddenominatorarerelativelyprimepolynomialswithintegercoefficients.
(6)符号表达式的嵌套形式重写(Representationofnestedsymbolicexpression)
符号表达式的嵌套形式重写函数为horner(S),此函数将符号表达式转换为嵌套形式。
例:
对表达式f=x3+6x2+11x-6进行嵌套形式重写。
symsx
f=x^3+6*x^2+11*x-6;
horner(f)
ans=
-6+(11+(6+x)*x)*x
HORNERHornerpolynomialrepresentation.
HORNER(P)transformsthesymbolicpolynomialPintoitsHorner,
ornested,representation.
2.符号表达式的替换(Replacingofsymbolicexpression)
MATLAB的符号数学工具箱提供了两个符号表达式的替换函数subexpr和subs,可通过符号替换使表达式的输出形式简化。
subexpr函数可将表达式中重复出现的字符串用变量代替。
调用格式:
[Y,SIGMA]=subexpr(S,SIGMA):
用变量SIGMA的值代替符号表达式S中重复出现的字符串,Y返回替换后的结果。
例:
求解并化简三次方程x3+ax+1=0的符号解。
t=solve(‘x^3+a*x+1=0’)
[r,s]=subexpr(t,’s’)
t=[1/6*(-108+12*(12*a^3+81)^(1/2))^(1/3)-2*a/(-108+12*(12*a^3+81)^(1/2))^(1/3)]
[-1/12*(-108+12*(12*a^3+81)^(1/2))^(1/3)+a/(-108+12*(12*a^3+81)^(1/2))^(1/3)+1/2*i*3^(1/2)*(1/6*(-108+12*(12*a^3+81)^(1/2))^(1/3)+2*a/(-108+12*(12*a^3+81)^(1/2))^(1/3))]
[-1/12*(-108+12*(12*a^3+81)^(1/2))^(1/3)+a/(-108+12*(12*a^3+81)^(1/2))^(1/3)-1/2*i*3^(1/2)*(1/6*(-108+12*(12*a^3+81)^(1/2))^(1/3)+2*a/(-108+12*(12*a^3+81)^(1/2))^(1/3))]
r=
[1/6*s^(1/3)-2*a/s^(1/3)]
[-1/12*s^(1/3)+a/s^(1/3)+1/2*i*3^(1/2)*(1/6*s^(1/3)+2*a/s^(1/3))]
[-1/12*s^(1/3)+a/s^(1/3)-1/2*i*3^(1/2)*(1/6*s^(1/3)+2*a/s^(1/3))]
s=
-108+12*(12*a^3+81)^(1/2)
函数subs是用指定符号替换符号表达式中的某一特定符号,调用格式为:
R=subs(S,old,new),它可用新的符号变量new替换原来符号表达式S中的old.当new为数值形式时,显示的结果虽然是数值,但它事实上是符号变量。
例:
分别用新变量替换表达式a+b和cos(a)+sin(b)中变量。
symsab
subs(a+b,a,4)
subs(cos(a)+sin(b),{a,b},{sym('alpha'),2})%用单元数组完成不同性质
%元素的替换
ans=
4+b
ans=
cos(alpha)+sin
(2)
三.符号微积分(Differentialandintegralcalculus)
1.符号极限(Symboliclimit)
*limit(F,x,a)计算符号表达式F在x→a条件下的极限;
*limit(F,a)计算符号表达式F中由默认自变量趋向于a条件下的极限;
*limit(F,)计算符号表达式F在默认自变量趋向于0条件下的极限;
*limit(F,x,a,‘right’)和limit(F,x,a,’left’)计算符号表达式F在x→a条件下的右极限和左极限。
例:
分别计算表达式
及
和
symsxa;
limit(sin(x)/x)
limit(1/x,x,0,’right’)
limit(1/x,x,0,’left’)
v=[(1+a/x)^x,exp(-x)];
limit(v,x,inf,’left’)
ans=
1
ans=
inf
ans=
-inf
ans=
[exp(a),0]
2.符号微分(symbolicdifferentialcalculus)
*diff(S)求符号表达式S对于默认自变量的微分;
*diff(S,v)求符号表达式S对于自变量v的微分;
*diff(S,n)求符号表达式S对于默认自变量的n次微分;
例:
分别计算表达式f=xx的导数和3次导数.
symsx;
f=x^x;
diff(f)
diff(f,3)
ans=
x^x*(log(x)+1)
ans=
x^x*(log(x)+1)^3+3*x^x*(log(x)+1)/x-x^x/x^2
3.符号积分(Symbolicintegralcalculus)
*int(S)求符号表达式S对于默认自变量的不定积分;
*int(S,v)求符号表达式S对于自变量v的不定积分;
*int(S,a,b)求符号表达式S对于默认自变量从a到b的定积分;
例:
分别计算表达式
、
、
和
。
symsxz;
f=-2*x/(1+x^2)^2;
int(f)
f=x/(1+z^2);
int(f)
int(f,z)
f=x*log(1+x);
int(f,0,1)
ans=
1/(1+x^2)
ans=
1/2*x^2/(1+z^2)
ans=
x*atan(z)
ans=
1/4
4.符号求和(Symbolicsummation)
*symsum(S)求符号表达式S对于默认自变量的不定和;
*symsum(S,v)求符号表达式S对于自变量v的不定和;
*symsum(S,a,b)求符号表达式S对于默认自变量从a到b的有限和;
例:
分别计算表达式∑k,
和
symskx
symsum(k)
symsum(k^2,0,10)
symsum(x^k/sym(‘k!
’),k,0,inf)
ans=
1/2*k^2-1/2*k
ans=
385
ans=
exp(x)
5.Taylor级数展开(Taylorseriesexpanding)
*Taylor(f)计算符号表达式f对于默认自变量等于0处的5阶taylor级数展开式;
*taylor(f,n,v)计算符号表达式f在自变量v=0处的n-1阶Taylor级数展开式;
*taylor(f,n,v,a)计算符号表达式f在自变量v=a处的n-1阶Taylor级数展开式。
例:
分别计算表达式
的5阶Taylor级数展开式和f=exsin(x)的
5阶及12阶Taylor级数展开式。
symsx
f=1/(5+cos(x));
r=taylor(f)
f=exp(x*sin(x));
r=taylor(f,12)
r=taylor(f)
r=
1/6+1/72*x^2
r=
1+x^2+1/3*x^4+1/120*x^6-11/560*x^8-1079/362880*x^10
r=
1+x^2+1/3*x^4
四.符号方程的求解(Symbolicequationsolution)
1.符号代数方程组的求解(symbolicalgebraequationssetsolution)
*g=solve(eq)求解符号表达式eq=0的代数方程,自变量为默认自变量;
*g=solve(eq,var)求解符号表达式eq=0的代数方程,自变量为var;
*g=solve(eq1,eq2,…,eqn,var1,var2,…,varn))求解符号表达式eq1,eq2,…eqn组成的代数方程组,自变量分别为var1,var2,…varn。
例1:
分别求解代数方程ax2+bx+c=0和cos(2x)+sin(x)=1
symsabcx
s=a*x^2+b*x+c;
solve(s)
solve('cos(2*x)+sin(x)=1')
ans=
[1/2/a*(-b+(b^2-4*a*c)^(1/2))]
[1/2/a*(-b-(b^2-4*a*c)^(1/2))]
ans=[0]
[pi]
[1/6*pi]
[5/6*pi]
例2:
求解代数方程组x2-y2+z=10,x+y-5z=0,2x=4y+z=0
symsxyz
f=x^2-y^2+z-10;
g=x+y-5*z;
h=2*x-4*y+z;
[x,y,z]=solve(f,g,h)%以数值数组形式输出求解结果
S=solve(f,g,h);%缺省情况将方程组的解存放在结构变量中
[S.x,S.y,S.z]
x=
[-19/80+19/240*2409^(1/2)]
[-19/80-19/240*2409^(1/2)]
y=
[-11/80+11/240*2409^(1/2)]
[-11/80-11/240*2409^(1/2)]
z=
[-3/40+1/40*2409^(1/2)]
[-3/40-1/40*2409^(1/2)]
ans=
[-19/80+19/240*2409^(1/2),-11/80+11/240*2409^(1/2),-3/40+1/40*2409^(1/2)]
[-19/80-19/240*2409^(1/2),-11/80-11/240*2409^(1/2),-3/40-1/40*2409^(1/2)]
SOLVESymbolicsolutionofalgebraicequations.
SOLVE('eqn1','eqn2',...,'eqnN')
SOLVE('eqn1','eqn2',...,'eqnN','var1,var2,...,varN')
SOLVE('eqn1','eqn2',...,'eqnN','var1','var2',...'varN')
Theeqnsaresymbolicexpressionsorstringsspecifyingequations.The
varsaresymbolicvariablesorstringsspecifyingtheunknownvariables.
SOLVEseekszerosoftheexpressionsorsolutionsoftheequations.Ifnotspecified,theunknownsinthesystemaredeterminedbyFINDSYM.
Ifnoanalyticalsolutionisfoundandthenumberofequationsequalsthenumberofdependentvariables,anumericsolutionisattempted.
Threedifferenttypesofoutputarepossible.Foroneequationandone
output,theresultingsolutionisreturned,withmultiplesolutionstoanonlinearequationinasymbolicvector.Forseveralequationsandanequalnumberofoutputs,theresultsaresortedinlexicographicorderandassignedtotheoutputs.Forseveralequationsandasingleoutput,astructurecontainingthesolutionsisreturned.
Examples:
solve('p*sin(x)=r')chooses'x'astheunknownandreturns
ans=
asin(r/p)
[x,y]=solve('x^2+x*y+y=3','x^2-4*x+3=0')returns
x=
[1]
[3]
y=
[1]
[-3/2]
S=solve('x^2*y^2-2*x-1=0','x^2-y^2-1=0')returns
thesolutionsinastructure.
S=
x:
[8x1sym]
y:
[8x1sym]
[u,v]=solve('a*u^2+v^2=0','u-v=1')regards'a'asa
parameterandsolvesthetwoequationsforuandv.
S=solve('a*u^2+v^2','u-v=1','a,u')regards'v'asa
parameter,solvesthetwoequations,andreturnsS.aandS.u.
[a,u,v]=solve('a*u^2+v^2','u-v=1','a^2-5*a+6')solves
thethreeequationsfora,uandv.
a=
[2]
[2]
[3]
[3]
u=
[1/3+1/3*i*2^(1/2)]
[1/3-1/3*i*2^(1/2)]
[1/4+1/4*i*3^(1/2)]
[1/4-1/4*i*3^(1/2)]
v=
[-2/3+1/3*i*2^(1/2)]
[-2/3-1/3*i*2^(1/2)]
[-3/4+1/4*i*3^(1/2)]
[-3/4-1/4*i*3^(1/2)]
FSOLVESolves
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 符号 数学 基础