300 likes | 446 Views
初等代数运算命令与例题. 数学 CAI 授课课件. 1 多项式运算. 多项式是我们最熟悉的简单表达式, n 次一元多项式的一般形式为 : Pn(x) =a 0 +a1x+ a2x 2 +…+a nx n 在 Mathematica 中 , 有关表达式的任何运算都可以应用到多项式中,特别,多项式的加减乘除四则运算只要用 Mathematica 中的加减乘除号来连接两个多项式即可 , 如 : 数学形式 Mathematica 输入形式 多项式相加 (3+x 2) + (1-2x5 ) (3+x^2)+(1-2*x^5)
E N D
初等代数运算命令与例题 数学CAI授课课件
1多项式运算 • 多项式是我们最熟悉的简单表达式,n 次一元多项式的一般形式为: Pn(x) =a 0 +a1x+ a2x 2 +…+a nx n • 在Mathematica 中, 有关表达式的任何运算都可以应用到多项式中,特别,多项式的加减乘除四则运算只要用Mathematica 中的加减乘除号来连接两个多项式即可, 如: 数学形式Mathematica 输入形式 多项式相加 (3+x 2) + (1-2x5 ) (3+x^2)+(1-2*x^5) 多项式相减 (3+x 2) - (1-2x5 ) (3+x^2)-(1-2*x^5) 多项式相乘 (3+x 2)(1-2x5 ) (3+x^2)*(1-2*x^5) 多项式相除 (3+x 2) ÷ (1-2x5 ) (3+x^2)/(1-2*x^5)
下面列举其中的常用函数及功能: Mathematica 函数形式 功能 1) Expand[多项式] 把多项式按升幂展开 2) Factor[多项式] 对多项式进行因式分解 3) Collect[多项式,x] 把多项式按x的同次幂合并形式展开 4) Simplify[多项式] 把多项式写成项数最小的形式 5) Exponent[多项式, x] 取出多项式中x的最高幂数 6) Coefficient[多项式,form] 取出多项式中form的系数 7) Part[多项式, n] 取出多项式的第n项 8) Length[多项式] 给出多项式的项数 9) PolynomialQuotient[p,q, x] 计算p÷q的商,这里p,q是关于x的多项式 10) PolynomialRemainder[p,q, x] 计算p÷q的余式,这里p,q是关于x的多项式 11) PolynomialGCD[p,q, …] 求多项式p,q,…的最大公因子 12) PolynomialGCD[p,q, …] 求多项式p,q,…的最小公倍数
例1:展开多项式(2+3x)4,并取出它的第3项。 • 解: Mathematica 命令为: • In[1]:= p=Expand[(2+3x)^4] • Out[1]=16+96x +216x 2 +216x3 +81x4 • In[2]:= Part[p, 3] • Out[2]= 216 x2
例2:设多项式q=(1+2x - y)2,做 (1)展开多项式q (2)按y的同次幂合并形式展开多项式q (3)取出多项式q中y和xy的系数 解: Mathematica 命令为: In[3]:= q=Expand[(1+2x - y)^2] Out[3]= 1 + 4 x + 4 x2 - 2 y - 4 x y + y2 In[4]:= Collect[(1+2x-y)^2, y ] Out[4]= 1 + 4 x + 4 x2 + (-2 - 4 x) y + y2 In[5]:= Coefficient[q, y] Out[5]= -2 - 4 x In[6]:= Coefficient[q, x*y] Out[6]= - 4
例3:对多项式120 - 46x - 19 x 2 + 4 x 3 +x 4进行因式分解。 解: Mathematica 命令为: In[7]:= Factor[120 - 46x - 19 x^2+ 4 x^3 +x^4] Out[7]= (-3 + x) (-2 + x) (4 + x) (5 + x) 例4:设多项式p=1 - 4x - 19 x2 + 4 x3,q=1 - 3x , 1)计算p÷q的商; 2) 计算p÷q的余式 解: Mathematica 命令为: In[8]:= p=1-4x – 19x^2+4x^3; q=1-3x; In[9]:= PolynomialQuotient[p, q, x] Out[9]= 89/27+ 53 x/9 - 4 x2/ 3 In[10]:= PolynomialRemainder[p, q, x] Out[10]= -62/27
例5:设多项式p=120 - 46x - 19 x 2 + 4 x 3 +x 4,q=20x+9x2+x 3 1)求多项式p,q的最大公因子; 2) 求多项式p,q的最小公倍数 解: Mathematica 命令为: In[11]:= p=120 - 46x - 19 x^2+ 4 x^3 +x^4; q=20x+9x^2+x^3; In[12]:= PolynomialGCD[p, q] Out[12]=20+ 9 x + x2 In[13]:= PolynomialLCM[p, q] Out[13]= 120 x - 46 x2 - 19 x3 + 4 x4 + x5
2有理函数运算 • 两个多项式相除构成有理函数,它的一般形式为: 在Mathematica 中提供了有理函数运算的一些函数,常用的函数有: Mathematica 函数形式 功能 1) Together[expr] 对expr进行通分 2) Apart[expr] 把expr写成简单分式之和 3) Cancel[expr] 对expr进行约分 4) Simplify[expr] 对expr进行化简 5) Numerator[有理函数] 取出有理函数的分子 6) Denominator[有理函数] 取出有理函数的分母
例6:设有理函数之和为: 1)对r(t)通分; 2) 取出r(t)的分子; 3) 取出r(t)的分母 • 解: Mathematica 命令为: • In[14]:= r=6/t-3/(1+t)- (3t+3)/(1+t^2);In[15]:= s=Together[r] In[16]:= Numerator[s] • Out[16]=6 • In[17]:= Denominator[s] • Out[17]=t (1 + t) (1 + t )2
例7:设有理函数为 • 1) 把q(x)写成简单分式之和; 2) 对q{x}进行约分; 3) 对q(x)进行化简: • 解: Mathematica 命令为: • In[18]:= q=(1-x^2)/(9+21x+16x^2+4x^3); • In[19]:= Apart[r] • In[20]:= Cancel[q] • In[21]:= Simplify[q]
3连续求和与连续求积运算 • 在数学中,有时需要计算n个有规律的数相加或相乘,这就是数学中由符号表示求和运算和由符号表示的求积运算,即: 上式中 ai 称为通项.Mathematica 提供了这种快速求和和求积运算命令。 1 连续求和命令 连续求和命令的一般形式为 Sum[ 通项, 求和范围 ] 或 NSum[ 通项, 求和范围 ]
命令形式1: Sum[f(i) , {i ,imin,imax,h }] 功能:计算和 f(imin) +f(imin +h)+ f(imin +2h)+……+f(imin +nh)} imax – h imin + nh imax , h>0 例如:计算和12 +3 2 + … +19 2 , 由连加的规律, 知通项为i2 Mathematica命令: In[22]: = Sum [ i^2 , { i , 1, 19 , 2} ] Out[22]= 1330
命令形式2: Sum[ f(i) , { I,imin,imax }] 功能: 计算和 f(imin) +f(imin +1)+f(imin+2)+……+f(imax) 例如:计算 Mathematica命令: In[23]: = s=Sum[1/(k^2-1), {k, 3 , 20} Out[23]=103/280
命令形式3: Sum[ f(i , j),{{i,imin,imax},{j, jmin,jmax}] 功能:计算二重和式 例如 :计算 Mathematica 命令: In[24]: =Sum[(i-j)^3, {i, 1 , 20}, {j, 1 , 10}] Out[24]= 149500
例8:计算: 解: Mathematica 命令为: In[25]: = s1=Sum[Sin[k], {k, 1 , 5}] Out[25]= Sin[1] + Sin[2] + Sin[3] + Sin[4] + Sin[5] In[26]: = s1=NSum[Sin[k], {k, 1 , 5}] Out[26]= 0.176162 In[27]: = s2=NSum[1/k^2 , {k, 1,Infinity}] Out[27]= 1.64493
例9:设 用Sum命令生成s1(x), s3(x), s6(x),并在同一个坐标系中画出s1(x), s3(x), s6(x)在[-1,1]上的图形 解:Mathematica 命令为: • In[28]:= s1=Sum[(k+1)*x^k, {k, 0, 1}] • Out[28]=1+2x • In[29]:= s3=Sum[(k+1)*x^k, {k, 0, 3}] • Out[29]=1+2x+3x 2+4x3 • In[30]:= s6=Sum[(k+1)*x^k, {k, 0, 6}] • Out[30]=1+2x+3x2+4x3+5x 4+6x5+7x 6 • In[31]:= Plot[{s1,s3,s6},{x,-1,1}]
2 连续求积命令 • 求积命令的一般形式为 Product[ 通项, 求积范围 ] 或 NProduct[ 通项, 求积范围 ] 式中的范围与求和命令Sum相同,具体形式有 命令形式1: Product [f(i) , {i ,imin,imax,h }] 功能: 计算和 f(imin)f(imin +h) f(imin +2h) ……f(imin +nh)} imax – h imin + nh imax , h>0 例如:计算和1232 …19 2, 由连乘的规律, 知通项为i2 Mathematica命令: In[32]: = Product [ i^2 , { i , 1, 19 , 2} ] Out[32]= 428670161650355625
命令形式2: Product [ f(i) , { i ,imin,imax }] 功能:计算和 f(imin) f(imin +1) f(imin +2) ……f(imax) 命令形式3: Product[ f(i , j),{{i,imin,imax}, {j ,jmin,jmax}] 功能:计算二重和式
例:计算 Mathematica命令: • In[33]: = s=Product[1/(k^2-1), {k, 2 , 15}] • Out[33]= 1/912006534786239692800000 例:计算 解:Mathematica 命令为: In[34]: = s=Product[Cos[k], {k, 1 , 4}] Out[34]= Cos[1] Cos[2] Cos[3] Cos[4] In[35]: = s=NProduct[Cos[k], {k, 1 ,4}] Out[35]= -0.145498
4方程求根 在数学中, 函数等于零的式子就称为方程。 f(x)= 0 (1) 就称为一元函数方程. 类似的有多元函数方程组: 1(x1 ,x2 ,… ,x n) = 0 2(x1 ,x2 ,… ,x n) = 0 …………. (2) n(x1 ,x2 ,… ,x n) = 0
4.1 求多项式方程的根 n次多项式方程的一般形式为: a0 +a1x+ a2x2 +…+anx n = 0 式中a0 ,a1, a2,…,an为常数。 求多项式方程的根的一般形式为 • Solve [ 方程或方程组, 变量或变量表 ] 或 NSolve [ 方程或方程组, 变量或变量表 ] 具体形式有: 命令形式1: Solve[eqn, x] 功能:求多项式方程eqn的所有根,当多项式方程的次数n4时,给出eqn所有根的准确形式, 当n>4时,不一定能求出所有的根, 此时,命令输出形式为 {ToRules[Roots[eqn, x ]]}
命令形式2: Solve[{eqn1, eqn2, …, eqnk}, {x1, x2,…, xk}] 功能:求多项式方程组{eqn1, eqn2, …, eqnk}的所有根, 当其中每个多项式方程的次数n4时, 给出所有根的准确形式: {ToRules[Roots[{eqn1, eqn2, …, eqnk}, {x1, x2,…, xk} ]]} 命令形式3: NSolve[eqn, x] 功能:求多项式方程eqn的所有根的近似形式。 命令形式4: NSolve[{eqn1, eqn2, …, eqnk}, {x1, x2,…, xk}] 功能:求多项式方程组{eqn1, eqn2, …, eqnk}所有根的近似形式。
例:求方程 x3 -4x 2 +9x - 10 = 0的所有根 解:Mathematica 命令为: In[36]: = Solve[x^3-4x^2+9x-10==0 , x] Out[36]= {{x -> 1 - 2 I}, {x -> 1 + 2 I}, {x -> 2}} 所以,所求全部根为 x1=1-2I,x2=1+2I , x3=2, I为虚数单位。 例:求方程x 2 -ax - 4b=0的所有根,a,b 为常数。 解:Mathematica 命令为: In[37]: = Solve[x^2-a*x-4*b==0 , x] a - Sqrt[a2 +16b] a + Sqrt[a2 + 6b] Out[37]= {{x -> -----------------------}, {x -> ------------------------}} 2 2 所求全部根为 a - Sqrt[a2 +16b] a + Sqrt[a2 + 6b] x1= -----------------------, x2 = ------------------------ 2 2
例:求方程组 x+3y=0 x2+y2=1 的所有根。 解: Mathematica 命令为: In[38]: = Solve[{x+3y==0,x^2+y^2==1}, {x, y}] -3 1 3 1 Out[38]= {{x -> -------------, y -> ---------- }, {x -> ----------, y -> - (------)}} Sqrt[10] Sqrt[10] Sqrt[10] Sqrt[10] 所求全部根为 -3 1 3 1 {x1= --------- , y1= ----------}, {x2= ---------- , y2= - (-----------)} Sqrt[10] Sqrt[10] Sqrt[10] Sqrt[10]
例: 求方程 x6 -x2 +2x - 3 = 0 的所有根。 解: Mathematica 命令为: In[39]: = Solve[x^6-x^2+2x-3==0 , x] Out[39]= {ToRules[Roots[2 x – x2 + x6 = = 3, x]]} In[40]: = NSolve[x^6-x^2+2x-3==0 , x] Out[40]= { {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为虚数单位。
例: 求方程组 a1+a2=1 x1 a1+x2a2=1/4 x12a1+x22 a2=1/9 x13a1+x23 a2=1/16 的所有根,这里x1 ,x2,a1,a2 是变量。 解: Mathematica 命令为: In[41]:=Solve[{a1+a2==1,x1*a1+x2*a2==1/4,x1^2*a1+x2^2*a2==1/9, x1^3*a1+x2^3*a2==1/16}, {a1,a2,x1,x2}] 212 - 9 Sqrt[106] 212 + 9 Sqrt[106] Out[41]= {{a1 -> -----------------------, a2 -> -------------------- , 424 424 15 - Sqrt[106] 180 + 12 Sqrt[106] x2 -> ----------------, x1 -> ------------------------ }, 42 504
In[42]: = N[%] Out[42]={{a1 -> 0.281461, a2 -> 0.718539, x2 -> 0.112009, x1 -> 0.602277}, {a1 -> 0.718539, a2 -> 0.281461, x2 -> 0.602277, x1 -> 0.112009} In[43]: = N[%, 8] Out[43]= {{a1 -> 0.28146068, a2 -> 0.71853932, x2 -> 0.11200881, x1 -> 0.60227691}, {a1 -> 0.71853932, a2 -> 0.28146068, x2 -> 0.60227691, x1 -> 0.11200881}}
4.2 求超越方程的根 求超越方程的根的一般形式为 FindRoot [ 方程或方程组, {变量或变量表, 初值} ] 具体形式有 命令形式1: FindRoot[eqn, {x, x0}] 功能:求方程eqn的在初值x0附近的一个近似根。 命令形式2: FindRoot[{eqn1,eqn2, ... }, {x, x0}, {y, y0}, ... ] 功能:求方程组{eqn1, eqn2, …}在初值(x0,y0,…)附近的一个近似根。
例:求方程组 x= y2 y=cos x 在(1,2)附近的根 解: Mathematica 命令为: In[44]: = FindRoot[{x== y^2, y==Cos[x]}, {x,1},{y,2}] Out[44]= {x -> 0.641714, y -> 0.801071} 所求的根为 x= 0.641714, y = 0.801071。
例:求方程x sin x = 1在[0, 5]内的所有根。 解: Mathematica 命令为: In[45]: =Plot[x*Sin[x] - 1 ,{ x, 0, 5}] In[46]: = FindRoot[x*Sin[x] – 1 ==0, {x, 1}] (*方程在1附近的根) Out[46]= {x -> 1.11416} In[47]: = FindRoot[x*Sin[x] – 1 ==0, {x, 3}] (*方程在3附近的根) Out[47]= {x -> 2.7726} 所求根为x1 = 1.11416 , x2= 2.7726。