Mathematica表达式及其运算规则解读

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

•JordanDecomposition[M] 矩阵M的Jordan分解
•LUDecomposition[M] 矩阵M的LU分解
上页 下页 退出
3、Mathematica中数的类型与精度
哈 工 程 大 学 数 值 计 算 软 件 电 子 教 案
在Mathematica中,进行数学运算的“数”有四 种类型,它们分别是Integer(整数)、Rational(有理数)、 Real(实数)、Complex(复数)。不带有小数点的数,系 统都认为是整数,而带有小数点的数,系统则认为是 实数。对两个整数的比,如12/13,系统认为是有理 数,而a+b*I形式的数,系统认为是复数。 Mathematica可表示任意大的数和任意小的数,其它 计算机语言比如C、Basic是做不到这一点的,例如
上页 下页 退出
2、 表达式与表结构
哈 工 程 大 学 数 • 值 计 算 软 件 电 子 教 案
Mathematica能够处理多种类型的数据形式:数 学公式、集合、图形等等,Mathematica将它们都称 为表达式。使用函数及运算符(+, -, *, /,^等)可组成各 种表达式。
FullForm a * b + c
•Eigenvectors[M] 求矩阵M的特征向量
•Eigensystem[M] 求矩阵M的特征值与特征向量
•IdentityMatrix[n] 建立一个n×n的单位阵
•DiagonalMatrix[list] 建立一个对角阵,其对角线 元素为表list
上页 下页 退出
哈 工 程 大 学 数 值 计 算 软 件 电 子 教 案
•P*A+q*B 矩阵与数的乘法运算
•Biblioteka Baidu*B A与B的对应元素相乘
•M^2 将矩阵M中的每个元素平方
•P.Q 矩阵乘法运算,其中P为m×k阶矩阵,Q为k×n 阶矩阵
上页 下页 退出
•Det[M] 求方阵M的行列式
哈 工 程 大 学 数 值 计 算 软 件 电 子 教 案
•MatrixForm[A] 以矩阵的形式显示A •MatrixPower[M,n] 矩阵M的n次幂 •Transpose[A] 矩阵A的转置矩阵 •Eigenvalues[M] 求矩阵M的特征值
Plus Times a, b , c FullForm 1, 2, 3, 4 List 1, 2, 3, 4 Head Sin x Sin
@ D @ @ D D @ 8 < D @ D @@ D
FullForm[]可显示出表达式在系统内部 存贮的标准格式,而Head[]可得到某个 表达式的头部,这对我们确定表达式的 类型很有用处。 上面的{1,2,3,4}称为表(List),表是 Mathematica中非常有用的结构。首先, 表可以理解成数学意义下的集合,例如 对集合{1,{2,3},4,{5,6,7},8,9},它是含有6 个元素的子集合,其中{2,3}及{5,6,7}此集 合的子集合。
Solve x ^3 - 2 x^ 2 + 3 x - 6 0, x
x ® 2 , x ® -ä 3 , x® ä 3
@ D 9 8< 9 = 9 =
上面的行列式|A|的计算结果,系统给出的是一 个分数值,在Mathematica中,不同类型的数进行运 算,其结果是高一级的数,如有理数与实数运算的 结果是实数,复数与实数的运算结果是复数,依此 类推。由于整数与有理数的运算级别最低,
•Inverse[M] 求方阵M的逆矩阵
•LinearSolve[A,b] 求线性方程组AX=b的解
•NullSpace[A] 求满足方程AX=0的基本向量组,即零 解空间
•RowReduce[A] 将矩阵A进行行变换 •QRDecomposition[M] 矩阵M的QR分解 •SchurDecomposition[M] 矩阵M的Schur分解
500 ! N 1.220136825991110 ´ 101134
A := Table 1
1
@ HL 8< 8< D@ D
i + j , i, 1, 8 , j, 1, 8 ; Det A
4702142622508202833251304734720000000
上页 下页 退出
HL H L HL
Mathematica表达式及其运算规则
哈 工 程 大 学 数 值 计 算 软 件 电 子 教 案
在本节中,我们将主要介绍Mathematica进行数 学运算的基本工作原理及特殊符号的输入方式。 1、 西腊字母及命令的直观输入 在Notebook中,有两种输入西腊字母的方法,一 种是调用File→Palettes→BasicInput、BaiscTypesetting 或CompleteCharacters→Letters→Greek菜单,此时 会弹出一个含有西腊字母的数学工具面板,单击此 面板的符号即可;另一种是直接通过键盘输入西腊 字母所代表的标准名称,其格式为\[Greek_name], 例如,在Notebook中输入\[Beta]后(注意大小写),将 会显示β,下面是一些常用西腊字母的标准名称表。
355 113
@D @ D
上页 下页 退出
哈 工 程 大 学 数 值 计 算 软 件 电 子 教 案
Mathematica中的变量以字母开头,变量中不能 含有空格及下划线,因此,上面的2I表示2*I(I为虚 数),乘号可用空格代替,在很多情况下,乘号可以 省略,如(1+I)(1+2I)中的两个乘号。如果某个表达式 的结果为复数,Mathematica就会给出复数的结果。 对下面的3次方程
@ 8 < D 8@ @ < @ D @ D @ D D D @ @ D D 9 = 9 = 9 = 9 = @ D
1, 2, 5, 10, 17, 26, 37, 50
s 4
=", s 4
length s=8
1, 2 ,
s
4
=10
s1 = Partition Sqrt s , 2
2+ I
3 5
哈 工 程 大 学 数 值 计 算 软 件 电 子 教 案
-
-
1 + 2 I ^2 4ä
5
2 - 11 I
其中//N表示取表达式的数值解,默认精度为16 位,它等价于N[expr],一般形式为N[expr,n],即取表 达式n位精度的数值解。如
2.12669006510607072000158763622 ´ 10-37
•Delete[list,i]删除集合list的第i个元素
•Flatten[list]展开集合list中的各个子集,形成一个一 维表
上页 下页 退出
•FlattenAt[list,n]展开集合list中的第n级子集
哈 工 程 大 学 数 值 计 算 软 件 电 子 教 案
•Insert[list,element,{i,j}]插入第i个子集合的第j 个元素 处 •Insert[list,element,i]在list第i个元素的前面插入 element •Intersection[list1,list2,…]这是数学意义下的求交集命 令 •Join[list1,list2,…]将集合首尾相连,形成一个新的集 合
•Union[list]合并集合list中的重复元素
•Union[list1,list2,…]这是数学意义下的求集合的并集 命令 下面是有关集合方面的一些运算:
上页 下页 退出
s = Table i ^2 + 1, i, 0, 7
哈 工 程 大 学 数 值 计 算 软 件 电 子 教 案
Print "length s=", Length s , "
0.222222, - 0.333333, 0.222222 ,
5, 10 ,
@ D 9 = @ D 9 = @D
17 , 26 , 37 , 5 2
s1
3, 2
26 s2 = Flatten s1
1, 2, 5,
10 ,
17 ,
26 ,
37 , 5
2
s3 = Insert s2, 17, 4
1, 2, 5 , 17,
Intersection s, s3
8<
1, 17
10 ,
17 ,
26 ,
37 , 5
2
上页 下页 退出
哈 工 程 大 学 数 值 计 算 软 件 电 子 教 案
其次,对于一维表,可以理解成数学意义下的向 量,对于二维表,可以理解成矩阵,因此,有如下 的矩阵函数,其中a,b为向量,p,q为常量,M为方 阵,A,B为同阶普通矩阵,具体例子参见下一节。 •Dot[a,b]或a.b 向量a与b的数量积 •Cross[a,b] 向量a与b的矢量积
上页 下页 退出
哈 工 程 大 学 数 值 计 算 软 件 电 子 教 案
因此,在进行数学计算中,如果可能的话,就尽量 用精确数,即整数或有理数。另外,“==”称为逻 辑等号,定义一个等式要用逻辑等号。
8 < 8 < 8 < @ D : > : > 8< >
A :=
2 9
其中Inverse[]是求逆矩阵命令。在Mathematica中, 一行中可以输入多个命令,各命令间用分号分隔。另 外,分号还有一个作用是通知Mathematica,只在内 存中计算以分号结尾的命令,但不输出此命令的计 算结果。
上页 下页 退出
作为集合,有下面的各种集合运算。
哈 工 程 大 学 数 值 计 算 软 件 电 子 教 案
•Append[list,element]在集合list的末尾加入元素 element •Apply[Plus,list]将集合list中的所有元素加在一起 •Apply[Times,list]将集合list中的所有元素乘在一起 •Complement[list1,list2]求在list1中而不在list2中元素 集合 •Delete[list,{i,j}]删除集合第i,j处的元素
上页 下页 退出
哈 工 程 大 学 数 值 计 算 软 件 电 子 教 案
•Table[f,{i,imin,imax},{j,jmin,jmax}]建立二维表或矩 阵
•Table[f,{i,imin,imax}]建立一个一维表或向量 •Take[list,{m,n}] 给出list中从m到n之间的所有元素 •Take[list,n] 给出前n个,Take[list,-n] 给出后n个
上页 下页 退出
哈 工 程 大 学 数 值 计 算 软 件 电 子 教 案
另外,在刚开始使用Mathematica时,一般对 有关数学运算命令及数学公式的输入都不是太熟悉, 这时可以通过菜单File→Palettes的各个下级子菜单 输入相关命令及公式,不过这种输入方法效率不高, 建议还是少用为好。
8 < 8 < 8 < @ D 8 < 8 < 8 <
5, 1, 2 , 1, 2, 6 , 1, 2, 7
1 3 , 2 9 , 1 9 , 11 3 ,28 9
; Inverse A
,-
, 0, - 1, 1
B :=
5.0, 1, 2 , 1, 2, 6 , 1, 2, 7
; Inverse B
•Length[list]集合list中元素的个数
•list[[i,j]]集合list中第i个子集合的第j个元素
上页 下页 退出
哈 工 程 大 学 数 值 计 算 软 件 电 子 教 案
•list[[i]]集合list中第i个元素
•Partition[list,n]将集合list分成n个元素一组 •Prepend[list,element]在集合list的开头加入元素 element •ReplacePart[list,element,{i,j}]替换list中的第i,j处的元 素 •ReplacePart[list,element,i]替换集合list中的第i个元 素 •Reverse[list]翻转集合list中的元素 •Sort[list]将集合list中的元素按升序排序
N p , 50 3.1415926535897932384626433832795028841971693993751
N Det A , 30
@@ DD
使用Rationalize[expr,error]命令可将表达式转 换为有理数,其中error表示转换后误差的控制范围。 例如
Rationalize 3.1415926, 10^ - 5
相关文档
最新文档