一路前行分享 http://blog.sciencenet.cn/u/jackyjjp 分享知识是一种乐趣

博文

Mathematica 应用于数学

已有 6830 次阅读 2017-4-15 13:59 |个人分类:学习|系统分类:科研笔记| Wolfram, Mathematica, 线性代数

一、基本代数运算(Cliff Hastings, 2015: chapter 14)

1. 基本运算

Expand函数:展开表达式。

TrigExpand函数:展开三角函数表达式。

Factor函数:合并表达式。

Together函数:合并分母。

Apart函数:与Together的用途相反,把一个有理表达式改写成具有最小分母的项的和。

Collect[expr, x]函数:把匹配 x 的对象的相同幂的项组合到一起。

Simplify, FullSimplify函数:简化表达式。

2. 解方程

Solve[expr, x]函数:解方程。可以通过ReplaceAll函数(或 /.符号)提取解的具体值。

  • 例如,Solve[x^2+2*x-1==0,x],结果为 $\left\{\left\{x\to -\sqrt{2}-1\right\},\left\{x\to \sqrt{2}-1\right\}\right\}$

  • 而 results = x/.Solve[x^2+2*x-1==0,x] 的结果为 $\left\{-\sqrt{2}-1,\sqrt{2}-1\right\}$ ,这一结果可以用于计算。例如,results*3^(1/3)。

Reduce[expr, vars]函数:某些方程组有无数组解,Solve只能给出其中特定解,而Reduce能得到方程的一般解。通过求解关于 vars 的方程和不等式以及消除量词来约化表达式 expr。

FindRoot[f,{x,x_0}]函数:求解方程组的在 x_0 附近的数值解。

对于方程 Sin[x^2]-Cos[x]==0 上述三个函数返回的 x 的解并不相同。


二、微积分(Cliff Hastings, 2015: chapter 15)

D函数或Dt函数:求微分。例如,D[x^2*Sin[x],{x,3}] 三阶微分。

  • 也能用符号 ' 表示一阶微分,''表示二阶微分。例如,Sin'[x],结果为 Cos[x]。

  • ' 号也能用于自定义函数。例如,f[x_]:=x^3-2*x^2-5*x+6,执行 f'[x] 的结果为 -5-4*x+3*x^2。

  • 能用于个变量的微分。例如,D[x^2*Cos[x*y],x,y]。

  • 也能用于未定义的函数。例如D[x*g[x],x],结果为 g[x]+x*g'[x]。此时,可以使用规则将未定义的函数替换为其他函数。例如,D[g[x^2]*g''[x],x]/.g->Sin,结果为-2 x Cos[x^2] Sin[x] - Cos[x] Sin[x^2]。

Limit函数:求极限。例如,Limit[1/x,x->Infinity]。

  • 求左右极限的选项是 Direction->1 或 Direction->-1。例如,Limit[1/x,x->0,Direction->1]。

  • 给极限设定条件的选项是 Assumption。例如,Limit[x^a,a->Infinity, Assumptions->x>1]。

Integrate函数或NIntegrate函数:求积分,后者为求数值积分。例如,Integrate[x^2+2*x+1,x]。

  • 求定积分:Integrate[x^2+2*x+1,{x,0,1}],或者Integrate[x^2+2*x+1,{x,a, b}]。

  • 求解多个变量的积分:Integrate[x^3+y^2,{x-1,1},{y,-2,x}]。

三、差分方程(Cliff Hastings, 2015: chapter 16)


四、线性代数(Cliff Hastings, 2015: chapter 17)

1. 矩阵操作

(1)生成矩阵

通过Import函数导入矩阵数据:Import["ExampleData/numberdata.csv"]

ConstantArray函数:构建所有元素都相同的矩阵。例如,ConstantArray[10,{4,4]}。

DiagonalMatrix函数:将向量对角化。例如,DiagonalMatrix[{1,2,3,4}]。

ArrayFlatten[{{A,B},{C,D}}]将A, B, C, D四个nxn方形矩阵组合成一个2n x 2n矩阵,。

IdentityMatrix[n]函数:生成nxn单位矩阵。

Transpose函数:转置矩阵。

Inverse函数:求逆矩阵。

SparseArray[{pos1->val1, pos2->val2, …}] 函数:生成一个稀疏数组,posi 处的值为 vali。

从Excel中直接复制数据到Mathematica,见下图(来源):


(2)提取矩阵元素

Diagonal函数:提取矩阵的对角元素。

通过Part函数或 [[ ]] 符号提取矩阵元素:Part[{1,2,3},1],或{1,2,3}[[1]]。

通过Span函数或 ;; 符号选取连续元素:Part[{1,2,3},2;;3],或{1,2,3}[[2;;3]]

通过Take函数提取矩阵的前几行或几列:Take[list, All, 2] 提取前两列;Take[list, 2, All] 提取前两行。

(3)给出矩阵特性

Dimensions[expr]函数:找出expr的维度,也就是矩阵的行数和列数。

Norm函数:给出一个数字、向量或矩阵的模(范数)。

Det函数:给出方阵的行列式。

RowReduce函数:给出矩阵的行约化形式。

Eigenvalues函数:给出方阵 m 的特征值构成的列表。

Eigenvectors函数:给出矩阵 m 的特征向量列表.。

Eigensystem函数:给出方阵的特征值和特征向量构成的列表 {values,vectors}。

(4)显示

MatrixForm函数将矩阵显示为行列式形式。注意:在给变量赋值时不要使用 MatrixForm 函数,否则出错。


2. 矩阵间的运算

Dot函数或 “."符号:进行矩阵乘法:Dot[A,B] or A.B。

Times函数或"*"符号:将矩阵对应元素相乘:A*B。

Cross[a,b]函数:计算a与b的向量叉积。

LinearSolve[m,b]函数:求解矩阵方程 m.x==b的x。注意,Solve也可以用于求解对应的方程组,但是需要明确写出各个变量的名称。


3. 其他

AbsoluteTiming函数:返回求解用时。

MatrixPlot函数:矩阵画图。


(未完待续)


参考文献

Crista Arangala, 2015. Exploring Linear Algebra: Labs and Projects with Mathematica. Boca Raton, FL: CRC Press.

Cliff Hastings, Kelvin Mischo, Michael Morrison, 2015. Hands-on Start to Wolfram Mathematica and Programming with the Wolfram Language. Champaign, IL: Wolfram Media, Inc.



https://wap.sciencenet.cn/blog-241374-1043590.html

上一篇:线性代数学习笔记
下一篇:如何系统地学习 Wolfram Language (Mathematica)
收藏 IP: 219.223.197.*| 热度|

1 张鹰

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-3-28 18:54

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部