Mathematica Core Language学会计算

使用先前结果

  • %:上个结果
  • %%:上上个结果
  • \(\underset{k}{\underbrace{\%\%\cdots \%}}\):前面第k个结果
  • %n:Out[n]输出的结果

In[]:=\(77^2\)
Out[]:=5929

In[]:=%+1
Out[]:=5930

In[]:=3%+%2+%%
Out[]:=35188619

In[]:=%32+%33
Out[]:=11859

%的正式名称为Out。在Mathematica帮助浏览器里输入%即可发现此信息。

定义变量

  • x=value:把value赋值给变量x。
  • x=y=value:把value赋值给变量x和y。
  • x=.Clear[x]:从内存中清除变量x。

牢记变量是永久存在的,除非你清除它。建议你用完变量后及时手工清除。Clear["Global`*"]清除所有自定义变量。

变量名长度不限;但不能以数字开头,因为2x表示2乘以x。经实测,变量名可以是中文,语法提示也支持。

2

 

Mathematica的内置函数采用UpperCamel命名法(第一个字母大写)。为了避免与内置函数冲突,建议用户函数以小写字母开头。

请注意以下几点:

  • x y表示x乘以y。
  • xy表示xy这个变量。
  • 5 x表示5乘以x。
  • x^2 y表示(x^2) y。

符号代换为数字

变换规则x->3表示把符号x代换为数字3。可对表达式运用变换规则,语法为expr /. rule(其中expr为表达式,rule为变化规则,/.称为替换运算符)。

In[]:=1+2x /. x->3
Out[]:=7

In[]:=a + 2 b /. {a -> 1, b -> 2}
Out[]:=5

In[]:=1+x+x^2 /. x->2-y
Out[]:=\(3+(2-y)^2-y\)

变换规则本身也是表达式,也可以赋值给一个变量,然后后者再参与到变换过程中。

In[]:=m=x->3+y;
x^2-9/.m

Out[]:=\(-9+(3+y)^2\)

或者

In[]:=x->3+y
Out[]:=x->3+y

In[]:=x^2-9 /. %
Out[]:=\(-9+(3+y)^2\)

这里用到了上一节讲的%函数。

expr /. {x->xval, y->yval}用来执行多个替换。

如果你想要x总是被替换为某个值,那就用赋值语法,如x=3、x=Fibonacci[10]。

Mathematica采用惰性求值的策略,如果一个变量(符号)是表达式或数字,那么求值时就把该变量替换为数字;如果该变量没有定义,那么它就是个符号,“别管那么多”。所以,明确一个变量是否已经定义十分重要。记住常常用x=.进行“垃圾回收”。

四种括号

  • (term):圆括号用来分组
  • f[x]:方括号将符号代入函数
  • {a,b,c}:花括号构造列表
  • v[[i]]:双方括号取列表元素。注:Mathemtica的索引从1开始。

多个操作

 

  • expr1;expr2;expr3:执行多个操作,输出最后一个操作的返回值。
  • expr1;expr2:执行多个操作,不输出。
  • expr;:执行expr,不输出。

即使上一个操作以分号结尾,其返回值还是被保存在Out里,即我们可以用%获得它的值。

In[]:=x=6-5;
In[]:=%
Out[]:=62

原文发表于2014年12月30日

发表评论

电子邮件地址不会被公开。

:wink: :twisted: :roll: :oops: :mrgreen: :lol: :idea: :evil: :cry: :arrow: :?: :-| :-x :-o :-P :-D :-? :) :( :!: 8-O 8)