您好,欢迎访问三七文档
当前位置:首页 > 中学教育 > 初中教育 > 第三章Maple代数
-71-第三章线性代数教学目的:学习并掌握计算机代数系统Maple下进行多项式的各种运算,包括合并、分解因式、排序等,学习并掌握行列式、矩阵的各种符号计算,包括特征矩阵、特征值、特征向量等,学习并掌握线性方程组求解的符号计算方法,了解线性空间的有关内容。教学目标:掌握多项式、行列式、矩阵的各种运算,求解线性方程组。重点内容:多项式、行列式、矩阵的各种运算,线性方程组求解。难点内容:多项式的符号计算,矩阵的运算。-72-1多项式多项式是代数学中最基本的对象之一,它不但与高次方程的讨论有关,而且是进一步学习代数以及其它数学分支的基础.1.1多项式生成及类型测试在Maple中,多项式由名称、整数和其他Maple值,通过+、-、*和^等组合而成.例如:p1:=5*x^5+3*x^3+x+168;:=p15x53x3x168这是一个整系数单变量多项式.多元多项式和定义在其他数域上的多项式可以类似构造:p2:=3*x*y^2*z^3+2*sqrt(-1)*x^2*y*z+2002;:=p23xy2z32Ix2yz2002由此可以看出,Maple中多项式的生成与“赋值”命令相似.另外,还可以通过函数randpoly生成随机多项式,生成一个关于vars的随机多项式的格式如下:randpoly(vars,opts);其中,vars表示变量或者变量列表或集合,opts为可选项方程或者指定属性的名称.如:randpoly(x);#随机生成关于x的5次(默认)多项式42x588x476x365x225x28randpoly([x,y],terms=8);#随机生成关于[x,y]二元8项多项式78xy62x311x2y88x3yxy330y481x4y5x2y3randpoly([x,sin(x),cos(x)]);73()sinx()cosx91()sinx()cosx2x3()cosx5x4()sinx86x2()cosx343()sinx4()cosx而要随机生成关于[x,y,z]的密集的、均匀的、度为2的多项式的命令为:randpoly([x,y,z],dense,homogeneous,degree=2);85x255zx37yx35z297yz50y2用type命令可以测试多项式的类型:type(p1,polynom(integer,x));#测试p1是否是一个关于x的整系数多项式true-73-type(p2,polynom(complex,{x,y,z}));#测试p2是否是一个关于{x,y,z}的复系数多项式true1.2提取多项式系数coeff函数用来提取一元多项式的系数,而多元多项式所有系数的提取用命令coeffs,指定系数的提取用命令coftayl.(1)提取多项式p中x^n的系数使用命令:coeff(p,x^n);或coeff(p,x,n);(2)提取多项式p中变量x的所有系数并将相应的x幂存于变量t中:coeffs(p,x,’t’);(3)返回expr在x=a处的Taylor展式中(x-a)^k的系数:coeftayl(expr,x=a,k);p:=2*x^2+3*y^3*x-5*x+68;:=p2x23y3x5x68coeff(p,x);3y35coeff(x^4-5*x^2-sin(a)*(x+1)^2,x^2);5()sinas:=3*x^2*y^2+5*x*y;:=s3x2y25xycoeffs(s);,53coeffs(s,x,'t');,5y3y2t;,xx2coeftayl(exp(x),x=0,10);13628800p:=3*(x+1)^3+sin(Pi/3)*x^2*y+x*y^3+x-6;:=p3()x13123x2yxy3x6coeftayl(p,x=-1,1);13yy3-74-coeftayl(p,[x,y]=[0,0],[1,0]);10返回默认为降序排列的多元多项式的首项和末项系数分别使用命令lcoeff、tcoeff:lcoeff(p,x);3tcoeff(p,x);-31.3多项式的约数和根1.3.1多项式的最大公约因式(gcd)/最小公倍因式(lcm)求多项式的最大公约因式/最小公倍因式的命令与求两个整数最大公约数/最小公倍数命令一样,都是gcd/lcm.命令格式分别为:gcd(p1,p2,'t','s');lcm(p1,p2,'t','s');其中,第3个参数t赋值为余因子p1/gcd(p1,p2),第4个参数s赋值为余因子p2/gcd(p1,p2).p1:=x^4+x^3+2*x^2+x+1;:=p1x4x32x2x1p2:=x^2+x+1;:=p2x2x1gcd(p1,p2,'t','s');x2x1t,s;,x211lcm(p1,p2);()x21()x2x11.3.2多项式的平方根(psqrt)和第n次方根(proot)求多项式p的平方根,若不是完全平方,则返回_NOSQRT:psqrt(p);求多项式p的n次方根,若不是完全n次方,则返回_NOROOT:proot(p,n);p:=x^4+4*x^3+6*x^2+4*x+1;:=px44x36x24x1psqrt(p);-75-x22x1proot(p,4);x1proot(p,8);_NOROOT1.3.3多项式相除的余式(rem)/商式(quo)计算p1除以p2的余式,将商式赋值给q的命令格式为:rem(p1,p2,x,'q');计算p1除以p2的商式,将余式赋值给r的命令格式为:quo(p1,p2,x,'r');余式和商式满足:p1=p2*q+r,其中degree(r,x)degree(p2,x)rem(x^5+x^3+x,x+1,x,'q');-3q;x4x32x22x3quo(x^3+x^2+x+1,x-1,x,'r');x22x3r;41.4多项式转换及整理1.4.1将多项式转换成Horner形式将多项式poly转换成关于变量var的Horner形式或者嵌套形式的命令格式如下:convert(poly,horner,var);convert(x^5+x^4+x^3+x^2+x+1,horner,x);1()1()1()1()x1xxxxconvert(x^3*y^3+x^2*y^2+x*y+1,horner,[x,y]);1()y()y2y3xxx1.4.2将级数转换成多项式形式将级数(series)转换成多项式(polynom)事实上就是忽略函数的级数展开式中的余项,这在科学计算方面会带来很大的好处.其命令格式为:convert(series,polynom);s:=series(sin(x),x,10);:=sx16x31120x515040x71362880x9()Ox10-76-type(s,polynom);falsep:=convert(s,polynom);:=px16x31120x515040x71362880x9type(p,polynom);true1.4.3将级数转换成有理多项式(有理函数)将级数series(laurent级数或Chebyshev类型级数)转换成有理多项式(有理函数)ratpoly的命令格式为:convert(series,ratpoly);series(exp(x^2),x,15);1x212x416x6124x81120x101720x1215040x14()Ox15convert(%,ratpoly);1120x6110x412x211120x6110x412x211.4.4合并多项式系数(合并同类项)将多项式具有相同次幂的项的系数合并在一起(包括正的、负的或者分数次幂),即合并同类项(称为多项式的典范形式),用命令collect:collect(p,x);collect(p,x,form,func);collect(p,x,func);其中x是表示单变量x或多变量x1,x2,…,xn的一个列表或集合.collect(a*ln(x)-ln(x)*x-x,ln(x));()ax()lnxxcollect(x*(x+1)+y*(x+1),x);;x2()1yxycollect(x*(x+1)+y*(x+1),y);x()x1y()x1p:=x*y+a*x*y+y*x^2-a*y*x^2+x+a*x:collect(p,[x,y],recursive);()1ayx2()()1ay1ax-77-collect(p,[y,x],recursive);()()1ax2()1axy()1axcollect(p,{x,y},distributed);()1ax()1axy()1ayx2其中的参数recureive为递归式的,而distributed为分布式的.1.4.5将多项式(或者值的列表)排序将多项式(或者值的列表)按升(或降)序次方排序时作命令sort.命令格式:sort(L);sort(L,F);sort(A);sort(A,V);其中,L—表示要排序的列表;F(可选项)—带两个参数的布尔函数;A—代数表达式;V(可选项)—变量sort函数将列表L按升序次方,将代数表达式A中的多项式按降序次方排列.如果给定了F,它将用来定义一个排序的列表.如果F是符号“”或者数值,那么L是一个列表类型,按数值型降序排列;如果F是符号“”,L按数值型升序排列;如果F是一个词典编纂的符号,那么字符串和符号列表将按词典编纂的次序排列.另外,F必须是一个有两个参数的布尔函数.在Maple中,多项式并不自动按排序次序存储而是按建立的次序存储.值得注意的是,sort函数对多项式的排序是破坏性的操作,因为输入的多项式将会按排序后的次序存储.用来对列表排序的算法是一种带早期排序序列监测的合并排序的递归算法,而用于对多项式排序的算法是一个原位替换排序.sort([3,2,1,5,4]);[],,,,12345sort(x^3+x^2+1+x^5,x);x5x3x21sort((y+x)^2/(y-x)^3*(y+2*x),x);()xy2()2xy()xy31.4.6多项式的因式分解一般情况下,计算带有整数、有理数、复数或代数数系数的多项式的因式分解使用命令factor,命令格式为:factor(expr,K);-78-其中,expr为多项式,K为因式分解所在的区域factor(x^3+y^3);()xy()x2xyy2factor(t^6-1,(-3)^(1/2));116()2t1-3()2t1-3()2t1-3()2t1-3()t1()t1factor(x^3+5,{5^(1/3),(-3)^(1/2)});14()2x5()/13-35()/13()2x5()/13-35()/13()x5()/13但是factor不分解整数,也不分解多项式中的整数系数,整数或整数系数的分解使用函数ifactor:ifactor(2
本文标题:第三章Maple代数
链接地址:https://www.777doc.com/doc-2212130 .html