文档库 最新最全的文档下载
当前位置:文档库 › Mathematica求解方程(组)、级数

Mathematica求解方程(组)、级数

Mathematica求解方程(组)、级数
Mathematica求解方程(组)、级数

方程(组)与级数的Mathematica 求解

[学习目标]

1. 能用Mathematica 求各种方程(组)的数值解和近似解;

2. 能对常见函数进行幂级数的展开。

一、 求解简单方程(组)

数学里的方程是带有变量的等式。一般地说,一个或一组方程总是对于方程中出现的变量的可能取值范围增加了一些限制。所谓求解方程就是设法把方程对于变量取值的限制弄清楚,最好的结果是用不含变量的表达式把变量的值表示出来。在这个系统里,方程也用含有变量的等式表示,要注意的是在这里等号用连续的两个等号(==)表示。方程的两端可以是任何数学表达式。

用户可以自己操作Mathematica 系统去求解方程,例如使用移项一类的等价变换规则对方程加以变形、对方程的两端进行整理、把函数作用于方程的两端等等。系统也提供了一些用于求解方程的函数。

1、 求方程的代数解

最基本的方程求解函数是Solve ,它可以用于 求解方程(主要是多项式方程)或方程组。Solve 有两个参数,第一个参数是一个方程,或者是由若干个方程组的表(表示一个方程组);第二个参数是要求解的变量或变量表。例如,下面的式子对于变量X 求解方程016x x x 234=+--:

In[1]:=Solve[x^4-x^3-6x^2+1==0,x]

输入了这个表达式,系统立刻就能计算出方程的四个根,求出的解都是精确解(代数根)。对于一般的多项式,这样得出的解常常是用根式描述的复数。方程的解被表示成一个表,表中是几个子表,每一个子表的形式都是{x->...},箭头后面是方程的一个解。Solve 也可以求解多变量的方程或者方程组:

In[2]:=Solve[{x-2y==0,x^2-y==1},{x,y}]

这个表达式求解方程组: x y x y -=-=???20

12.

有时求解方程会得到非常复杂的解。例如将上面的第一个方程稍加变形,所得到的解的表达式就会变得很长:

In[3]:=Solve[x^4-x^3-6x^2=2==0,x]

这个表达式求出的解的表达式非常长,以至一个计算机屏幕显示不下。使用MS-DOS 系统上的Mathematica 的读者可以用键盘上的PgUP 键和PgDn 键把计算机屏幕上已经卷出的表达式翻回来阅读,附录B 里提供了使用这类计算机的有关操作的更详细的说明。对于使用图形界面提供的功能去翻阅前面的结果。

在被求解的方程里还可以有其他符号参数,可以要求系统对于这一个或者那一个变量求解方程。对于Mathematica 系统来说,方程中的符号变量(无论使用什么变量名)都是一样的。

对于处理复杂的方程,MATHEMETICA 系统还提供了例外两个有用的函数。函数

Eliminate用于从方程组消去一个或几个变量,例如下面的表达式消去方程组里的变量Y: IN[4]:=Eliminate[{X^2-2Y= =1,X+2Y= =4},Y]

Eliminate 的使用形式与Solve类似,它的第二个参数用于说明希望消去的变量。另一个函数Reduce用于化简复杂的方程或方程组,它试图用一组比较简单的逻辑关系来描述由原来方程所描述的变量之间的关系。它的使用形式与Solve, Eliminate一样,这里不举例字了。

2、求方程的数值解

理论上已经证明,对于五次以上的多项式方程没有求代数解的一般方法,MATHEMATICA也求不出那些不能分解因式的五次以上的多项式方程的解,例如:

IN[5]:=SOLVE[X^5+5X^3-2= =0,X]

它返回一个带有函数TORUOES的表达式。可以把函数N作用到这个结果表达式上,求出方程的数值解:

IN[6]:=N[%]

可以看到系统同时求出了方程的五个根的时候可以直接用函数N和SOLVE结合完成工作:IN[7]:=N[SOLVE[X^6+4X^2-31= =0,X]]

在系统里直接提供了一个函数NSOLVE做这件事。

对于更复杂的方程(或方程组),用SOLVE求不出根,使用函数N也解决不了问题。对于这样的方程,用户可以使用REDUCE,ELIMINATE等函数去处理,设法把方程描述的变量之间的关系搞清楚。如果需要的就是方程的根,那么只要用求数值根的函数FINDROOT。函数FINDROOT求数值根所采用的方法与人们一般用计算机求数值根的方法一样。但是,由于MA THEMA TIC有求导函数的能力,在这里计算有导函数的表达式的数值根就非常简单。不管表达式多么复杂,系统都能自动的求出它的导函数。求数值根使用的也是牛顿法,用户必须给FINDROOT提供一个初始值。下面一个简单的例子:IN[8]:=FINDROOT[SIN[X]EXP[2X]-COS[X]= =0,{X,0.5}]

对于求不出导函数的表达式,例如用户自己定义的一个复杂计算函数,使用FindRoot 提供函数值取不同符号(正负号)的两个点(用表的形式放在上面初始值0.5的位置),形式是:

IN[9]:= FindRoot [FUN1[X]= =0,{X,{0,1}}]

这里假使FUN1是用户定义的一个函数。

使用计算机求数值根的第一个问题是确定初始点,若初始值选取得不好将给求根带来困难。再一个麻烦是用户要自己求出函数的导函数。在MA THEMATICA系统里处理的对象是表达式,一个表达式可以服务于不同的用途,可以作为求值的对象,作为画图的对象,也可以作为演算的对象。当需要求一个表达式的数值根的时候,表达式的这样的多种功

能,或者说MA THEMATICA系统对于表达式的多方面的操作能力就表现出很大的优越性。一个代数表达式,无论多么复杂,MATHEMA TICA系统都可以直接求出它的导函数,可以作出它的图形。从图形上我们很容易认识这个函数表达式在某一个区间的大致性质,包括它的根的出现和分布情况。对表达式的这些认识为人们确定如何取初始值、如何求根提供了很有价值的线索。这样,某些比较难以处理的问题可能就容易解决了。

二、求解常微分方程(组)

1、常微分方程(组)的精确解

Mathematica能求常微分方程(组)的准确解,能求解的类型大致覆盖了人工求解的范

围,功能很强。但不如人灵活(例如在隐函数和隐方程的处理方面),输出的结果与教材上

的答案可能在形式上不同。另外,Mathematica 求数值解也很方便,且有利于作出解的图形。 求准确解的函数调用格式如下:

DSolve[eqn ,y[x],x] 求方程eqn 的通解y (x ),其中自变量是x 。 DSolve[{eqn ,y[x 0]= =y 0},y[x],x] 求满足初始条件y (x 0)= y 0的特解y (x )。 DSolve[{eqn1,eqn2,…},{y 1[x],y 2[x],…},x] 求方程组的通解。 DSolve[{equ1,…,y 1[x 0]= =y 10,…},{y 1[x],y 2[x],…},x] 求方程组的特解。 说明:应当特别注意,方程及各项参数的表述方式很严格,容易出现输入错误。微分方程的表示法只有通过例题才能说清楚。

例1 解下列常微分方程(组):

(1)25)1(12+++='x x y y ,(2)y x x y y )(132

++=', (3) ???-='='y

z z y , (4)?

??-='='y z z y 的通解及满足初始条件y (0)=0,z (0)=1的特解。 解:In[1]:=DSolve[y ′[x]= =2y[x]/(x+1)+(x+1)^(5/2),

y[x],x] Out[1]=?

???????????

+++→]1[)1()1(32][22/7c x x x y In[2]:=DSolve[y ′[x]= =(1+y[x]^2)/((x+x^3)y[x]),y[x],x] Out[2]={{2211]1[11][x c x x y ++-

--→}, {2211]1[11][x

c x x y ++--→}} In[3]:=DSolve[{y ′[x]= =z[x],z ′[x]= = -y[x]},

{y[x],z[x]},x]

Out[3]={{y[x]→C[1]Cos[x]+ C[2]Sin[x],

z[x]→C[2]Cos[x]- C[1]Sin[x]}}

In[4]:=DSolve[{y ′[x]= =z[x],z ′[x]= = -y[x],y[0]= =0,z[0]= =1},

{y[x],z[x]},x]

Out[4]={{y[x]→Sin[x],z[x]→Cos[x]}}

提示:认真观察上例,可以从中学习输入格式,未知函数总带有自变量,等号用连续键入两个等号表示,这两点由于不习惯会出错!导数符号用键盘上的撇号,连续两撇表示二阶导数,这与习惯相同。自变量、未知量、初始值的表示法与普通变量相同。

说明:输出结果总是尽量用显式解表出,有时反而会使表达式变得复杂,这与教科书的习惯不同。当求显式解遇到问题时,会给出提示。通解中的任意常数用C[1],C[2],…表示。

例2 求解下列微分方程:

(1)x e x y y y y --=+'+''+''')5(33,(2)1)(22='+y x ,(3)xy y ='。

解:In[1]:=DSolve[][x y '''+3y ″[x] +3y ′[x] + y[x] = =(x - 5)Exp[-x], y[x],x] Out[1]={{+???? ??-+???? ??+-→--32

52521][3222x x x e x x x e x y x x ]3[]2[]1[43521243C x e xC e C e x x e x x x x ----+++???

? ??+-}} In[2]:=Simplify[%] Out[2]={{])3[24]2[24]1[2420(24

1][243C x xC C x x e x y x ++++-→-}} In[3]:=DSolve[x^2 + y ′[x]^2 = = 1,y[x],x] Out[3]={{]1[2

][121][2C x ArcSin x x x y +---

→}, {]1[2][121][2C x ArcSin x x x y +--→}} In[4]:=DSolve[Sqrt[y ′[x]] = = x y[x],y[x],x] Out[4]={{]

1[3][3C x x y --→}} 说明:由以上可以看出对方程的类型并无限制,但是输出的答案未必符合习惯,例如第一个方程的答案需要化简,有时即使化简后也未必与教材上的答案一致。

例3 求微分方程xy ′+ y - e x = 0在初始条件y|x=1 = 2e 下的特解。

解:In[1]:=DSolve[x*y ′[x]+y[x]-E^x= =0,y[1]= =2E ,y[x],x]

Out[1]= {{y[x]→x

e e x

+}}

2、常微分方程(组)的数值解

函数NDSolve用于求给定初值条件或边界条件的常微分方程(组)的近似解,其调用格式如下:

NDSolve[eqns,{y1,y2,…},{x,xmin,xmax}] 求常微分方程(组)的近似解。

其中微分方程和初值条件的表示法如同DSolve,未知函数仍有带自变量和不带自变量两种形式,通常使用后一种更方便。初值点x0可以取在区间[xmin,xmax]上的任何一点处,得到插值函数InterpolatingFunction[domain,table]类型的近似解,近似解的定义域domain一般为[domain,table],也有可能缩小。

例4 求常微分方程y′= x2 + y2,满足初始条件y(0)= 0的数值解。

解:In[1]:=s1=NDSolve[{y′[x]= =x^2+y[x]^2,y[0]= =0},

y,{x,-2,2}]

Out[1]={{y→InterpolatingFunction[{{-2.,2.}},< >]}}

In[2]:= y=y / . s1[[1]]

Out[2]=InterpolatingFunction[{{-2.,2.}},< >]

In[3]:=Plot[y[x],{x,-2,2},AspectRatio→Automatic,

PlotRange→{-1.5,1.5}]

图13-43 微分方程的解曲线

Out[3]= -Graphics-

上例中包含许多值得学习的实用内容,其中第二项参数使用y而不是y[x],比用y[x]好。如果求解区间改为{x,-3,3},就会出现警告提示,实际得不到[-3,3]上的解。Out[1]表明返回的解放在一个表中,不便使用,实际的解就是插值函数:

InterpolatingFunction[{{-2.,2.}},< >]

In[2]的结果是用y表示解函数的名字,因此In[3]顺利画出解曲线如图13-43所示。

例5 求常微分方程组: ??

???-='+-='x y x x y x 331 满足初始条件x (0)=0,y (0)=1的数值解。

解:In[1]:=s1=NDSolve[{x ′[t]= = y[t] -(x[t]^3/3 - x[t]),

y ′[t]= = - x[t],x[0]= =0,y[0]= =1},

{x ,y},{t ,-15,15}]

Out[1]={{x →InterpolatingFunction[{{-15.,15.}},< >],

y →InterpolatingFunction[{{-15.,15.}},< >]}}

In[2]:= x=x / . s1[[1,1]]

y=y / . s1[[1,2]]

Out[2]=InterpolatingFunction[{{-15.,15.}},< >]

Out[3]=InterpolatingFunction[{{-15.,15.}},< >]

In[4]:=ParametricPlot[{x[t],y[t]},{t ,-15,15},

AspectRatio →Automatic]

图13-44 解的相轨线

Out[3]= -Graphics-

说明:上例是求一个著名方程组的近似解,其中In[2]也可以改用一个赋值式{x ,y}={x ,y} / . Flatten[s1],一次得到两个函数。通过求数值解容易得到它的相图,In[4]绘制了解的相轨线如图13-44所示,图中表明原点是奇点,极限环的形状也已经得到。

为了应付复杂的情况,需要设置可选参数:

WorkingPrecision 参见数值积分部分的介绍。

AccuracyGoal 计算结果的绝对误差。

PrecisionGoal 计算结果的相对误差。

MaxSteps 最大步数。

StartingStepSize 初始步长。

以上可选参数的默认值都为Automatic ,其中AccuracyGoal 和PrecisionGoal 的默认值比WorkingPrecision 小10,当解趋于0时应将AccuracyGoal 取成Infinity 。对于常微分方程,最大步长默认值为1000。这个函数也可以解偏微分方程,最大步长默认值为200。

例6 解下列微分方程(组):

(1)i y

y 41=',满足初始条件y (0)=1的特解; (2)??

???-=-+-='+-='z xy z y x xz y y x x 5.2633,满足初始条件x (0)=z (0)=0,y (0)=1的特解。

解:In[1]:=NDSolve[{y ′[x]= =I/4y[x],y[0]= =1},y ,{x ,1},

AccuracyGoal →20,PrecisionGoal →20,WorkingPrecision →25] Out[1]={{y →InterpolatingFunction[

{{0,1.000000000000000000000000000}},< >]}

In[2]:=y[1] / . %

Out[2]={0.968912424710644784118519+ 0.2474039592545229296234109ⅱ} In[3]:=NDSolve[{x ′[t]= = -3(x[t] -y[t]),

y ′[t] = = -x[t] z[t]+36.5x[t] -y[t],

z ′[t] = = x[t] y[t]- z[t],

x[0] = = z[0] = = 0,y[0]= =1},

{x ,y ,z},{t ,0,20},MaxSteps →3000]

Out[3]={{x →InterpolatingFunction[{{0.,20.}},< >],

y →InterpolatingFunction[{{0.,20.}},< >],

z →InterpolatingFunction[{{0.,20.}},< >]}},

In[4]:=ParametricPlot3D[Evaluate[{x[t],y[t],z[t]} / . %],

{t ,0,20},PlotPoints →1000]

图13-45 3维相轨线

Out[3]= -Graphics3D-

说明:以上范例中In[1]取高精度,而且是复系数方程。In[2]是求解在x =1时的近似值,求精确解能得到准确值i e 41,读者可以求i e 4

1的近似值与Out[2]的结果比较,验证近似解的精确度确实很高。In[3]在求解时增大步数,成功地得到了由In[4]绘制的如图13-45所示的解的相轨线。In[4]所示的绘图语句与前面例子中的不同,现在只要会模仿使用它们就行了,要想弄清原理请参阅相关Mathematica 书籍。 三、 级数

1. 求和与求积

求有限或无穷和、积的函数是:

Sum[f ,{i ,imin ,imax}] 求

∑=max

min )(i i i i f ,其中imin 可以是-∞,

imax 可以是∞(即+∞),但是必须满足imin ≤imax 。基本输入模板中也有求和专用的符号,使用模板输入更方便。

Sum[f ,{i ,imin ,imax},{j ,jmin ,jmax},…] 求多重和,也可以使用基本输入模板连续多次输入求和符号得到。

Product[f ,{i ,imin ,imax}] 求

∏=max

min )(i i i i f ,基本输入模板中

也有求积符号。 Product[f ,{i ,imin ,imax},{j ,jmin ,jmax},…] 求多重积

,也可以使用基本

输入模板连续多次输入求积符号得到。

NSum 和NProduct 得到数值解。

2. 将函数展开为幂级数

将函数展开为幂级数的函数调用格式如下:

Series[f ,{x ,x 0,n}] 将函数f (x )在x 0 处展成幂级数直到n 次项为止。 Series[f ,{x ,x 0,n},{y ,y 0,m}] 将函数f (x ,y )先对y 后对x 展开。

例7 展开下列函数为幂级数:

(1) y =tg x ,(2) x

x y sin =, (3)y = f (x ),(4)y = e xy 。 解:In[1]:=Series[Tan[x],{x ,0,9}] Out[1]=109

753][2835

62315171523x o x x x x x +++++ In[2]:=Series[Sin[x] /x ,{x ,0,9}] Out[2]= 108

642][362880

504012061x o x x x x ++-+- In[3]:=Series[f[x],{x ,1,7}] Out[3]=+-+-''+

-'+3)3(2)1](1[6

1)1](1[21)1](1[]1[x f x f x f f +-+-5)5(4)4()1](1[1201)1](1[241x f x f 87

)7(6)6(]1[5040

)1](1[)1](1[7201-+-+-x o x f x f In[4]:=Series[Exp[x y],{x ,0,3},{y ,0,2}] Out[4]=433232

3

][][][2)][(1x o x y o x y o y x y o y ++???? ??++++ 说明:上例中In[3]表明也可以展开抽象的函数。

对已经展开的幂级数进行操作的两个函数是:

Normal[expr] 将幂级数expr 去掉余项转换成多项式。 SeriesCoefficient[expr ,n] 找出幂级数expr 的n 次项系数。

例8 将y = arcsin x 展开为幂级数,只取前9项并去掉余项。

解:In[1]:=Series[ArcSin[x],{x ,0,9}]

Out[1]= 109

753][1152

3511254036x o x x x x x +++++ In[2]:=Normal[%] Out[2]= 1152

35112540369

753x x x x x ++++ In[3]:=SeriesCoefficient[%1,5] Out[3]=40

3 习题

1. 求下列方程(组)的通解或特解。

(1)x^3-5x+1==0,(2)x^6-5x^4+x^3-2==0

(3)2x+y=13y+4x=5???(4)x^2+y^2=1x+y=10

???

2.求下列一阶微分方程的通解或特解。

(1)y ′- 3xy = 2x ; (2)xy ′+ y - e x = 0,y |x =a =b 。

2. 求下列二阶微分方程的通解或特解。

(1)y ″- 2y ′+5y = 5x+2;

(2)y ″+ 2y ′+2y = - e -x ,y (0)= y ′(0) = 0。

3.求下列级数的和或积:

(1)∑=n k k 12,(2) ∑∞=121k k ,(3) ∑∞=11k k ,(4) ∏∞=11

2k k e

4. 将下列函数展开为x 的 幂级数。

(1))(2

1x x e e y --=; (2)y = cos 2x ;

(3)y =(1 - x )ln (1 - x )

Mathematica函数大全(内置)

Mathematica函数大全--运算符及特殊符号一、运算符及特殊符号 Line1;执行Line,不显示结果 Line1,line2顺次执行Line1,2,并显示结果 ?name关于系统变量name的信息 ??name关于系统变量name的全部信息 !command执行Dos命令 n! N的阶乘 !!filename显示文件内容 > filename打开文件写 Expr>>>filename打开文件从文件末写 () 结合率 []函数 {}一个表 <*Math Fun*> 在c语言中使用math的函数 (*Note*)程序的注释 #n第n个参数 ##所有参数 rule& 把rule作用于后面的式子 %前一次的输出 %%倒数第二次的输出 %n第n个输出 var::note变量var的注释 "Astring "字符串 Context ` 上下文 a+b 加

a-b减 a*b或a b 乘 a/b除 a^b 乘方 base^^num以base为进位的数 lhs&&rhs且 lhs||rhs或 !lha非 ++,-- 自加1,自减1 +=,-=,*=,/= 同C语言 >,<,>=,<=,==,!=逻辑判断(同c) lhs=rhs立即赋值 lhs:=rhs建立动态赋值 lhs:>rhs建立替换规则 expr//funname相当于filename[expr] expr/.rule将规则rule应用于expr expr//.rule 将规则rule不断应用于expr知道不变为止param_ 名为param的一个任意表达式(形式变量)param__名为param的任意多个任意表达式(形式变量) 二、系统常数 Pi 3.1415....的无限精度数值 E 2.17828...的无限精度数值 Catalan 0.915966..卡塔兰常数 EulerGamma 0.5772....高斯常数 GoldenRatio 1.61803...黄金分割数 Degree Pi/180角度弧度换算 I复数单位 Infinity无穷大

符号方程的求解 solve linsolve fsolve dsolve

符号方程的求解solve linsolve fsolve dsolve MATLAB7.0中的符号计算可以求解线性方程(组)、代数方程的符号解、非线性符号方程(组)、常微分方程(组),求解这些方程(组)是通过调用solve函数实现的,如求解代数方程的符号解调用solve函数的格式是solve('eq')、solve('eq','v')、 [x1,x2,…xn]=solve('eq1','eq2',…'eqn')等,求解非线性符号方程是调用优化工具箱的fsolve函数,调用格式有fsolve(f,x0)、fsolve(f,x0,options)、[x,fv]=fsolve(f,x0,options,p1,p2…)等,而解常微分方程(组)则是调用dsolve函数,调用的格式有 [x1,x2,…]=dsolve('eq1,eq2,…','cond1,cond2…','v')。现将各函数的调用格式列于下表(表5—1),在各个实例中说明各种格式的用法。

一、代数方程的符号解 MATLAB7.0中求代数方程的符号解是通过调用solve函数实现的。用solve函数求解一个代数方程时的调用格式一般是: solve('代数方程','未知变量')或x=solve('代数方程','未知变量') 当未知变量为系统默认变量时,未知变量的输入可以省略。当求解由n个代数方程组成的方程组时调用的格式是: [未知变量组]=solve('代数方程组','未知变量组') 未知变量组中的各变量之间,代数方程组的各方程之间用逗号分隔,如果各未知变量是由系统默认的,则未知变量组的输入可以省略。 实例1、求解高次符号方程和方程对y的解。 >> syms x y z 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 实例2、求解多元高次方程组 >> [x,y]=solve('x^3+2*x*y-3*y^2-2','x^3-3*x*y+y^2+5') %求解多元高次方程组 x = 1.8061893129091900210106914427639+1.1685995398225344682988775209345*i .51233671712308192620449202726936+1.0694475803263816285960240820218*i -1.2247760300322719472151834700333+.35066213508454219362158900429401*i -1.2247760300322719472151834700333-.35066213508454219362158900429401*i .51233671712308192620449202726936-1.0694475803263816285960240820218*i 1.8061893129091900210106914427639-1.1685995398225344682988775209345*i y = 1.8086294126483514370835126464657+1.9432962587476317909683476452237*i .17307087932198664953847299268063-.78620181218420502898925154555661*i -.61451279197033808662198563914677-.89207785198625780793629825881329*i -.61451279197033808662198563914677+.89207785198625780793629825881329*i .17307087932198664953847299268063+.78620181218420502898925154555661*i 1.8086294126483514370835126464657-1.9432962587476317909683476452237*i 实例3、求解方程组的解。 >> [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) 实例4、求解超越方程的解。 >> solve('x*2^x-1') %求解超越方程 ans = 1/log(2)*lambertw(log(2))

Mathematica入门教程含习题与答案

Mathematica入门教程 第1篇 第1章MATHEMATICA概述 (3) 1.1 M ATHEMATICA的启动与运行 (3) 1.2 表达式的输入 (4) 1.3 M ATHEMATICA的联机帮助系统 (6) 第2章MATHEMATICA的基本量 (8) 2.1 数据类型和常数 (8) 2.2 变量 (10) 2.3 函数 (11) 2.4 表 (14) 2.5 表达式 (17) 2.6 常用的符号 (19) 2.7 练习题 (19) 第2篇 第3章微积分的基本操作 (20) 3.1 极限 (20) 3.2 微分 (20) 3.3 计算积分 (22) 3.4 无穷级数 (24) 3.5 练习题 (24) 第4章微分方程的求解 (26) 4.1 微分方程解 (26) 4.2 微分方程的数值解 (26) 4.3 练习题 (27) 第3篇 第5章MATHEMATICA的基本运算 (28) 5.1 多项式的表示形式 (28) 5.2 方程及其根的表示 (29) 5.3 求和与求积 (32) 5.4 练习题 (33) 第6章函数作图 (35) 6.1 基本的二维图形 (35) 6.2 二维图形元素 (40) 6.3 基本三维图形 (42) 6.4 练习题 (46)

第4篇 第7章MATHEMATICA函数大全 (48) 7.1 运算符和一些特殊符号,系统常数 (48) 7.2 代数计算 (49) 7.3 解方程 (50) 7.4 微积分 (50) 7.5 多项式函数 (51) 7.6 随机函数 (52) 7.7 数值函数 (52) 7.8 表相关函数 (53) 7.9 绘图函数 (54) 7.10 流程控制 (57) 第8章MATHEMATICA程序设计 (59) 8.1 模块和块中的变量 (59) 8.2 条件结构 (61) 8.3 循环结构 (63) 8.4 流程控制 (65) 8.5 练习题 (67) --------------习题与答案在68页-------------------

Mathematica的常用函数

Mathematica的内部常数 Pi , 或π(从基本输入工具栏输入, 或“Esc”+“p”+“Esc”)圆周率π E (从基本输入工具栏输入, 或“Esc”+“ee”+“Esc”)自然对数的底数e I (从基本输入工具栏输入, 或“Esc”+“ii”+“Esc”)虚数单位i Infinity, 或∞(从基本输入工具栏输入, 或“Esc”+“inf”+“Esc”)无穷大∞ Degree 或°(从基本输入工具栏输入,或“Esc”+“deg”+“Esc”)度 Mathematica的常用内部数学函数 指数函数Exp[x]以e为底数 对数函数Log[x]自然对数,即以e为底数的对数 Log[a,x]以a为底数的x的对数 开方函数Sqrt[x]表示x的算术平方根 绝对值函数Abs[x]表示x的绝对值 三角函数 (自变量的单位为弧度)Sin[x]正弦函数 Cos[x]余弦函数 Tan[x]正切函数 Cot[x]余切函数 Sec[x]正割函数 Csc[x]余割函数 反三角函数ArcSin[x]反正弦函数 ArcCos[x]反余弦函数 ArcTan[x]反正切函数 ArcCot[x]反余切函数 ArcSec[x]反正割函数 ArcCsc[x]反余割函数 双曲函数Sinh[x]双曲正弦函数 Cosh[x]双曲余弦函数 Tanh[x]双曲正切函数 Coth[x]双曲余切函数 Sech[x]双曲正割函数 Csch[x]双曲余割函数 反双曲函数ArcSinh[x]反双曲正弦函数 ArcCosh[x]反双曲余弦函数 ArcTanh[x]反双曲正切函数 ArcCoth[x]反双曲余切函数 ArcSech[x]反双曲正割函数 ArcCsch[x]反双曲余割函数 求角度函数ArcTan[x,y]以坐标原点为顶点,x轴正半轴为始边,从原点到点(x,y)的射线为终边的角,其单位为弧度 数论函数GCD[a,b,c,...]最大公约数函数 LCM[a,b,c,...]最小公倍数函数

Mathematica函数大全

Mathematica函数大全一、运算符及特殊符号 Line1; 执行Line,不显示结果 Line1,line2 顺次执行Line1,2,并显示结果 ?name 关于系统变量name的信息 ??name 关于系统变量name的全部信息 !command 执行Dos命令 n! N的阶乘 !!filename 显示文件内容 <> filename 打开文件写 Expr>>>filename 打开文件从文件末写 () 结合率 [] 函数 {} 一个表 <*Math Fun*> 在c语言中使用math的函数 (*Note*) 程序的注释 #n 第n个参数 ## 所有参数 rule& 把rule作用于后面的式子 % 前一次的输出 %% 倒数第二次的输出 %n 第n个输出 var::note 变量var的注释 "Astring " 字符串 Context ` 上下文 a+b 加 a-b 减 a*b或a b 乘 a/b 除 a^b 乘方 base^^num 以base为进位的数 lhs&&rhs 且 lhs||rhs 或 !lha 非 ++,-- 自加1,自减1 +=,-=,*=,/= 同C语言

>,<,>=,<=,==,!= 逻辑判断(同c) lhs=rhs 立即赋值 lhs:=rhs 建立动态赋值 lhs:>rhs 建立替换规则 lhs->rhs 建立替换规则 expr//funname 相当于filename[expr] expr/.rule 将规则rule应用于expr expr//.rule 将规则rule不断应用于expr知道不变为止 param_ 名为param的一个任意表达式(形式变量) param__ 名为param的任意多个任意表达式(形式变量) 二、系统常数 Pi 3.1415....的无限精度数值 E 2.17828...的无限精度数值 Catalan 0.915966..卡塔兰常数 EulerGamma 0.5772....高斯常数 GoldenRatio 1.61803...黄金分割数 Degree Pi/180角度弧度换算 I 复数单位 Infinity 无穷大 -Infinity 负无穷大 ComplexInfinity 复无穷大 Indeterminate 不定式 三、代数计算 Expand[expr] 展开表达式 Factor[expr] 展开表达式 Simplify[expr] 化简表达式 FullSimplify[expr] 将特殊函数等也进行化简 PowerExpand[expr] 展开所有的幂次形式 ComplexExpand[expr,{x1,x2...}] 按复数实部虚部展开 FunctionExpand[expr] 化简expr中的特殊函数 Collect[expr, x] 合并同次项 Collect[expr, {x1,x2,...}] 合并x1,x2,...的同次项 Together[expr] 通分 Apart[expr] 部分分式展开 Apart[expr, var] 对var的部分分式展开 Cancel[expr] 约分 ExpandAll[expr] 展开表达式 ExpandAll[expr, patt] 展开表达式 FactorTerms[poly] 提出共有的数字因子 FactorTerms[poly, x] 提出与x无关的数字因子 FactorTerms[poly, {x1,x2...}] 提出与xi无关的数字因子 Coefficient[expr, form] 多项式expr中form的系数

Mathematica求解方程组、级数

方程(组)与级数的Mathematica求解 [学习目标] 1. 能用Mathematica求各种方程(组)的数值解和近似解; 2. 能对常见函数进行幂级数的展开。 一、求解简单方程(组) 数学里的方程是带有变量的等式。一般地说,一个或一组方程总是对于方程中出现的变量的可能取值范围增加了一些限制。所谓求解方程就是设法把方程对于变量取值的限制弄清楚,最好的结果是用不含变量的表达式把变量的值表示出来。在这个系统里,方程也用含有变量的等式表示,要注意的是在这里等号用连续的两个等号(==)表示。方程的两端可以是任何数学表达式。 用户可以自己操作Mathematica系统去求解方程,例如使用移项一类的等价变换规则对方程加以变形、对方程的两端进行整理、把函数作用于方程的两端等等。系统也提供了一些用于求解方程的函数。 1、求方程的代数解 最基本的方程求解函数是Solve,它可以用于求解方程(主要是多项式方程)或方程组。Solve有两个参数,第一个参数是一个方程,或者是由若干个方程组的表(表示一个方程组);第二个参数是要求解的变量或变量表。例如,下面的式子对于变量X求解方程 : In[1]:=Solve[x^4-x^3-6x^2+1==0,x]

输入了这个表达式,系统立刻就能计算出方程的四个根,求出的解都是精确解(代数根)。对于一般的多项式,这样得出的解常常是用根式描述的复数。方程的解被表示成一个表,表中是几个子表,每一个子表的形式都是{x->...},箭头后面是方程的一个解。Solve也可以求解多变量的方程或者方程组: In[2]:=Solve[{x-2y==0,x^2-y==1},{x,y}] 这个表达式求解方程组: 有时求解方程会得到非常复杂的解。例如将上面的第一个方程稍加变形,所得到的解的表达式就会变得很长: In[3]:=Solve[x^4-x^3-6x^2=2==0,x] 这个表达式求出的解的表达式非常长,以至一个计算机屏幕显示不下。使用MS-DOS系统上的Mathematica的读者可以用键盘上的PgUP键和PgDn键把计算机屏幕上已经卷出的表达式翻回来阅读,附录B里提供了使用这类计算机的有关操作的更详细的说明。对于使用图形界面提供的功能去翻阅前面的结果。 在被求解的方程里还可以有其他符号参数,可以要求系统对于这一个或者那一个变量求解方程。对于Mathematica系统来说,方程中的符号变量(无论使用什么变量名)都是一样的。 对于处理复杂的方程,MATHEMETICA系统还提供了例外两个有用的函数。函数Eliminate用于从方程组消去一个或几个变量,例如下面的表达式消去方程组里的变量Y: IN[4]:=Eliminate[{X^2-2Y= =1,X+2Y= =4},Y]

Mathematica使用教程

Mathematica 教程 【Mathematica 简介】 Mathematica 软件是由沃尔夫勒姆研究公司 (Wolfram Research Inc.)研发的。Mathematica 1.0 版发布于1988年6月23日。发布之后,在科学、技术、媒体等领域引起了一片轰动,被认为是一个革命性的进步。几个月后,Mathematica就在世界各地拥有了成千上万的用户。今天,Mathematica 已经在世界各地拥有了数以百万计的忠实用户。 Mathematica已经被工业和教育领域被广泛地采用。实际上,Mathematica负责将高级的数 学和计算引入了传统上非技术的领域,极大的增加了科技软件的市场。一个包含应用、咨询、 书籍、和课程软件的行业支持着国际化的Mathematica用户群,这个行业还在不断地膨胀。 随着沃尔夫勒姆研究公司不断地扩大和Mathematica的使用被不断地扩展到不同的领域, 将会看到Mathematica在全世界范围内对未来产品、重要研究发现、和教学的巨大影响。 数学软件是现在科研工作者的必备的工具,个人比较喜欢用Mathematica,因为它是最接近数学语言的。Mathematica在15日发布,其最显著的变化是允许自由形式的英文输入,而不再需要严格按照Mathematica语法,这类似于Wolfram|Alpha搜索引擎。Mathematica 8 允许用户按照自己习惯的思考过程输入方程式或问题,最令人激动的部分是软件不是逐行执 行命令,而是能理解上下文背景。 1. En ter your queries in pla in En glish using new free-form lin guistic in put 2. Access more tha n 10 trilli on sets of curated, up-to-date, and ready-to-use data 3. Import all your data using a wider array of import/export formats 4. Use the broadest statistics and data visualizati on capabilities on the market 5. Choose from a full suite of engin eeri ng tools, such as wavelets and con trol systems 6. Use more powerful image process ing and an alysis capabilities 7. Create in teractive tools for rapid explorati on of your ideas 8. Develop faster and more powerful applicati ons

Mathematica使用教程

【Mathematica 简介】 Mathematica 软件是由沃尔夫勒姆研究公司(Wolfram Research Inc.)研发的。Mathematica 版发布于1988年6月23日。发布之后,在科学、技术、媒体等领域引起了一片轰动,被认为是一个革命性的进步。几个月后,Mathematica 就在世界各地拥有了成千上万的用户。今天,Mathematica 已经在世界各地拥有了数以百万计的忠实用户。 Mathematica 已经被工业和教育领域被广泛地采用。实际上,Mathematica 负责将高级的数学和计算引入了传统上非技术的领域,极大的增加了科技软件的市场。一个包含应用、咨询、书籍、和课程软件的行业支持着国际化的 Mathematica 用户群,这个行业还在不断地膨胀。随着沃尔夫勒姆研究公司不断地扩大和 Mathematica 的使用被不断地扩展到不同的领域,将会看到 Mathematica 在全世界范围内对未来产品、重要研究发现、和教学的巨大影响。 数学软件是现在科研工作者的必备的工具,个人比较喜欢用Mathematica,因为它是最接近数学语言的。Mathematica 在15日发布,其最显著的变化是允许自由形式的英文输入,而不再需要严格按照Mathematica语法,这类似于Wolfram|Alpha搜索引擎。Mathematica 8允许用户按照自己习惯的思考过程输入方程式或问题,最令人激动的部分是软件不是逐行执行命令,而是能理解上下文背景。 1. Enter your queries in plain English using new free-form linguistic input 2. Access more than 10 trillion sets of curated, up-to-date, and ready-to-use data 3. Import all your data using a wider array of import/export formats 4. Use the broadest statistics and data visualization capabilities on the market 5. Choose from a full suite of engineering tools, such as wavelets and control systems 6. Use more powerful image processing and analysis capabilities 7. Create interactive tools for rapid exploration of your ideas 8. Develop faster and more powerful applications Wolfram Research 的 CEO 和创立者斯蒂芬·沃尔夫勒姆表示:“传统上,让计算机执行任务必须使用计算机语言或者使用点击式界面:前者要求用户掌握它的语法;而后者则限制了可访问函数的范围。”“自由格式语言学能够理解人类的语言,并将其转化为具有特定语法结构的语言。这是产品适用性上的一个突破。 Mathematica 8 是这种创新思想下的第一个产品,但是它已经能够大幅度提高用户的工作效率。” Mathematica简明教程 第1章Mathematica概述 运行和启动:介绍如何启动Mathematica软件,如何输入并运行命令

(完整版)Mathematica求解方程(组)、级数

方程(组)与级数的Mathematica 求解 [学习目标] 1. 能用Mathematica 求各种方程(组)的数值解和近似解; 2. 能对常见函数进行幂级数的展开。 一、 求解简单方程(组) 数学里的方程是带有变量的等式。一般地说,一个或一组方程总是对于方程中出现的变量的可能取值范围增加了一些限制。所谓求解方程就是设法把方程对于变量取值的限制弄清楚,最好的结果是用不含变量的表达式把变量的值表示出来。在这个系统里,方程也用含有变量的等式表示,要注意的是在这里等号用连续的两个等号(==)表示。方程的两端可以是任何数学表达式。 用户可以自己操作Mathematica 系统去求解方程,例如使用移项一类的等价变换规则对方程加以变形、对方程的两端进行整理、把函数作用于方程的两端等等。系统也提供了一些用于求解方程的函数。 1、 求方程的代数解 最基本的方程求解函数是Solve ,它可以用于 求解方程(主要是多项式方程)或方程组。Solve 有两个参数,第一个参数是一个方程,或者是由若干个方程组的表(表示一个方程组);第二个参数是要求解的变量或变量表。例如,下面的式子对于变量X 求解方程016x x x 234=+--: In[1]:=Solve[x^4-x^3-6x^2+1==0,x] 输入了这个表达式,系统立刻就能计算出方程的四个根,求出的解都是精确解(代数根)。对于一般的多项式,这样得出的解常常是用根式描述的复数。方程的解被表示成一个表,表中是几个子表,每一个子表的形式都是{x->...},箭头后面是方程的一个解。Solve 也可以求解多变量的方程或者方程组: In[2]:=Solve[{x-2y==0,x^2-y==1},{x,y}] 这个表达式求解方程组: x y x y -=-=???20 12. 有时求解方程会得到非常复杂的解。例如将上面的第一个方程稍加变形,所得到的解的表达式就会变得很长: In[3]:=Solve[x^4-x^3-6x^2=2==0,x] 这个表达式求出的解的表达式非常长,以至一个计算机屏幕显示不下。使用MS-DOS 系统上的Mathematica 的读者可以用键盘上的PgUP 键和PgDn 键把计算机屏幕上已经卷出的表达式翻回来阅读,附录B 里提供了使用这类计算机的有关操作的更详细的说明。对于使用图形界面提供的功能去翻阅前面的结果。 在被求解的方程里还可以有其他符号参数,可以要求系统对于这一个或者那一个变量求解方程。对于Mathematica 系统来说,方程中的符号变量(无论使用什么变量名)都是一样的。 对于处理复杂的方程,MATHEMETICA 系统还提供了例外两个有用的函数。函数

Mathematica7.0简易教程

Mathematica7.0简易教程 第1章Mathematica概述 1.1 Mathematica的启动与运行 Mathematica是美国Wolfram研究公司生产的一种数学分析型的软件,以符号计算见长,也具有高精度的数值计算功能和强大的图形功能。 假设在Windows环境下已安装好Mathematica7.0,启动Windows后,在“开始”菜单的“程 序”中单击就启动了Mathematica7.0,在屏幕上显示如图的Notebook 窗口,系统暂时取名“未命名-1”,直到用户保存时重新命名为止。 输入1+1,然后按下Shif+Enter键,这时系统开始计算并输出计算结果,并给输入和输出附上次序标识In[1]和Out[1],注意In[1]是计算后才出现的;再输入第二个表达式,要求系统将一个二项式展开,按Shift+Enter输出计算结果后,系统分别将其标识为In[2]和Out[2].如图 在Mathematica的Notebook界面下,可以用这种交互方式完成各种运算,如函数作图,求极限、解方程等,也可以用它编写像C那样的结构化程序。在Mathematica系统中定义了许多功能强大的函数,我们称之为内建函数(built-in function), 直接调用这些函数可以取到事半功倍的效果。这些函数分为两类,一类是数学意义上的函数,如:绝对值函数Abs[x],正弦函数Sin[x],余弦函数Cos[x],以e为底的对数函数Log[x],以a为底的对数函数Log[a,x]等;第二类是命令意义上的函数,如作函数图形的函数Plot[f[x],{x,xmin,xmax}],解方程函数Solve[eqn,x],求导函数D[f[x],x]等。 必须注意的是:

Mathematica常用指令

表达式: Plot[4 x - 9, {x, 0, 9}] f[x_] = x^3 Plot[f[x], {x, 0, 9}] a = Plot[4 x - 9, {x, 0, 9}] b = Plot[x^3, {x, 0, 3}] 两图画在一个坐标系 Show[a, b] a = Plot[4 x - 9, {x, 0, 9}] b = Plot[x^3, {x, 0, 3}] 两图画在一起(一排) c = GraphicsArray[{a, b}] Show[c] a = Plot[4 x - 9, {x, 0, 9}] b = Plot[x^3, {x, 0, 3}] c = GraphicsArray[{a}, {b}] 两图画在一起(两排) Show[c] 二维画图: Automatic 默认值 DisplayFunction -> Identity 不出现图 DisplayFunction -> $DisplayFunction 出现图 PlotRange -> All 画出所有点,指定区域点 PlotStyle -> {RGBColor[1, 0, 0]} 图像颜色 PlotStyle -> {Dashing[{0.01}]} 图像成虚线 PlotStyle -> {Thickness[0.01]} 图像粗细 AxesLabel -> {"x/t", "y/cm"} 坐标标签 PlotLabel -> {"s-t"} 图像标签 Frame -> True 图像边框 Axes -> {True, True} 坐标轴的显示 AxesOrigin -> {0, -5} 设置坐标原点 GridLines -> {{-π, -π/2, 0, π/2, π}, {-1,-0.5,0, 0.5, 1}} 给坐标轴分网格 TextStyle -> {FontSize -> 30} 坐标字体大小AspectRatio -> Automatic 坐标比例一致 Ticks -> {{0, 1, 2, 3}, {0,10,20}} 在坐标轴上显示特定点ParametricPlot[x(t),y(t)},{t,0,6,}] 画参数方程

符号运算

与Wolfram公司(Mathematics的开发公司)相比,Mathworks公司一直以矩阵计算和强大的数据处理能力见长,而符号计算非强项。1993年,mathworks公司从加拿大Waterloo Maple公司购买了maple的内核技术,作为MA TLAB符号运算与推导的平台,开发了用以进行符号计算的基本符号运算工具箱和扩展符号运算工具箱,从而解决了MA TLAB在符号计算方面的缺陷。 MA TLAB7.0的符号运算工具箱已上升到3.1.1版本,它几乎可以完成所有的符号运算功能,包括符号函数与符号方程的定义、运算、复合、化简、符号矩阵的计算、符号微分、符号积分、符号代数方程、符号微分方程的求解、符号积分变换和符号特殊函数。 在MA TLAB7.0的符号数学工具箱中,符号表达式含有符号函数和符号方程两种形式,它是表示数字、函数或变量的字符串或字符串组。字符就是符号变量的值。因此在MA TLAB的源程序中符号表达式被表示成字符串和字符串组。符号函数和符号方程的区别是符号函数没有等号,而符号方程必须有等号。 符号变量的定义 MA TLAB有默认的符号自变量,但在各种情况下默认的自变量是不同的。系统默认的自变量主要有x、x1、y、y1、z、v、u、t、theta、alpha。对于这些变量MA TLAB 的默认规则与平时数学习惯大致相同,即: 当这些变量中的某一个与其他变量组成符号数学表达式时,这个变量即为默认的自变量; 当这些变量中的某几个组成符号数学表达式是,默认自变量的顺序是:x>x1>y>y1>z>v>u>t>theta>alpha 例如:

当数学表达式为cos(2*x*a^2)时,默认的自变量为x; 当数学表达式为cos(2*x*v)时,默认的自变量为x; 当数学表达式为cos(2*t*alpha)时,默认的自变量为t; 符号变量可以通过命令syms和sym定义,syms命令一个可以定义一个或多个符号变量。sym一个只能定义一个符号变量。 >> syms x y z t >> who Y our variables are: t x y z >> syms u >> who Y our variables are: t u x y z >> x=sym('x'); >> t=sym('t'); >> z=sym('z'); >> y=sym('y'); >> who Y our variables are: ans t x y z 符号表达式的定义 MA TLAB7.0当中,符号表达式可以通过基本赋值语句,采用单引号或sym/syms

Mathematica入门教程

Mathematica入门教程 Mathematica的基本语法特征 如果你是第一次使用Mathematica,那么以下几点请你一定牢牢记住: Mathematica中大写小写是有区别的,如Name、name、NAME等是不同的变量名或函数名。 系统所提供的功能大部分以系统函数的形式给出,内部函数一般写全称,而且一定是以大写英文字母开头,如Sin[x],Conjugate[z]等。 乘法即可以用*,又可以用空格表示,如2 3=2*3=6 ,x y,2 Sin[x]等;乘幂可以用“^”表示,如x^0.5,Tan[x]^y。 自定义的变量可以取几乎任意的名称,长度不限,但不可以数字开头。 当你赋予变量任何一个值,除非你明显地改变该值或使用Clear[变量名]或“变量名=.”取消该值为止,它将始终保持原值不变。 一定要注意四种括号的用法:()圆括号表示项的结合顺序,如(x+(y^x+1/(2x)));[]方括号表示函数,如Log[x],BesselJ[x,1];{}大括号表示一个“表”(一组数字、任意表达式、函数等的集合),如{2x,Sin[12 Pi],{1+A,y*x}};[[]]双方括号表示“表”或“表达式”的下标,如a[[2,3]]、{1,2,3}[[1]]=1。 Mathematica的语句书写十分方便,一个语句可以分为多行写,同一行可以写多个语句(但要以分号间隔)。当语句以分号结束时,语句计算后不做输出(输出语句除外),否则将输出计算的结果。 一.数的表示及计算 1.在Mathematica中你不必考虑数的精确度,因为除非你指定输出精度,Mathematica总会以绝对精确的形式输出结果。例如:你输入 In[1]:=378/123,系统会输出Out[1]:=126/41,如果想得到近似解,则应输入 In[2]:=N[378/123,5],即求其5位有效数字的数值解,系统会输出Out[2]:=3.073 2,另外Mathematica还可以根据你前面使用的数字的精度自动地设定精度。 Mathematica与众不同之处还在于它可以处理任意大、任意小及任意位精度的数值,如100^7000,2^(-2000)等数值可以很快地求出,但在其他语言或系统中这是不可想象的,你不妨试一试N[Pi,1000]。 Mathematica还定义了一些系统常数,如上面提到的Pi(圆周率的精确值),还有E(自然对数的底数)、I(复数单位),Degree(角度一度,Pi/180),Infinity(无穷大)等,不要小看这些简单的符号,它们包含的信息远远大于我们所熟知的它们的近似值,它们的精度也是无限的。 二.“表”及其用法 “表”是Mathematica中一个相当有用的数据类型,它即可以作为数组,又可以作为矩阵;除此以外,你可以把任意一组表达式用一个或一组{}括起来,进行运算、存储。可以说表是任意对象的一个集合。它可以动态地分配内存,

Mathematica中的常用函数命令

第8章Mathematica中的常用函数8.1 运算符及特殊符号 Linel 执行Line,不显示结果 Linel,line2 顺次执行Line1,Line2,并显示结果 ?name 关于系统变量name的信息 ??name 关于系统变量name的全部信息 !command 执行Dos命令 N! N的阶乘 !!filename 显示文件内容 <>filename 打开文件写 Expr>>>filename 打开文件从文件末写 ( ) 结合率 [ ] 函数 { } 一个表 <*MathFun*> 在c语言中使用math的函数 (*Note*) 程序的注释 #n 第n今参数 ## 所有参数 Rule& 把rule作用于后面的式子 % 前一次的输出 %% 倒数第二次的输出 Var::mote 变量var的注释 “Astring”字符串 Context 上下文 A+b 加 a-b 减 A*b或ab 乘 A/b 除 8.2 系统常量 Pi 3.1415的无限精度数值 E 2.17828的无限精度数值 Catalan 0.915966Catalan常数 EulerGamma 0.5772Euler常数 Khinchin 2.68545Khinchin Glaisher 0.915966Glaisher GoldenRatio 1.61803黄金分割数 Degree π/l80角度弧度换算 I 复数单位 Infinity 无穷大

-Infinity 负无穷大 Complexlnfinity 复无穷大 Indeterminate 不定式 8.3 代数计算 Expand[expr] 展开表达式 Factor[expr] 展开表达式 Simplify[expr] 化简表达式 FullSimplify[expr] 将特殊函数也进行化简PowerExpand[expr] 展开所有的幂次形式ComplexExpand[expr,{x1,x2…}] 按复数实部虚部展开FunctionExpand[expr] 化简表达式中的特殊函数 Collect[expr,x] 合并同次项 Collect[expr,{x1,x2,…}] 合并x1,x2,...的同次项 Together[expr] 通分 Apart[expr] 部分分式展开 Apart[expr,var] 对var的部分分式展开 Cancel[expr] 约分 ExpandAll[expr] 展开表达式 ExpandAll[expr,patt] 展开表达式 FactorTermsrpoly] 提出共有的数字因子 FactorTerms[poly,x] 提出与x无关的数字因子 FactorTerms[poly,(x1,x2…)] 提出与xi无关的数字因子 Coefficient[expr,form] 多项式expr中form的系数 Coefficient[expr,form,n] 多项式expr中form^n的系数 Exponent[expr,form] 表达式expr中form的最高指数 Numerator[expr] 表达式expr的分子 Denominator[expr] 表达式expr的分母 ExpandNumerator[expr] 展开expr的分子部分 8.4 解方程 Solve[eqns,vats] 从方程组eqns中解出Vats Solve[eqns,vats,elims] 从方程组eqns中削去变量elims,解出vats DSolve[eqn,y,x] 解微分方程,其中、y是x的函数 DSolve[{eqnl,eqn2,…},{y1,y2…},] 解微分方程组,其中yi是x的函数DSolve[eqn,y,{x1,x2…}]解偏微分方程 Eliminate[eqns,Vats] 把方程组eqns中变量vars约去SolveAlways[eqns,vars] 给出等式成立的所有参数满足的条件Reduce[eqns,Vats] 化简并给出所有可能解的条件LogicalExpand[expr] 用&&和,,将逻辑表达式展开InverseFunction[f] 求函数f的反函数 Root[f,k] 求多项式函数的第k个根

Mathematical常用功能大全-精简版

Mathematica for Windows 常用用法 一、Mathematica 的主要功能 Mathematica 是美国Wolfram 公司开发的一个功能强大的计算机数学系统,提供了范围广泛的数学计算功能,主要包括三个方面:符号演算、数值计算、图形。例如:多项式的四则运算、展开、因式分解,有理式的各种计算,有理方程、超越方程的解,向量和矩阵的各种计算,求极限、导数、极值、不定积分、定积分、幂级数展开式,求解微分方程,作一元、二元函数的图形等等。 二、Mathematica 的基本知识 1.输入表达式:直接输入一个表达式(包括算式和命令,长表达式用“Enter ”换行)后,按“Shift+Enter ”执行,执行后以“Out[命令序号]= ……”形式输出执行结果,输出的结果可在后续的表达式中使用。 若命令后有分号,则不输出执行结果(图形输出与Print 命令除外)。 “%”表示上一个输出,“%%”表示倒数第2个输出,“%i”表示第i个 命令的输出。 2.运算符:+、-、*、/、^ ,“*”可用空格代替,“^”表示乘方。 如:In[1]:=2^10,输出为“Out[1]= 1024”,其中“In[1]:=”不需要输入。 In[2]:=3+5,Out[2]= 8;In[3]:=%-2,Out[3]= 6; In[4]:=%2+4,Out[4]= 12; In[5]:=1/3-1/4,Out[5]=12 1 ;In[6]:=N[%],Out[6]= 0.0833333; In[7]:=N[%5+12,10],Out[7]= 12.08333333(注意字母的大小写) 3.变量赋值:变量=表达式,“x=.”或Clear[x] 表示清除对x 的赋值。 表达式/.t ->c ,将表达式中的t 全替换成c 。?x ,查x 信息。 4.常用的数学常数:Pi (π)、E(e)、Infinity (∞)、I (1-) 5.常用的数学函数:Abs, Sin, Cos, Tan, Cot, ArcSin, Log (自然对数), Sqrt, Exp 如:In[1]:=Sqrt[2]+1;In[2]:=Sin[2]+ArcSin[1];In[3]:=Exp[2]+% (自变量用[ ]括,区分大小写,首字母大写) 三、常用运算 1.多项式运算:In[1]:= (2+4*x^2)*(1-x)^3 或 In[1]:= t = (2+4*x^2)*(1-x)^3 (将右端表达式赋值给t ); In[2]:=a=t/.x->4 (计算表达式t 当x=4时的值,并赋值给变量a ) In[3]:=a=. (清除变量a ) In[3]:=Expand[t](展开);In[4]:=Factor[%](把上一个结果因式分解) 2.解方程:In[1]:=Solve[x^2+3*x = = 2];In[2]:=N[%]; In[3]:=Solve[a*x-b= = 0, x]; In[4]:=NSolve[{x-2*y= =0,x^2-y= =1},{x,y}](解方程组并得到数值解) 3.自定义函数:In[1]:= f [x_ ]:=x^2+2*x ; In[2]:=f[5]+7; In[3]:=f[a+b] 4.求极限:In[1]:=Limit[Sin[x]/x, x ->0]; In[2]:=Limit[(1+1/n)^n, n->Infinity],Out[2]=E 5.求(偏)导数:In[1]:=D[a*x^2+3, x];In[2]:=D[x^2+y^3-Sin[2*y], y](对y 的偏导数); In[3]:=D[Log[x], {x,2}] (求对x 的二阶导数); In[4]:=D[Sin[x+y]*Exp[z*y^2],x,y] (求对x 、y 的二阶混合偏导数); In[5]:=Simplify[%] (对前一结果化简); In[6]:=D[Sin[x+y]*Exp[z*y^2],{x,2},{y,3}] 6.求不定积分:In[1]:=Integrate[x^2,x];In[2]:=Integrate[1/(x^2+a^2),x] 7.定积分:In[1]:=Integrate[x^2, {x,0,1}];In[2]:=Integrate[x^2,{x,a,b}]; In[3]:=Integrate[x^2+y^2, {x,0,a},{y,0,b}];(求矩形域上的二重积分) In[4]:=Integrate[1, {x,-1,1},{y,-Sqrt[1-x^2],Sqrt[1-x^2]}];Out[4]=Pi (圆面积) 8.幂级数展开:In[1]:=Series[Exp[x],{x,0,4}](在x=0处展开到x 的四次幂) 9.矩阵的输入和输出:In[1]:= a ={{1,2},{3,4}}(定义一个2x2的矩阵a ,按 行写); In[2]:=MatrixForm[a](输出为矩阵形式);In[3]:=Transpose[a](a 的转置); In[4]:=a[[2]](a 的第2行);In[5]:=Tanspose[a][[2]](a 的第2列); In[6]:=Inverse[a](求a 的逆矩阵);In[7]:=Det[a](矩阵的行列式); In[8]:=Eigenvalues[a](求特征值);In[9]:=Eigenvectors[a](求特征向量); In[10]:=RowReduce[a](把a 化为阶梯形,可用于求矩阵的秩、判断线性相关性); In[11]:= b ={{5,6,7},{8,9,10}};In[12]:= a .b (矩阵a 与b 的乘积) 10.解线性方程组: In[1]:= a ={{3,4,5,6},{6,8,10,12},{4,5,6,7},{5,6,7,8}};(a 的秩为2) In[2]:= b ={1,2,3,5}(列向量);(增广矩阵的秩也为2) In[3]:=LinearSolve[a,b](求线性方程组ax=b 的一个特解); In[4]:=NullSpace[a](求线性方程组ax=0的一个基础解系); In[5]:= x =k1%4[[1]]+k2%4[[2]]+%3(ax=b 的全部解,k1、k2为任意常数) 11.求和:In[1]:=NSum[Sin[n]/n^3,{n,1,Infinity}](求级数∑ ∞=13sin n n n 的和) 12.求极小值:In[1]:=FindMinimum[Sin[x]*Cos[x],{x,0.5}](求函数在0.5附 近的极小值); In[2]:=FindMinimum[Sin[x*y]*Exp[x^2],{x,0.2}, {y,0.3}](求多元函数极小值) 13.求解线性规划问题:Min cx ,mx ≥b ,x ≥0,求向量x 。 In[1]:= c ={2,-3}(列向量);In[2]:= m ={{-1,-1},{1,-1},{1,0}}; In[3]:= b ={-10,2,1}; In[4]:=LinearProgramming[c,m,b] 14.数据拟合:In[1]:= d ={{1,2.18},{1.2,2.56},{1.6,3.0},{1.8,2.66}}; In[2]:= f =Fit[d,{1, x, x^2}, x](求和上面4个点吻合最好的二次多项式f ); 检验效果:In[3]:=ListPlot[d](画d 中4个点的图); In[4]:=Plot[f,{x,0.8,2.0}](画多项式f 在x 从0.8到2.0之间的图); In[5]:=Show[%3, %4](把上面两个图画在一起) 注:函数集{1, x, x^2}可以是更高次的或其它函数集,如三角函数集等。 15.一元函数作图:In[1]:=Plot[Exp[-x^2]*Sin[6*x],{x,-2,2}](如图1) 参数方程作图:In[2]:=ParametricPlot[{Sin[t]^3,Cos[t]^3},{t,0,2*Pi}] 16.二元函数作图:In[1]:=Plot3D[Sin[x*y],{x,-Pi, Pi},{y,-Pi, Pi}];(如图2) In[2]:=Plot3D[Sin[x*y],{x,-Pi, Pi},{y,-Pi, Pi},PlotPoints->40, ViewPoint->{2,-3,2}] In[3]:=ParametricPlot3D[{Cos[u]*Cos[v],Sin[u]*Cos[v],Sin[v]},{u,0,2*P i},{v,-Pi/2,Pi/2}] 17.数据画图:In[1]:= d ={{1,2},{3,4},{7,6}};In[2]:=ListPlot[d]; In[3]:=ListPlot[d, PlotStyle->{RGBColor[1,0,0], PointSize[0.02]}](红色 的大点); 或直接用 In[4]:=ListPlot[{1,2},{3,4},{7,6}] 代替“In[2]:=”。 18.作图范围:In[1]:=Plot[x-x^3/6,{x,-4,4}]; In[2]:=Plot[x-x^3/6,{x,-4,4},PlotRange->{-5,2}](限定纵坐标(函数值)范围) 19.图形组合:In[1]:=Plot[{Sin[x],Cos[x]},{x,0,2*Pi}];或 In[2]:= g1=Plot[Sin[x],{x,0,2*Pi}, PlotStyle->{RGBColor[1,0,0]}]; In[3]:= g2=Plot[Cos[x],{x,0,2*Pi}, PlotStyle->{RGBColor[0,0,1]}]; In[4]:=Show[g1,g2](把g1、g2画在一起) 20.文件的使用:In[1]:= y =25;In[2]:= a ={{1,4},{2,6}};In[3]:= f [x_ ]:=x^2 ; In[4]:= g =Plot[Sin[x],{x,0,2*Pi}, PlotStyle->{RGBColor[1,0,0]}]; In[5]:=Save[“abc .m”,a,y,f,g](将a, y, f, g 保存在文件“abc .m ”中,扩 展名为m ); In[6]:=!!abc .m (显示文件内容); In[1]:=<8,3,4];In[2]:=x=10; In[3]:=y=20;In[4]:=If[x==y,a,b] 2. 循环:(1) For[初值,条件,增量表达式,循环体] 先赋初值,再判断条件,条件为真时执行循环体,最后计算增量,再判断条件。 In[1]:=For[a=1, a<5, a=a+1, Print[a]] In[2]:=For[k=1;s=0;t=1, k<=10, k=k+1, s=s+k ;t=t*k] In[3]:=Print[“s=”,s , “\n ”, “t=”,t ] In[4]:=For[k=1, k<3, k=k+1, Plot[Sin[x],{x,k,2*Pi+k}]] (2) Do[循环体,{循环变量,起始值,终止值,步长}] In[1]:=s=0;Do[s=s+i,{i,1,100,1}];s In[2]:=Do[p[i]=Plot[Sin[i*x],{x,0,Pi}],{i,1,2}] In[3]:=Show[p[1],p[2]] 五、一个编程例子 ===================================================== (* 这是一个例题 每行后按回车键 用半角标点符号*) Print["请回答3个题目"] For[i=1,i<=3,i=i+1, a=Random[Integer,{1,100}]; b=Random[Integer,{1,100}]; Print["第(",i,")题 ",a,"+",b,"=?"]; c=Input["请输入计算结果"]; If[c==a+b, Print[" 对了!"], Print[" 错,应为 ",a+b] ] ]; Print["没有题目了。"] ====================================================== 六、编程练习:从数据文件中读出5组身高与体重数据(ReadList ),(1) 画出散点图(ListPlot );(2) 用Fit 求出拟合直线;(3) 用回归公式求出回归直线; (4) 画出回归直线的图形(Plot );(5) 将回归直线和散点图画在一起(Show )。 注:数据文件内容为 1.54 48 1.6 55 1.65 60 1.71 62 1.74 70

相关文档
相关文档 最新文档