Mathematica8.0 中文教程

合集下载

数学软件Mathematica

数学软件Mathematica
最后一个分量
Take[list,k]
前 k 个分量
Take[list,-k]
最后 k 个分量
Take[list,{i}]
{list[[i]]}
Take[list,{i,j}]
{list[[i]],list[[i+1]], ..., list[j]}
list[[i;;j]]
同上
Take[list,{i,j,h}]
Degree
角度到弧度的转换系数,Pi/180
E
自然对数的底,2.71828...
EulerGamma
Euler 常数:
GoldenRatio
黄金分割数:
I
虚部单位
Infinity
无穷大
Pi
圆周率
整数,有理数,实数(任意精度和机器精度),复数
*
基本运算符
基本运算:
+ - * /
加减乘除
{list[[i]],list[[i+h]], ... }
list[[i;;j;;h]]
同上
*
列表修改
Drop[list,{k}]
删除第 k 个分量
Drop[list,k]
删除前 k 个分量
Drop[list,-k]
In[2]:= g[x_,y_]:=2*x+y (* 函数 *)
In[3]:= f[2,3] (* 结果是什么? *)
*
字符串
字符串:用双引号括起来的字符序列
字符串相关函数
Characters[str]
转化为字符列表
StringJoin[s1,s2,...]
字符串合并
s1<>s2<>...

Mathematica 8.0 简体中文版安装(激活)方法

Mathematica 8.0 简体中文版安装(激活)方法

“手动激活”。记下“手动激活mathematica”窗口中“第一步”下面列出的十四位的Math ID号,例如Math ID: 6102-27684-29913
5 切换窗口运行Mathematica_8_kg.exe程序,出现窗口
时,将刚才记下的14位Math ID号输入到上面窗口的Math ID栏中,输入结束时敲键盘上的Enter键,特别,两个“Press Generate Button”均变成了相应的Activation Key 代码序列和Password 序列。而且在Mathematica_8_kg.exe程序所在目录中生成了一个文件,其文件名为Mathpass(注意无扩展文件名),其内容类似于

如果是win 7或Macos 请自己搜索“Mathematica\Licensing”子目录在磁盘系统上的位置,并将Mathpass文件拷贝到相应目录中。
到此安装完成。
请将MathPass文件分别拷贝到
目录C:\Documents and Settings\Administrator\Application Data\Mathematica\Licensing
和目录C:\Documents and Settings\All Users\Application Data\Mathematica\Licensing
Mathematica 8.0 简体中文版安装方法
1 首先运行keygen目录中的vcredist_x86.exe(适用于win 32位系统)
或vcredist_x64Βιβλιοθήκη exe(适用于win 64位系统)
安装VC2010运行库。
2 运行m8.exe安装mathematica 8.0.1 简体中文版 (记下安装的目的地目录)

Mathematica使用教程

Mathematica使用教程

Mathematica使⽤教程第⼆章 Mathematica 简介Mathematica 是⼀个符号计算与数值计算的通⽤数学软件包,是由美国的物理学家Stephen Wolfram 所领导的⼀个⼩组开发成功并推向市场的。

Mathematica 由最初的1.0、1.2、2.0、2.2、2.4、3.0版,到现在的4.0版,⽬前国内常⽤的版本是Windows 下的3.0及4.0版。

与Mathcad 和MATLAB 相⽐,Mathematica 才称得上是⼀个真正的数学符号计算软件包,因为只有它的内核是以符号计算为基础的,⽐如你可以定义⼀些数学规则,让它为你进⾏符号推导演算⼯作。

在Mathematica 中,你可以像Mathcad 那样进⾏草稿式的数学计算,你也可以像MATLAB ⼀样进⾏命令式的数学计算。

本章以4.0版为基础,介绍Mathematica 的使⽤⽅法。

2.1 Mathematica 的集成环境及基本操作当Mathematica 运⾏时,会出现如图所⽰的窗⼝。

右边的⼩窗⼝,我们称为数学⼯具⾯板,它包含多种数学符号,更多的符号可从命令菜单File/Palettes 中得到,利⽤它,可以像Mathcad ⼀样输⼊数学算式,⽐如上⾯计算的积分,完全可以通过数学⼯具⾯板,在Mathematica 中写成20[2]x Sin x dx π的形式,但这种输⼊⽅法有两个问题:⾸先,Mathematica 的输⼊操作不如Mathcad ⽅便,其次,由于Mathematica 的函数及符号太多,导致这种输⼊⽅法效率太低。

因此,我们对这种直观的命令输⼊⽅法将不做过多的介绍。

有兴趣的读者可以查阅相关的帮助主题。

笔者认为,使⽤Mathematica 计算数学问题最有效的⽅法是,直接通过键盘输⼊每个函数所代表的英⽂字符串。

左边的⼤窗⼝,Mathematica 称之为Notebook ,Mathematica 可以将在Notebook 中输⼊的命令存⼊⼀个扩展名为“.nb ”的⽂件中,⾸次进⼊时默认的⽂件名为Untitled-1.nb 。

Mathematica常用函数的中文说明及使用方法

Mathematica常用函数的中文说明及使用方法

Mathematica常⽤函数的中⽂说明及使⽤⽅法Mathematica常⽤函数的中⽂说明及使⽤⽅法---------------------------------------------------------------------注:为了对Mathematica有⼀定了解,使同学系统掌握Mathematica的强⼤功能,将常⽤函数的中⽂说明及使⽤⽅法总结如下,希望能对⼤家有所帮助。

---------------------------------------------------------------------⼀、运算符及特殊符号Line1; 执⾏Line,不显⽰结果Line1,line2 顺次执⾏Line1,2,并显⽰结果name 关于系统变量name的信息name 关于系统变量name的全部信息!command 执⾏Dos命令n! N的阶乘!!filename 显⽰⽂件内容<Expr>> 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应⽤于exprexpr//.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的系数Coefficient[expr, form, n] 多项式expr中form^n的系数Exponent[expr, form] 表达式expr中form的最⾼指数Numerator[expr] 表达式expr的分⼦Denominator[expr] 表达式expr的分母ExpandNumerator[expr] 展开expr的分⼦部分ExpandDenominator[expr] 展开expr的分母部分TrigExpand[expr] 展开表达式中的三⾓函数TrigFactor[expr] 给出表达式中的三⾓函数因⼦TrigFactorList[expr] 给出表达式中的三⾓函数因⼦的表TrigReduce[expr] 对表达式中的三⾓函数化简TrigToExp[expr] 三⾓到指数的转化ExpToTrig[expr] 指数到三⾓的转化RootReduce[expr]ToRadicals[expr]四、解⽅程Solve[eqns, vars] 从⽅程组eqns中解出varsSolve[eqns, vars, elims] 从⽅程组eqns中削去变量elims,解出vars DSolve[eqn, y, x] 解微分⽅程,其中y是x的函数DSolve[{eqn1,eqn2,...},{y1,y2...},x]解微分⽅程组,其中yi是x的函数DSolve[eqn, y, {x1,x2...}] 解偏微分⽅程Eliminate[eqns, vars] 把⽅程组eqns中变量vars约去SolveAlways[eqns, vars] 给出等式成⽴的所有参数满⾜的条件Reduce[eqns, vars] 化简并给出所有可能解的条件LogicalExpand[expr] ⽤&&和||将逻辑表达式展开InverseFunction[f] 求函数f的逆函数Root[f, k] 求多项式函数的第k个根Roots[lhs==rhs, var] 得到多项式⽅程的所有根五、微积分函数D[f, x] 求f[x]的微分D[f, {x, n}] 求f[x]的n阶微分D[f,x1,x2..] 求f[x]对x1,x2...偏微分Dt[f, x] 求f[x]的全微分df/dxDt[f] 求f[x]的全微分dfDt[f, {x, n}] n阶全微分df^n/dx^nDt[f,x1,x2..] 对x1,x2..的偏微分Integrate[f, x] f[x]对x在的不定积分Integrate[f, {x, xmin, xmax}] f[x]对x在区间(xmin,xmax)的定积分Integrate[f, {x, xmin, xmax}, {y, ymin, ymax}] f[x,y]的⼆重积分Limit[expr, x->x0] x趋近于x0时expr的极限Residue[expr, {x,x0}] expr在x0处的留数Series[f, {x, x0, n}] 给出f[x]在x0处的幂级数展开Series[f, {x, x0,nx}, {y, y0, ny}]先对y幂级数展开,再对xNormal[expr] 化简并给出最常见的表达式SeriesCoefficient[series, n] 给出级数中第n次项的系数SeriesCoefficient[series, {n1,n2...}]'或Derivative[n1,n2...][f] ⼀阶导数InverseSeries[s, x] 给出逆函数的级数ComposeSeries[serie1,serie2...] 给出两个基数的组合SeriesData[x,x0,{a0,a1,..},nmin,nmax,den]表⽰⼀个在x0处x的幂级数,其中ai为系数O[x]^n n阶⼩量x^nO[x, x0]^n n阶⼩量(x-x0)^n六、多项式函数Variables[poly] 给出多项式poly中独⽴变量的列表CoefficientList[poly, var] 给出多项式poly中变量var的系数CoefficientList[poly, {var1,var2...}]给出多项式poly中变量var(i)的系数列表PolynomialMod[poly, m] poly中各系数mod m同余后得到的多项式,m可为整式PolynomialQuotient[p, q, x] 以x为⾃变量的两个多项式之商式p/q PolynomialRemainder[p, q, x] 以x为⾃变量的两个多项式之余式PolynomialGCD[poly1,poly2,...] poly(i)的最⼤公因式PolynomialLCM[poly1,poly2,...] poly(i)的最⼩公倍式PolynomialReduce[poly, {poly1,poly2,...},{x1,x2...}]得到⼀个表{{a1,a2,...},b}其中Sum[ai*polyi]+b=polyResultant[poly1,poly2,var] 约去poly1,poly2中的varFactor[poly] 因式分解(在整式范围内)FactorTerms[poly] 提出poly中的数字公因⼦FactorTerms[poly, {x1,x2...}] 提出poly中与xi⽆关项的数字公因⼦FactorList[poly]给出poly各个因⼦及其指数{{poly1,exp1},{...}...}FactorSquareFreeList[poly]FactorTermsList[poly,{x1,x2...}] 给出各个因式列表,第⼀项是数字公因⼦,第⼆项是与xi⽆关的因式,其后是与xi有关的因式按升幂的排列Cyclotomic[n, x] n阶柱函数Decompose[poly, x] 迭代分解,给出{p1,p2,...},其中p1(p2(...))=poly InterpolatingPolynomial[data, var] 在数据data上的插值多项式data可以写为{f1,f2..}相当于{{x1=1,y1=f1}..}data可以写为{{x1,f1,df11,df12,..},{x2,f2,df21..}可以指定数据点上的n阶导数值RootSum[f, form] 得到f[x]=0的所有根,并求得Sum[form[xi]]七、随机函数Random[type,range] 产⽣type类型且在range范围内的均匀分布随机数type可以为Integer,Real,Complex,不写默认为Realrange为{min,max},不写默认为{0,1}Random[] 0~1上的随机实数SeedRandom[n] 以n为seed产⽣伪随机数如果采⽤了 <在2.0版本为 <<"D:\\Math\\PACKAGES\\STATISTI\\Continuo.m" Random[distribution]可以产⽣各种分布如Random[BetaDistribution[alpha, beta]]Random[NormalDistribution[miu,sigma]]等常⽤的分布如BetaDistribution,CauchyDistribution,ChiDistribution, NoncentralChiSquareDistribution,ExponentialDistribution, ExtremeValueDistribution,NoncentralFRatioDistribution, GammaDistribution,HalfNormalDistribution, LaplaceDistribution, LogNormalDistribution,LogisticDistribution,RayleighDistribution,NoncentralStudentTDistribution, UniformDistribution, WeibullDistribution⼋、数值函数N[expr] 表达式的机器精度近似值N[expr, n] 表达式的n位近似值,n为任意正整数NSolve[lhs==rhs, var] 求⽅程数值解NSolve[eqn, var, n] 求⽅程数值解,结果精度到n位NDSolve[eqns, y, {x, xmin, xmax}]微分⽅程数值解NDSolve[eqns, {y1,y2,...}, {x, xmin, xmax}]微分⽅程组数值解FindRoot[lhs==rhs, {x,x0}] 以x0为初值,寻找⽅程数值解FindRoot[lhs==rhs, {x, xstart, xmin, xmax}]NSum[f, {i,imin,imax,di}] 数值求和,di为步长NSum[f, {i,imin,imax,di}, {j,..},..] 多维函数求和NProduct[f, {i, imin, imax, di}]函数求积NIntegrate[f, {x, xmin, xmax}] 函数数值积分优化函数:FindMinimum[f, {x,x0}] 以x0为初值,寻找函数最⼩值FindMinimum[f, {x, xstart, xmin, xmax}]ConstrainedMin[f,{inequ},{x,y,..}]inequ为线性不等式组,f为x,y..之线性函数,得到最⼩值及此时的x,y..取值ConstrainedMax[f, {inequ}, {x, y,..}]同上LinearProgramming[c,m,b] 解线性组合c.x在m.x>=b&&x>=0约束下的最⼩值,x,b,c为向量,m为矩阵LatticeReduce[{v1,v2...}] 向量组vi的极⼩⽆关组数据处理:Fit[data,funs,vars]⽤指定函数组对数据进⾏最⼩⼆乘拟和data可以为{{x1,y1,..f1},{x2,y2,..f2}..}多维的情况emp: Fit[{10.22,12,3.2,9.9}, {1, x, x^2,Sin[x]}, x]Interpolation[data]对数据进⾏差值,data同上,另外还可以为{{x1,{f1,df11,df12}},{x2,{f2,.}..}指定各阶导数InterpolationOrder默认为3次,可修改ListInterpolation[array]对离散数据插值,array可为n维ListInterpolation[array,{{xmin,xmax},{ymin,ymax},..}] FunctionInterpolation[expr,{x,xmin,xmax}, {y,ymin,ymax},..]以对应expr[xi,yi]的为数据进⾏插值Fourier[list] 对复数数据进⾏付⽒变换InverseFourier[list] 对复数数据进⾏付⽒逆变换Min[{x1,x2...},{y1,y2,...}]得到每个表中的最⼩值Max[{x1,x2...},{y1,y2,...}]得到每个表中的最⼤值Select[list, crit] 将表中使得crit为True的元素选择出来Count[list, pattern] 将表中匹配模式pattern的元素的个数Sort[list] 将表中元素按升序排列Sort[list,p] 将表中元素按p[e1,e2]为True的顺序⽐较list的任两个元素e1,e2,实际上Sort[list]中默认p=Greater集合论:Union[list1,list2..] 表listi的并集并排序Intersection[list1,list2..] 表listi的交集并排序Complement[listall,list1,list2...]从全集listall中对listi的差集九、虚数函数Re[expr] 复数表达式的实部Im[expr] 复数表达式的虚部Abs[expr] 复数表达式的模Arg[expr] 复数表达式的辐⾓Conjugate[expr] 复数表达式的共轭⼗、数的头及模式及其他操作Integer _Integer 整数Real _Real 实数Complex _Complex 复数Rational_Rational 有理数(*注:模式⽤在函数参数传递中,如MyFun[Para1_Integer,Para2_Real]规定传⼊参数的类型,另外也可⽤来判断If[Head[a]==Real,...]*) IntegerDigits[n,b,len] 数字n以b近制的前len个码元RealDigits[x,b,len] 类上FromDigits[list] IntegerDigits的反函数Rationalize[x,dx] 把实数x有理化成有理数,误差⼩于dxChop[expr, delta] 将expr中⼩于delta的部分去掉,dx默认为10^-10 Accuracy[x] 给出x⼩数部分位数,对于Pi,E等为⽆限⼤Precision[x] 给出x有效数字位数,对于Pi,E等为⽆限⼤SetAccuracy[expr, n] 设置expr显⽰时的⼩数部分位数SetPrecision[expr, n] 设置expr显⽰时的有效数字位数⼗⼀、区间函数Interval[{min, max}] 区间[min, max](* Solve[3 x+2==Interval[{-2,5}],x]*) IntervalMemberQ[interval, x] x在区间内吗?IntervalMemberQ[interval1,interval2] 区间2在区间1内吗?IntervalUnion[intv1,intv2...] 区间的并IntervalIntersection[intv1,intv2...] 区间的交⼗⼆、矩阵操作a.b.c 或 Dot[a, b, c] 矩阵、向量、张量的点积Inverse[m] 矩阵的逆Transpose[list] 矩阵的转置Transpose[list,{n1,n2..}]将矩阵list 第k⾏与第nk列交换Det[m] 矩阵的⾏列式Eigenvalues[m] 特征值Eigenvectors[m] 特征向量Eigensystem[m] 特征系统,返回{eigvalues,eigvectors}LinearSolve[m, b] 解线性⽅程组m.x==bNullSpace[m] 矩阵m的零空间,即m.NullSpace[m]==零向量RowReduce[m] m化简为阶梯矩阵Minors[m, k] m的所有k*k阶⼦矩阵的⾏列式的值(伴随阵,好像是) MatrixPower[mat, n] 阵mat⾃乘n次Outer[f,list1,list2..] listi中各个元之间相互组合,并作为f的参数的到的矩阵Outer[Times,list1,list2]给出矩阵的外积SingularValues[m] m的奇异值,结果为{u,w,v},m=Conjugate[Transpose[u]].DiagonalMatrix[w].vPseudoInverse[m] m的⼴义逆QRDecomposition[m] QR分解SchurDecomposition[m] Schur分解LUDecomposition[m] LU分解⼗三、表函数(*“表”,我认为是Mathematica中最灵活的⼀种数据类型 *)(*实际上表就是表达式,表达式也就是表,所以下⾯list==expr *) (*⼀个表中元素的位置可以⽤于⼀个表来表⽰ *)表的⽣成{e1,e2,...} ⼀个表,元素可以为任意表达式,⽆穷嵌套Table[expr,{imax}] ⽣成⼀个表,共imax个元素Table[expr,{i, imax}] ⽣成⼀个表,共imax个元素expr[i]Table[expr,{i,imin,imax},{j,jmin,jmax},..] 多维表Range[imax] 简单数表{1,2,..,imax}Range[imin, imax, di] 以di为步长的数表Array[f, n] ⼀维表,元素为f[i] (i从1到n)Array[f,{n1,n2..}] 多维表,元素为f[i,j..] (各⾃从1到ni) IdentityMatrix[n] n阶单位阵DiagonalMatrix[list] 对⾓阵元素操作Part[expr, i]或expr[[i]]第i个元expr[[-i]] 倒数第i个元expr[[i,j,..]] 多维表的元expr[[{i1,i2,..}] 返回由第i(n)的元素组成的⼦表First[expr] 第⼀个元Last[expr] 最后⼀个元Head[expr] 函数头,等于expr[[0]]Extract[expr, list] 取出由表list制定位置上expr的元素值Take[list, n] 取出表list前n个元组成的表Take[list,{m,n}] 取出表list从m到n的元素组成的表Drop[list, n] 去掉表list前n个元剩下的表,其他参数同上Rest[expr] 去掉表list第⼀个元剩下的表Select[list, crit] 把crit作⽤到每⼀个list的元上,为True的所有元组成的表表的属性Length[expr] expr第⼀曾元素的个数Dimensions[expr] 表的维数返回{n1,n2..},expr为⼀个n1*n2...的阵TensorRank[expr] 秩Depth[expr] expr最⼤深度Level[expr,n] 给出expr中第n层⼦表达式的列表Count[list, pattern] 满⾜模式的list中元的个数MemberQ[list, form] list中是否有匹配form的元FreeQ[expr, form] MemberQ的反函数Position[expr, pattern] 表中匹配模式pattern的元素的位置列表Cases[{e1,e2...},pattern]匹配模式pattern的所有元素ei的表表的操作Append[expr, elem] 返回在表expr的最后追加elem元后的表Prepend[expr, elem] 返回在表expr的最前添加elem元后的表Insert[list, elem, n] 在第n元前插⼊elemInsert[expr,elem,{i,j,..}]在元素expr[[{i,j,..}]]前插⼊elemDelete[expr, {i, j,..}] 删除元素expr[[{i,j,..}]]后剩下的表DeleteCases[expr,pattern]删除匹配pattern的所有元后剩下的表ReplacePart[expr,new,n] 将expr的第n元替换为newSort[list] 返回list按顺序排列的表Reverse[expr] 把表expr倒过来RotateLeft[expr, n] 把表expr循环左移n次RotateRight[expr, n] 把表expr循环右移n次Partition[list, n] 把list按每n各元为⼀个⼦表分割后再组成的⼤表Flatten[list] 抹平所有⼦表后得到的⼀维⼤表Flatten[list,n] 抹平到第n层Split[list] 把相同的元组成⼀个⼦表,再合成的⼤表FlattenAt[list, n] 把list[[n]]处的⼦表抹平Permutations[list] 由list的元素组成的所有全排列的列表Order[expr1,expr2] 如果expr1在expr2之前返回1,如果expr1在expr2之后返回-1,如果expr1与expr2全等返回0Signature[list] 把list通过两两交换得到标准顺序所需的交换次数(排列数)以上函数均为仅返回所需表⽽不改变原表AppendTo[list,elem] 相当于list=Append[list,elem];PrependTo[list,elem] 相当于list=Prepend[list,elem];⼗四、绘图函数⼆维作图Plot[f,{x,xmin,xmax}] ⼀维函数f[x]在区间[xmin,xmax]上的函数曲线Plot[{f1,f2..},{x,xmin,xmax}] 在⼀张图上画⼏条曲线ListPlot[{y1,y2,..}] 绘出由离散点对(n,yn)组成的图ListPlot[{{x1,y1},{x2,y2},..}] 绘出由离散点对(xn,yn)组成的图ParametricPlot[{fx,fy},{t,tmin,tmax}] 由参数⽅程在参数变化范围内的曲线ParametricPlot[{{fx,fy},{gx,gy},...},{t,tmin,tmax}]在⼀张图上画多条参数曲线选项:PlotRange->{0,1} 作图显⽰的值域范围AspectRatio->1/GoldenRatio⽣成图形的纵横⽐PlotLabel ->label 标题⽂字Axes ->{False,True} 分别制定是否画x,y轴AxesLabel->{xlabel,ylabel}x,y轴上的说明⽂字Ticks->None,Automatic,fun⽤什么⽅式画轴的刻度AxesOrigin ->{x,y} 坐标轴原点位置AxesStyle->{{xstyle}, {ystyle}}设置轴线的线性颜⾊等属性Frame ->True,False 是否画边框FrameLabel ->{xmlabel,ymlabel,xplabel,yplabel}边框四边上的⽂字FrameTicks同Ticks 边框上是否画刻度GridLines 同Ticks 图上是否画栅格线FrameStyle ->{{xmstyle},{ymstyle}设置边框线的线性颜⾊等属性ListPlot[data,PlotJoined->True] 把离散点按顺序连线PlotSytle->{{style1},{style2},..}曲线的线性颜⾊等属性PlotPoints->15 曲线取样点,越⼤越细致三维作图Plot3D[f,{x,xmin,xmax}, {y,ymin,ymax}]⼆维函数f[x,y]的空间曲⾯Plot3D[{f,s}, {x,xmin,xmax}, {y,ymin,ymax}]同上,曲⾯的染⾊由s[x,y]值决定ListPlot3D[array] ⼆维数据阵array的⽴体⾼度图ListPlot3D[array,shades]同上,曲⾯的染⾊由shades[数据]值决定ParametricPlot3D[{fx,fy,fz},{t,tmin,tmax}]⼆元数⽅程在参数变化范围内的曲线ParametricPlot3D[{{fx,fy,fz},{gx,gy,gz},...},{t,tmin,tmax}]多条空间参数曲线选项:ViewPoint ->{x,y,z} 三维视点,默认为{1.3,-2.4,2}Boxed -> True,False 是否画三维长⽅体边框BoxRatios->{sx,sy,sz} 三轴⽐例BoxStyle 三维长⽅体边框线性颜⾊等属性Lighting ->True 是否染⾊LightSources->{s1,s2..} si为某⼀个光源si={{dx,dy,dz},color}color为灯⾊,向dx,dy,dz⽅向照射AmbientLight->颜⾊函数慢散射光的光源Mesh->True,False是否画曲⾯上与x,y轴平⾏的截⾯的截线MeshStyle 截线线性颜⾊等属性MeshRange->{{xmin,xmax}, {ymin,ymax}}⽹格范围ClipFill->Automatic,None,color,{bottom,top}指定图形顶部、底部超界后所画的颜⾊Shading ->False,True 是否染⾊HiddenSurface->True,False 略去被遮住不显⽰部分的信息等⾼线ContourPlot[f,{x,xmin,xmax},{y,ymin,ymax}]⼆维函数f[x,y]在指定区间上的等⾼线图ListContourPlot[array] 根据⼆维数组array数值画等⾼线选项:Contours->n 画n条等⾼线Contours->{z1,z2,..} 在zi处画等⾼线ContourShading -> False 是否⽤深浅染⾊ContourLines -> True 是否画等⾼线ContourStyle -> {{style1},{style2},..}等⾼线线性颜⾊等属性FrameTicks 同上密度图DensityPlot[f,{x,xmin,xmax},{y,ymin,ymax}]⼆维函数f[x,y]在指定区间上的密度图ListDensityPlot[array] 同上图形显⽰Show[graphics,options] 显⽰⼀组图形对象,options为选项设置Show[g1,g2...] 在⼀个图上叠加显⽰⼀组图形对象GraphicsArray[{g1,g2,...}]在⼀个图上分块显⽰⼀组图形对象SelectionAnimate[notebook,t]把选中的notebook中的图画循环放映选项:(此处选项适⽤于全部图形函数)Background->颜⾊函数指定绘图的背景颜⾊RotateLabel -> True 竖着写⽂字TextStyle 此后输出⽂字的字体,颜⾊⼤⼩等ColorFunction->Hue等把其作⽤于某点的函数值上决定某点的颜⾊RenderAll->False 是否对遮挡部分也染⾊MaxBend 曲线、曲⾯最⼤弯曲度⼗四、绘图函数(续)图元函数Graphics[prim, options]prim为下⾯各种函数组成的表,表⽰⼀个⼆维图形对象Graphics3D[prim, options]prim为下⾯各种函数组成的表,表⽰⼀个三维图形对象SurfaceGraphics[array, shades]表⽰⼀个由array和shade决定的曲⾯对象ContourGraphics[array]表⽰⼀个由array决定的等⾼线图对象DensityGraphics[array]表⽰⼀个由array决定的密度图对象以上定义图形对象,可以进⾏对变量赋值,合并显⽰等操作,也可以存盘Point[p] p={x,y}或{x,y,z},在指定位置画点Line[{p1,p2,..}]经由pi点连线Rectangle[{xmin, ymin}, {xmax, ymax}] 画矩形Cuboid[{xmin,ymin,zmin},{xmax,ymax,zmax}]由对⾓线指定的长⽅体Polygon[{p1,p2,..}] 封闭多边形Circle[{x,y},r] 画圆Circle[{x,y},{rx,ry}] 画椭圆,rx,ry为半长短轴Circle[{x,y},r,{a1,a2}] 从⾓度a1~a2的圆弧Disk[{x, y}, r] 填充的园、椭圆、圆弧等参数同上Raster[array,ColorFunction->f] 颜⾊栅格Text[expr,coords] 在坐标coords上输出表达式PostScript["string"] 直接⽤PostScript图元语⾔写Scaled[{x,y,..}] 返回点的坐标,且均⼤于0⼩于1颜⾊函数(指定其后绘图的颜⾊)GrayLevel[level] 灰度level为0~1间的实数RGBColor[red, green, blue] RGB颜⾊,均为0~1间的实数Hue[h, s, b] 亮度,饱和度等,均为0~1间的实数CMYKColor[cyan, magenta, yellow, black] CMYK颜⾊其他函数(指定其后绘图的⽅式)Thickness[r] 设置线宽为rPointSize[d] 设置绘点的⼤⼩Dashing[{r1,r2,..}] 虚线⼀个单元的间隔长度ImageSize->{x, y} 显⽰图形⼤⼩(像素为单位)ImageResolution->r 图形解析度r个dpiImageMargins->{{left,right},{bottom,top}}四边的空⽩ImageRotated->False 是否旋转90度显⽰流程控制—————————————————————————————————————⼗五、流程控制分⽀If[condition, t, f] 如果condition为True,执⾏t段,否则f段If[condition, t, f, u] 同上,即⾮True⼜⾮False,则执⾏u段Which[test1,block1,test2,block2..] 执⾏第⼀为True的testi对应的blockiSwitch[expr,form1,block1,form2,block2..]执⾏第⼀个expr所匹配的formi所对应的blocki段循环Do[expr,{imax}] 重复执⾏expr imax次Do[expr,{i,imin,imax}, {j,jmin,jmax},...]多重循环While[test, body] 循环执⾏body直到test为FalseFor[start,test,incr,body]类似于C语⾔中的for,注意","与";"的⽤法相反examp: For[i=1;t =x,i^2<10,i++,t =t+i;Print[t]]异常控制Throw[value] 停⽌计算,把value返回给最近⼀个Catch处理Throw[value, tag] 同上,Catch[expr] 计算expr,遇到Throw返回的值则停⽌Catch[expr, form] 当Throw[value, tag]中Tag匹配form时停⽌其他控制Return[expr] 从函数返回,返回值为exprReturn[ ] 返回值NullBreak[ ] 结束最近的⼀重循环Continue[ ] 停⽌本次循环,进⾏下⼀次循环Goto[tag] ⽆条件转向Label[Tag]处Label[tag] 设置⼀个断点Check[expr,failexpr] 计算expr,如果有出错信息产⽣,则返回failexpr的值Check[expr,failexpr,s1::t1,s2::t2,...]当特定信息产⽣时则返回failexprCheckAbort[expr,failexpr]当产⽣abort信息时放回failexprInterrupt[ ] 中断运⾏Abort[ ] 中断运⾏TimeConstrained[expr,t] 计算expr,当耗时超过t秒时终⽌MemoryConstrained[expr,b]计算expr,当耗⽤内存超过b字节时终⽌运算交互式控制Print[expr1,expr2,...] 顺次输出expri的值examp: Print[ "X=" , X//N , " " ,f[x+1]];Input[ ] 产⽣⼀个输⼊对话框,返回所输⼊任意表达式Input["prompt"] 同上,prompt为对话框的提⽰Pause[n] 运⾏暂停n秒函数编程—————————————————————————————————————⼗六、函数编程(*函数编程是Mathematica中很有特⾊也是最灵活的⼀部分,它充分体现了 *)(*Mathematica的“⼀切都是表达式”的特点,如果你想使你的Mathematica程 *)(*序快于⾼级语⾔,建议你把本部分搞通*)纯函数Function[body]或body& ⼀个纯函数,建⽴了⼀组对应法则,作⽤到后⾯的表达式上Function[x, body] 单⾃变量纯函数Function[{x1,x2,...},body]多⾃变量纯函数#,#n 纯函数的第⼀、第n个⾃变量## 纯函数的所有⾃变量的序列examp: #1^#2& [2,3] 返回第⼀个参数的第⼆个参数次⽅映射Map[f,expr]或f/@expr 将f分别作⽤到expr第⼀层的每⼀个元上得到的列表Map[f,expr,level] 将f分别作⽤到expr第level层的每⼀个元上Apply[f,expr]或f@@expr 将expr的“头”换为fApply[f,expr,level] 将expr第level层的“头”换为fMapAll[f,expr]或f//@expr把f作⽤到expr的每⼀层的每⼀个元上MapAt[f,expr,n] 把f作⽤到expr的第n个元上MapAt[f,expr,{i,j,...}] 把f作⽤到expr[[{i,j,...}]]元上MapIndexed[f,expr] 类似MapAll,但都附加其映射元素的位置列表Scan[f, expr] 按顺序分别将f作⽤于expr的每⼀个元Scan[f,expr,levelspec] 同上,仅作⽤第level层的元素复合映射Nest[f,expr,n] 返回n重复合函数f[f[...f[expr]...]]NestList[f,expr,n] 返回0重到n重复合函数的列表{expr,f[expr],f[f[expr]]..} FixedPoint[f, expr] 将f复合作⽤于expr直到结果不再改变,即找到其不定点FixedPoint[f, expr, n] 最多复合n次,如果不收敛则停⽌FixedPointList[f, expr] 返回各次复合的结果列表FoldList[f,x,{a,b,..}] 返回{x,f[x,a],f[f[x,a],b],..}Fold[f, x, list] 返回FoldList[f,x,{a,b,..}]的最后⼀个元ComposeList[{f1,f2,..},x]返回{x,f1[x],f2[f1[x]],..}的复合函数列表Distribute[f[x1,x2,..]] f对加法的分配率Distribute[expr, g] 对g的分配率Identity[expr] expr的全等变换Composition[f1,f2,..] 组成复合纯函数f1[f2[..fn[ ]..]Operate[p,f[x,y]] 返回p[f][x, y]Through[p[f1,f2][x]] 返回p[f1[x],f2[x]]Compile[{x1,x2,..},expr]编译⼀个函数,编译后运⾏速度可以⼤⼤加快Compile[{{x1,t1},{x2,t2}..},expr] 同上,可以制定函数参数类型⼗七、替换规则lhs->rhs 建⽴了⼀个规则,把lhs换为rhs,并求rhs的值lhs:>rhs 同上,只是不⽴即求rhs的值,知道使⽤该规则时才求值Replace[expr,rules] 把⼀组规则应⽤到expr上,只作⽤⼀次expr /. rules 同上expr //.rules 将规则rules不断作⽤到expr上,直到⽆法作⽤为⽌Dispatch[{lhs1->rhs1,lhs2->rhs2,...}]综合各个规则,产⽣⼀组优化的规则组查询函数、串函数—————————————————————————————————————⼗⼋、查询函数(*查询函数⼀般是检验表达式是否满⾜某些特殊形式,并返回True或False*)(*可以在Mathematica中⽤“?*Q”查询到 *)ArgumentCountQ MatrixQAtomQ MemberQDigitQ NameQEllipticNomeQ NumberQEvenQ NumericQExactNumberQ OddQFreeQ OptionQHypergeometricPFQ OrderedQInexactNumberQ PartitionsQIntegerQ PolynomialQIntervalMemberQ PrimeQInverseEllipticNomeQ SameQLegendreQ StringMatchQLetterQ StringQLinkConnectedQ SyntaxQLinkReadyQ TrueQListQ UnsameQLowerCaseQ UpperCaseQMachineNumberQ ValueQMatchLocalNameQ VectorQMatchQ⼗九、字符串函数"text" ⼀个串,头为_String"s1"<>"s2"<>..或StringJoin["s1","s2",..] 串的连接StringLength["string"] 串长度StringReverse["string"] 串反转StringTake["string", n] 取串的前n个字符的⼦串,参数同Take[]StringDrop["string", n] 参见Drop,串也就是⼀个表StringInsert["string","snew",n] 插⼊,参见Insert[]StringPosition["string", "sub"] 返回⼦串sub在string中起⽌字母位置StringReplace["string",{"s1"->"p1",..}] ⼦串替换StringReplacePart["string", "snew", {m, n}]把string第m~n个字母之间的替换为snewStringToStream["string"] 把串当作⼀个输⼊流赋予⼀个变量Characters["string"] 把串"string"分解为每⼀个字符的表ToCharacterCode["string"] 把串"string"分解为每⼀个字符ASCII值的表FromCharacterCode[n] ToCharacterCode的逆函数FromCharacterCode[{n1,n2,..}]ToCharacterCode的逆函数ToUpperCase[string] 把串的⼤写形式ToLowerCase[string] 把串的⼩写形式CharacterRange["c1","c2"] 给出ASCII吗在c1到c2之间的字符列表ToString[expr] 把表达式变为串的形式ToExpression[input] 把⼀个串变为表达式Names["string"] 与?string同,返回与string同名的变量列表。

入门

入门

群:第一章Mathematica入门1. Mathematica概述目前最常用的版本是Mathematica8.0。

Mathematica的基本系统是用C语言编写的,因此能够很方便地移植到各种计算机系统上。

Mathematica拥有强大的数学计算功能,早期主要在数学、物理等理论研究领域中流传,近几年在工程技术领域中也已被广泛地应用。

Mathematica是一种数学分析(Math Analysis)型的软件,以符号计算见长。

其最大的优势在于用户可以得到解析符号解,只要用户愿意,还可以得到任意精度的数值解。

Mathematica主要有以下特点:(1)内容丰富,功能齐全Mathematica能够进行初等数学、高等数学、工程数学等的各种数值计算和符号运算。

特别是其符号运算功能,给数学公式的推导带来极大的方便。

它有很强的绘图能力,能方便的画出各种美观的曲线、曲面,甚至可以进行动画设计。

(2)语法简练、编程效率高Mathematica的语法规则简单,语句简练。

和其它高级语言(如C,Fortran语言)相比,其语法规则和表示方式更接近数学运算的思维和表达方式。

用Mathematica编程,用较少的语句,就可完成复杂的运算和公式推导等任务。

(3)操作简单,使用方便Mathematica命令易学易记,运行也非常方便。

用户既可以和Mathematica进行交互式的“对话”,逐个执行命令。

也可以进行“批处理”,将多个命令组成的程序,一次性地交给Mathematica,完成指定任务。

(4)和其它语言交互Mathematica和其它高级语言,如C,Fortran语言等能进行简单的交互,可以调用C,Fortran等的输出,并转化为Mathematica的表示形式,也可以将Mathematica的输出转化为C,Fortran语言和Tex编译器(注:Tex是著名的数学文章编辑软件,用它打印出的文章,字体漂亮、格式美观)所需的形式。

Mathematica完美教程-从入门到精通

Mathematica完美教程-从入门到精通
在Mathematica中的提供以下几个函数达到 转换的目的:
N[x] N[x,n] Rationalize[x] Rationalize[x,dx]
将x转换成实数
将x转换成近似实数, 精度为n 给出x的有理数近似值
给出x的有理数近似值, 误差小于dx
[举例] ln[1]=N[5/3,20] Out[1]=1.66666666666666666667 ln[2]:=N[%,10] Out[2]=1.66666667
• 2.特殊字符的输入
MathemMatica 还提供了用以输入各种特殊符号的 工具样。基本输入 工具样包含了常用的特殊字符 (上图),只要单击这些字符按钮即可输入。 若要输入其它的 特殊字符或运算符
号,必须使用从FILE 菜单中选取Complete Characters工具栏, 如图:
1.2 Mathematica的联机帮助系统
如果已经确知Mathematica 中有具有某个功能的函数,但不 知具体函数名,可以点击Built-in Functions按钮,再按功能 分类从粗到细一步一步找到具体的函数,例如,要找画一元 函数图形的函数,点击 Built-in Functions ->Graphics and Sound->2D Plots->Plot,找到Plot的帮助信息。
在Mathematica的Notebook界面下,可以用这种 交互方式完成各种运算,如函数作图,求极限、 解方程等,也可以用它编写像C那样的结构化程序。
在Mathematica系统中定义了许多功能强大的函数, 我们称之为内建函数(built-in function), 直接调 用这些函数可以取到事半功倍的效果。这些函数 分为两类: (1) 一类是数学意义上的函数,如:绝对值函数 Abs[x],正弦函数Sin[x],余弦函数Cos[x],以e为 底的对数函数Log[x],以a为底的对数函数Log[a,x] 等; (2) 第二类是命令意义上的函数,如作函数图形的 函数Plot[f[x],{x,xmin,xmax}],解方程函数 Solve[eqn,x],求导函数D[f[x],x]等。

Mathematica教程

Mathematica教程

编著:李开友四川机电职业技术学院基础系数学实验课程教学的实践与认识 看到“数学实验”几个字人们会问:做数学题不是靠一张纸、一支笔就行了吗,怎么像物理、化学一样要做实验了呢?对了,这是计算机技术和数学软件引入教学后出现的新事物,是数学教学体系、内容和方法改革的一项尝试。

几年前,设置数学实验课的构想一出现,立即在数学教育界引起反响。

1995年在原国家教委组织实施的“高等教育面向21世纪教学内容和课程体系改革”计划中,“理科非数学类专业高等数学课程体系和内容改革”项目的总体构想报告,就把“数学实验”列为高校非数学类专业的数学基础课之一,一些学校积极创造条件准备付诸实施。

通过实践,课程的指导思想更加明确,课程的内容设计基本确定,也取得了一些经验,并为教材建设奠定了基础。

数学教育在整个人才培养过程中的重要性是人所共知、不言而喻的,从小学到大学十几年,数学一直是一门主课,课程中讲的、练的、考的主要是计算方法、公式推导、定义叙述、定理证明,不妨统称为“算数学”。

对于将来要以数学为工具解决各种实际问题的学生来说,当然需要准确、快捷的计算和严密的逻辑推理,即要学好“算数学”,但是在计算、推理之前首先要用数学语言描述那个问题,建立数学模型,之后还要进行分析、修正,也就是要会“用数学”。

传统的数学教学体系和内容侧重于前者,只是在讲到每一部分的应用时举几个例子,这对于后者的训练,特别是综合应用的训练,是远远不够的。

近十几年来许多学校相继设置的数学建模课程,和最近几年蓬勃开展的全国大学生数学建模竞赛,是培养学生“用数学”能力的有益尝试,受到学生们的热烈欢迎和教育界的充分肯定。

开设数学实验课可以说是在总结“用数学”的基础上,为进一步提高学生“用数学”能力而进行的又一数学教改试验。

长期以来,内容多、负担重、枯燥乏味、学生学习积极性不高,一直困扰着大学数学教育,与此形成鲜明对照的是受大环境支配的计算机热。

由同学自己动手,用他们熟悉的、喜欢“玩”的计算机解决几个经过简化的实际问题,让学生亲身感受到用所学的数学解决实际问题的酸甜苦辣。

Mathematica软件使用入门讲解

Mathematica软件使用入门讲解

Mathematica软件使用入门目录第一章基本知识与基本操作 (3)1.1 Mathematica的基本语法特征 (3)1.2 Mathematica的启动、基本操作 (4)1.3 操作小技巧 (7)1.4 数值计算 (8)1.5 赋值与替换 (9)1.6 自定义函数 (10)1.7 方程与方程组解 (11)1.8 解不等式与不等式组 (12)1.9 由递推式求数列的通项公式 (13)1.10 作函数图像 (14)第二章运用Mathematica实现高等数学中的基本运算 (16)2.1 求极限运算 (16)2.2 求导数与微分 (18)2.3 求不定积分 (25)2.4 求定积分 (25)第三章实验练习题 (28)Mathematica是当今世界上最为流行的计算机代数系统之一.Mathematica系统是美国物理学家Stephen.Wolfram领导的一个小组开发的,后来他们成立了Wolfram研究公司.1987年推出了系统的1.0版;现在的最新版本是8.0版.Mathematica可以做:●符号计算和数值计算问题,如:能做多项式的计算、因式分解和展开等;●做各种有理式计算,求多项式、有理式方程和超越方程的精确解和近似解;●做向量、矩阵的各种计算;●求极限、导数、积分,做幂级数展开,求解某些微分方程等;●做任意位数的整数或分子分母为任意大整数的有理数的精确计算,做具有任意位精度的数值(实、复数值)的计算.●可以很方便地画出用各种方式表示的一元和二元函数的图形,通过图形,可以立即形象地掌握函数的某些特性,而这些特性一般是很难从函数的符号表达式中看清楚.第一章 基本知识与基本操作1.1 Mathematica 的基本语法特征使用Mathematica ,一定要牢牢记住:● Mathematica 中大写小写是有区别的,如Name 、name 、NAME 等是不同的变量名或函数名;● 系统所提供的功能大部分以系统函数的形式给出, 内部函数一般写全称, 而且一定是以大写英文字母开头, 如Sin[x], Cos[z]等;● 乘法即可以用*,又可以用空格表示,如2 3=2*3=6 , 2 Sin[x]=2* Sin[x] ● 乘幂可以用“^”表示,如x^0.5 表示: Tan[x]^y 表示: ● 自定义的变量可以取几乎任意的名称,长度不限,但不可以数字开头. ● 当你赋予变量任何一个值,除非你:明显地改变该值或 使用Clear[变量名] 或 使用“变量名=.”取消该值,否则它将始终保持原值不变.● 一定要注意四种括号的用法:0.5x yTan[x]( ):表示项的结合顺序,如: (x+(y^x+1/(2x)));[ ]:表示函数,如:Log[x], Sin[x];{ }:表示一个“表”(即是一组数字、或任意表达式、或函数等的一个有序集合),如:{2x,Sin[12 Pi],A,1}, {1+A,y*x,1,2};[[ ]]:双方括号表示“表”或“表达式”的下标,如:a; {3,5,7}[[2]]=5.a[[2,3]]表示:23●Mathematica的语句书写十分方便,一个语句可以分为多行写,同一行可以写多个语句(但要以分号间隔).●当语句以分号结束时,语句计算后不做输出(输出语句除外),否则将输出计算的结果.●Mathematica命令中的标点符号必须是英文的.1.2 Mathematica的启动、基本操作1.2.1 启动“Mathematica”:在windows操作系统中安装了Mathematica后,与其他的常用软件一样,可从“开始”→“程序”→“Mathematica5” Mathematica的主窗口并出现第一个notebook窗口(Untitled-1):1.2.2 简单使用:例1.1 计算+33的值①在“Untitled-1”窗口中输入:329/412+3^3②按下“Shift+Enter”(或数字键盘上的Enter键),就得到计算结果:其中“In[1]:=”是Mathematica自动加上的,表示第一个输入;“Out[1]:=”表示第一个输出.一般地:In[n]:= 表示第n个输入Out[n]:=表示第n个输出.注意:“In[n]:=”自动加上的,不能人工输入!1.2.3 保存结果:保存方法同一般的Windows软件:“文件”→“保存”⇒“另存为”窗口→在“查找范围”内找到目标文件夹→输入文件名(比如输入“1”)→“”.Mathematica 4或Mathematica 5的文件的后缀是“nb”,当输入“1”时,即产生文件“1.nb”.1.2.4打开文件1.nb启动Mathematica →“文件”→“打开”⇒打开”窗口:→在“查找范围”内找到文件“1.nb”→“”即可.1.2.5 退出Mathematica :与一般应用软件一样,单击右上方的“ ”按钮(或用菜单:“文件”→“退出”).1.3 操作小技巧1.3.1 Ctrl+K 的用途如果只知道命令的首写字母, 可在输入该首写字母(要大写),再按下“Ctrl+K ”组合键, 则所有以该字母为首的命令都列出来,只要用鼠标双击命令名就输入了该命令. 1.3.2 使用前面已有的结果 举例如下:例1.2 做如下操作:① 输入:Integrate[x^2*(11-Sin[x]),{x,-1,1}]按:“Shift +Enter ”; ② 输入:%+1,按:“Shift +Enter ”; ③ 输入:%+1,按:“Shift +Enter ”; ④ 输入:%1+1,按:“Shift +Enter ”; ⑤ 输入:%3+1,按:“Shift +Enter ”, 计算结果如下:Integrate[f,x]是求:()f x dx ⎰ Integrate[f,{x,xmin,xmax}]是求:maxmin()x x f x dx ⎰可见,“%”表示前一个计算结果;“%n”表示第n个计算结果.1.3.3删除行:见下图示1.4 数值计算请看下例:只要选定且删除此即可系统默认的计算结果,是精确的.N[],取近似值函数,默认输出6位有效数字.N[],取近似值函数,指定输出3位有效数字.1.5 赋值与替换X=. 或Clear[x] 清除赋给x的值expr/.{x->xval,y->yval} 用xval、yval分别替换expr中的x、y.例1.3输入:x=3;y=4;w=x+y 计算输入:Clear[x,y];计算输入:z=(x+y)^2 计算输入:z/.x->5 计算输入:Clear[x,y];计算输入:u=x+y 计算将(x+y)^2赋给z清除变量的定义和值变量替换:用5代替表达式z中的变量变量替换:输入:u/.{x->5,y->6} 计算 计算结果如下:1.6 自定义函数用户可以自行定义函数,一个函数一旦被定义好之后就可以象系的内部函数一样使用.例1.4 如要定义函数f(x)=x 2+3x-2只要键入:f[x_]:=x^2+3x-2即可.又如要定义分段函数2+1 < 0()= 2sin 0x x g x x x ⎧⎨≥⎩“:=”是定义符.左边f 是函数名,方括号内x 是自变量,其后的下划线“_”不能少.右边是函数的表达式.可键入:g[x_]:= Which[x<0,x^2+1,x>=0,2Sin[x]]或g[x_]:=If[x<0,x^2+1,2Sin[x]]请见以下计算结果:1.7 方程与方程组解例1.5 ① 解方程:0652=+-x x输入:Solve[x^2-5x+6==0,x]即可.② 解方程组 输入:Solve[{x+y==1,3x^2-y^2==0},{x,y}] 即可(结果见下图).Solve 是解方程或方程组的函数.其格式为:Solve[eqns,vars]其中方程用exp==0的形式(其中exp 为未知元的表达式,“= =”必须是2个等号);方程列表 2213x y x y +=⎧⎨-=⎩未知数列表1.8 解不等式与不等式组例1.6 ① 解不等式组⎪⎩⎪⎨⎧>-<--0101222x x x输入: <<Algebra`InequalitySolve`InequalitySolve[{x^2-5x-6<0,x^2-1>0}, x]即可.② 解不等式3)3(12>--x x输入: <<Algebra`InequalitySolve`即可(结果见下图)不等式列表 变量列表加载解不等式的程序包,这是必须的,可谓是固定的格式, “< ”为键盘上的小于号, “`”为数字键1的左侧的Algebra —— 代数类InequalitySolve —— 解不等式程序包绝对值函数注: Mathematica 系统有内部函数.还有一些系统扩展的功能但不是作为内部函数的、以文件的形式存储在磁盘上的文件,要使用它们,必须用一定的方式来调用这些文件,这些文件我们称之为程序包. 调用方式之一如上所述:<<Algebra`InequalitySolve`或用:Needs["Algebra`InequalitySolve`"]1.9 由递推式求数列的通项公式例1.7 设 求数列的通项公式只要输入:<<DiscreteMath`RSolve` RSolve[{a[n]==n *a[n-1], a[1]==1}, a[n], n]即可(结果见下图)11,1,n n a na a -==函数名 递推关系 初始条件调用程序包 类名,此处是函数类 函数类中的这个函数离散类 离散类中的这个函数1.10 作函数图像例1.8在同一坐标系中作出2-1y x 和y=sinx在[-2,2]内的图像.输入: Plot[{x^2-1,Sin[x]},{x,-2,2}] 结果见下图例1.9作出sinxcosy的三维图形输入:Plot3D[Sin[x]*Cos[y],{x,-2Pi,2Pi},{y,-即可(结果见下图)增加取样点提高光滑度第二章 运用Mathematica 实现高等数学中的基本运算极限、导数和积分是高等数学中的主要概念和基本运算,如果你在科研中遇到较复杂的求极限、求导数或求积分问题,Mathematica 可以帮你快速解决这些问题。

mathmatic使用说明

mathmatic使用说明

Mathematica教程M athematica是美国Wolfram研究公司生产的一种数学分析型的软件,以符号计算见长,也具有高精度的数值计算功能和强大的图形功能。

假设在Windows环境下已安装好Mathematica4.0,启动Windows后,在“开始”菜单的“程序”中单击,就启动了Mathematica4.0,在屏幕上显示如图的Notebook窗口,系统暂时取名Untitled-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]等。

必须注意的是:如果输入了不合语法规则的表达式,系统会显示出错信息,并且不给出计算结果,例如:要画正弦函数在区间[-10,10]上的图形,输入plot[Sin[x],{x,-10,10}],则系统提示“可能有拼写错误,新符号‘plot’ 很像已经存在的符号‘Plot’”,实际上,系统作图命令“Plot”第一个字母必须大写,一般地,系统内建函数首写字母都要大写。

Mathematica简易教程

Mathematica简易教程
4. 使用条件运算符定义和IF命名定义函数 如定义:
Page 21
使用条件运算符,基本格式为:f[x_]:=expr/;condition,当condition条件满足 时才把expr赋给f(x)。
Page 22
当然,使用If命令也可以定义上面的函数,If语句的格式为If[条件,值1,值 2],如果条件成立取“值1”,否则取“值2”,用If语句定义如下:
mathematicapage目录第一章mathematica简介第二章mathematica的基本量第三章mathematica的基本运算第四章函数作图第五章微积分的基本操作page第一章mathematica简介mathematica由美国物理学家stephenwolfram领导开发的他们组建wolfram研究公司mathematica是一个计算机代数系统把符号运算数值计算与图形显示集一体可以完成上述三项功能更重要的是它把这些功能融合在一个系统里使它们成为一个整体
3.2.4 解条件方程
在作方程计算时,可以把一个方程看做你要处理的主要方程,而把其 他方程作为必须满足的辅助条件,你就会发现这样处理很方便。 在Mathematica中,我们通常是首先命名辅助条件组,然后用名字把辅 助条件包含在你要用函数Solve[]求解的方程组中。
Page 40
3.3 求和与求积
Mathematica简介与入门
目录
第一章 Mathematica简介 第二章 Mathematica的基本量
第三章 Mathematica的基本运算
第四章 函数作图 第五章 微积分的基本操作
Page 2
第一章 Mathematica简介
Mathematica由美国物理学家Stephen Wolfram领导开发的,他们组建Wolfram 研究公司 Mathematica是一个计算机代数系统,把 符号运算、数值计算与图形显示集一体, 可以完成上述三项功能,更重要的是它把 这些功能融合在一个系统里,使它们成为 一个整体.此外,Mathematica还是一个 易于扩充的系统,即实际上提供了功能强 大的程序设计语言,可以定义用户需要的 各种函数,完成用户需要的各种工作,系 统本身还提供了一大批用这个语言写出的 专门程序或软件包 Mathematica的发布标志着现代科技计算 的开始。Mathematica是世界上通用计算 系统中最强大的系统。自从1988发布以来, 它已经对如何在科技和其它领域运用计算 机产生了深刻的影响

mathematic教程

mathematic教程

Mathematica教程第1章Mathematica概述1.1 运行和启动:介绍如何启动Mathematica软件,如何输入并运行命令1.2 表达式的输入:介绍如何使用表达式1.3 帮助的使用:如何在mathematica中寻求帮助第2章Mathematica的基本量2.1 数据类型和常量:mathematica中的数据类型和基本常量2.2 变量:变量的定义,变量的替换,变量的清除等2.3 函数:函数的概念,系统函数,自定义函数的方法2.4 表:表的创建,表元素的操作,表的应用2.5 表达式:表达式的操作2.6 常用符号:经常使用的一些符号的意义第3章Mathematica的基本运算3.1 多项式运算:多项的四则运算,多项式的化简等3.2 方程求解:求解一般方程,条件方程,方程数值解以及方程组的求解3.3 求积求和:求积与求和第4章函数作图4.1 二维函数作图:一般函数的作图,参数方程的绘图4.2 二维图形元素:点,线等图形元素的使用4.3 图形样式:图形的样式,对图形进行设置4.4 图形的重绘和组合:重新显示所绘图形,将多个图形组合在一起4.5 三维图形的绘制:三维图形的绘制,三维参数方程的图形,三维图形的设置第5章微积分的基本操作5.1 函数的极限:如何求函数的极限5.2 导数与微分:如何求函数的导数,微分5.3 定积分与不定积分:如何求函数的不定积分和定积分,以及数值积分5.4 多变量函数的微分:如何求多元函数的偏导数,微分5.5 多变量函数的积分:如何计算重积分5.6 无穷级数:无穷级数的计算,敛散性的判断第6章微分方程的求解6.1 微分方程的解:微分方程的求解6.2 微分方程的数值解:如何求微分方程的数值解第7章Mathematica程序设计7.1 模块:模块的概念和定义方法7.2 条件结构:条件结构的使用和定义方法7.3 循环结构:循环结构的使用7.4 流程控制第8章Mathematica中的常用函数8.1 运算符和一些特殊符号:常用的和不常用一些运算符号8.2 系统常数:系统定义的一些常量及其意义8.3 代数运算:表达式相关的一些运算函数8.4 解方程:和方程求解有关的一些操作8.5 微积分相关函数:关于求导,积分,泰勒展开等相关的函数8.6 多项式函数:多项式的相关函数8.7 随机函数:能产生随机数的函数函数8.8 数值函数:和数值处理相关的函数,包括一些常用的数值算法8.9 表相关函数:创建表,表元素的操作,表的操作函数8.10 绘图函数:二维绘图,三维绘图,绘图设置,密度图,图元,着色,图形显示等函数8.11 流程控制函数第1章Mathematica概述1.1 Mathematica的启动和运行Mathematica是美国Wolfram研究公司生产的一种数学分析型的软件,以符号计算见长,也具有高精度的数值计算功能和强大的图形功能。

Mathematica使用教程

Mathematica使用教程

Mathematica使⽤教程Mathematica 使⽤教程⼀、要点Mathematica 是⼀个敏感的软件. 所有的Mathematica 函数都以⼤写字母开头; 圆括号( ),花括号{ },⽅括号[ ]都有特殊⽤途, 应特别注意; 句号“.”,分号“;”,逗号“,”感叹号“!”等都有特殊⽤途, 应特别注意; ⽤主键盘区的组合键Shfit+Enter 或数字键盘中的Enter键执⾏命令.⼆、介绍案例1. 输⼊与输出例1 计算 1+1:在打开的命令窗⼝中输⼊1+2+3并按组合键Shfit+Enter 执⾏上述命令,则屏幕上将显⽰:In[1] : =1+2+3 Out[1] =6这⾥In[1] : = 表⽰第⼀个输⼊,Out[1]= 表⽰第⼀个输出,即计算结果.2. 数学常数Pi 表⽰圆周率π; E 表⽰⽆理数e; I 表⽰虚数单位i ; Degree 表⽰π/180; Infinity 表⽰⽆穷⼤.注:Pi,Degree,Infinity 的第⼀个字母必须⼤写,其后⾯的字母必须⼩写.3. 算术运算Mathematica 中⽤“+”、“-”、“*”、“/” 和“^”分别表⽰算术运算中的加、减、乘、除和乘⽅.例2 计算π+ --213121494891100.输⼊ 100^(1/4)*(1/9)^(-1/2)+8^(-1/3)*(4/9)^(1/2)*Pi则输出 3103π+这是准确值. 如果要求近似值,再输⼊N[%] 则输出这⾥%表⽰上⼀次输出的结果,命令N[%]表⽰对上⼀次的结果取近似值. 还⽤ %% 表⽰上上次输出的结果,⽤ %6表⽰Out[6]的输出结果.注:关于乘号*,Mathematica 常⽤空格来代替. 例如,x y z 则表⽰x*y*z,⽽xyz 表⽰字符串,Mathematica 将它理解为⼀个变量名. 常数与字符之间的乘号或空格可以省略.4. 代数运算例3 分解因式 232++x x输⼊ Factor[x^2+3x+2] 输出 )x 2)(x 1(++ 例4 展开因式 )2)(1(x x ++输⼊ Expand[(1+x)(2+x)] 输出 2x x 32++例5 通分 3122+++x x 输⼊ Together[1/(x+3)+2/(x+2)]输出 )x 3)(x 2(x38+++例6 将表达式)3)(2(38x x x+++ 展开成部分分式输⼊ Apart[(8+3x)/((2+x)(3+x))]输出 3x 12x 2+++ 例7 化简表达式 )3)(1()2)(1(x x x x +++++输⼊ Simplify[(1+x)(2+x)+(1+x)(3+x)]输出 2x 2x 75++三、部分函数1. 内部函数Mathematica 系统内部定义了许多函数,并且常⽤英⽂全名作为函数名,所有函数名的第⼀个字母都必须⼤写,后⾯的字母必须⼩写. 当函数名是由两个单词组成时,每个单词的第⼀个字母都必须⼤写,其余的字母必须⼩写. Mathematica 函数(命令)的基本格式为函数名[表达式,选项] 下⾯列举了⼀些常⽤函数:算术平⽅根x Sqrt[x] 指数函数x e Exp[x]对数函数x a log Log[a,x]对数函数x ln Log[x]三⾓函数 Sin[x], Cos[x], Tan[x], Cot[x], Sec[x], Csc[x] 反三⾓函数ArcSin[x], ArcCos[x], ArcTan[x], ArcCot[x], AsrcSec[x], ArcCsc[x]双曲函数 Sinh[x], Cosh[x], Tanh[x], 反双曲函数 ArcSinh[x], ArcCosh[x], ArcTanh[x] 四舍五⼊函数 Round[x] (*取最接近x 的整数*) 取整函数 Floor[x] (*取不超过x 的最⼤整数*) 取模 Mod[m,n] (*求m/n 的模*) 取绝对值函数 Abs[x] n 的阶乘 n! 符号函数Sign[x] 取近似值 N[x,n] (*取x 的有n 位有效数字的近似值,当n 缺省时,n 的默认值为6*)例8 求π的有6位和20位有效数字的近似值.输⼊ N[Pi] 输出输⼊ N[Pi, 20] 输出注:第⼀个输⼊语句也常⽤另⼀种形式:输⼊ Pi235] 输出 (3) 输⼊ Round[] 输出 -2 例10 计算表达式)6.0arctan(226sin 2ln 1132+-+-e π的值输⼊ 1/(1+Log[2])*Sin[Pi/6]-Exp[-2]/(2+2^(2/3))*ArcTan[.6] 输出2. ⾃定义函数在Mathematica 系统内,由字母开头的字母数字串都可⽤作变量名,但要注意其中不能包含空格或标点符号.变量的赋值有两种⽅式. ⽴即赋值运算符是“=”,延迟赋值运算符是“: =”. 定义函数使⽤的符号是延迟赋值运算符“: =”.例11 定义函数 12)(23++=x x x f ,并计算)2(f ,)4(f ,)6(f . 输⼊Clear[f,x]; (*清除对变量f 原先的赋值*) f[x_]:=x^3+2*x^2+1; (*定义函数的表达式*) f[2] (*求)2(f 的值*)f[x]/.{x->4} (*求)4(f 的值,另⼀种⽅法*)x=6; (*给变量x ⽴即赋值6*)f[x] (*求)6(f 的值,⼜⼀种⽅法*)输出17 97 289注:本例1、2、5⾏的结尾有“;”,它表⽰这些语句的输出结果不在屏幕上显⽰.四、解⽅程在Mathematica 系统内,⽅程中的等号⽤符号“==”表⽰. 最基本的求解⽅程的命令为 Solve[eqns, vars]它表⽰对系数按常规约定求出⽅程(组)的全部解,其中eqns 表⽰⽅程(组),vars 表⽰所求未知变量. 例12 解⽅程0232=++x x 输⼊Solve[x^2+3x+2==0, x] 输出 }}1x {},2x {{-→-→例13 解⽅程组 =+=+1dy cx by ax输⼊ Solve[{a x + b y == 0,c x + d y ==1}, {x,y}]输出+-→-→ad bc a y ,ad bc b x例14 解⽆理⽅程a x x =++-11输⼊ Solve[Sqrt[x-1]+ Sqrt[x+1] == a, x]输出 ??+→24a 4a 4x 很多⽅程是根本不能求出准确解的,此时应转⽽求其近似解. 求⽅程的近似解的⽅法有两种,⼀种是在⽅程组的系数中使⽤⼩数,这样所求的解即为⽅程的近似解;另⼀种是利⽤下列专门⽤于求⽅程(组)数值解的命令: NSolve[eqns, vars] (*求代数⽅程(组)的全部数值解*)FindRoot[eqns, {x, x0}, {y, y0} ,]后⼀个命令表⽰从点),,(00 y x 出发找⽅程(组)的⼀个近似解,这时常常需要利⽤图像法先⼤致确定所求根的范围,是⼤致在什么点的附近.例15 求⽅程013=-x 的近似解输⼊ NSolve[x^3-1== 0, x]输出 {{→x →x →x 输⼊ FindRoot[x^3-1==0,{x, .5}] 输出 {→x 1.}下⾯再介绍⼀个很有⽤的命令:Eliminate[eqns, elims] (*从⼀组等式中消去变量(组)elims*) 例16从⽅程组 ??=+=-+-+=++11)1()1(1222222y x z y x z y x 消去未知数y 、z .输⼊Eliminate[{x^2+y^2+z^2 ==1,x^2+(y-1)^2 + (z-1)^2 ==1, x + y== 1},{y, z}]输出 0x 3x 22==+-注:上⾯这个输⼊语句为多⾏语句,它可以像上⾯例⼦中那样在⾏尾处有逗号的地⽅将⾏与⾏隔开, 来迫使Mathematica 从前⼀⾏继续到下⼀⾏在执⾏该语句. 有时候多⾏语句的意义不太明确,通常发⽣在其中有⼀⾏本⾝就是可执⾏的语句的情形,此时可在该⾏尾放⼀个继续的记号“\”, 来迫使Mathematica 继续到下⼀⾏再执⾏该语句.五、保存与退出Mathematica 很容易保存Notebook 中显⽰的内容,打开位于窗⼝第⼀⾏的File 菜单,点击Save 后得到保存⽂件时的对话框,按要求操作后即可把所要的内容存为 *.nb ⽂件. 如果只想保存全部输⼊的命令,⽽不想保存全部输出结果,则可以打开下拉式菜单Kernel,选中Delete All Output,然后再执⾏保存命令. ⽽退出Mathematica 与退出Word 的操作是⼀样的.六、查询与帮助查询某个函数(命令)的基本功能,键⼊“函数名”,想要了解更多⼀些,键⼊“函数名”,例如,输⼊Plot则输出Plot[f,{x,xmin,xmax}] generates a plot of f as a functionof x from xmin to xmax. Plot[{f1,f2,…},{x,xmin,xmax}] plots several functions fi 它告诉了我们关于绘图命令“Plot”的基本使⽤⽅法.例17 在区间]1,1y=的图形.[-上作出抛物线2x输⼊ Plot[x^2,{x,-1,1}]则输出例18 .输⼊ Plot[{Sin[x],Cos[x]},{x,0,2Pi}]则输出Plot则Mathematica会输出关于这个命令的选项的详细说明,请读者试之.此外,Mathematica的Help菜单中提供了⼤量的帮助信息,其中Help菜单中的第⼀项Help Browser(帮助游览器)是常⽤的查询⼯具,读者若想了解更多的使⽤信息,则应⾃⼰通过Help菜单去学习.编辑本段Mathematica 基本运算a+mathematica数学实验(第2版) b+c 加a-b 减a b c 或 a*b*c 乘a/b 除-a 负号a^b 次⽅Mathematica 数字的形式256 整数实数11/35 分数2+6I 复数常⽤的数学常数Pi 圆周率,π=…E 尤拉常数,e=2.…Degree ⾓度转换弧度的常数,Pi/180I 虚数,其值为√-1Infinity ⽆限⼤指定之前计算结果的⽅法% 前⼀个运算结果%% 前⼆个运算结果%%…%(n个%) 前n个运算结果%n 或 Out[n] 前n个运算结果复数的运算指令a+bI 复数Conjugate[a+bI] 共轭复数Re[z], Im[z] 复数z的实数/虚数部分Abs[z] 复数z的⼤⼩或模数(Modulus)Arg[z] 复数z的幅⾓(Argument)Mathematica 输出的控制指令expr1; expr2; expr3 做数个运算,但只印出最後⼀个运算的结果expr1; expr2; expr3; 做数个运算,但都不印出结果expr; 做运算,但不印出结果编辑本段常⽤数学函数Sin[x],Cos[x],Tan[x],Cot[x],Sec[x],Csc[x] 三⾓函数,其引数的单位为弪度Sinh[x],Cosh[x],Tanh[x],… 双曲函数ArcSin[x],ArcCos[x],ArcTan[x] 反三⾓函数ArcCot[x],ArcSec[x],ArcCsc[x]ArcSinh[x],ArcCosh[x],ArcTanh[x],… 反双曲函数Sqrt[x] 根号Exp[x] 指数Log[x] ⾃然对数Log[a,x] 以a为底的对数Abs[x] 绝对值Round[x] 最接近x的整数Floor[x] ⼩於或等於x的最⼤整数Ceiling[x] ⼤於或等於x的最⼩整数Mod[a,b] a/b所得的馀数n! 阶乘Random[] 0⾄1之间的随机数(最新版本已经不⽤这个函数,改为使⽤RandomReal[])Max[a,b,c,...],Min[a,b,c,…] a,b,c,…的极⼤/极⼩值编辑本段数之设定x=a 将变数x的值设为ax=y=b 将变数x和y的值均设为bx=. 或 Clear[x] 除去变数x所存的值变数使⽤的⼀些法则xy 中间没有空格,视为变数xyx y x乘上y3x 3乘上xx3 变数x3x^2y 为 x^2 y次⽅运算⼦⽐乘法的运算⼦有较⾼的处理顺序编辑本段四个常⽤处理代数的指令Expand[expr] 将 expr展开Factor[expr] 将 expr因式分解Simplify[expr] 将 expr化简成精简的式⼦FullSimplify[expr] Mathematica 会尝试更多的化简公式,将 expr化成更精简的式⼦编辑本段多项式/分式转换的函数ExpandAll[expr] 把算是全部展开Together[expr] 将 expr各项通分在并成⼀项Apart[expr] 把分式拆开成数项分式的和Apart[expr,var] 视var以外的变数为常数,将 expr拆成数项的和Cancel[expr] 把分⼦和分母共同的因⼦消去编辑本段分母/分⼦的运算Denominator[expr] 取出expr的分母Numerator[expr] 取出expr的分⼦ExpandDenominator[expr] 展开expr的分母ExpandNumerator[expr] 展开expr的分⼦编辑本段多项式的另⼆种转换函数Collect[expr,x] 将 expr表⽰成x的多项式,如Collect[expr,{x,y,…}] 将 expr分别表⽰成 x,y,…的多项式FactorTerms[expr] 将 expr的数值因⼦提出,如 4x+2=2(2x+1)FactorTerms[expr,x] 将 expr中把所有不包含x项的因⼦提出FactorTerms[expr,{x,y,…}] 将 expr中把所有不包含{x,y,...}项的因⼦提出编辑本段三⾓函数、双曲函数和指数的运算TrigExpand[expr] 将三⾓函数展开TrigFactor[expr] 将三⾓函数所组成的数学式因式分解TrigReduce[expr] 将相乘或次⽅的三⾓函数化成⼀次⽅的基本三⾓函数之组合ExpToTrig[expr] 将指数函数化成三⾓函数或双曲函数TrigToExp[expr] 将三⾓函数或双曲函数化成指数函数复数、次⽅乘积之展开ComplexExpand[expr] 假设所有的变数都是实数来对 expr展开ComplexExpand[expr,{x,y,…}] 假设x,y,..等变数均为复数来对 expr展开PowerExpand[expr] 将多项式项次、系数与最⾼次⽅之取得Coefficient[expr,form] 於 expr中form的系数Exponent[expr,form] 於 expr中form的最⾼次⽅Part[expr,n] 或 expr[[n]] 在 expr项中第n个项代换运算⼦expr/.x->value 将 expr⾥所有的x均代换成valueexpr/.{x->value1,y->value2,…} 执⾏数个不同变数的代换expr/.{{x->value1},{x->value2},…} 将 expr代⼊不同的x值expr清除f的定义Remove[f] 将f⾃系统中清除掉含有预设值的Patterna_+b_. b的预设值为0,即若b从缺,则b以0代替x_ y_ y的预设值为1x_^y_ y的预设值为1条件式的⾃订函数lhs:=rhs/;condition 当condition成⽴时,lhs才会定义成rhsIf指令If[test,then,else] 若test为真,则回应then,否则回应elseIf[test,then,else,unknow] 同上,若test⽆法判定真或假时,则回应unknow 极限Limit[expr,x->c] 当x趋近c时,求expr的极限Limit[expr,x->c,Direction->1]Limit[expr,x->c,Direction->-1]微分D[f,x] 函数f对x作微分D[f,x1,x2,…] 函数f对x1,x2,…作微分D[f,{x,n}] 函数f对x微分n次D[f,x,NonConstants->{y,z,…}] 函数f对x作微分,将y,z,…视为x的函数全微分Dt[f] 全微分dfDt[f,x] 全微分Dt[f,x1,x2,…] 全微分Dt[f,x,Constants->{c1,c2,…}] 全微分,视c1,c2,…为常数不定积分Integrate[f,x] 不定积分∫f dx定积分Integrate[f,{x,xmin,xmax}] 定积分Integrate[f,{x,xmin,xmax},{y,ymin,ymax}] 定积分数列之和与积Sum[f,{i,imin,imax}] 求和Sum[f,{i,imin,imax,di}] 求数列和,引数i以di递增Sum[f,{i,imin,imax},{j,jmin,jmax}]Product[f,{i,imin,imax}] 求积Product[f,{i,imin,imax,di}] 求数列之积,引数i以di递增Product[f,{i,imin,imax},{j,jmin,jmax}]函数之泰勒展开式Series[expr,{x,x0,n}] 对 expr於x0点作泰勒级数展开⾄(x-x0)n项Series[expr,{x,x0,m},{y,y0,n}] 对x0和y0展开关系运算⼦a==b 等於a>b ⼤於a>=b ⼤於等於aa<=b ⼩於等於a!=b 不等於逻辑运算⼦!p notp||q||… orp&&q&&… andXor[p,q,…] exclusive orLogicalExpand[expr] 将逻辑表⽰式展开基本⼆维绘图指令Plot[f,{x,xmin,xmax}]画出f在xmin到xmax之间的图形Plot[{f1,f2,…},{x,xmin,xmax}]同时画出数个函数图形Plot[f,{x,xmin,xmax},option->value]指定特殊的绘图选项,画出函数f的图形Plot[]⼏种常⽤选项的指令选项预设值说明AspectRatio 1/GoldenRatio 图形⾼和宽之⽐例,⾼/宽Axes True 是否把坐标轴画出AxesLabel Automatic 为坐标轴贴上标记,若设定为AxesLabel->{ylabel},则为y轴之标记。

Mathematica-8-教程

Mathematica-8-教程

M a t h e m a t i c a-8-教程-CAL-FENGHAI.-(YICAI)-Company One1Mathematica 8 教程【Mathematica 简介】Mathematica 软件是由沃尔夫勒姆研究公司(Wolfram Research Inc.)研发的。

Mathematica 版发布于1988年6月23日。

发布之后,在科学、技术、媒体等领域引起了一片轰动,被认为是一个革命性的进步。

几个月后,Mathematica 就在世界各地拥有了成千上万的用户。

今天,Mathematica 已经在世界各地拥有了数以百万计的忠实用户。

Ma thematica 已经被工业和教育领域被广泛地采用。

实际上,Mathematica 负责将高级的数学和计算引入了传统上非技术的领域,极大的增加了科技软件的市场。

一个包含应用、咨询、书籍、和课程软件的行业支持着国际化的Mathematica 用户群,这个行业还在不断地膨胀。

随着沃尔夫勒姆研究公司不断地扩大和 Mathematica 的使用被不断地扩展到不同的领域,将会看到Mathematica 在全世界范围内对未来产品、重要研究发现、和教学的巨大影响。

数学软件是现在科研工作者的必备的工具,个人比较喜欢用Mathematica,因为它是最接近数学语言的。

Mathematica 在15日发布,其最显着的变化是允许自由形式的英文输入,而不再需要严格按照Mathematica语法,这类似于Wolfram|Alpha搜索引擎。

Mathematica 8允许用户按照自己习惯的思考过程输入方程式或问题,最令人激动的部分是软件不是逐行执行命令,而是能理解上下文背景。

1. Enter your queries in plain English using new free-form linguistic input2. Access more than 10 trillion sets of curated, up-to-date, and ready-to-use data3. Import all your data using a wider array of import/export formats4. Use the broadest statistics and data visualization capabilities on the market5. Choose from a full suite of engineering tools, such as wavelets and control systems6. Use more powerful image processing and analysis capabilities7. Create interactive tools for rapid exploration of your ideas8. Develop faster and more powerful applicationsWolfram Research 的 CEO 和创立者斯蒂芬·沃尔夫勒姆表示:“传统上,让计算机执行任务必须使用计算机语言或者使用点击式界面:前者要求用户掌握它的语法;而后者则限制了可访问函数的范围。

mathematica教程8

mathematica教程8

第9讲 三维绘图及其选项实验内容:1. 空间曲面的绘制及空间图形的选项2. 空间曲线的绘制;3. 用Graphics 绘制空间图形实验目的:1.加深理解空间曲面的图形;2.加深理解空间曲线的图形;3.掌握Mathematica 绘制立体图形的命令.9.1绘制立体函数的图形z[x_,y_]:=1/Sqrt[x^2+y^2];Plot3D[z[x,y],{x,-2,2},{y,-2,2},PlotPoints 30]; z @x _,y _D :=1êS q r t @x ^2+y^2D ;P l o t 3D A z @x ,y D ,8x ,−2,2<,8y ,−2,2<,L i g h t S o u r c e s →i k j j j j j 8.5`,.5`,1`<R G B C o l o r @1,0,0D 80`,0`,1`<R G B C o l o r @0,1,0D 80`,1`,1`<R G B C o l o r @0,0,1D y {z z z z z E ; (2)ParametricPlot3DParametricPlot3D[{x,y,z[x,y]},{x,-2,2},{y,-2,2},PlotPoints 30]; z[y_]:=1/Sqrt[y^2];(3)ParametricPlot3D复崌图宍ParametricPlot3D[{{u Cos[t],u Sin[t],1},{ Cos[t], Sin[t],u}},{u,0,1},{t,0,2Pi}];(4)ParametricPlot3D的选项Options[ParametricPlot3D]:AmbientLight ØGrayLevel @0.D ,AspectRatio ØAutomatic,Axes ØTrue,AxesEdge ØAutomatic,AxesLabel ØNone,AxesStyle ØAutomatic,Background ØAutomatic,Boxed ØTrue,BoxRatios ØAutomatic,BoxStyle ØAutomatic,ColorOutput ØAutomatic,Compiled ØTrue,DefaultColor ØAutomatic,Epilog Ø8<,FaceGrids ØNone,ImageSize ØAutomatic,Lighting ØTrue,LightSources Øi k j j j j j81.,0.,1.<RGBColor @1,0,0D 81.,1.,1.<RGBColor @0,1,0D 80.,1.,1.<RGBColor @0,0,1D y {z z z z z ,Plot3Matrix ØAutomatic,PlotLabel ØNone,PlotPoints ØAutomatic,PlotRange ØAutomatic,PlotRegion ØAutomatic,PolygonIntersections ØTrue,Prolog Ø8<,RenderAll ØTrue,Shading ØTrue,SphericalRegion ØFalse,Ticks ØAutomatic,ViewCenter ØAutomatic,ViewPoint Ø81.3,-2.4,2.<,ViewVertical Ø80.,0.,1.<,DefaultFont ß$DefaultFont,DisplayFunction ß$DisplayFunction,FormatType ß$FormatType,TextStyle ß$TextStyle >ParametricPlot3D[{Sin[u] Cos[t],Sin[u] Sin[t],Cos[u]},{u,0,Pi},{t,0,2Pi}];ParametricPlot3D[{Sin[u] Cos[t],Sin[u] Sin[t],Cos[u],EdgeForm[]},{u,0,Pi},{t,0,2Pi},Boxed False,Axes False,Background RGBColor[1,0,1],ViewP oint {2,2,5}]; Plot3D[x^2-y^2,{x,-4,4},{y,-4,4}];False,Axes False,Background RGBColor[1,0,1]]; ParametricPlot3D[{(2+Cos[u])Cos[t],(2+Cos[u] )Sin[t],Sin[u]},{u,0,2Pi},{t,0,2Pi},Boxed False,Axes False]; (5)3D 图宍动夋a=Table[ParametricPlot3D[{Sin[u] Cos[t],Sin[u] Sin[t],Cos[u]},{u,0,Pi},{t,i Pi/40,2Pi+i Pi/40},Boxed False,Axes False ],{i,0,3}];\b=ParametricPlot3D[{1.5Sin[u] Cos[t],1.5Sin[u]Sin[t],1.5Cos[u]},{u,0,Pi},{t,0,1.6Pi},DisplayFunction Identity];Table[Show[{a[[i]],b},DisplayFunction$DisplayFunction],{i,1,4}];9.2 绘制空间曲线(1)参数方程ParametricPlot3D[{ Cos[t], Sin[t],t},{t,0,5Pi},ViewPoint{2,3,9}];a=ParametricPlot3D[{ x,Sqrt[2x-x^2],Sqrt[4-2x]},{x,0,2},ViewPoint{2,3,9},DisplayFunction Identity];b=ParametricPlot3D[{ x, -Sqrt[2x-x^2],Sqrt[4-2x]},{x,0,2},ViewPoint{2,3,9},DisplayFunction Identity];Show[{a,b},Displa yFuncti on$DisplayFunction];(2)曲面交线ParametricPlot3D[{{Sin[u] Cos[t],Sin[u] Sin[t],Cos[u]},{ Cos[t]/2,-.5- Sin[t]/2,.7 u}},{u,0,Pi/2},{t,0,2Pi}];a=ParametricPlot3D[{r Cos[t],r Sin[t], Cos[t]Sin[t]},{r,0.02,1},{t,0,2Pi},PlotPoints 31,DisplayFunction Identity];b=Plot3D[0.2,{x, -1,1},{y,-1,1},Display Function Identity];Show[{a,b},DisplayFunction $DisplayFunction]; a=ParametricPlot3D[{r Cos[t],r Sin[t],r},{r,0,3},{t,0,2Pi},DisplayFunction Identity]; b=ParametricPlot3D[{x, y,Sqrt[2x]},{x,0,3},{y,-2.5,2.5},DisplayFunction Identity]; c=ParametricPlot3D[{x, y,-Sqrt[2x]},{x,0,3},{y,-2.5,2.5},DisplayFunction Identity]; Show[{a,b,c},DisplayFunction $DisplayFunction,ViewPoint ->{0.984, 1.998, 2.547}];Show[{a,b,c},DisplayFunction $DisplayFunction,ViewPoint {0,0,7} ];9.3Graphics 作图(1)画折线tb={{-1,0},{0,-1},{1,0},{1,1},{0,1}};tu=Graphics[{Thickness[.03],RGBColor[1,0,1],Line[ tb]}];Show[tu];(2)画实多边形tb={{-1,0},{0,-1},{1,0},{1,1},{0,1}};tu=Graphics[{Hue[.5],Polygon[tb]}];Show[tu];tu=Graphics[{Hue[.5],Rectangle[{0,0},{1,1}]},AspectRatio1];Show[tu];(3)画圆弧Show[Graphics[{Thickness[.03],Hue[.5],Circle[{3,5},2]},AspectRatio Automatic]];Show[Graphics[{Hue[.4],Thickness[.03],Circle[{3,5},2,{0,3.14}]},AspectRatio Automatic]];tu3=Graphics[{Thickness[.03],Hue[.3],Circle[{3,5},{2,3}]}];Show[tu3];tu4=Graphics[{Thickness[.02],Hue[.2],Circle[{3,5},{2,3},{0,3.14}]}];Show[tu4];(4)画圆盘Show[Graphics[{Hue[.5],Disk[{3,5},2]},AspectRatio Automatic]];Show[Graphics[{Hue[.4],Disk[{3,5},2,{0, 3.14}]},AspectRatio Automatic]];tu3=Graphics[{Hue[.3],Disk[{3,5},{2,3}]},AspectRatio Automatic];Show[tu3];tu4=Graphics[{Hue[.2],Disk[{3,5},{2,3},{0,3.14}]},AspectRatio Automatic];Show[tu4];(5)写文字Show[Graphics[Text["圆",{0,0}]]];Show[Graphics[{Thickness[.03],Hue[.5],Circle[{3,5},2]},AspectRatio Automatic]];Show[Graphics[{Text["圆盘",{3,2}],Hue[.8],Disk[{3,5},2]},AspectRatio Automatic]];圆盘。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
I n[1 2 ]:=
的形式上的反函数给出计算结果.
O ut[1 2]=
Solve[{lhs 1==rhs 1,lhs 2==rhs 2,...},{x,y,...}]
关于变量 解方程组.
求解方程组
使用 Mathematica 也能解联立方程组. 只须给出方程组,并指明关于哪些变量求解即可.
这里是两个联立方程,关于变量
I n[5 ]:=
O ut[5 ]=
也可以求解某些较高次数的方程.
I n[6 ]:=
O ut[6 ] =
对那些在数学上不可能求出精确解析解的方程,Mathematica 使用
I n[7 ]:=
Root 对象表示方程的解.
O ut[7 ]=
虽然得不到精确解析解,但可以求出数值解.
I n[8 ]:=
O ut[8 ]=
这里使用
I n[1 4 ]: =
- 范数,它能够最小化拟合值和数据值之间的最大距离. 所得结果与最小二乘法所得结果略有不同.
O ut[1 4]=
FindFit 首先寻找产生最佳拟合的参数值. 有时候,用户可能要告诉系统从什么位置开始搜索. 用户可以通过给
出 形式的参数实现. FindFit 也为用户提供了多种选项设置,以便用户控制如何进行搜索 .
特殊数据格式 表格数据的一些共同格式.
"DIF" ,"FITS" ,"HDF5" ,"MPS" ,"SDTS" ,等等.
Import 和 Export 不仅能处理表格数据,还能处理在于图形、声音甚至整个文件的数
据. Import 和 Export 能通过文件的扩展名推断数据的格式. "导出图形和声音" 和 "文件的导入和导出" 更详 细地讨论 Import 和 Export 是如何工作的. 注意,用户也能使用 Import 和 Export 处理二进制数据的原始 文件.
多变量拟合. 对多变量函数进行拟合
这里给出
、 和
的值表. 用户必须使用
Flatten 以获得 Fit 的正确形式.
I n[9 ]:=
O ut[9 ]=
这里对双变量函数进行拟合.
I n[1 0 ]:=
O ut[1 0]=
Fit 采用函数列表,并且使用确定并且有效的步骤来找到产生最佳二乘拟合的函数线性组合 . 然而,有时候,用
Norm Automatic Automatic Automatic Automatic None None
采用的范数
试图获得的准确度的位数
试图获得的精度的位数
在内部计算中采用的精度
采用的最大迭代次数
在每一步中所计算的表达式
当计算 达式
时, 所计算的表
Method
Automatic
使用的方法
FindFit 的选项.
寻找 的线性组合,使之对 达到最优拟合
基本线性拟合. 这是前 20 个素数的列表.
I n[1 ]:=
O ut[1 ]=
这是上述数据的图形.
I n[2 ]:=
O ut[2 ]=
这里给出上述素数列表的线性拟合. 该结果是函数
I n[3 ]:=

的最佳线性组合.
O ut[3 ]=
这是拟合函数的图形.
I n[4 ]:=
解方程时, Solve 总试图给出精确的解析解. 然而, 根据数学的基本结论, 对很复杂的方程是求不出解析解的 . 在 解一元代数方程时,如果变量的最高次数不超过 4,那么 Mathematica 总能给出解析解. 但如果最高次数是 5 或更高,给出精确解析解在数学上一般是不可能的 .
Mathematica 总能求出次数小于 5 的一元代数方程的解析解.
这里给出所有解的符号表示.
I n[2 2 ]:=
O ut[2 2]=
Solve[lhs ==rhs ,
关于
求解方程
x]
Solve[{lhs 1==rhs 1,lhs 2==rhs 2,...},{x,y,...}]
关于
求解联立方程组
Eliminate[{lhs 1==rhs 1,lhs 2==rhs 2,...},{x,...}]
户可能想要找到不只包括指定函数线性组合的 非线性拟合 . 这可以使用 FindFit 实现,它采用任何形式的函 数, 并且搜索产生数据最佳拟合的参数值 . FindFit[data,form ,{par 1,par 2,...},x] FindFit[data,form ,pars ,{x,y,...}]
O ut[4 ]=
这是原数据与拟合函数.
I n[5 ]:=
O ut[5 ]=
这里给出数据的二次拟合.
I n[6 ]:=
O ut[6 ]=
这是二次拟合的图形.
I n[7 示出原数据与二次拟合函数. 二次拟合优于线性拟合.
I n[8 ]:=
O ut[8 ]=
{f1,f2,...} {{x1,f1},{x2,f2},...} {{x1,y1,...,f1},{x2,y2,...,f2},...}
寻找数据的一般拟合. 这里使用各项的简单线性组合对质数列表进行拟合.
I n[1 1 ]:=
寻找使得

达到最佳拟合的
的值
多变量数据拟合
O ut[1 1]=
该结果与
Fit 所得结果相同.
I n[1 2 ]:=
O ut[1 2]=
这里使用的是非线性形式拟合,并不能由
I n[1 3 ]:=
Fit 处理.
O ut[1 3]=
这里导入一个 JPEG 格式的图形.
I n[4 ]:=
O ut[4 ]=
$ImportFormats
用户系统支持的导入格式
$ExportFormats
用户系统支持的导出格式
找出所支持的导入导出格式的完整列表.
曲线拟合
在许多情况下,用户可能想要找到对给定数据集达到最佳拟合的公式 . 在 Ma thematica 中要实现这一目的一种 方法是使用 Fit. Fit[{f1,f2,...},{fun1,fun2,...},x]
除了能解纯代数方程,Mathematica 还能求解其它一些函数方程.
显示一个警告后,Mathematica 给出方程的一个解.
I n[9 ]:=
O ut[9 ]=
注意,方程如
实际上有无穷多个解,此处可通过
的倍数来区分各个解 . 然而,这里 Solve 给出
一个解,并显示一个信息告诉用户可能存在其它解 . 可以使用 Reduce 来获得更多信息.
寻找在参数约束 条件下的最佳拟合
FindFit[data,{form ,cons },pars ,vars ]
寻找数据的一般拟合. 这里给出在参数约束条件下的最佳拟合.
I n[1 5 ]:=
O ut[1 5]=
选 项名
默 认值
NormFunction AccuracyGoal PrecisionGoal WorkingPrecision MaxIterations StepMonitor EvaluationMonitor
一个方程组是否有解是一个很不清楚的问题 . 例如,对 的,所以关于 无解. 然而,如果 等于 虑那些仅对参数的特殊值才存在的解 .
的大多数值,方程组
是不相容
,则方程有一个解. 函数 Solve 被设置为求方程的一般解. 它不考
如果使用 Reduce 而非 Solve ,Mathematica 将求出方程组的所有可能的解,包括那些对参数有特殊要求的 解.
格分隔的数据,其数的格式和 C 、Fortran 的一样,如 Import["name.ext"] 等等.
导入数据并从文件名来推断数据的格式
Export["name.ext",expr ]
导入和导出一般数据.
导出数据,其格式可从文件名来推断
表格格式
"C SV" ,"TSV" ,"XLS"
矩阵格式
"Harwe llBoeing" ,"MAT","MTX"
I n[2 3 ]:=
O ut[2 3]=
这里包含了对

必须为实数的要求条件.
I n[2 4 ]:=
O ut[2 4]=
这里只给出整数解.
I n[2 5 ]:=
O ut[2 5]=
导入和导出数据
Import["file","Table"]
从文件中导入数据表
Export["file",list,"Table"]
在联立方程组中,消去
Reduce[{lhs 1==rhs 1,lhs 2==rhs 2,...},{x,y,...}]
给出一组简化方程,包括所有可能的解 求解和处理方程的函数.
Reduce 对专门在实数或整数范围内处理方程也具有强大的功能 . "域内的方程和不等式" 节将更详细讨论这个
问题.
这里假定 和 是复数,简化方程.
I n[1 3 ]:=

求解.
O ut[1 3]=
这是更复杂的联立方程组. 两个解以
I n[1 4 ]:=

的替换形式的列表给出.
O ut[1 4]=
这里使用上述解计算表达式
I n[1 5 ]:=
.
O ut[1 5]=
Mathematica 能够解任何线性方程组. 也可以解多种类型的多项式方程组,即使对一些方程不能精确求解 . 也 能将方程化为比较简单的形式. 当求解含有多个变量的方程组时,通过消去一些变量来整理方程往往是很方便的 .
相关文档
最新文档