解方程一个表达式如表示Mathematica中一个方程.求解这样的方程是人们常常要做的事情,就是要找出对于什么值,表达式为真.这里给出二次方程的两个解.它以的代换形式给出.In[1]:=Out[1]=这是解的近似值.In[2]:=Out[2]=通过使用Solve生成的的替代算符规则,可以得到的实际的解.In[3]:=Out[3]=可以把这个规则用于任何含有的表达式.In[4]:=Out[4]=Solve[lhs==rhs,x]解方程,给出的替换规则列表x/.solution使用替换规则得到的值expr/.solution使用规则得到表达式的值求和使用方程的解.解方程时,Solve总试图给出精确的解析解.然而,根据数学的基本结论,对很复杂的方程是求不出解析解的.在解一元代数方程时,如果变量的最高次数不超过4,那么Mathematica总能给出解析解.但如果最高次数是5或更高,给出精确解析解在数学上一般是不可能的.Mathematica总能求出次数小于5的一元代数方程的解析解.In[5]:=Out[5]=也可以求解某些较高次数的方程.In[6]:=Out[6]=对那些在数学上不可能求出精确解析解的方程,Mathematica使用Root对象表示方程的解.In[7]:=Out[7]=虽然得不到精确解析解,但可以求出数值解.In[8]:=Out[8]=除了能解纯代数方程,Mathematica还能求解其它一些函数方程.显示一个警告后,Mathematica给出方程的一个解.In[9]:=Out[9]=注意,方程如实际上有无穷多个解,此处可通过的倍数来区分各个解.然而,这里Solve给出一个解,并显示一个信息告诉用户可能存在其它解.可以使用Reduce来获得更多信息.对这样的超越方程没有精确形式的解.In[10]:=Out[10]=使用函数FindRoot,给出的初始值,可求得近似解.In[11]:=Out[11]=函数Solve也能处理具有符号函数的方程.在此情况下,又显示一个警告,然后给出形式上的反函数的结果.Mathematica使用的形式上的反函数给出计算结果.In[12]:=Out[12]=Solve[{lhs1==rhs1,lhs2==rhs2,...},{x,y,...}]关于变量求解方程组解方程组.使用Mathematica也能解联立方程组.只须给出方程组,并指明关于哪些变量求解即可.这里是两个联立方程,关于变量和求解.In[13]:=Out[13]=这是更复杂的联立方程组.两个解以和的替换形式的列表给出.In[14]:=Out[14]=这里使用上述解计算表达式.In[15]:=Out[15]=Mathematica能够解任何线性方程组.也可以解多种类型的多项式方程组,即使对一些方程不能精确求解.也能将方程化为比较简单的形式.当求解含有多个变量的方程组时,通过消去一些变量来整理方程往往是很方便的.在两个方程中消去,得到关于的单个方程.In[16]:=Out[16]=如果有几个方程,则不能保证一定有解.这个方程组无解,故Mathematica给出返回值,表明解集是空的.In[17]:=Out[17]=对的几乎所有值,这个方程组都没有解.In[18]:=Out[18]=一个方程组是否有解是一个很不清楚的问题.例如,对的大多数值,方程组是不相容的,所以关于无解.然而,如果等于,则方程有一个解.函数Solve被设置为求方程的一般解.它不考虑那些仅对参数的特殊值才存在的解.如果使用Reduce而非Solve,Mathematica将求出方程组的所有可能的解,包括那些对参数有特殊要求的解.这里显示了仅当时,方程组有一个解.表示要求和都为True.In[19]:=Out[19]=这里给出了方程的所有可能解.答案被表达为简单方程的组合.表示必须同时成立,表示二中择一.In[20]:=Out[20]=这里给出一个更复杂的方程的组合.In[21]:=Out[21]=这里给出所有解的符号表示.In[22]:=Out[22]=Solve[lhs==rhs,x]关于求解方程Solve[{lhs1==rhs1,lhs2==rhs2,...},{x,y,...}]关于求解联立方程组Eliminate[{lhs1==rhs1,lhs2==rhs2,...},{x,...}]在联立方程组中,消去Reduce[{lhs1==rhs1,lhs2==rhs2,...},{x,y,...}]给出一组简化方程,包括所有可能的解求解和处理方程的函数.Reduce对专门在实数或整数范围内处理方程也具有强大的功能.域内的方程和不等式节将更详细讨论这个问题.这里假定和是复数,简化方程.In[23]:=Out[23]=这里包含了对和必须为实数的要求条件.In[24]:=Out[24]=这里只给出整数解.In[25]:=Out[25]=导入和导出数据Import[file,Table]从文件中导入数据表Export[file,list,Table]把导出到作为数据表的文件导入和导出数据.这里将一个数组导出到文件中.In[1]:=Out[1]=这是文件的内容.In[2]:=这里将的内容导入为一个数据表.In[3]:=Out[3]=Import[file,Table]将处理多种表格数据,并自动推断其格式.Export[file,list,Table]导出由空格分隔的数据,其数的格式和C、Fortran的一样,如等等.Import[name.ext]导入数据并从文件名来推断数据的格式Export[name.ext,expr]导出数据,其格式可从文件名来推断导入和导出一般数据.表格格式CSV,TSV,XLS矩阵格式HarwellBoeing,MAT,MTX特殊数据格式DIF,FITS,HDF5,MPS,SDTS,等等.表格数据的一些共同格式.Import和Export不仅能处理表格数据,还能处理在于图形、声音甚至整个文件的数据.Import和Export能通过文件的扩展名推断数据的格式.导出图形和声音和文件的导入和导出更详细地讨论Import和Export是如何工作的.注意,用户也能使用Import和Export处理二进制数据的原始文件.这里导入一个JPEG格式的图形.In[4]:=Out[4]=$ImportFormats用户系统支持的导入格式$ExportFormats用户系统支持的导出格式找出所支持的导入导出格式的完整列表.曲线拟合在许多情况下,用户可能想要找到对给定数据集达到最佳拟合的公式.在Mathematica中要实现这一目的一种方法是使用Fit.Fit[{f1,f2,...},{fun1,fun2,...},x]寻找的线性组合,使之对达到最优拟合基本线性拟合.这是前20个素数的列表.In[1]:=Out[1]=这是上述数据的图形.In[2]:=Out[2]=这里给出上述素数列表的线性拟合.该结果是函数和的最佳线性组合.In[3]:=Out[3]=这是拟合函数的图形.In[4]:=Out[4]=这是原数据与拟合函数.In[5]:=Out[5]=这里给出数据的二次拟合.In[6]:=Out[6]=这是二次拟合的图形.In[7]:=Out[7]=这里显示出原数据与二次拟合函数.二次拟合优于线性拟合.In[8]:=Out[8]={f1,f2,...}单自变量取值为得到的数据点{{x1,f1},{x2,f2},...}单自变量取值为得到的数据点{{x1,y1,...,f1},{x2,y2,...,f2},...}自变量取值为得到的数据点指定数据的方式.如果以形式给出数据,那么Fit将假定连续的函数对应于在连续整数点的函数值.但是你也可以给出在一个或多个维度上,对应于任意点上的函数的Fit数据.Fit[data,{fun1,fun2,...},{x,y,...}]对多变量函数进行拟合多变量拟合.这里给出、和的值表.用户必须使用Flatten以获得Fit的正确形式.In[9]:=Out[9]=这里对双变量函数进行拟合.In[10]:=Out[10]=Fit采用函数列表,并且使用确定并且有效的步骤来找到产生最佳二乘拟合的函数线性组合.然而,有时候,用户可能想要找到不只包括指定函数线性组合的非线性拟合.这可以使用FindFit实现,它采用任何形式的函数,并且搜索产生数据最佳拟合的参数值.FindFit[data,form,{par1,par2,...},x]寻找使得对达到最佳拟合的的值FindFit[data,form,pars,{x,y,...}]多变量数据拟合寻找数据的一般拟合.这里使用各项的简单线性组合对质数列表进行拟合.In[11]:=Out[11]=该结果与Fit所得结果相同.In[12]:=Out[12]=这里使用的是非线性形式拟合,并不能由Fit处理.In[13]:=Out[13]=默认情况下,Fit和FindFit产生最小二乘拟合,我们定义它来最小化的值,其中是给定每个原始数据点和拟合值的差异下的残差.然而,用户也能基于其它范数考虑拟合.如果用户设置选项NormFunction,那么FindFit将试图找到最小化的值的拟合,其中是残差列表.默认为NormFunction-Norm,对应于最小二乘拟合.这里使用-范数,它能够最小化拟合值和数据值之间的最大距离.所得结果与最小二乘法所得结果略有不同.In[14]:=Out[14]=FindFit首先寻找产生最佳拟合的参数值.有时候,用户可能要告诉系统从什么位置开始搜索.用户可以通过给出形式的参数实现.FindFit也为用户提供了多种选项设置,以便用户控制如何进行搜索.FindFit[data,{form,cons},pars,vars]寻找在参数约束条件下的最佳拟合寻找数据的一般拟合.这里给出在参数约束条件下的最佳拟合.In[15]:=Out[15]=选项名默认值NormFunctionNorm采用的范数AccuracyGoalAutomatic试图获得的准确度的位数PrecisionGoalAutomatic试图获得的精度的位数WorkingPrecisionAutomatic在内部计算中采用的精度MaxIterationsAutomatic采用的最大迭代次数StepMonitorNone在每一步中所计算的表达式EvaluationMonitorNone当计算时,所计算的表达式MethodAutomatic使用的方法FindFit的选项.