数的表示及其函数
简单数值类型
Mathematica
中的简单数值类型有整数、分数 、有理数(有理数)、实数和复数四种。
整数: Integer, 没有误差,任意长度的准确数.
求出 \(2^{2016}\) 的位数。
IntegerDigits[2^2016];
Length[%]
IntegerDigits
可以取出整数的每个位数%
是上一个输出结果
计算 \(48,105,120\) 的最大公约数和最小公倍数.
{GCD[48, 105, 120], LCM[48, 105, 120]}
判断 \(11117\) 和 \(13117\) 是否为素数.
{PrimeQ[11117], PrimeQ[13117]}
第 \(1\) 个和第 \(101\) 个素数是多少?
{Prime[1], Prime[101]}
有理数: Rational, 既约分数
实数: Real,有限精度的浮点数。实数的输出也既可以是小数形式,
又可以是指数形式。
计算 \(1.5\) 的整数部分和小数部分。
{IntegerPart[1.5], FractionalPart[1.5]}
复数 : Complex, x + y I , 虚数单位 I , 实部 x 和虚部 y 都可以
是整数、有理数或实数.
计算 \(z=(2+5i)^2\) 的幅角和模。
z = (2 + 5 I)^2
{Arg[z], Abs[z]}
数学常数
符号 | 含义 |
---|---|
Degree | 角度,45Degree 表示45度 |
GoldenRatio | 黄金分割数 1.618 |
Infinity | 无穷大 \(\infty\) |
E | 自然对数的底数,e |
I | 虚数单位 \(\sqrt{-1}\) |
Pi | 圆周率 \(\pi\) |
数的转换
转为整数
函数 | 含义 |
---|---|
Round[x] |
四舍五入 |
Floor[x] |
向下取整 |
Ceiling[x] |
向上取整 |
转为实数N[z, n]
\(z\) 为原始数,\(n\) 为精确到的位数
实数转为分数Rationalize[z, n]
\(z\) 为实数,\(n\) 为误差
常用初等函数
函数 | 含义 |
---|---|
Abs[x] | 实数的绝对值或复数的模 |
Re[z]、Im[z]、Arg[z]、Conjugate[z] | 复数的实部、虚部、幅角、共轭 |
Power[x, y]、Sqrt[x] | 幂函数、平方根 |
Exp[x]、Log[x]、Log[b, x] | 指数函数、自然对数函数、对数函数 |
Max[x1, x2, …]、Min[x1, x2, …] | 最大值、最小值 |
Sign[x] | 符号函数 |
Sin[x]、Cos[x]、Tan[x]、Csc[x]、Sec[x]、Cot[x] | 三角函数 |
ArcSin[x]、ArcCos[x]、ArcTan[x]、ArcCsc[x]、ArcSec[x]、ArcCot[x] | 反三角函数 |
Sinh[x]、Cosh[x]、Tanh[x]、Csch[x]、Sech[x]、Coth[x] | 双曲函数 |
ArcSinh[x]、ArcCosh[x]、ArcTanh[x]、ArcCsch[x]、ArcSech[x]、ArcCoth[x] | 反双曲函数 |
Binomial[m, n]、Multinomial[n1, n2, …] | 二\(\Big/\)多项式组合系数\(\binom{n}{m}\Big/\binom{n}{n_1,n_2,\cdots,n_m}=\frac{n !}{n_{1} ! n_{2} ! \cdots n_{m} !}\) |
Factorial[n]、Factorial2[n] | 阶乘 \(!\)、双阶乘 \(!!\) |
FactorInteger[n] | 整数分解 |
GCD[n1, n2, …]、LCM[n1, n2, …] | 最大公约数、最小公倍数 |
Mod[m, n]、Mod[m, n, d] | 余数 |
Prime[n]、PrimeQ[n]、PrimePi[n] | 素数生成、素数检验、素数计数 |
对于Mod
函数的一些注释:
- Mod[m,n,d] gives a result x such that d<=x<d+n and x mod n=m mod n
- Mod[m,n,d] is equivalent to m-n Quotient[m,n,d]
- For positive x, Mod[x,1] gives the fractional part of x
列表生成
列表表示对象: 数组 (向量)、矩阵、集合、数据库中的记录、数据结构中的树和图等。
列表形式: 用花括号围起来的有限个元素,元素之间用逗号分割。 一个列表可以包含任意多个元素,列表中的元素可以是不同类型的 任何Mathematica对象。
如果一个列表的某个元素是列表,我们称之为嵌套列表。
枚举元素
用一个花括号把元素都括起来
b = {1, 2, 3};
d = {2, 3, 4};
A = {b, d}
- 方式简单明了,列表中元素较少时使用
- 类似于数据库中的记录
- 可以用广义表的结构
Range
Range
是 Wolfram
系统提供的重载函数
重载项 | 注释 |
---|---|
Range[n] | 生成列表{1,2,…,n} |
Range[m,n] | 生成{m,m+1,…,n}, m为1可省略,就变成了第一种 |
Range[m,n,d] | 以m为首项, n为尾项,以d为间隔,{m,m+d,…, } |
In:Range[10]
Out:{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
In:s^Range[5]
Out:{s, s^2, s^3, s^4, s^5}
In:Clear[a, b]; Range[a, b, (b - a)/4]
Out:{a, a + 1/4 (-a + b), a + 1/2 (-a + b), a + 3/4 (-a + b), b}
In:Simplify[%]
Out:{a, 1/4 (3 a + b), (a + b)/2, 1/4 (a + 3 b), b}
In:Range[{3, 4}]
Out:{{1, 2, 3}, {1, 2, 3, 4}}
In:Range[Range[5]]
Out:{{1}, {1, 2}, {1, 2, 3}, {1, 2, 3, 4}, {1, 2, 3, 4, 5}}
函数Clear[a,b,...]
可以清掉工作区记录的之前赋值的变量a,b,…的值.Simplify[%]
可以化简表达式.
Table
Table
(使用最广泛)也是Wolfram
系统提供的重载函数.
重载项 | 注释 |
---|---|
Table[expr, {k, m, n, d}] | 循环变量 k, 首项 m, 增量为 d,终止值是 n |
Table[expr, {k, m, n}] | 增量为1 |
Table[expr, {k, n}] | 首项和增量都为1 |
Table[expr, n] | 循环n次 |
expr是expression的缩写,即表达式.
In:Table[i^2, 3]
Out:{i^2, i^2, i^2}
In:Table[i^2, {i, 3}]
ut:{1, 4, 9}
In:Table[x[k], {k, 5}]
Out:{x[1], x[2], x[3], x[4], x[5]}
In:Table[Sin[i], {i, 1, 10, 3}]
Out:{Sin[1], Sin[4], Sin[7], Sin[10]}
In:B = Table[10 i + j, {i, 3}, {j, 4}]
Out:{{11, 12, 13, 14}, {21, 22, 23, 24}, {31, 32, 33, 34}}
In:MatrixForm[B]
Out:
11 12 13 14
21 22 23 24
31 32 33 34
列表的元素是函数图像,Table中的函数名为循环变量,取值枚举列表In: Table[Plot[f[x], {x, -Pi, Pi}], {f, {Sin, Cos, Tan, Cot}}]
Out:
生成随机列表
RandomInteger
和RandomReal
分别表示生成随机整数和随机实数。
重载项 | 注释 |
---|---|
RandomReal[] | 0~1之间的随机实数 |
RandomInteger[10] | 0~10之间的随机整数 |
RandomReal[{1,2},3] | 生成3个1~2之间的随机实数 |
RandomInteger[1,{2,3}] | 生成2行3列的随机0-1矩阵 |
生成递归表
用系统函数RecurrenceTable[]
来自定义递归调用,如下(当然Fibonacci
可以直接用系统函数)
In:RecurrenceTable[{f[n] == f[n - 1] + f[n - 2], f[1] == 1, f[2] == 1}, f, {n, 8}]
Out:{1, 1, 2, 3, 5, 8, 13, 21}
In:Table[Fibonacci[n], {n, 8}]
Out:{1, 1, 2, 3, 5, 8, 13, 21}
列表元素表示
可以用大类,小类,像一个struct结构体一样,记得逐层调用.In:Clear[A, a, B, b]; A = Table[a[k], {k, 3}]
Out:{a[1], a[2], a[3]}
In:{a[1] = 111, A[[2]] = 222, A[[-1]] = 333}; A
Out:{111, 222, 333}
A[ [-1] ] 意思是倒数第一个元素。
In:B = Table[b[i, j], {i, 3}, {j, 3}]
Out:{{b[1, 1], b[1, 2], b[1, 3]}, {b[2, 1], b[2, 2], b[2, 3]}, {b[3, 1], b[3, 2], b[3, 3]}}
In:{B[[1]], B[[1, 1]], b[1, 1]}
Out:{{b[1, 1], b[1, 2], b[1, 3]}, b[1, 1], b[1, 1]}
In:{B[[2, 1]], b[2, 2], b[2, 3]} = {21, 22, 23}; B[[2]]
Out:{21, 22, 23}
In:TableForm[B]
Out:
列表相关函数
列表元素编辑
删除列表元素
Drop函数可以直接去掉指定数目的函数,但是该删除操作并不会对原始列表产生影响,除非在Drop函数的左边对原始表进行赋值。
Delete函数也可以对列表中的指定位置的元素进行删除,删除操作同样对原始列表不产生作用。
Drop 去掉倒数 \(3\) 个元素
In:t = {a, b, c, d, e, f}; Drop[t, -3]
Out:{a, b, c}
Delete 删除倒数第 \(3\) 个元素
In:s = {2, 3, 4, 5, 6}; Delete[s, -3]
Out:{2, 3, 5, 6}
In:{t, s}
Out:{{a, b, c, d, e, f}, {2, 3, 4, 5, 6}}
In:t = Drop[t, -3]; s = Delete[s, -3]; {t, s}
Out:{{a, b, c}, {2, 3, 5, 6}}
In:Delete[s, {{-1}, {-2}, {-3}}]
Out:{2}
在列表中插入元素
可使用Insert和AppendTo命令添加元素到列表中:
Insert[原始列表,插入内容,插入位置]
AppendTo[原始列表,插入内容]。
B = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
在 B[[3]] 之前插入
In:Insert[B, x, 3]
Out:{{1, 2, 3}, {4, 5, 6}, x, {7, 8, 9}}
在B[[3]] 之后插入
In:Insert[B, x, -1]
Out:{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}, x}
除了AppendTo命令外,其他对表格的操作均不对原始列表产生影响,若需要改变原始列表的内容需要在操作命令左边赋值。
In:u = v = {1, 2, 3}; Append[u, x]
Out:{1, 2, 3, x}
In:AppendTo[v, x]; {u, v}
Out:{{1, 2, 3}, {1, 2, 3, x}}
列表元素的排序
Sort函数,Reverse函数,字符排序按照Asc码进行排序.
In:Sort[{9, 3, 1, 2, 4, 6, 3, 4, 7}]
Out:{1, 2, 3, 3, 4, 4, 6, 7, 9}
In:Reverse[%]
Out:{9, 7, 6, 4, 4, 3, 3, 2, 1}
In:Sort[{9, 3, 1, 2, 4, 6, 3, 4, 7}, Greater]
Out:{9, 7, 6, 4, 4, 3, 3, 2, 1}
In:Sort[{9, 3, 1, 2, 4, 6, 3, 4, 7}, #1 > #2 &]
Out:{9, 7, 6, 4, 4, 3, 3, 2, 1}
In:Sort[{a + b, a + c, a + b + c, a - b}]
Out:{a - b, a + b, a + c, a + b + c}
列表元素求和
Apply应用命令,替换右侧列表中的Head。
Apply[函数操作,列表]
映射关系,Map[函数操作,列表]
Apply[f, expr] | 函数或算子f作用于表达式expr |
Apply[Plus, list] | 把list 中的所有元素加在一起 |
Apply[Times, list] | 把list 中的所有元素乘在一起 |
In:b = {5, 8, 5, 7, 2, 6}; Apply[Plus, b]
Out:33
In:Apply[Times, b]
Out:16800
In:Map[Sin, b]
Out:{Sin[5], Sin[8], Sin[5], Sin[7], Sin[2], Sin[6]}
列表元素合并与拆分
Flatten函数即压平操作,
Flatten[多维列表],将多维矩阵压缩成一维向量。
Partition[列表,n],将列表拆分成长度为n的子列表。
In:a = {{1, 2, 3, 4}, {4, 5, 6, 7}}; b = Flatten[a]
Out:{1, 2, 3, 4, 4, 5, 6, 7}
In:{Partition[b, 2], Partition[b, 3]}
Out:{{{1, 2}, {3, 4}, {4, 5}, {6, 7}}, {{1, 2, 3}, {4, 4, 5}}}
列表的集合运算
Union[a1, a2, ...] | 多个集合的和 (并) 集,删除重复元素并排序 |
Intersection[a1, a2, ...] | 多个集合的交集,删除重复元素并排序 |
Complement[a, b1, b2, ...] | 删除a中的b1, b2, ... 元素和重复元素并排序 |
In:a = {2, 3, 5, 1, 5, 1, 0, 2, 4}; b = {3, 1, 0, 2, 0, 3, 0, 3, 2}; c = {2, 3, 4, 3, 2, 1, 2, 4, 1};Union[a, b, c]
Out:{0, 1, 2, 3, 4, 5}
In:Intersection[a, b, c]
Out:{1, 2, 3}
In:Complement[a, b, c]
Out:{5}
符号表达式
变量和变量替换
变量
在Mathematica中,变量名通常以英文字母开头,后跟字母或数字,变量名的字符长度不限。希腊字母和中文字符也可以用在变量名中。Mathematica区分英文字母的大小写,因此A与a表示两个不同的变量。建议变量名以小写字母开头。如果用大写字母表示变量,请避免使用 C、D、E、I 等系统已用的字符.
In:a = 22; b = 77; {a, b} = {b, a}
Out:{77, 22}
变量替换
表达式 /. 规则 或 ReplaceAll[表达式,规则]
其中替换规则是一个或一组形如lhs → rhs的表达式
计算三角形的面积有以下Heron公式。 $$s=\frac12(a+b+c);A=\sqrt{s(s-a)(s-b)(s-c)}$$
In:s = (a + b + c)/2; A = Sqrt[s (s - a) (s - b) (s - c)]; A /. {a -> 1, b -> 1, c -> 1}
Out:
\(\frac{\sqrt{3}}{4}\)
In:A /. {a -> 3, b -> 4, c -> 5}
Out:
\(6\)
In:ReplaceAll[A, {a -> 3, b -> 4, c -> 5}]
Out:
\(6\)
算术表达式
一个算术表达式通常是由数或变量经算术运算符或函数连接而成,其中变量的类型可以是数值、符号、列表等,数可以是系统内嵌函数或者是用户自定义函数.
运算优先级 | 运算符 | 说 明 |
---|---|---|
1 | []、{}、() | 函数、列表、分隔符 |
2 | !、!! | 阶乘、双阶乘 |
3 | ++、-- | 变量自加1、自减1 |
4 | +=、 -= 、 *= 、 /= | 运算后赋值给左边变量 |
5 | ^ | 方幂 |
6 | . | 矩阵乘积或向量内积 |
7 | *、/ | 乘、除 |
8 | +、- | 加、减 |
在不引起误解的情况下, 算术表达式中的乘号可以忽略不写。
例如:2 a、2 a、2 * a 的意义是相同的,
(a - b) (c + d) 与 (a - b) * (c + d) 的意义也是相同的,
但是 a2 与 a 2 的意义却是不同的。
算术运算的优先级遵从数学习惯,同级运算符按照从左到右的顺序,赋值则按照从右到左的顺序。
逻辑表达式
逻辑表达式通常是由逻辑运算符或关系运算符连接而成。
逻辑表达式的值:True、False 、无法确定。
关系运算符
<、<=、==、>=、>、!=
逻辑运算符
运算符 | 含义 |
---|---|
And 、 && | 逻辑与 |
Or 、 || | 逻辑或 |
Not 、 ! | 逻辑非 |
Equivalent | 逻辑等价 |
多项式运算
多项式的基本运算
多项式的基本代数运算有加法、减法、乘法、除法、模运算
给定两个单变量多项式a(x) 和b(x),存在唯一的多项式 q(x) 和 r(x) 使得 a(x)=b(x)q(x)+r(x)。
函数 | 作用 |
---|---|
PolynomialRemainder |
两个多项式相除的余式 |
PolynomialQuotientRemainder |
同时给出两个多项式相除的商式和余式 |
PolynomialQuotient |
两个多项式相除的商式 |
最后一个变量表示按照 x 的幂次排列。
多项式元素提取
PolynomialQ[expr,x]
或 PolynomialQ[expr,{x,y,...}]
检验expr是否关于变元x,y,...的多项式Variables[poly]
多项式poly的变元列表Coefficient[poly,x,n]
多项式poly中x^n项的系数,n缺省值为1CoefficientList[poly,x]
或 CoefficientList[poly,{x,y,...}]
多项式poly关于变元x,y,...的系数列表
在展开 \((x + y + z)^6\) 后 , \(x^{2} y z^3\) 项的系数是?
多项式展开与合并
Expand[expr]
展开表达式expr中的乘积和正整数方幂,按照幂次由低至高的顺序,将表达式展开成为单项之和
ExpandAll[expr]
展开表达式expr中的乘积和整数方幂
PowerExpand[expr,x]
或 PowerExpand[expr,{x,y,...}]
展开表达式expr中与变元x或{x,y,...}有关的乘积的方幂,例如对数,开方表达式中的嵌套幂次
ExpandNumerator[expr]
展开表达式expr中的分式的分子
ExpandDenominator[expr]
展开表达式expr中的分式的分母
展开多项式 \((x+2y+1)^2\)
比较
Expand[ ]
,ExpandAll[ ]
,PowerExpand[ ]
的区别
分别展开表达式 $$t=\frac{1-x}{(x+1)2}+\frac{(x+1)2}{x(1-x)}$$ 中的分子和分母的多项式.
Collect[expr,x]
或 Collect[expr,{x,y,...}]
合并表达式expr中与变元x或{x,y,...}有关的同类项
Apart[expr,x]
把表达式expr写成部分分式之和的形式
ApartSquareFree[expr]
把表达式expr写成部分分式之和的形式,其中分母是无重根多项式的方幂的形式
Cancel[expr]
约分表达式expr中的分式
Together[expr]
通分表达式expr中的分式
展开 \((x + a + 2)^4\), 按 \(x\) 的幂次合并同类项.
将有理式 \(t=\dfrac{x^{2}}{1-2 x^{2}+x^{4}}\) 展开成部分分式的和.
求 \(\dfrac{2 x+1}{5 x-7}, \dfrac{x-2}{3 x+2}, \dfrac{x^{2}}{x^{2}+3}\)的和,分子分母都是展开形式.
约分 \(\dfrac{x^{2}-y^{2}}{x^{3}-y^{3}}\)
多项式因式分解
Factor[poly]
在整数环上分解多项式
FactorSquareFree[poly]
提出多重因式
FactorTerms[poly,x]
或 FactorTerms[poly,{x,y,...}]
分解poly为常数与本原多项式乘积的形式,x或{x,y,...}缺省为所有变元
FactorList[poly]
poly的不可约因子及其方幂列表
FactorSquareFreeList[poly]
poly的无重根因子及其方幂列表
对多项式 \(16 - 32 x - 8 x^2 + 28 x^3 - 3 x^4 + 9 x^5\) 作因式分解
多项式组公因式与公倍式
PolynomialGCD[p1,p2,...]
多项式组{p1,p2,...}的最大公因式
PolynomialLCM[p1,p2,...]
多项式组{p1,p2,...}的最小公倍式
PolynomialExtendedGCD[f,g,x]
一元多项式f(x)和g(x)的扩展最大公因式
语句 PolynomialExtendedGCD[f,g,x]
返回一个形如{h,{a,b}}的列表,其中a和b都是关于变元x的有理式,h是f和g的最大公因式,并且满足h=af+bg
三角函数运算
Expand
、Cancle
、Together
等也适用于三角函数运算,但运算过程中并没有用三角函数公式进行简化, 函数中设置 Trig->True
选项,使之可以将三角函数恒等式与这些运算结合起来.
Trig -> True 同样适用于双曲函数
适用于三角函数的特殊函数
TrigExpand[expr]
三角函数和差化积
TrigFactor[expr]
三角函数因式分解
TrigFactorList[expr]
三角函数因子列表
TrigReduce[expr]
三角函数积化和差
TrigToExp[expr]
化三角函数为指数函数
ExpToTrig[expr]
化指数函数为三角函数
求和并化简 \(\dfrac{\cos x}{1+\sin x}+\tan x\)
构造 \(\sin(nx),\cos(nx)\) 的 \(n\) 倍角公式表,\(n=2,3,4\)
表达式化简
Simplify[expr]
化简表达式expr
Simplify[expr,assum]
依据假设assum化简表达式expr
FullSimplify[expr]
深入化简表达式expr
FullSimplify[expr,assum]
依据假设assum深入化简表达式expr
Assuming[assum,expr]
依据假设assum执行表达式expr
解方程运算
方程的表示
- 方程通常表示为: ”lhs==rhs”------逻辑表达式.
- 方程组通常表示为 {eqn1,eqn2,...} 或 eqn1 && eqn2 &&
- 将方程中的等号”==”换成不等号”<”, “>”,”<=”, “>=”, “!=”就得到不等式
- 方程和不等式也可以被展开、合并、或化简
Eliminate[eqns,vars]
将方程组eqns中的部分变元消去
一般方程的求解
Solve[eqns,vars]
求方程(组)eqns的所有准确解vars,方程中只有一个未知量时,vars可不写。
求解方程组 $$ \begin{cases} 2x+3y=7\ 3x+4y=10 \end{cases} $$
1.如果要利用方程的解代入表达式求值,可直接用取代运算符/.
2.方程的解以列表形式给出,可以用Part提取列表元素.
求解方程组$$ \begin{cases} x^2+y=4\ 2x-y=1 \end{cases} $$ 并计算表达式\(\sqrt{x^2+y^2}\) 在这些解上的值.
计算方程 \(-735+1337 x-778 x^{2}+198 x^{3}-23 x^{4}+x^{5}=0\) 所有根的平方和.
NSolve[eqns, vars]
求方程eqns的所有数值解vars
NSolve[eqns, vars,n]
求方程eqns的所有数值解vars, 达到n位精度
Roots[eqn, var]
求一元多项式方程eqn的所有准确解var
NRoots[eqn, var]
求一元多项式方程eqn的所有数值解var
Root[f,k]
求一元多项式f的第k个根
FindRoot[f,{x,a}]
以a为初值,求函数f(x)的一个根x
FindRoot[eqns,{x,a}]
以a为初值,求方程eqns的一个解x
求解方程 \(\sin x=x^2-1\)
求方程 \(x \cdot \sin x=1\) 在区间 \([-10,10]\) 上的解。
求方程组 $$ \begin{cases}e^x+\ln y=2\ \sin x+\sin y=1 \end{cases} $$的近似解.
Reduce[expr, vars, dom]
化简方程或不等式expr并求所有解vars
FindInstance[expr, vars, dom, n]
求方程或不等式expr的n个特解vars
递归方程的求解
RecurrenceTable[eqns, expr, nspec]
由递归关系eqns求表达式expr生成的数列
RSolve[eqns, a[n], n]
由递归关系eqns求数列an的通项公式
求极限
函数极限
计算函数极限的形式:Limit [ expr, x->x0]
求下列极限
\(\displaystyle(1) \lim _{x \rightarrow 0} \frac{\sin (a x)}{x}\)\(\displaystyle(2) \lim _{x \rightarrow 1}\left(\frac{m}{1-x^{m}}-\frac{n}{1-x^{n}}\right)\)
不是所有的函数都有确定的极限。例如 \(\displaystyle\lim_{x\to 0}\sin(1/x)\),极限不存在,在 \(0\) 附近,函数在 \([-1, 1]\) 之间波动,Limit运算的结果是一个区间。
数列极限
数列的极限,可以用同样的形式进行计算。
计算数列的极限
\(\displaystyle(1) \lim _{n \rightarrow \infty}(\sqrt{n+\sqrt{n}}-\sqrt{n})\)
\(\displaystyle(2) \lim _{n \rightarrow \infty} \frac{n !}{n^{n}}\)
递归定义的数列极限
设 \(x_1=\sqrt{2},x_n=\sqrt{2+x_{n-1}},\) 求 \(\displaystyle\lim_{n\to\infty}x_n.\)
单侧极限
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 的右极限
计算下列极限:
\(\displaystyle(1) \lim _{{x} \rightarrow 0^{+}} \frac{\log ({x})}{{x}}\)
\(\displaystyle(2) \lim _{{x} \rightarrow \infty} \frac{\Gamma\left({x}+\frac{1}{2}\right)}{\sqrt{{x}} \Gamma({x})}\)
累次极限
从 Mathematica 语言的语法上说,Limit 函数自己不带对多个变量取极限的功能即不能计算重极限,可以计算累次极限。
计算 \(\displaystyle\lim _{y \rightarrow \infty} \lim _{x \rightarrow \infty}\left(\frac{x y}{x^{2}+y^{2}}\right)^{x^{2}}\)
还可以计算自变量沿某一固定路径趋向于固定点时,表达式的极限
渐近线
画出函数 \(\displaystyle f(x)=\frac{(x-5)^2}{3(x+1)}\) 的斜渐近线。
函数f(x)的渐近线是指:当 \(x\to\infty\) 时,\(f(x)\) 无限接近某一直线 \(y=x+b\) 即 \(\displaystyle\lim_{x\to\infty} (f(x)-(a x+b))=0\),需要用极限的思想确定参数a和b的值。
微商和微分
微商(导数)
计算导数的命令是 D[f, x]
和 D[f, {x, n}]
,分别表示 \(f'(x)\) 和 \(f ^{(n)}(x)\) 。
计算导数和偏导数是同一命令。
如果\(f\)是一元函数,D[f, x]
表示 \(\dfrac{{\rm d}f}{{\rm d}x}\);如果\(f\)是多元函数,D[f, x]
表示 \(\dfrac{\partial f}{\partial x}\)
微商函数的常用形式如下:
D[f, x] | 偏导数\(\dfrac{\partial f}{\partial x}\) |
D[f, x1, x2, …, xn] | 高阶偏导数\(\dfrac{\partial^{n} f}{\partial x_1 \partial x_ 2 \ldots \partial x_ n}\) |
D[f, {x, n}] | \(n\)阶导数\(\dfrac{\partial ^n f}{\partial x^n}\) |
D[f, x, NonConstants → {y1, y2, ..., ym}] | 复合函数偏导数\(\dfrac{\partial f}{\partial x},y_1,\cdots,y_m\)是\(x\)的函数 |
D[f, {{x, y, z, ...}}] | 偏导向量\(\left(\dfrac{\partial {f}}{\partial {x}}, \dfrac{\partial {f}}{\partial {y}}, \dfrac{\partial {f}}{\partial {z}}, \ldots\right)\) |
求函数\(f(x)=\sin \left(x^2+\sqrt{x}\right)\)在\(x = 2\)处的导数
全微分
在Mathematica中,D[f, x]
计算变量为 f 关于 x 的偏导数,系统默认f 中的其它变量与 x无关;
Dt[f]
给出f的全微分形式
Dt[f, x]
给出f的全导数,系统默认 f 中所有变量是 x 的函数。
对于f中不依赖于 x 的常量,要用选项 Constants -> {常量1, 常量2, ...} 作出说明。
\(x, y\) 的函数关系由参数方程 \(x = 2 t ^2, y = \sin(t)\) 确定,求 \(y\) 关于 \(x\) 的二阶导数。
不定积分和定积分
不定积分
计算不定积分的命令是Integrate[f, x]
,输出结果中省略积分常数。
计算二重积分的命令是Integrate[f, x, y]
,积分的顺序是从右自左,先对变量y做积分计算,再对变量x做积分计算
Integreate主要计算只含有 "简单函数" 的被积函数。"简单函数" 包括有理函数、指数函数、对数函数、三角和反三角函数。
计算下列不定积分
\(\displaystyle(1) \int 3 {ax}^{2} \mathrm{d} {x}\)
\(\displaystyle(2) \int \sqrt{x^{2}-a^{2}} \mathrm{d} x\)
\(\displaystyle(3) \int \sqrt{\cos x} \mathrm{d} x\)
\(\displaystyle(4) \int \frac{1}{1+x^{4}} \mathrm{d} x\)
Integrate可以计算形式上的积分
\(\displaystyle\int e^x(f(x)+f'(x)) \mathrm{d} x\)
Integrate可以计算分段函数积分
\[f(x)=\begin{cases}x \qquad x\geqslant1\\1\qquad x<1\end{cases}$$,求$\displaystyle\int f(x) \mathrm{d} x$ \]
Mathematica可以对向量值函数积分
Mathematica提供如Bessel函数、Gamma函数 和Beta函数等二三十个数学物理特殊函数可以用来表示积分结果。
\(\displaystyle\int e^{-x^2} \mathrm{d} x\)
Mathematica算不出结果的积分对被积函数做些化简外仍按Integrate形式输出
定积分
Integrate[f[x], {x, a, b}]
,可以计算 \(\displaystyle\int _a^b f(x) \mathrm{d} x\) 的准确解
NIntegrate[f[x], {x, a, b}]
,可以计算 \(\displaystyle\int _a^b f(x) \mathrm{d} x\) 的数值解
多重积分
Integrate [f, {x, a, b}, {y, c, d}]
,计算累次积分\(\displaystyle\int _a^b \mathrm{d} x\int_c^df(x,y)\mathrm{d} y\)的准确解.
NIntegrate [f, {x, a, b}, {y, c, d}]
,计算累次积分\(\displaystyle\int _a^b \mathrm{d} x\int_c^df(x,y)\mathrm{d} y\)的数值解.
计算区域\(D\)上的二重积分 , \(D\)由 \(y = x\) 以及\(x\)轴, \(x = 1\) 围成. \(\displaystyle \iint_D\sin(x+2y) \mathrm{d} x\mathrm{d} y\)
计算\(\displaystyle\iiint_Vxy^2z^3\mathrm{d} x\mathrm{d} y\mathrm{d} z,\)其中\(V\)是由曲面\(z = xy, z = 0, y = x, x = 1\)围成。
计算两个圆柱体 \(x^2+y^2=1,x^2+z^2\leqslant 1\) 相交部分的体积。
计算曲线积分\(\displaystyle\int _L x^2+x\cos x \mathrm{d} s,L\) 是单位圆。
计算单位球面面积
级数
幂级数展开
Series[expr, {x, x0, n}]
将expr在x = x0点展开到n阶的幂级数
Series[expr, {x, x0, n}, {y, y0, m}]
先对y展开到m阶再对x展开n阶幂级数
展开式中可能将分数指数,对数函数等作为基本元素。
Series命令可以计算*函数在瑕点的洛朗展开式,展开式的最高次数可以是负数。
Series命令可以计算函数在无穷远点的洛朗展开式
幂级数计算
幂级数求和
无穷乘积
求幂级数 \(\displaystyle\sum_{n=0}^{\infty}\frac{x^{4n+1}}{4n+1}\) 的收敛域与和函数。
检查端点是否收敛
两个端点都是发散点。收敛域(-1,1)
给出幂级数中某一项的系数
SeriesCoefficient[f, n]
级数f中x^n的系数
SeriesCoefficient[f, {x, x0, n}]
函数f在x0的展开式中 (x - x0)^n的系数
反函数级数InverseSeries[s, {x, x0, n}]
给出级数s的反函数的幂级数展开式
幂级数复合
ComposeSeries[s1, s2]
表示用幂级数s2代换幂级数s1中的变量x
Fourier级数
对于以2L为周期的函数,要用 FourierParameters->{1,2Pi/L}
说明
正弦级数与余弦级数
FourierSinSeries[f[x], x, n]
f[x]是以2π为周期的函数,在[-π,π]上是奇函数
FourierCosSeries[f[x], x, n]
f[x]是以2π为周期的函数,在[-π,π]上是偶函数
若函数周期不是2π,同样用FourierParameters
说明
微分方程
求解常微分方程
求解常微分方程和常微分方程组的一般形式:
DSolve[eqns, y[x], x]
解y(x)的微分方程或方程组 eqns,x为变量。
DSolve[eqns, y, x]
在纯函数的形式下求解
一般一个一阶线性微分方程都可以通过积分运算求解,但是如果方程的个数大于1,或阶数大于2,求解就没有固定的方法,一些简单的二阶线性方程的解被当做特殊函数来表示其它方程的解。
一些特殊类型的二阶线性微分方程可能有形式简单的解
三阶以上的方程只有极少的方程能够被解出
求解初值问题\(\left(1+x^{2}\right) y^{\prime \prime}+2 x y^{\prime}-6 x^{2}-2=0, y(-1)=0, y^{\prime}(-1)=0\)
纯函数形式的解可以代入微分的运算 DSolve[eqns,y,x]
求解偏微分方程
求解偏微分方程的命令是DSolve[eqn, y, {x1, x2, ..}]
DSolve[eqns, {y1,y2,..}, {x1, x2, ..}]
求解偏微分方程$$\frac{\partial y({x} _1, {x} _2)}{\partial {x}
_1}+\frac{\partial y({x} _1, {x} _2)}{\partial {x} 2}=\frac{1}{{x} 1x_2}$$
求解调和方程\(u_{xx}+u_{yy}=0\)