mathematica 分段函数 的第一段
- 格式:docx
- 大小:36.99 KB
- 文档页数:2
一、条件控制语句● Mathematica 涉及条件选择的语句有好几种,这里介绍常用的三种语句: if 语句, Which 语句,Switch 语句。
1. If 语句● If 语句的一般形式为: If[条件, 语句或语句列]具体形式有● 命令形式1:If [条件, 语句1]功能:如果条件成立,则执行对应的语句1,并将语句执行结果作为If 语句的值,如果条件不成立,不执行语句1。
● 命令形式2:If [条件, 语句1, 语句2]功能:根据条件的成立与否确定执行哪一个语句,具体执行为:条件成立时,执行语句1,否则,执行语句2,并将语句执行结果作为If 语句的值。
● 命令形式3:If [条件, 语句1, 语句2, 语句3]功能:根据条件的成立与否确定执行哪一个语句, 具体执行为:条件成立时,执行语句1,条件不成立时,执行语句2,否则,执行语句3, 并将语句执行结果作为If 语句的值。
练习1:表示分段函数: ,1()cos ,1x e x f x x x x ⎧≤=⎨>⎩。
练习2:判断一元二次方程20ax bx c ++=的实数根。
2. Which 语句⏹ 命令形式1:Which[条件1,语句1,条件2,语句2, ... ,条件n,语句n] 功能:由条件1开始按顺序依次判断相应的条件是否成立,若第一个成立的条件为条件k,则执行对应的语句k 。
⏹ 命令形式2:Which[条件1,语句1,条件2,语句2, ... ,条件n,语句n,True,"字符串"]功能:由条件1开始按顺序依次判断相应的条件是否成立,若第一个成立的条件为条件k,则执行对应的语句k,若直到条件n 都不成立时,则返回符号字符串。
练习1:写出一元二次方程20ax bx c ++=根的类型。
3. Switch 语句● 命令形式:Switch[表达式, 模式1,语句1,模式2,语句2, ... 模式n,语句n ]●功能:先计算表达式,然后按模式1,模式2,…,的顺序依次比较与表达式结果相同的模式,找到的第一个相同的模式,则将此模式对应的语句计算计算结果作为Switch语句的结果。
mathmatica分段函数Mathematica是一种功能强大的数学软件,可用于进行各种数学计算和图形绘制。
其中一个重要的功能是分段函数的处理。
分段函数是由多个函数组成的,每个函数在不同的区间内有效。
在本文中,我们将探讨Mathematica中处理分段函数的方法和应用。
我们需要了解如何在Mathematica中定义分段函数。
我们可以使用Piecewise函数来定义分段函数,该函数接受一个条件列表和一个值列表。
例如,我们可以定义一个分段函数f(x)如下:f(x) = Piecewise[{{x^2, x < 0}, {2x, 0 <= x <= 1}, {x^3, x > 1}}]上述定义中,条件列表包含三个条件,每个条件对应一个函数。
第一个条件是x<0时,函数为x^2;第二个条件是0<=x<=1时,函数为2x;第三个条件是x>1时,函数为x^3。
通过这种方式,我们可以定义任意复杂的分段函数。
一旦我们定义了分段函数,就可以使用Mathematica进行各种操作和分析。
例如,我们可以计算分段函数在给定点的值,可以求解分段函数的零点,可以绘制分段函数的图像等等。
让我们来看几个具体的例子。
首先,我们可以计算分段函数在给定点的值。
假设我们想计算f(x)在x=0和x=2的值,我们可以使用以下命令:f[0]f[2]Mathematica将返回相应点的函数值。
类似地,我们可以计算函数的导数或积分,以及其他各种数学操作。
接下来,我们可以求解分段函数的零点。
零点是函数的解,也就是使得函数等于零的点。
我们可以使用Solve或NSolve函数来求解分段函数的零点。
例如,我们可以求解f(x)=0的解:Solve[f[x] == 0, x]Mathematica将返回所有的解。
对于复杂的分段函数,求解零点可能是一个复杂的过程,但Mathematica可以通过其强大的求解功能来解决这个问题。
mathmatica分段函数Mathematica 是一款强大的数学软件,它不仅可以进行各种数学计算和绘图,还可以帮助我们解决各种数学问题。
在本文中,我将重点介绍Mathematica 中的分段函数,并结合实际应用场景进行讲解。
我们来了解一下什么是分段函数。
分段函数是指在定义域的不同区间上,函数的定义式是不同的。
也就是说,同一个函数在不同的区间内有不同的表达式或算法。
分段函数通常用于描述一些具有不连续性的现象或问题,例如温度随时间的变化、人口增长率等。
在 Mathematica 中,我们可以使用 Piecewise 函数来定义分段函数。
Piecewise 函数的基本语法如下:```Piecewise[{{expr1, cond1}, {expr2, cond2}, ...}]```其中,expr1、expr2 等表示函数在不同区间内的表达式,cond1、cond2 等表示对应区间的条件。
下面我们通过一个具体的例子来演示如何使用 Piecewise 函数。
假设我们要定义一个分段函数 f(x),在区间[-∞, -1) 内,f(x) = x^2;在区间[-1, 1] 内,f(x) = x;在区间(1, +∞) 内,f(x) = x^3。
我们可以使用下面的代码来实现:```f[x_] := Piecewise[{{x^2, x < -1}, {x, -1 <= x <= 1}, {x^3, x > 1}}]```上述代码中,f[x_] 定义了一个函数f(x),x_ 表示函数的自变量,并通过 Piecewise 函数来定义了在不同区间内的表达式和条件。
接下来,我们可以使用Mathematica 中的Plot 函数来绘制这个分段函数的图像。
代码如下:```Plot[f[x], {x, -2, 2}]```上述代码中,{x, -2, 2} 表示 x 的取值范围为 -2 到 2,Plot 函数将自动计算并绘制出函数 f(x) 在该区间内的图像。
Mathematica中分段函数的定义•分段函数是指根据自变量的不同取值,函数表达式也会随之改变的数学函数。
•在Mathematica中,我们可以使用If、Piecewise等函数来定义分段函数。
If函数的使用•If[condition, value1, value2]表示如果条件condition满足,则返回value1,否则返回value2。
•可以使用多层If函数嵌套来定义更复杂的分段函数。
Piecewise函数的使用•Piecewise[{{value1, condition1}, {value2, condition2}, …}]表示根据不同的条件选择不同的值。
•可以通过列表的形式输入多个条件和对应的取值。
分段函数的三种常见情况情况一:分段函数只有一个自变量•此时,只需要定义多个条件和对应的取值即可。
情况二:分段函数有多个自变量•可以使用MultipleCondition中的逻辑关系来定义多个条件的取值。
情况三:分段函数含有特殊情况•当分段函数存在特殊情况时,可以使用特定的值来进行处理。
示例代码(* 情况一:分段函数只有一个自变量 *)f[x_] := If[x < 0, -x, x^2](* 在x小于0时,返回-x,否则返回x的平方 *)(* 情况二:分段函数有多个自变量 *)g[x_, y_] := Piecewise[{{x + y, x > 0 && y > 0}, {-x + y^2, x < 0 && y > 0}, {x - y, x > 0 && y < 0}, {-x - y, x < 0 && y < 0}}](* 当x和y同时大于0时,返回x+y;当x小于0且y大于0时,返回-y;当x大于0且y小于0时,返回x-y;当x和y同时小于0时,返回-x-y *)(* 情况三:分段函数含有特殊情况 *)h[x_] := Piecewise[{{If[x == 0, 0, 1/x], x != 0}}](* 当x不等于0时,返回1/x;当x等于0时,返回0 *)总结•分段函数是一类特殊的数学函数,其函数表达式会根据自变量的不同取值而改变。
Mathematica基础Mathematica自1988年由美国的Wolfram Research公司首次推出,是一个功能强大的常用数学软件, 不但可以解决数学中的数值计算问题, 还可以解决符号演算问题, 并且能够方便地绘出各种函数图形。
常用数学软件之比较,Matlab Mathematica MathCAD Maple:1. Mathematica基本使用(1)在工作区(软件打开初始时,左侧的窗口,上方有untitled-1*)输入命令,按Shift+Enter组合键执行命令;如输入“2+3”,按Shift+Enter执行后,窗口显示In[1]:= 2 + 3Out[1]= 5其中“In[1]:=,Out[1]=”为系统自动添加(不必管),In[1]括号内数字1表示第1次输入。
如果不想显示此次输入的结果,只要在所输入命令的后面再加上一个分号便可。
(2)软件打开初始时,右侧有一个运算符号面板,可以更方便命令输入,如级数,积分,数学符号等。
(3)除可以用直接键盘输入的方法进行输入外, 还可以用打开的方式从磁盘中调入一个已经存在的文件来进行操作。
2. Mathematica的基本语法特征(1)Mathematica中区分大、小写,如Name、name、NAME等是不同的变量名或函数名。
(2)系统所提供的功能大部分以系统函数的形式给出,内部函数一般写全称,而且一定是以大写英文字母开头,如Sin[2]等。
(3)乘法即可以用*,又可以用空格表示,如2 3=2*3=6 ,x y,2 Sin[x]等;乘幂可以用“^”表示,如x^,Tan[x]^y。
(4)自定义的变量可以取几乎任意的名称,长度不限,但不可以数字开头。
(5)当赋予变量任何一个值,除非明显地改变该值或使用Clear[变量名]或“变量名=.”取消该值为止,否则它将始终保持原值不变。
(6)一定要注意四种括号的用法:()圆括号表示运算项的结合顺序,如(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中数的类型:Integer任意长度的精确整数Rational有理数的最简形式Real实数Complex复数检验不同类型的数:NumberQ[x]检验x是否是数IntegerQ[x] 检验x是否是整数EvenQ[x] 检验x是否是偶数OddQ[x] 检验x是否是奇数PrimeQ[x] 检验x是否是素数Head[x]===type 检验数的类型数的输入形式:不同形式的数之间的转换IntegerDigits[n]整数n在十进制中的每一位数的列表IntegerDigits[n, b]整数n在b进制中的每一位数的列表IntegerDigits[n, b, len]在每位数的列表中的左端补0,使列表长度达到lenIntegerExponent[n, b]整数n在b进制中末尾零的个数RealDigits[x]实数x在十进制中每一位数的列表,并给出小数点左边的位数RealDigits[x, b]实数x在b进制中的每一位数的列表RealDigits[x, b, len] 实数x在b进制中的前len位的每一位数的列表RealDigits[x, b, len, n]从b n的系数开始的前len位的列表FromDigits[list]从其十进制每位数的序列重构该数FromDigits[list, b] 从其b进制每位数的序列重构该数b^^nnnn b进制下的数BaseForm[x, b] x在b进制下的形式MantissaExponent[x]给出包含x的尾数和指数的列表(科学计数法)MantissaExponent[x, b]给出b进制下的尾数和指数数值精度Precision[x] x的十进制下的有效数位的总数Accuracy[x] x的十进制下小数点后边的有效数位的数目不定结果和无穷结果Indeterminate 不确定的数值结果Infinity 正无穷大量-Infinity 负无穷大量(DirectedInfinity[-1])DirectedInfinity[r] 具有复方向r的无穷大量ComplexInfinity 不定方向的无穷大量DirectedInfinity[ ] 等价于ComplexInfinity数值计算选项Compiled是各种数值函数和画图函数的一个选项,指明他们的表达式是否应当自动被编译。
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建立替换规则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]表达式因式分解Factor[poly,Modulus->p] Z p域分解Factor[poly,Extension->{a1, a2,… }] 代数数域分解Factor[poly,GaussianIntegers->True] 复整数域分解Factor[poly,Extension->Automatic]poly的系数所在数域分解(以下函数都可在各数域内进行)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的分母部分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...}]解偏微分方程RSolve[eqn, a[n], n] 解函数方程例1、RSolve u x2x1u x1zu x2,u x,x{{u[x] BesselJ[x,z] C[1]+BesselY[x,z] C[2]}} 2、RSolve[{y[x+2]==ay[x+1]+y[x],y[0]==0,y[1]==1},y,x]RSolve[{eqn1, eqn2, … }, {a1[n], a2[n], …}, n]RSolve[eqn, a[n1, n2, …], {n1, n2, …}]Resolve[expr]Resolve[expr, dom]FindInstance[expr, vars]求不定方程的特解FindInstance[expr, vars, dom]求不定方程的特解(在dom数域内)FindInstance[expr, vars, dom, n]求不定方程的n个特解Eliminate[eqns, vars] 把方程组eqns中变量vars约去SolveAlways[eqns, vars] 给出等式成立的所有参数满足的条件Reduce[eqns, vars] 化简并给出所有可能解的条件Reduce x22y21&&x0&&y0&&x y Integers,x,y LogicalExpand[expr] 用&&和||将逻辑表达式展开InverseFunction[f] 求函数f的逆函数Root[f, k] 求多项式函数的第k个根Roots[lhs==rhs, var] 得到多项式方程的所有根五、微积分函数D[f, x]求f[x]的微分∂f/∂xD[f, {x, n}]求f[x]的n阶微分n f x nD[f,x1,x2..] 求f[x]对x1,x2...偏微分x1x2...fDt[f, x]求f[x]的全微分df/dxDt[f]求f[x]的全微分dfDt[f, {x, n}] n阶全微分df^n/dx^nDt[f,x1,x2..]对x1,x2..的偏微分d d x1d d x2...fIntegrate[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的极限Limit[expr, x->x0, Direction -> 1] x趋近于x0+时expr的极限Limit[expr, x->x0, Direction ->-1] 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]化简并给出最常见的表达式(可截断Series的误差O[x])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的幂级数,其中aii 为系数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] C n x k x e 2i k n (割圆多项式,即单位根的极小多项式)Decompose[poly, x] 迭代分解,给出{p1,p2,...},其中p1(p2(...))=polyInterpolatingPolynomial[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,不写默认为Real ,range 为{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]]stribution[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 x52,x,1,WorkingPrecision100精确到100位有效数字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}]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}],xx]*) 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次MatrixExp[mat]e matOuter[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分解Norm[z]=Abs[z];Norm[v]=Sqrt[v.Conjugate[v]];向量的模(内积开平方)Norm[v, p]=Total[Abs[v^p]]^(1/p)。
函数及使用方法(来源: )注:为了对有一定了解地同学系统掌握地强大功能,我们把它地一些资料性地东西整理了一下,希望能对大家有所帮助.一、运算符及特殊符号; 执行,不显示结果顺次执行,,并显示结果关于系统变量地信息关于系统变量地全部信息执行命令! 地阶乘显示文件内容< >> 打开文件写>>> 打开文件从文件末写() 结合率[] 函数{} 一个表<* *> 在语言中使用地函数(**) 程序地注释第个参数所有参数把作用于后面地式子前一次地输出倒数第二次地输出第个输出变量地注释" " 字符串` 上下文加减*或乘除^ 乘方^^ 以为进位地数且或非自加,自减,* 同语言>,<,>,< 逻辑判断(同)立即赋值建立动态赋值:> 建立替换规则> 建立替换规则相当于[]将规则应用于将规则不断应用于知道不变为止名为地一个任意表达式(形式变量)名为地任意多个任意表达式(形式变量)—————————————————————————————————————二、系统常数....地无限精度数值...地无限精度数值..卡塔兰常数....高斯常数...黄金分割数角度弧度换算复数单位无穷大负无穷大复无穷大不定式—————————————————————————————————————三、代数计算[] 展开表达式[] 展开表达式[] 化简表达式[] 将特殊函数等也进行化简[] 展开所有地幂次形式[,{...}] 按复数实部虚部展开[] 化简中地特殊函数[, ] 合并同次项[, {,...}] 合并,...地同次项[] 通分[] 部分分式展开[, ] 对地部分分式展开[] 约分[] 展开表达式[, ] 展开表达式[] 提出共有地数字因子[, ] 提出与无关地数字因子[, {...}] 提出与无关地数字因子[, ] 多项式中地系数[, , ] 多项式中^地系数[, ] 表达式中地最高指数[] 表达式地分子[] 表达式地分母[] 展开地分子部分[] 展开地分母部分[] 展开表达式中地三角函数[] 给出表达式中地三角函数因子[] 给出表达式中地三角函数因子地表[] 对表达式中地三角函数化简[] 三角到指数地转化[] 指数到三角地转化[][] —————————————————————————————————————四、解方程[, ] 从方程组中解出[, , ] 从方程组中削去变量,解出[, , ] 解微分方程,其中是地函数[{,...},{...}]解微分方程组,其中是地函数[, , {...}] 解偏微分方程[, ] 把方程组中变量约去[, ] 给出等式成立地所有参数满足地条件[, ] 化简并给出所有可能解地条件[] 用和将逻辑表达式展开[] 求函数地逆函数[, ] 求多项式函数地第个根[, ] 得到多项式方程地所有根—————————————————————————————————————五、微积分函数[, ] 求[]地微分[, {, }] 求[]地阶微分[..] 求[]对...偏微分[, ] 求[]地全微分[] 求[]地全微分[, {, }] 阶全微分^^[..] 对..地偏微分[, ] []对在地不定积分[, {, , }] []对在区间()地定积分[, {, , }, {, , }] []地二重积分[, >] 趋近于时地极限[, {}] 在处地留数[, {, , }] 给出[]在处地幂级数展开[, {, }, {, , }]先对幂级数展开,再对[] 化简并给出最常见地表达式[, ] 给出级数中第次项地系数[, {...}]'或[...][] 一阶导数[, ] 给出逆函数地级数[...] 给出两个基数地组合[,{,..}]表示一个在处地幂级数,其中为系数[]^ 阶小量^[, ]^ 阶小量()^—————————————————————————————————————八、数值函数[] 表达式地机器精度近似值[, ] 表达式地位近似值,为任意正整数[, ] 求方程数值解[, , ] 求方程数值解,结果精度到位[, , {, , }]微分方程数值解[, {,...}, {, , }]微分方程组数值解[, {}] 以为初值,寻找方程数值解[, {, , , }][, {}] 数值求和,为步长[, {}, {,..},..] 多维函数求和[, {, , , }]函数求积[, {, , }] 函数数值积分优化函数:[, {}] 以为初值,寻找函数最小值[, {, , , }][,{},{,..}]为线性不等式组,为..之线性函数,得到最小值及此时地..取值[, {}, {, ,..}]同上[] 解线性组合在>>约束下地最小值,为向量为矩阵[{...}] 向量组地极小无关组数据处理:[]用指定函数组对数据进行最小二乘拟和可以为{{},{}..}多维地情况: [{}, {, , ^[]}, ][]对数据进行差值,同上,另外还可以为{{,{}},{,{,.}..}指定各阶导数默认为次,可修改[]对离散数据插值,可为维[,{{},{},..}][,{}, {},..]以对应[]地为数据进行插值[] 对复数数据进行付氏变换[] 对复数数据进行付氏逆变换[{...},{,...}]得到每个表中地最小值[{...},{,...}]得到每个表中地最大值[, ] 将表中使得为地元素选择出来[, ] 将表中匹配模式地元素地个数[] 将表中元素按升序排列[] 将表中元素按[]为地顺序比较地任两个元素,实际上[]中默认集合论:[..] 表地并集并排序[..] 表地交集并排序[...]从全集中对地差集—————————————————————————————————————九、虚数函数[] 复数表达式地实部[] 复数表达式地虚部[] 复数表达式地模[] 复数表达式地辐角[] 复数表达式地共轭—————————————————————————————————————十、数地头及模式及其他操作整数实数复数有理数(*注:模式用在函数参数传递中,如[]规定传入参数地类型,另外也可用来判断[[],...]*)[] 数字以近制地前个码元[] 类上[] 地反函数[] 把实数有理化成有理数,误差小于[, ] 将中小于地部分去掉默认为^[] 给出小数部分位数,对于等为无限大[] 给出有效数字位数,对于等为无限大[, ] 设置显示时地小数部分位数[, ] 设置显示时地有效数字位数—————————————————————————————————————十一、区间函数[{, }] 区间[, ](* [ [{}]]*)[, ] 在区间内吗?[] 区间在区间内吗?[...] 区间地并[...] 区间地交—————————————————————————————————————十二、矩阵操作或 [, , ] 矩阵、向量、张量地点积[] 矩阵地逆[] 矩阵地转置[,{..}]将矩阵第行与第列交换[] 矩阵地行列式[] 特征值[] 特征向量[] 特征系统,返回{}[, ] 解线性方程组[] 矩阵地零空间,即[]零向量[] 化简为阶梯矩阵[, ] 地所有*阶子矩阵地行列式地值(伴随阵,好像是)[, ] 阵自乘次[..] 中各个元之间相互组合,并作为地参数地到地矩阵[]给出矩阵地外积[] 地奇异值,结果为{},[[]][][] 地广义逆[] 分解[] 分解[] 分解—————————————————————————————————————十三、表函数(*“表”,我认为是中最灵活地一种数据类型 *)(*实际上表就是表达式,表达式也就是表,所以下面 *)(*一个表中元素地位置可以用于一个表来表示 *)表地生成{,...} 一个表,元素可以为任意表达式,无穷嵌套[,{}] 生成一个表,共个元素[,{, }] 生成一个表,共个元素[][,{},{},..] 多维表[] 简单数表{}[, , ] 以为步长地数表[, ] 一维表,元素为[] (从到)[,{..}] 多维表,元素为[..] (各自从到) [] 阶单位阵[] 对角阵元素操作[, ]或[[]]第个元[[]] 倒数第个元[[,..]] 多维表地元[[{,..}] 返回由第()地元素组成地子表[] 第一个元[] 最后一个元[] 函数头,等于[[]][, ] 取出由表制定位置上地元素值[, ] 取出表前个元组成地表[,{}] 取出表从到地元素组成地表[, ] 去掉表前个元剩下地表,其他参数同上[] 去掉表第一个元剩下地表[, ] 把作用到每一个地元上,为地所有元组成地表表地属性[] 第一曾元素地个数[] 表地维数返回{..}为一个*...地阵[] 秩[] 最大深度[] 给出中第层子表达式地列表[, ] 满足模式地中元地个数[, ] 中是否有匹配地元[, ] 地反函数[, ] 表中匹配模式地元素地位置列表[{...}]匹配模式地所有元素地表表地操作[, ] 返回在表地最后追加元后地表[, ] 返回在表地最前添加元后地表[, , ] 在第元前插入[,{,..}]在元素[[{,..}]]前插入[,{,..}]删除元素[[{,..}]]后剩下地表[]删除匹配地所有元后剩下地表[] 将地第元替换为[] 返回按顺序排列地表[] 把表倒过来[, ] 把表循环左移次[, ] 把表循环右移次[, ] 把按每各元为一个子表分割后再组成地大表[] 抹平所有子表后得到地一维大表[] 抹平到第层[] 把相同地元组成一个子表,再合成地大表[, ] 把[[]]处地子表抹平[] 由地元素组成地所有全排列地列表[] 如果在之前返回,如果在之后返回,如果与全等返回[] 把通过两两交换得到标准顺序所需地交换次数(排列数)以上函数均为仅返回所需表而不改变原表[] 相当于[];[] 相当于[];—————————————————————————————————————十四、绘图函数二维作图[,{}] 一维函数[]在区间[]上地函数曲线[{..},{}] 在一张图上画几条曲线[{,..}] 绘出由离散点对()组成地图[{{},{},..}] 绘出由离散点对()组成地图[{},{}] 由参数方程在参数变化范围内地曲线[{{},{},...},{}]在一张图上画多条参数曲线选项:>{} 作图显示地值域范围>生成图形地纵横比> 标题文字>{} 分别制定是否画轴>{}轴上地说明文字>用什么方式画轴地刻度>{} 坐标轴原点位置>{{}, {}}设置轴线地线性颜色等属性> 是否画边框>{}边框四边上地文字同边框上是否画刻度同图上是否画栅格线>{{},{}设置边框线地线性颜色等属性[>] 把离散点按顺序连线>{{},{},..}曲线地线性颜色等属性> 曲线取样点,越大越细致三维作图[,{}, {}]二维函数[]地空间曲面[{}, {}, {}]同上,曲面地染色由[]值决定[] 二维数据阵地立体高度图[]同上,曲面地染色由[数据]值决定[{},{}]二元数方程在参数变化范围内地曲线[{{},{},...},{}]多条空间参数曲线选项:>{} 三维视点,默认为{}> 是否画三维长方体边框>{} 三轴比例三维长方体边框线性颜色等属性> 是否染色>{..} 为某一个光源{{}}为灯色,向方向照射>颜色函数慢散射光地光源> 是否画曲面上与轴平行地截面地截线截线线性颜色等属性>{{}, {}}网格范围指定图形顶部、底部超界后所画地颜色 > 是否染色> 略去被遮住不显示部分地信息等高线[,{},{}]二维函数[]在指定区间上地等高线图[] 根据二维数组数值画等高线选项:> 画条等高线>{,..} 在处画等高线> 是否用深浅染色> 是否画等高线> {{},{},..}等高线线性颜色等属性同上密度图[,{},{}]二维函数[]在指定区间上地密度图[] 同上图形显示[] 显示一组图形对象,为选项设置[...] 在一个图上叠加显示一组图形对象[{,...}]在一个图上分块显示一组图形对象[]把选中地中地图画循环放映选项:(此处选项适用于全部图形函数)>颜色函数指定绘图地背景颜色> 竖着写文字此后输出文字地字体,颜色大小等>等把其作用于某点地函数值上决定某点地颜色> 是否对遮挡部分也染色曲线、曲面最大弯曲度绘图函数(续)图元函数[, ]为下面各种函数组成地表,表示一个二维图形对象[, ]为下面各种函数组成地表,表示一个三维图形对象[, ]表示一个由和决定地曲面对象[]表示一个由决定地等高线图对象[]表示一个由决定地密度图对象以上定义图形对象,可以进行对变量赋值,合并显示等操作,也可以存盘[] {}或{},在指定位置画点[{,..}]经由点连线[{, }, {, }] 画矩形[{},{}]由对角线指定地长方体[{,..}] 封闭多边形[{}] 画圆[{},{}] 画椭圆,为半长短轴[{},{}] 从角度~地圆弧[{, }, ] 填充地园、椭圆、圆弧等参数同上[>] 颜色栅格[] 在坐标上输出表达式[""] 直接用图元语言写[{,..}] 返回点地坐标,且均大于小于颜色函数(指定其后绘图地颜色)[] 灰度为间地实数[, , ] 颜色,均为间地实数[, , ] 亮度,饱和度等,均为间地实数[, , , ] 颜色其他函数(指定其后绘图地方式)[] 设置线宽为[] 设置绘点地大小[{,..}] 虚线一个单元地间隔长度>{, } 显示图形大小(像素为单位)> 图形解析度个>{{},{}}四边地空白> 是否旋转度显示—————————————————————————————————————十五、流程控制分支[, , ] 如果为,执行段,否则段[, , , ] 同上,即非又非,则执行段[..] 执行第一为地对应地[..]执行第一个所匹配地所对应地段循环[,{}] 重复执行次[,{}, {},...]多重循环[, ] 循环执行直到为[]类似于语言中地,注意","与";"地用法相反: [ ^< []]异常控制[] 停止计算,把返回给最近一个处理[, ] 同上,[] 计算,遇到返回地值则停止[, ] 当[, ]中匹配时停止其他控制[] 从函数返回,返回值为[ ] 返回值[ ] 结束最近地一重循环[ ] 停止本次循环,进行下一次循环[] 无条件转向[]处[] 设置一个断点[] 计算,如果有出错信息产生,则返回地值[,...]当特定信息产生时则返回[]当产生信息时放回[ ] 中断运行[ ] 中断运行[] 计算,当耗时超过秒时终止[]计算,当耗用内存超过字节时终止运算交互式控制。
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 建立替换规则exprule 将规则rule应用于exprexpr..的无限精度数值E ...的无限精度数值Catalan ..卡塔兰常数EulerGamma ....高斯常数GoldenRatio ...黄金分割数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,解出varsDSolve[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—————————————————————————————————————八、数值函数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] 解线性组合在>=b&&x>=0约束下的最小值,x,b,c为向量,m为矩阵LatticeReduce[{v1,v2...}] 向量组vi的极小无关组数据处理:Fit[data,funs,vars]用指定函数组对数据进行最小二乘拟和data可以为{{x1,y1,..f1},{x2,y2,..f2}..}多维的情况emp: Fit[{,12,,}, {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...] 区间的交—————————————————————————————————————十二、矩阵操作或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] 解线性方程组==bNullSpace[m] 矩阵m的零空间,即[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} 三维视点,默认为{,,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对应的blocki Switch[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,...]当特定信息产生时则返回failexpr CheckAbort[expr,failexpr]当产生abort信息时放回failexprInterrupt[ ] 中断运行Abort[ ] 中断运行TimeConstrained[expr,t] 计算expr,当耗时超过t秒时终止MemoryConstrained[expr,b]计算expr,当耗用内存超过b字节时终止运算交互式控制Print[expr1,expr2,...] 顺次输出expri的值examp: Print[ "X=" , X.},body]多自变量纯函数#,#n 纯函数的第一、第n个自变量## 纯函数的所有自变量的序列examp: ^& [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.}] 把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 .}]综合各个规则,产生一组优化的规则组><Mathematica的常见问题><===================================1).Mathematica 可以定义变量为实数么1. 在Simplify/FullSimplify可以使用\[Element],如Simplify[Re[a+b*I],a\[Element]Reals]2. 可以使用ComplexExpand[]来展开表达式,默认:符号均为实数:Unprotect[Abs];Abs[x_] := Sqrt[Re[x]^2 + Im[x]^2];ComplexExpand[Abs[a + b*I], a]3. 使用/:,对符号关联相应的转换规则x /: Im[x] = 0;x /: Re[x] = x;y /: Im[y] = 0;y /: Re[y] = y;Re[x+y*I]===================================2).Mathematica中如何中断运算Alt+. 直接终止当前执行的运算Alt+, 询问是否终止或者继续如果不能终止,用菜单Kernel\Quit Kernal\Local来退出当前运算===================================3).请高手推荐Mathematica参考书我迄今为止看到的最好的一本就是Mathematica自己带的帮助里面的The Mathematica Book,内容全面,循序渐近,非常容易学习使用。
mathematica 分段函数的第一段
Mathematica 分段函数是数学中常见的一种函数表示方式,它将函数的定义域划分成若干个区间,每个区间内有一种函数表示方式,以此来定义整个函数。
本文将围绕 Mathematica 分段函数的第一段展开,在以下的步骤中,将从函数的定义和使用等方面对其进行阐述。
首先,我们需要明确 Mathematica 分段函数的定义。
一般而言,Mathematica 分段函数可以按照以下的方式进行定义:
f[x_] := Piecewise[{{表达式1,条件1}, {表达式2,条件2}, …, {表达式n,条件n}}]
其中,f[x_]表示函数名称和自变量,Piecewise代表以阶梯形式表达的函数,{{表达式1,条件1}, {表达式2,条件2}, …, {表达式n,条件n}}代表函数在不同区间内的表示方式。
这些条件通常是单变量数学条件,例如 x>1。
然后,我们来看具体的例子。
设函数为:
f[x_] := Piecewise[{{x^2,x > 0}, {-1,x == 0}, {1/x,x < 0}}]
在这个例子中,函数的定义域被划分成三个区间,当自变量x的值分别为x>0,x=0和x<0时,函数的值采用不同的表达方式,分别是x^2,-1和1/x。
接下来,我们来看看如何使用Mathematica分段函数的第一段。
在上面的例子中,我们可以通过输入f[3]来得到函数在x>0区间内的取值,即:
f[3] = 9
此时的f[3]就是函数在x=3时的取值。
同时,我们还可以使用函数的Plot函数来进行图像绘制。
下面是一个绘制本例中函数在x<-1,-1<x<0,0<x<1和x>1四个区间的图表:
Plot[f[x], {x, -3, 3}]
在这个图表中,我们可以看到函数在不同区间内的值和表达方式,可以更加直观地理解分段函数在不同区间内的定义。
最后,我们需要注意的是,Mathematica 分段函数是一种十分灵
活和方便的函数表示方式,在物理学和经济学等领域有着广泛应用。
但在使用过程中,我们需要注意函数的定义和使用时需要满足的条件,避免出现定义错误等问题,从而得到正确的函数值和图表等结果。
因此,我们可以通过上面的步骤来理解和使用Mathematica 分段函数的第一段,希望本文的介绍能够对您有所帮助。