logo资料库

Mathematica教程专集.pdf

第1页 / 共355页
第2页 / 共355页
第3页 / 共355页
第4页 / 共355页
第5页 / 共355页
第6页 / 共355页
第7页 / 共355页
第8页 / 共355页
资料共355页,剩余部分请下载后查看
Printed from: Wolfram Mathematica - Complete Documentation 核心语言的 "How to" 主题 使用变量和函数 创建变量和函数的定义 清除我的定义 将函数映射于列表 使用纯函数 输入函数的范围和选项 使用列表 创建列表 获取列表中的元素 合并与重排列表 进行列表运算 使用嵌套列表 将函数映射于列表 制作表格 使用规则 创建和使用规则 使用规则形式的解 将规则多次用于表达式 使用 Mathematica 的语法 正确使用括号和大括号 平衡括号和大括号 使用简写符号 输入函数的范围和选项 使用函数模板 教程专集  Core Language ©1988– 2013 Wolfram Research, Inc. All rights reserved. http://reference.wolfram.com
Printed from: Wolfram Mathematica - Complete Documentation How to 使用变量和函数 变量和函数是 Mathematica 的符号式编程语言中不可或缺的部分. 这些 "How tos" 针对 Mathematica 中与变量、函数及函数式编程相关的 常见任务给出逐步说明. 创建函数和变量的定义 » 清除我的定义 » 将函数映射于列表 » 使用纯函数 » 输入函数的范围和选项 » 教程  符号的值  定义  立即定义和延时定义  定义变量  定义数量值  自定义函数  定义函数  与不同符号相关的定义  函数操作  模式和变换规则  模块和局部变量 参见 Set  SetDelayed  Rule  Clear  Unset  Remove  Map  Apply  Function 更多关于  定义变量和函数  函数式编程  "How to" 分类主题 ©1988– 2013 Wolfram Research, Inc. All rights reserved. http://reference.wolfram.com
Printed from: Wolfram Mathematica - Complete Documentation How to 创建变量和函数的定义 Mathematica 具有一组非常全面的函数记号,例如任意变换规则等. 变量也是按这种方式赋值. 一旦您设定了一个变量的值,该变量将变成 这个值的符号. 这是一个简单的变换规则. 它指定:只要看到 x,就用3代替: In[31]:= x  3 Out[31]= 3 变量 x 的值为3. 无论您何时计算一个表达式,都用3来代替 x: In[32]:= x^2 Out[32]= 9 该规则可以通过定义一个新规则去除: In[33]:= x  y^2 Out[33]= y2 新规则指定:无论何时看到 x,都将它代之以 y^2. 到此为止由于没有与 y 相关的规则,因此它的值就是其自身. 为 y 赋值: In[34]:= y  4 Out[34]= 4 现在如果计算 x,x 的规则指定用 y^2 代替 x,且 y 的规则指定用4代替 y,因此结果是 4^2 即16: In[35]:= x Out[35]= 16 如果要改变 y 的值,则 x 的值也随之改变: In[36]:= y  3 Out[36]= 3 In[37]:= x Out[37]= 9 现在为 z 赋上一个值,像这样: In[38]:= z  y^2 Out[38]= 9 由于 y 的值已经被赋为3,您已定义规则“用9代替 z”,而不是“用 y^2 代替 z”. 因此 z 独立于 y: In[39]:= y  4 Out[39]= 4 In[40]:= z Out[40]= 9 这种情况的出现是因为当一个规则使用  (Set ) 定义时,等号右端在规则定义之前计算. ©1988– 2013 Wolfram Research, Inc. All rights reserved. http://reference.wolfram.com
Printed from: Wolfram Mathematica - Complete Documentation 您也可以使用 : (SetDelayed) 定义规则,像这样: In[41]:= z : y^2 当一个规则用 : 定义时,等号右端在规则定义之前不被计算. 因此即使 y 已经有值,这个新规则指定的是:只要看到 z,就将它用 y^2 代替. 因此在这里,z 取决于 y: In[42]:= z Out[42]= 16 In[43]:= y  3 Out[43]= 3 In[44]:= z Out[44]= 9 Mathematica 中的函数由行为遵循模式的规则定义. 这是一个简单的模式: 代替: In[45]:= fx_ : x^2 fx_ 是一个模式,x_ 在其中代表任意表达式(在右端通过名称 x 表示). 规则指定:对于任何表达式的 f ,将其用该表达式的平方 In[46]:= fexpr In[58]:= f  Out[46]= expr2 Out[58]= 2 这是一个有两个自变量的函数: 始终使用 : 定义函数,否则等号右端的变量有可能不代表左端的相关表述,因为它们将在规则定义之前被计算: Out[49]= 25 In[48]:= gx_,y_ : fx  fy In[49]:= g3, 4 In[50]:= hx_,y_  fx  fy 这种情况发生的原因是 x 为 9, y 为 3. 规则指定任何与模式 hx_,y_ 匹配的都用90来代替: In[59]:= h Out[50]= 90 Out[59]= 90 ,  教程  定义  与不同符号相关的定义  符号的值  定义变量 ©1988– 2013 Wolfram Research, Inc. All rights reserved. http://reference.wolfram.com
Printed from: Wolfram Mathematica - Complete Documentation  自定义函数  立即定义和延时定义  定义数量值 相关链接  How to: 使用变量和函数 参见 Set  SetDelayed  Rule  Blank 更多关于  定义变量和函数  语言概述  "How to" 分类主题 How to 清除我的定义 当一个符号被赋值,该符号将在整个 Mathematica 进程中使用该值. 不再使用的符号在用于新的计算时可能会导致意外的错误,清除您的 定义是非常必要的. 为两个符号(x 和 y)赋值并观察它们的和: In[1]:= x  5; y  7; x  y Out[3]= 12 用 Clear 清除 x 和 y 的值: 可以看到不再有任何值与 x 和 y,它们被当作没有任何定义的符号: 这个命令用于清除在当前 Mathematica 进程中的所有定义: Out[5]= x2  2 x y  y2 In[4]:= Clearx, y In[5]:= Expandx  y^2 In[6]:= Clear"Global`" ——————————————————————————————————————————————————————————————————————————————————————————— ©1988– 2013 Wolfram Research, Inc. All rights reserved. http://reference.wolfram.com
Printed from: Wolfram Mathematica - Complete Documentation 使用 ClearAll 不仅可以清除符号的值和定义,还可以清除与之关联的属性和信息. 从一个在0 与某个正整数范围内进行输出的函数开始: 现在设置 f 的属性为 Listable ,这样当参数为列表时,f 将映射列表: 2,4,5, 6  doesnothaveappropriatebounds.  ,0,1,2,3,4, 5 ,0,1,2,3,4,5, 6  ——————————————————————————————————————————————————————————————————————————————————————————— 使用 ClearAttributes 仅清除函数的属性,它的定义仍然保留. 重新定义 f,并设置其为先前的 Listable : 注意当一个列表作为参数给出时,f 将返回一条错误信息: In[7]:= fx_ : Tablei,i,0, x In[8]:= f2,4,5, 6  Table::iterb:Iterator i,0, Out[8]= Tablei,i,0, 2,4,5, 6  In[9]:= SetAttributesf,Listable f2,4,5, 6  Out[10]=0,1, 2,0,1,2,3, 4 In[11]:= Clearf ?f Global`f 注意在清除了 f 之后,属性 Listable 仍然存在: Attributesf Listable 使用 ClearAll 清除属性和信息: In[13]:= ClearAllf ?f Global`f ?f Global`f In[15]:= fx_ : Tablei,i,0, x SetAttributesf,Listable Attributesf Listable fx_ : Tablei,i,0, x In[18]:= ClearAttributesf,Listable ?f Global`f fx_ : Tablei,i,0, x 也可使用 Unset (=.) 清除一个符号的任何定义值: 现在使用 ClearAttributes ,尽管 f 的定义仍保留着,它已经不具有 Listable 属性: ——————————————————————————————————————————————————————————————————————————————————————————— ©1988– 2013 Wolfram Research, Inc. All rights reserved. http://reference.wolfram.com
Printed from: Wolfram Mathematica - Complete Documentation In[20]:= x  5 Out[20]= 5 In[21]:= x . ?x Global`x ——————————————————————————————————————————————————————————————————————————————————————————— Remove 将完全清除一个符号,直到它被再次引用: In[23]:= Removex ?x Information::notfound:Symbol x notfound.  对 x 的引用使其再次回到该 Mathematica 进程: In[25]:= x ?x Out[25]= x Global`x ——————————————————————————————————————————————————————————————————————————————————————————— 对于局部定义的符号,其存储的值只在程序的特定部分使用,定义在使用后自动清除. 使用 Block 或 Module 可以对符号进行局部定义 . 教程  属性  与不同符号相关的定义  定义  定义变量  定义数量值  自定义函数  定义函数  模块和局部变量  立即定义和延时定义 相关链接  How to: 创建变量和函数的定义  How to: 使用变量和函数 ©1988– 2013 Wolfram Research, Inc. All rights reserved. http://reference.wolfram.com
Printed from: Wolfram Mathematica - Complete Documentation 参见 Clear  ClearAll  ClearAttributes  Unset  Remove  Block  Module 更多关于  定义变量和函数  赋值  "How to" 分类主题 How to 将函数映射于列表 Mathematica 包含许多功能强大的操作,用于使用列表. 常常需要将函数映射到每个列表的每个单个元素. 对于具有可列表性的函数,在默 认情况下就能做到,而对于具有不可列表性的函数,您可以使用 Map 来执行此操作. 首先设置一个由1至5的整数组成的列表: 大多数数学函数具有 Listable 属性,表示它们将自动映射于列表: 您可以使用 Map 将函数映射到列表的每个元素;下面的例子使用的是一个未定义的函数 f: In[293]:= mylist  Range5 Out[293]=1,2,3,4, 5  In[294]:= Mapf,mylist Out[294]=f1, f2, f3, f4, f5 可以使用  作为 Map 的简写形式(这个命令与上例中的相同): In[295]:= f mylist Out[295]=f1, f2, f3, f4, f5 In[296]:= AttributesSin Out[296]=Listable,NumericFunction,Protected  In[297]:= Sinmylist Out[297]=Sin1,Sin2,Sin3,Sin4,Sin5 In[298]:= matrices  RandomInteger1,5,2, 2 Out[298]=0, 0,0, 1,1, 1,1, 1,0, 1,1, 0,1, 0,0, 0,1, 1,0, 1 In[299]:= MatrixForm matrices 如果函数非 Listable ,您可以使用 Map . 设置由5个2×2矩阵组成的列表: 使用 Map 将 MatrixForm 映射于列表,以数学符号形式查看每一个矩阵: Out[299]= ©1988– 2013 Wolfram Research, Inc. All rights reserved. http://reference.wolfram.com
分享到:
收藏