数据类型与数据结构

客官别急,此篇笔记尚未完稿,作者正在玩命码字呢,先看看其它主题吧 ^_^


数据类型

Mathematica 中使用变量之前无需定义,直接对其赋值即可,不需要考虑数据类型,这对初学者来说可能会是一个福音。 但随着你对 Mathematica 越来越熟悉,就会发现,Mathematica 中存在着各种数据类型,并应该在使用时加以注意,以避免写出低效率的程序。

表达式(一切数据类型)

作为符号计算系统,Mathematica 将一切都视为表达式(可解理为符号,一般有返回值),没有什么是不可以计算的,这也正是其特点之一。 为阐述这一点,下面举两个例子加以说明:

字符串是可计算的

s1 = "Hello";
s2 = "World";
Simplify[(s1 + s2)^2 - s1^2 - s2^2]/2

输出(输出格式不显示字符串标记的双引号,下同)

Hello World

函数是可计算的

f = Sin[#] + 1 &;
g = Cos[#] + 2 &;
h = f@*g;
h[x]

输出

1 + Sin[2 + Cos[x]]

整数(整型:314)

Mathematica 中,整数是最接近“符号”的数据类型。如果内存允许,Mathematica 在理论上支持任意大整数的精确计算。

实数(浮点型:3.14)

Mathematica 中,实数即其它编程语言中的浮点数。如果内存允许,Mathematica 在理论上支持任意精度的浮点计算。

1.0+2(*默认精确度*)
2.0`20+2(*指定精确度*)
NSolve[x^2 == 2, x, WorkingPrecision -> 100] (*指定精确度*)

输出

3.

3.00000000000000000000

{ {x->-1.414213562373095048801688724209698078569671875376948073176679737990732478462107038850387534327641573},{x-> 1.414213562373095048801688724209698078569671875376948073176679737990732478462107038850387534327641573} }

N[Pi^2/6, 500] (*将符号数字转为实数,指定500位精度*)

输出

1.6449340668482264364724151666460251892189499012067984377355582293700074704032008738336289006197587053040043189623371906796287246870050077879351029463308662768317333093677626050952510068721400547968115587948903608232777619198407564558769632356367097100969489020859320080516364788783388460444451840598251452506833876314227658793929588063204472197908477340910590208378289549278263890379763583343942045159120818099593454448774587965008808894087011116347106931614618428879815486244835909183448757387428394

复数(整型 & 浮点型)

Mathematica 中,复数域为默认数域,其支持整型复数也支持浮点型复数,但只有实部与虚部皆为整数时,才按整型复数计算。 因此,下面几乎是每位初学者都会遇到的问题——为什么 $\sqrt[3]{-1}\ne -1$ ?

默认复数域

(-1.0)^(1/3) (*为了看得更清楚一些,将-1改为-1.0*)
Surd[-1.0, 3]

输出

0.5 +0.866025 I

-1.

字符串

Mathematica 中,字符串标记为双引号,转义字符为反斜杠“\”。比如,当字符串包含双引号时,要在双引号前面加一个反斜杠;当字符串中包含反斜杠时,要在反斜杠前面加一反斜杠,即双写反斜杠。

转义字符

s1 = "\"my path contain a space character";
s2 = "\\";
s3 = "file.txt\"";
s = s1 <> s2 <> s3

输出

"my path contain a space character\file.txt"

字符串模板

StringTemplate["`a` plus `b`  is equal to `c`"][<|"a"->1,"b"->2,"c"->3|>]

输出1 plus 2 is equal to 3

日期与日间

实体

数学常量

如:Pi, E, I, EulerGamma, Infinity等,更多请参见:http://reference.wolfram.com/language/tutorial/MathematicalConstants.html

无穷大

Sum[1/i^2, {i, 1, Infinity}]

输出

Pi^2/6

数据结构

列表(数组)

关联(字典 | 键值对)

Copyright © mmaqa.com 2016 ~ 2017 all right reserved,powered by Gitbook该文件修订时间: 2018-09-23 00:17:33

results matching ""

    No results matching ""