其他分享
首页 > 其他分享> > Mathematica入门

Mathematica入门

作者:互联网

数的表示及其函数

简单数值类型

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函数的一些注释:

列表生成

列表表示对象: 数组 (向量)、矩阵、集合、数据库中的记录、数据结构中的树和图等。

列表形式: 用花括号围起来的有限个元素,元素之间用逗号分割。 一个列表可以包含任意多个元素,列表中的元素可以是不同类型的 任何Mathematica对象。

如果一个列表的某个元素是列表,我们称之为嵌套列表

枚举元素

用一个花括号把元素都括起来

b = {1, 2, 3}; 
d = {2, 3, 4}; 
A = {b, d}

Range

RangeWolfram 系统提供的重载函数

重载项 注释
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:

生成随机列表

RandomIntegerRandomReal 分别表示生成随机整数和随机实数。

重载项 注释
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缺省值为1
CoefficientList[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

三角函数运算

ExpandCancleTogether 等也适用于三角函数运算,但运算过程中并没有用三角函数公式进行简化, 函数中设置 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

解方程运算

方程的表示


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\)

参考资料

  1. 中国科学技术大学《符号计算语言Mathematica》
  2. LaplandStark的专栏
  3. Mathematica学习笔记

标签:函数,expr,Mathematica,列表,Out,displaystyle,表达式,入门
来源: https://www.cnblogs.com/deer2021/p/15086927.html