30Mathematica基本代数运算l

上传人:jin****ng 文档编号:184702022 上传时间:2023-02-02 格式:DOCX 页数:12 大小:50.69KB
返回 下载 相关 举报
30Mathematica基本代数运算l_第1页
第1页 / 共12页
30Mathematica基本代数运算l_第2页
第2页 / 共12页
30Mathematica基本代数运算l_第3页
第3页 / 共12页
点击查看更多>>
资源描述
第三章 初等代数运算命令与例题3.1 多项式运算多项式是我们最熟悉的简单表达式,n次一元多项式的一般形式为:Pn(X)=a0+a严呀2+* nXn数学形式在Mathematica中,有关表达式的任何运算都可以应用到多项式中,特别,多项式的加 减乘除四则运算只要用Mathematica中的加减乘除号来连接两个多项式即可,如:Mathematica 输入形式(3+xA2)+(1-2*xA5) (3+xA2)-(1-2*xA5) (3+xA2)*(1-2*xA5) (3+xA2)/(1-2*xA5)多项式相加 (3+x2) + (1-2x5 ) 多项式相减 (3+x2) - (1-2x5 ) 多项式相乘 (3+x 2)(1-2x5 )多项式相除(3+X2) (1-2x5 )上述多项式的运算只有多项式的加减可以计算外,多项式的乘除实际上不进行真正的运 算,而只是以乘积或有理分式的形式表出,要想真正产生运算需用 Mathematica 提供的多 项式展开命令。Mathematica提供还提供了多项式因式分解,提取多项式幕次和系数等处理 多项式的一些函数,下面列举其中的常用函数及功能:Mathematica 函数形式1) Expand多项式2) Factor多项式3) Collect多项式声4) Simplify多项式5) Exponent多项式,x6) Coefficient多项式,form7) Part多项式,n8) Length多项式9) PolynomialQuotientp,q, x10) PolynomialRemainderp,q, x11) PolynomialGCDp,q, 12) PolynomialGCDp,q, 功能把多项式按升幕展开 对多项式进行因式分解把多项式按x的同次幕合并形式展开 把多项式写成项数最小的形式取出多项式中x的最高幕数取出多项式中form的系数取出多项式的第n项 给出多项式的项数 计算pq的商,这里p,q是关于x的多项式 计算pq的余式,这里p,q是关于x的多项式 求多项式p,q,的最大公因子 求多项式p,q,的最小公倍数注:函数中的多项式可以是多元多项式,通常可以把多项式存放在一个变量中 (用赋值语 句),这样该变量就代表存入的多项式,使处理多项式更简单。例题 例1.展开多项式(2+3x)4,并取出它的第3项。 解: Mathematica 命令为:In1:= p=Expand(2+3x)八4Out1= 16 + 96 x + 216 x 2 + 216 x 3 + 81 x 4In2:=Partp, 3Out2= 216 x 2例2.设多项式 q=(1+2x - y) 2,做1) 展开多项式 q2)按 y 的同次幂合并形式展开多项式 q3)取出多项式 q 中 y 和 xy 的系数解: Mathematica 命令为:In3:= q=Expand(1+2x - y)A2Out3= 1 + 4 x + 4 x 2 - 2 y - 4 x y + y 2In4:=Collect(1+2x-y)A2, y Out4= 1 + 4 x + 4 x 2 + (-2 - 4 x) y + y2In5:=Coefficientq, yOut5= -2 - 4 xIn6:=Coefficientq, x*yOut6= - 4例3.对多项式 120 - 46x - 19 x 2 + 4 x 3 +x 4进行因式分解。解: Mathematica 命令为:In7:=Factor120 - 46x - 19 xA2+ 4 xA3 +xA4Out7= (-3 + x) (-2 + x) (4 + x) (5 + x)例4.设多项式 p=1 - 4x - 19 x 2 + 4 x 3,q=1 - 3x ,1)计算p=q的商;2)计算p=q的余式解: Mathematica 命令为:In8:= p=1-4x T9xA2+4xA3; q=1-3x;In9:=PolynomialQuotientp, q, xOut9=89/27+ 53 x/9 - 4 x2/ 3In10:=PolynomialRemainderp, q, xOut10= -62/27例5.设多项式 p=120 - 46x - 19 x 2 + 4 x 3 +x 4,q=20x+9x2+x 31)求多项式 p,q 的最大公因子;2) 求多项式 p,q 的最小公倍数解: Mathematica 命令为:In11:= p=120 - 46x - 19 xA2+ 4 xA3 +xA4; q=20x+9xA2+xA3;In12:=PolynomialGCDp, qOut12=20+ 9 x + x 2In13:=PolynomialLCMp, qOut13= 120 x - 46 x2 - 19 x3 + 4 x 4 + x 53.2有理函数运算两个多项式相除构成有理函数,它的一般形式为:P(x)a xn + a xn-i + +a x + a=01n1Q(x) b xm + b xm1 + + b x + b01m 1m在Mathematica中提供了有理函数运算的一些函数,常用的函数有:Mathematica 函数形式1) Togetherexpr2) Apartexpr3) Cancelexpr4) Simplifyexpr5) Numerator有理函数6) Denominator有 理函数功能对 expr 进行通分把 expr 写成简单分式之和 对 expr 进行约分对 expr 进行化简取出有理函数的分子取出有理函数的分母注:函数中的 expr 是有理函数或有理函数之和,通常可以把有理函数存放在一个变量中(用赋值语句),这样该变量就代表存入的有理函数,使处理有理函数更简单。例题例6. 设有理函数之和为6 33t+3r (t )=-t 1 + t 1 + t21)对r(t)通分;2)取出r(t)的分子;3)取出r(t)的分母解: Mathematica 命令为:In14:= r=6/t-3/(1+t)- (3t+3)/(1+tA2);In 15:= s=Togetherr(*将通分得到的有理函数存放在变量s中Out15二t(1+t)(1+t2)In16:=NumeratorsOut16=6In17:=DenominatorsOut17=t (1 + t) (1 + t )2例7. 设有理函数为1 - x 29 + 21 x + 16 x 2 + 4 x 31)把q(x)写成简单分式之和;2)对qx进行约分;3)对q(x)进行化简解: Mathematica 命令为:In18:= q=(1-xA2) /(9+21x+16xA2+4xA3);In19:=ApartrOut 19=52(3 + 2 x )212(3 + 2 x)In20:=CancelqOut20二1 - x9 + 12 x + 4 x 2In21:=SimplifyqOut 21 二1 x(3 + 2 x )23.3 连续求和与连续求积运算在数学中,有时需要计算n个有规律的数相加或相乘,这就是数学中由符号工表示求和 运算和由符号表示的求积运算,即:na i a 1 + + ai = 1aii1上式中a i称为通项.Mathematica提供了这种快速求和和求积运算命令。3.3.1 连续求和命令连续求和命令的一般形式为Sum 通项, 求和范围 或NSum 通项, 求和范围 式中的范围与第一章的建表函数Table相同,具体形式有命令形式 1: Sumf(i) , i , imin, imax, h 功能: 计算和 f(imin)+f(imin +h)+f(imin +2h)+f(imin +nh)imax h imin + nh 0例如:计算和12+32+19 2,由连加的规律,知通项为i2Mathematica 命令:In22: = Sum iA2 , i , 1, 19,2Out22= 1330 命令形式 2: Sum f(i) , I,imin,imax 功能:计算和 f(imin) +f(imin +1)+f(imin +2)+f(imax)例如:计算201s=1k=3 (k2 -1)Mathematica 命令:In23: = s=Sum1/(kA2-1), k, 3,20Out23=103/280 命令形式 3: Sum f(i , j),i,imin,imax,j, jmin,jmax 功能:计算二重和式i mx(i, j)i=i min j=j min例如 :计算 (i - j )3 i=i j =1Mathematica 命令:In24: =Sum(i-j)八3, i, 1,20, j, 1,10 Out24= 149500注意:1) 在上述所有命令之前再加大写英文字母“ N ”,既将原来的“Sum ”改为“NSum”就得到 Mathematica的另外一组求和命令,这组命令总可以计算出和的(近似)结果,而前 者不有时得不出结果;2) NSum 命令可以求无穷级数的和;3) 可以用 Sum 命令自动生成有规律的多项式例题:例8. 计算k=1k=1 k 2解: Mathematica 命令为:In25: = s1=SumSink, k, 1 , 5Out25= Sin1 + Sin2 + Sin3 + Sin4 + Sin5 (*没有给出 s1 计算结果 In26: = s1=NSumSink, k, 1 , 5Out26= 0.176162(*给出si有六位有效数字的计算结果In27: = s2=NSum1/kA2 , k, 1, InfinityOut27= 1.64493例9.设sn (x) = 1 + 2 x + 3 x 2 + nxn用Sum命令生成S(x), s3(x), s6(x),并在同一个坐标系中画出S(x), s3(x), s6(x)在-1,1上的图形解: Mathematica 命令为:In28:= s1=Sum(k+1)*xAk, k, 0, 1Out28=1+2xIn29:=s3=Sum(k+1)*xAk, k, 0, 3Out29=1+2x+3x2+4x3In30:=s6=Sum(k+1)*xAk, k, 0, 6Out30=1+2x+3x2+4x3+5x4+6x5+7x6In31:=Plots1,s3,s6,x,-1,1Out31=-Graphics-3.3.2 连续求积命令 求积命令的一般形式为Product 通项, 求积范围 或NProduct 通项, 求积范围 式中的范围与求和命令 Sum 相同,具体形式有 命令形式 1: Product f(i) , i , imin, imax, h 功能:计算和 f(imin)xf(imin +h) xf(imin +2h) xxf(imin +nh)imax h imin + nh 0例如:计算和l2x32x -x19 2 ,由连乘的规律,知通项为i2Mathematica 命令:In32: = Product iA2 , i , 1, 19,2Out32= 428670l6l650355625 命令形式 2: Product f(i) , i , imin, imax 功能:计算和 f(imin) xf(imin +1) xf(imin +2) xxf(imax)例如:计算15k=2(k2 -1)Mathematica 命令:In33: = s=Product1/(kA2-1), k, 2,15Out33= 1/912006534786239692800000 命令形式 3: Product f(i , j), i, imin, imax, j , jmin, jmax 功能:计算二重和式inmax jnmaxf(i, j)i=i min j=j min注意:在上述所有命令之前再加大写英文字母“ N ”,既将原来的“Product ”改为 “NProduct ”就得到 Mathematica 的另外一组求积命令,这组命令总可以计算出乘积 的(近似)结果,而前者不有时得不出结果。例题: 例10. 计算4 s = n cos(k ) k=1解: Mathematica 命令为:In34: = s=ProductCosk, k, 1 , 4Out34= Cosl Cos2 Cos3 Cos4(*没有给出 s 计算结果In35: = s=NProductCosk, k, 1 ,4Out35= -0.145498(*给出s有六位有效数字的计算结果3.4方程求根在数学中,函数等于零的式子就称为方程。令一元函数f (x)等于零:f(x)= 0 (1)就称为一元函数方程,它是研究较多的方程。当f(x)不是x的线性函数,则称(1)为非线性方 程,特别,若f(x)是n次多项式,则称(1)为n次多项式方程或代数方程,否则称(1)为超越方程。 类似的有多元函数方程组:/1(x1 ,x2,,xn) = 0血(X1 洱,xn)= 0(2)人( ,x2,澤丿=0这里,厶(X ,x2,xn)是多元函数,有关多元函数方程组也有类似的概念。式(1)或中,使函数 /(X)取0值的点称为方程(1)或的根或函数的零点。实际问题中,经常遇到需要求方程根的 问题, Mathematica 提供了一些命令可以方便地解决这些求根问题。3.4.1 求多项式方程的根n 次多项式方程的一般形式为:a0+aix+ ax2+a nxn = 0式中 a0,a1,a2,.,a n 为常数。理论上已证明,n次多项式方程有n个根,且对于次数n4的多项式方程,它的根可以 用公式表示,而次数大于 5 的多项式方程,它的根一般不能用解析表达式表示。因此,在 Mathematica中,对于次数n4的多项式方程,就不一定能求出所有根的准确形式,但可以求出所有的根近似形式。求多项式方程的根的一般形式为Solve 方程或方程组, 变量或变量表 或NSolve 方程或方程组, 变量或变量表 具体形式有命令形式 1: Solveeqn, x功能:求多项式方程eqn的所有根,当多项式方程的次数n4 时,不一定能求出所有的根, 此时,命令输出形式为ToRulesRootseqn, x 命令形式 2: Solveeqn1, eqn2,eqnk, xl, x2,xk功能:求多项式方程组eqnl, eqn2,eqnk的所有根,当其中每个多项式方程的次数 n 1 - 2 I, x - 1 + 2 I, x - 2所以,所求全部根为x1=1-2I,x2=1+2I,x3=2, I为虚数单位。例12.求方程x2-ax - 4b=0的所有根,a, b为常数。 解: Mathematica 命令为:In37: = SolvexA2-a*x-4*b=0 , xa - Sqrta2 +16ba + Sqrta2 + 6bOut37= x - , x - 22所求全部根为a - Sqrta2 +16bx1= 2a + Sqrta2 + 6bx2 = 2例13. 求方程组x+3y=0x2+y2=1的所有根。解: Mathematica 命令为:In38: = Solvex+3y=0,xA2+yA2=1, x, yOut38=-3131x - , y - , x - , y - - ()Sqrt10 Sqrt10 Sqrt10 Sqrt10 所求全部根为-3131x1= , y1= , x2= , y2= - ()Sqrt10 Sqrt10 Sqrt10 Sqrt10例14. 求方程 x6 -x2 +2x - 3 = 0 的所有根。解: Mathematica 命令为:In39: = SolvexA6-xA2+2x-3=0 , xOut39= ToRulesRoots2 x -X2 + x6 = = 3, x(*说明求不出准确根,改用 NSolve 命令In40: = NSolvexA6-xA2+2x-3=0 , xOut40= x - -1.40825, x - -0.465869 - 1.19413 I, x - -0.465869 + 1.19413 I,x - 0.608047 - 0.885411 I, x - 0.608047 + 0.885411 I, x - 1.12389 得所求全部6 个近似根为x1=-1.40825, x2=-0.465869- 1.19413 I, x3=-0.465869 + 1.19413 I,x4= 0.608047 - 0.885411 I, x5= 0.608047 + 0.885411 I, x6= 1.12389 , I 为虚数单位。例15. 求方程组a1+a2=1x1 a1+x2a2=1/4x12a1+x22 a2=1/9x13a1+x23 a2=1/16的所有根,这里 x1 ,x2,a1,a2 是变量。解: Mathematica 命令为:In41:=Solvea1+a2=1,x1*a1+x2*a2=1/4,x1A2*a1+x2A2*a2=1/9, x1A3*a1+x2A3*a2=1/16, a1,a2,x1,x2212 - 9 Sqrt106212 + 9 Sqrt106Out41= a1 - , a2 - ,42442415 - Sqrt106180 + 12 Sqrt106x2 - , x1 - ,42504212 + 9 Sqrt106212 - 9 Sqrt106a1 - , a2 - ,42442415 + Sqrt106 180 - 12 Sqrt106x2 - , x1 - 42 504In42: = N%(*显示根的近似形式Out42=a1 - 0.281461, a2 - 0.718539, x2 - 0.112009, x1 - 0.602277,a1 - 0.718539, a2 - 0.281461, x2 - 0.602277, x1 - 0.112009 In43: = N%, 8(*显示根取8 位有效数字的近似值Out43= a1 - 0.28146068, a2 - 0.71853932, x2 - 0.11200881, x1 - 0.60227691, a1 - 0.71853932, a2 - 0.28146068, x2 - 0.60227691, x1 - 0.112008813.4.2 求超越方程的根超越方程是除了多项式方程的之外的函数方程,它通常不容易求出全部根和准确根, 而是采用数值方法去求近似根,对方程组情况可能连近似根也求不出,因为,非线性方程组 的求解还有很多问题没有解决。在Mathematica中,求超越方程的根的一般形式为FindRoot 方程或方程组, 变量或变量表, 初值 具体形式有 命令形式 1: FindRooteqn, x, x0功能:求方程eqn的在初值x0附近的一个近似根。 命令形式 2: FindRooteqn1,eqn2, . , x, x0, y, y0, . 功能:求方程组eqnl, eqn2,在初值(xO,yO,)附近的一个近似根。注意:如果要求某一个超越方程的实根,可以先用绘图命令确定根的大致范围以确定命令中 的初值选取。对方程组求根命令,如果初值选取的不合适,会出现求不出根的情况,此时会 出现红色文字提示说明。例题例16. 求方程组x= y2y=cos x在(1,2)附近的根解: Mathematica 命令为:In44: = FindRootx= yA2, y=Cosx, x,1,y,2Out44= x - 0.641714, y - 0.801071所求的根为x= 0.641714, y = 0.801071。例17.求方程x sin x = 1在0,5内的所有根。解: Mathematica 命令为:In45: =Plotx*Sinx - 1 , x, 0, 5(*画出方程对应的函数在0,5内的图形*图中可知方程在 1 和 3 附近有根(*方程在 1 附近的根*方程在 3 附近的根Out45= -Graphics-In46: = FindRootx*Sinx - 1 =0, x, 1Out46= x - 1.11416In47: = FindRootx*Sinx - 1 =0, x, 3Out47= x - 2.7726所求根为 x1 = 1.11416 , x2= 2.7726。数学实验:用二分法求方程sinx-ln(x+0.1)=0在1附近的近似值根,误差e =10 - 4。若减小误差 e,观察二分次数与误差e的关系。提示:令函数f(x)=sinx-ln(x+0.1),取含根区间为0,6,用Mathematica画图命令可以看 到函数f(x)在区间0,6内只有一个零点,然后将含根区间逐步对分,并由函数值在对分点 的符号确定对分后的含根区间及观察每次对分后所得根的近似值变化。给出如下程序作为参 考:fx_:=Sinx-Logx+0.1; a=0; b=6; k=0;IfNfa*fb10A-4,c=(a+b)/2; k=k+1;PrintRoot=,c, iterate time =,k;IfNfa*fc0, b=c, a=c ;PrintRoot=,(a+b)/2,PrintNo Root
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑环境 > 机械电气


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!