三个月精通SAP开发-ABAP

三个月精通SAP开发-ABAP
三个月精通SAP开发-ABAP

三个月精通SAP开发-ABAP

前言 (2)

一.基础篇 (2)

1.什么是ABAP ? (2)

2.ABAP开发环境的建立 (5)

3.获得Access Key (5)

4.ABAP workbench和ABAP dictionary (5)

5.第一个程序-Hello World (6)

6.ABAP语法简介 (7)

7.Open SQL和Native SQL (7)

8.内表和工作区 (7)

9.使用字段符号 (7)

10.模块化程序 (7)

11.文件处理 (7)

12.簇数据库和逻辑数据库 (7)

13.消息和错误处理 (7)

14.使用用户授权 (13)

15.调用外部程序和程序动态生产 (14)

16.选择屏幕 (14)

17.使用程序运行变式 (14)

18.制作Tcode (14)

二.加强篇 (14)

1.CATT (14)

2.BDC (15)

3.制作background job (15)

4.SapScript (15)

5.Smartform (15)

6.SAP Query (15)

7.ALV (15)

8.ALE/iDoc (15)

9.Report painter和Drilldown Report (15)

10.RFC/BAPI (15)

11.编写用户增强 (15)

12.深入ABAP工作台 (15)

三.实战篇 (17)

MM模块开发实例 (17)

SD模块开发实例 (30)

PP模块开发实例 (30)

FI模块开发实例 (31)

CO模块开发实例 (47)

开发项目流程简介 (57)

附录: (58)

ABAP/Basis Transaction Codes ....................................................... 错误!未定义书签。

前言

一.基础篇

1.什么是ABAP ?

了解一下ABAP的发展历史是必要的,ABAP产生的最初的目的是用以生成简单打印报表程序,我们知道SAP最初是为解决财务实时数据处理问题

的,ABAP(Advanced Business Application Programming->高级业务应用编程语言)现在用于编写SAP AG的几乎全部产品源代码.

严格地讲,ABAP/4不仅仅是一个开发工具,而且是一套完整的client/server开发环境,这很好理解,微软的Visiual Studio是一开发环境,VB,VC++等是开发工

具.ABAP开发环境包含支持程序开发的一些函数和包等.

如图1-1,是SAP开发环境的一个三层架构的例图,三层(多层)的概念也不新鲜,比如在安装SAP时也可将DB instance安在一台server, Central instance在另一台所谓的Application server(我想这应是相关SAP基础系统包括各种应用程序所在),而通常客户端安装的SAP Logon Front End,SAP会话管理器等是所谓的表示层,它通过TCP/IP,SAP演示协议或RFC和应用服务器进行数据传输,用户看到的只是处理后的数据返回.

和Delphi的三层逻辑相近,在应用层包含多个组件象ABAP开发平台,身份验证,系统管理维护等用以处理会话,更新,排队,网关,数据层处理native 和Open SQL等(这是从内部机制方面看),SAP各模块应用的业务逻辑都在应用层被处理(从用户角度)然后结果被返回.

图1-2是SAP Logon的一个截图,[1]表示应用服务器(通常企业为了节省成本和方便管理可能会将应用服务器和数据库安装在同一起),[2]System number,举个实例,开发和测试服务共用一台服务器,开发使用system number00,而测试使用system number 01,通过system number逻辑地将一台physical server逻辑地分成了两台application server.

学习ABAP并不难,有人说SAP系统重在管理思想,不在技术,通常对有编程经验的读者不用任何培训参考一些相关资料就可立即上手.

简单介绍下ABAP/4的一些特征:

1.和SAP紧密结合,尤其在开发报表方面,坦率地讲,除了和SAP集成的好处,.我定

认为ABAP在报表开发上比Crystal report Tool要高效简单.

2.和VB一样 ,ABAP是解释形的,如读者精通VB,学习ABAP应该豪不费力,倒是既

然SAP是企业管理解决方案,ABAPer必须对企业管理流程熟悉.

解释性的另一好处是可以很好跟踪程序逻辑(使用/H),这对了解业务逻辑的实和追踪错误很有效. 和VB不同的是,VB跟踪时允许程序运行指针随意往回或往全拉而ABAP程序去不行, 但是ABAP程序允许在运行时修改变量的值,这是编译程序不能做到的. 当然通常编译比解释执行的速度会更快.

ABAP程序执行并不直接读取源代码,而是执行内部经过“生成”的描述,对于ABAP/4字典的修改激活后将触发内部描述的重新生成,如程序并没激活就执行原版本,或者出现错误(程序没激活可能造成ABAP Dumping ABAP).

3.在对数据库处理方面,除了可直接执行SQL(使用native sql,缺点是错误处理很难

控制,相当于有开发环境将SQL 语句直接传给DB去执行),SAP在ABAP开发环境层还提供了一套Open SQL访问底层数据库.

4. 程序员都知道Windows平台下开发都支持事件驱动,Windows系统本身也支持

事件驱动,ABAP也提供了事件驱动,这表现在Dialog编程方面,但是ABAP在此方面并不强,而且相对讲也比较难于掌握(在后面会讨论).

5.基于面向对象的风靡,ABAP在此方面也有相当反应,在SAP强大的软件包中提供

了大量可重复使用的程序,读者也可定义类并使用它快速建立新的对象.

6.类似Java,ABAP开发的程序能运行于任何操作系统(Java有Java虚拟机,ABAP

也有ABAP processor),多种数据库(比如在ABAP字典中实现了透明表对各种底层数据库表的映射,这样在ABAP层看到的透明表就和具体数据库无关),各种网络系统.

图1-3是一个ABAP开发和运行环境的图例.

2.ABAP开发环境的建立

掌握基本的ABAP开发环境对ABAPer是有益的,似乎多数ABAPer对底层并不感兴趣,

3.获得Access Key .

4.ABAP workbench和ABAP dictionary

5.第一个程序-Hello World.

如何进行ABAP开发呢?本节使用老套的做法,介绍如何建立一个”Hello World”的ABAP程序, 为了让读者尽快掌握ABAP开发熟悉ABAP开发环境是必须的,请看图1.5-1.

6.ABAP语法简介

数据类型

控制流程

文本摘要

输出格式

程序调试

7.Open SQL和Native SQL

8.内表和工作区

9.使用字段符号

10.模块化程序

11.文件处理

12.簇数据库和逻辑数据库

13.消息和错误处理

尽管消息这词还用在其他地方比如PO,SO打印传真等所谓的output message(请看ABAP百夜谈),系统出现异常,在这里消息只谈在程序运行逻辑异常处理时的消息.

1定义消息(参考图7-7).

使用Tcode SE91可自定义包含多消息号的消息类,在图7-7中就定义了一个消息类ZFIMSG,同时消息号017 中使用了俩&消息变量

2.在程序Title中定义直接在语句中使用.

REPORT ZMSGTEST .

MESSAGE I017(ZFIMSG).

1.将变量赋给消息.

REPORT ZMSGTEST .

MESSAGE I017(ZFIMSG) with ‘Var1’‘Var2’‘Var3’ .

或者

MESSAGE ID ' ZFIMSG ' TYPE 'I' NUMBER '0171' with ‘Var1’‘Var2’‘Var3’ .

尽管017只定义了两消息变量,但是可With多个值,当然只有前俩生效.

4.SAP程序消息类型有下列几种.

I:信息窗口 W:警告 E:错误 S:成功 A:终止程序或Tcode X:未知.

5.和标准SAP一样,你可配置消息,比如你需要由用户决定消息类型,使用下面程序. PROGRAM ZMSGTEST .

CALL FUNCTION 'READ_CUSTOMIZED_MESSAGE'

EXPORTING

I_ARBGB = 'ZFIMSG'

I_DTYPE = ''

I_MSGNR = '017'

IMPORTING

E_MSGTY = SY-MSGTY.

假设你做了Tcode和OBA5一样可配置消息类型,在程序中你就可根据返回值SY-MSGTY判断下步工作,E停止处理,A退出程序等.

在标准程序中,接下来会PERFORM MESSAGE_SEND来决定发送消息类型.

3常用消息表格和各模块常用消息配置Tcode.

在消息配置中,Application Area和SE91的Message Class实际上是同一概念.

此表也可直接维护.和T160M不同的是,你必须在SE16输入T100S按新建按钮

才可维护.查询时只可Display.

T100U: 哪个用户最后更改了消息,从此表能找到.

T100W: For Workflow

2常用Tcode(部分):

FI:OBA5|OFMG|OFPM

MM: OMRM|OKZZ|OMT4|OMCQ |O04C|

SD:OVAH

CO:OPR4_ACT|OPR4_CK|OPR4_CKML|OPR4_CKPF|OPR4_KKA|OPR4_KKP|OPR4_KKS| OPR4_KKS1|OPR4_PPCOPP

Others:

OPR5|OPR1|OPR3|OPR6|OPR7|OPR8|OPR9|OPRCMFE|MSW1|MSW2

3应用举例.

物料价格维护问题

[Case 1]如何在物料价格未维护时依旧可估算成本.

比如在CK11N(CK40N)计算成品标准成本时,其中有一些Component没维护价格.就可使用OPR4_CK将默认的错误消息Switch Off掉(从Tcode OKKN->Misc.->Error Management按钮也可).

***另外临时处理方法一是将相关component的物料Cost 1 View选上Do not Costing.

对需要计算标准成本的材料选上它就不再允许计算标准成本,不妥,但是对原材料无所谓,因为系统会这样处理,如此材料没维护价格,BOM用到它的成品不计算其成本,但是如此物料维护了价格后,还是以物料价格为先的.(当然CK11N去估算此原材料是不行的,用户也不需如此做).二是按SAP推荐的如果将price设成0.01,price unit设置成100.

[Case 2]如何限定物料价格必须维护.

(1)对采用S price control的.SAP默认是Warning(Tcode :OMT4 M3-132,如需要限定必须维护价格,将其改成W就可.

(2)对采用V price control的,OMT4找不到其消息号M3-131,但系统默认是Warning,如果用户认为也有相关配置就有犯了认为SAP万能的错误,再次强调SAP只是一堆代码并不神秘.好让我们看看其逻辑.

***实际上直接使用SE16:T160M可直接配置MM相关.

如图:[1]SE38找到程序LMG11F01 [2]在此处设置断点 [3]如价格为0(空格) 写死的,当然配置无效.

再看S Price control(如下图,显然从T160M表读了IMG数据).

4灵活运用消息.

2我们知道T100C是所谓的可配置消息表,我们可使用SE16:T100C和V_T100C.

如图[1]在此新建.(进去browse数据似乎不可新建)

设置消息.如下图.

[1]Appl Area消息类ZFIMSG. [2]表示允许配置的消息类型 [3]没选则表示不能关闭消息.

(2)SE16:V_T100C配置消息.

同样在程序中避免使用泪水MESSAGE E017(ZFIMSG)而采用

CALL FUNCTION 'READ_CUSTOMIZED_MESSAGE'

EXPORTING

I_ARBGB = 'ZFIMSG'

I_DTYPE = ''

I_MSGNR = '017'

IMPORTING

E_MSGTY = SY-MSGTY.

根据返回的SY-MSGTY去判断消息类型将更好些.

6实例介绍

PO在有发票校验后禁止修改价格,假设无PO release策略,使用User-exit步骤如下:

(1)找合适的用户出口

发现EXIT_SAPMM06E_017比较合适,SMOD 输入enhancement name :MM06E005

(2)编写代码.

*&---------------------------------------------------------------------* *& Include ZXM06U42 * *&---------------------------------------------------------------------* DATA : ZWATEKPO like BEKPO ,

ZIEINFO LIKE EINFO OCCURS 0 WITH HEADER LINE,

ZERMSG(73) TYPE C.

TABLES EKBE .

***TEKPO records all the old PO item date .

*** I_EKPO records currently processed PO item .

READ TABLE TEKPO INTO ZWATEKPO WITH KEY EBELP = I_EKPO-EBELP .

***只对ME22N才生效.

CHECK SY-TCODE = 'ME22N '.

***EKBE是PO history 表,如有Q,R表示有发票校验历史,不允许更改价##

SELECT SINGLE * FROM EKBE

WHERE EBELN = I_EKPO-EBELn

AND EBELP = I_EKPO-EBELP

AND ( BEWTP = 'Q' OR BEWTP = 'R').

CHECK SY-SUBRC = 0 .

***如果SY-SUBRC =0表示发票已经校验,不允许更改价格,否则还是可更改价格## IF I_EKPO-NETPR <> ZWATEKPO-NETPR .

*** Change e017(ZFIMSG) accordingly

* MESSAGE e017(ZFIMSG)."使用下面函数代替.

CALL FUNCTION 'READ_CUSTOMIZED_MESSAGE'

EXPORTING

I_ARBGB = 'ZFIMSG'

I_DTYPE = ''

I_MSGNR = '017'

IMPORTING

E_MSGTY = SY-MSGTY.

CHECK SY-MSGTY NE '-' .

REFRESH ZIEINFO.

ZIEINFO-MSGID = 'ZFIMSG'.

ZIEINFO-MSGNO = '017' .

ZIEINFO-MSGV1 = 'VAR1'.

ZIEINFO-MSGV2 = 'VAR2'.

APPEND ZIEINFO .

CALL FUNCTION 'MESSAGE_GET_TEXT'

EXPORTING

IEINFO = ZIEINFO

ILANGU = SY-LANGU

IMPORTING

ETEXT = ZERMSG .

MESSAGE ZERMSG TYPE SY-MSGTY .

ENDIF.

***在大多数情况下追踪消息能发现问题所在,然而在一些特定情况下,SAP显示的消息似乎和实际业务并不符合.好比一个人咳嗽的厉害,以为是感冒结果其实不过是有写异物进入其喉咙而已.

14.使用用户授权

15.调用外部程序和程序动态生产

16.选择屏幕

17.使用程序运行变式

18.制作Tcode

二.加强篇.

1.CATT

2.BDC

3.制作程序的background job

4.SapScript

5.Smartform

6.SAP Query

7.ALV编程

8.ALE/iDoc

9.Report painter和Drilldown Report

10.RFC/BAPI

11.编写用户增强

12.深入ABAP工作台

在这章将深入介绍各种ABAP对象的操作.

13.传输请求

这节并不是侧重介绍如何配置传输请求和其运行机制的,这通常是basis的工作和ABAPer并无关系,还是那句话,了解点大概是必要的.

通常企业起码会有两个系统,开发(测试)系统和生产系统(有些企业开发任务相对少,开发和测试使用同一台server甚至同一client,开发和测试也都有ABAPer完成),如果要严格开发流程,开发,测试必须是分开的(为了节省当然可使用同一server,不同的Client甚至用不同System Number逻辑分成两Server),在此不深入讨论.

熟悉几个名词:

1开发类(Development Class).

开发类可简单理解为逻辑上相关的一组ABAP对象,在将来传输时将使用同一传输层.实际上开发类本身也可看做是一个ABAP对象,可使用SE80建立.

$TMP是本地开发类,属于此开发类的任何ABAP对象(包括自定义的表,编写的程序等都只能在Client做测试用而不能被传输到其他Client.

包现在被用来代退开发类.

2.包(Package)

相关的ABAP对象被组合在一个包内,SE16:TADIR可看到被分配到某包的所有的ABAP对象,包决定了这些对象的传输层.

所有的包被存在表TDEVC中,建立包可使用SE80或直接使用SM30:V_TDEVC.

包作为开发类的退代和前身有这么几个加强特征.

1.包可嵌套使用(这点类似Java package)

2.包类可包含最多本包中可见的对象,这些对象在包外不可见

这点类似私有对象(Private object),在OOP中也很常见.

3.包可为包接口定义使用访问授权.

4.通常自定义包必须是Y或Z前坠,这点和其他ABAP对象相同(包其实也可看做ABAP对象).其他一些包前坠 A-S, U-X表示SAP标准包,T私有测试包,$本地临时包,/***名字空间前坠.

3.传输层(Transport Layer)

传输层决定包内对象是分配给本地还是可产生传输请求.

通常,开发系统都被分配了一个标准的传输层,当包被建立时,.它就被分配了一个标准传输层.包内对象也立即自动获得相关传输属性.

相关IMG配置使用的是标准的传输层.

通常由basis使用Tcode STMS配置传输管理系统维护传输曾和路由.

图2.13-1,显示的是从DVU开发的程序传输到QAS和PRD的传输路由,在图中程序在DVU server的client 210,100开发后被传输到QAS Client 310测试,成功后被分别传入PRD Client 800,810和820 .

4.传输请求

程序是究竟保存在server的什么地方?程序是如何在不同client和server之间进行传输的?要明白这问题,首先让我们看看什么是传输程序和传输控制程序.

传输控制程序TP和R3TRANS传输程序,R3TRANS被用来实现SAP各Client间的数据传输和不同版本迁移,TP传输控制程序根据传输参数(Transport Profile)调用

R3TRANS传输程序.

14.和其它语言的交互

VB,Delphi,Java其实开发工具使用都简单,别人都弄出开发环境都给弄出了,学用还会难吗?

三.实战篇

1.MM模块开发实例.

一.MM常用表格及其关联关系图

二.开发实例

1.MM相关单据打印PO和收货单打印开发NACE,MB04外协PO.

2.PO增强编程

自动建立PO和SO

一.SE11建立一记录表ZPOSO (19)

二.使用PO User_exit (20)

***本程序思路同样适合从建立Sales order时自动建立PO 只是调用的function是BAPI_CREATE_PO和使用creating SO时的User_exit而已

一.SE11建立一记录表ZPOSO

如图建立一个表ZPOSO俩个用途,

1.保存PO到SO的联系以方便将来查询

2.判断PO是create还是change (比如ME22N update PO qty,or delete PO

line.)

3.判断

***注意EBELN和EBELP合起来才是key fields相当于DB层的Primary key

二.使用PO User_exit

EXIT_SAPMM06E_001 (002,004,006,007,009) 006是PO还未create前检查的.

EXIT_SAPMM06E_016, 017此时虽然有PO item数据但是PO No.还没有给出.

EXIT_SAPMM06E_009, PO已经建立并且数据已经refresh .

所以使用EXIT_SAPMM06E_013

在使用之前必须update TFDIR表将MAND设置成”C”.程序如下:

REPORT Zupdate .

data ztfdir like tfdir occurs 0 with header line .

select * from tfdir into table ztfdir where FUNCNAME =

'EXIT_SAPMM06E_013'.

loop at ztfdir .

ztfdir-MAND = 'C' .

modify ztfdir index sy-tabix TRANSPORTING MAND.

endloop.

update tfdir from ztfdir.

***由于只有一笔使用Work area就可搞定,所以要这样霸王强上弓是没有找到配置在哪里.

REPORT ZTEST11 .

data ztfdir like tfdir .

select single * from tfdir into ztfdir where FUNCNAME =

Mathematica函数及使用方法

Mathematica函数及使用方法 (来源:北峰数模) --------------------------------------------------------------------- 注:为了对Mathematica有一定了解的同学系统掌握Mathematica的强大功能,我们把它的一些资料性的东西整理了一下,希望能对大家有所帮助。 --------------------------------------------------------------------- 一、运算符及特殊符号 Line1; 执行Line,不显示结果 Line1,line2 顺次执行Line1,2,并显示结果 ?name 关于系统变量name的信息 ??name 关于系统变量name的全部信息 !command 执行Dos命令 n! N的阶乘 !!filename 显示文件内容 < Expr>> filename 打开文件写 Expr>>>filename 打开文件从文件末写 () 结合率 [] 函数 {} 一个表 <*Math Fun*> 在c语言中使用math的函数

(*Note*) 程序的注释 #n 第n个参数 ## 所有参数 rule& 把rule作用于后面的式子 % 前一次的输出 %% 倒数第二次的输出 %n 第n个输出 var::note 变量var的注释"Astring " 字符串 Context ` 上下文 a+b 加 a-b 减 a*b或a b 乘 a/b 除 a^b 乘方 base^^num 以base为进位的数 lhs&&rhs 且 lhs||rhs 或 !lha 非 ++,-- 自加1,自减1 +=,-=,*=,/= 同C语言 >,<,>=,<=,==,!= 逻辑判断(同c)

Mathematica函数大全(内置)

Mathematica函数大全--运算符及特殊符号一、运算符及特殊符号 Line1;执行Line,不显示结果 Line1,line2顺次执行Line1,2,并显示结果 ?name关于系统变量name的信息 ??name关于系统变量name的全部信息 !command执行Dos命令 n! N的阶乘 !!filename显示文件内容 > filename打开文件写 Expr>>>filename打开文件从文件末写 () 结合率 []函数 {}一个表 <*Math Fun*> 在c语言中使用math的函数 (*Note*)程序的注释 #n第n个参数 ##所有参数 rule& 把rule作用于后面的式子 %前一次的输出 %%倒数第二次的输出 %n第n个输出 var::note变量var的注释 "Astring "字符串 Context ` 上下文 a+b 加

a-b减 a*b或a b 乘 a/b除 a^b 乘方 base^^num以base为进位的数 lhs&&rhs且 lhs||rhs或 !lha非 ++,-- 自加1,自减1 +=,-=,*=,/= 同C语言 >,<,>=,<=,==,!=逻辑判断(同c) lhs=rhs立即赋值 lhs:=rhs建立动态赋值 lhs:>rhs建立替换规则 expr//funname相当于filename[expr] expr/.rule将规则rule应用于expr expr//.rule 将规则rule不断应用于expr知道不变为止param_ 名为param的一个任意表达式(形式变量)param__名为param的任意多个任意表达式(形式变量) 二、系统常数 Pi 3.1415....的无限精度数值 E 2.17828...的无限精度数值 Catalan 0.915966..卡塔兰常数 EulerGamma 0.5772....高斯常数 GoldenRatio 1.61803...黄金分割数 Degree Pi/180角度弧度换算 I复数单位 Infinity无穷大

Mathematica的常用函数

Mathematica的内部常数 Pi , 或π(从基本输入工具栏输入, 或“Esc”+“p”+“Esc”)圆周率π E (从基本输入工具栏输入, 或“Esc”+“ee”+“Esc”)自然对数的底数e I (从基本输入工具栏输入, 或“Esc”+“ii”+“Esc”)虚数单位i Infinity, 或∞(从基本输入工具栏输入, 或“Esc”+“inf”+“Esc”)无穷大∞ Degree 或°(从基本输入工具栏输入,或“Esc”+“deg”+“Esc”)度 Mathematica的常用内部数学函数 指数函数Exp[x]以e为底数 对数函数Log[x]自然对数,即以e为底数的对数 Log[a,x]以a为底数的x的对数 开方函数Sqrt[x]表示x的算术平方根 绝对值函数Abs[x]表示x的绝对值 三角函数 (自变量的单位为弧度)Sin[x]正弦函数 Cos[x]余弦函数 Tan[x]正切函数 Cot[x]余切函数 Sec[x]正割函数 Csc[x]余割函数 反三角函数ArcSin[x]反正弦函数 ArcCos[x]反余弦函数 ArcTan[x]反正切函数 ArcCot[x]反余切函数 ArcSec[x]反正割函数 ArcCsc[x]反余割函数 双曲函数Sinh[x]双曲正弦函数 Cosh[x]双曲余弦函数 Tanh[x]双曲正切函数 Coth[x]双曲余切函数 Sech[x]双曲正割函数 Csch[x]双曲余割函数 反双曲函数ArcSinh[x]反双曲正弦函数 ArcCosh[x]反双曲余弦函数 ArcTanh[x]反双曲正切函数 ArcCoth[x]反双曲余切函数 ArcSech[x]反双曲正割函数 ArcCsch[x]反双曲余割函数 求角度函数ArcTan[x,y]以坐标原点为顶点,x轴正半轴为始边,从原点到点(x,y)的射线为终边的角,其单位为弧度 数论函数GCD[a,b,c,...]最大公约数函数 LCM[a,b,c,...]最小公倍数函数

Mathematica函数大全

Mathematica函数大全一、运算符及特殊符号 Line1; 执行Line,不显示结果 Line1,line2 顺次执行Line1,2,并显示结果 ?name 关于系统变量name的信息 ??name 关于系统变量name的全部信息 !command 执行Dos命令 n! N的阶乘 !!filename 显示文件内容 <> filename 打开文件写 Expr>>>filename 打开文件从文件末写 () 结合率 [] 函数 {} 一个表 <*Math Fun*> 在c语言中使用math的函数 (*Note*) 程序的注释 #n 第n个参数 ## 所有参数 rule& 把rule作用于后面的式子 % 前一次的输出 %% 倒数第二次的输出 %n 第n个输出 var::note 变量var的注释 "Astring " 字符串 Context ` 上下文 a+b 加 a-b 减 a*b或a b 乘 a/b 除 a^b 乘方 base^^num 以base为进位的数 lhs&&rhs 且 lhs||rhs 或 !lha 非 ++,-- 自加1,自减1 +=,-=,*=,/= 同C语言

>,<,>=,<=,==,!= 逻辑判断(同c) lhs=rhs 立即赋值 lhs:=rhs 建立动态赋值 lhs:>rhs 建立替换规则 lhs->rhs 建立替换规则 expr//funname 相当于filename[expr] expr/.rule 将规则rule应用于expr expr//.rule 将规则rule不断应用于expr知道不变为止 param_ 名为param的一个任意表达式(形式变量) param__ 名为param的任意多个任意表达式(形式变量) 二、系统常数 Pi 3.1415....的无限精度数值 E 2.17828...的无限精度数值 Catalan 0.915966..卡塔兰常数 EulerGamma 0.5772....高斯常数 GoldenRatio 1.61803...黄金分割数 Degree Pi/180角度弧度换算 I 复数单位 Infinity 无穷大 -Infinity 负无穷大 ComplexInfinity 复无穷大 Indeterminate 不定式 三、代数计算 Expand[expr] 展开表达式 Factor[expr] 展开表达式 Simplify[expr] 化简表达式 FullSimplify[expr] 将特殊函数等也进行化简 PowerExpand[expr] 展开所有的幂次形式 ComplexExpand[expr,{x1,x2...}] 按复数实部虚部展开 FunctionExpand[expr] 化简expr中的特殊函数 Collect[expr, x] 合并同次项 Collect[expr, {x1,x2,...}] 合并x1,x2,...的同次项 Together[expr] 通分 Apart[expr] 部分分式展开 Apart[expr, var] 对var的部分分式展开 Cancel[expr] 约分 ExpandAll[expr] 展开表达式 ExpandAll[expr, patt] 展开表达式 FactorTerms[poly] 提出共有的数字因子 FactorTerms[poly, x] 提出与x无关的数字因子 FactorTerms[poly, {x1,x2...}] 提出与xi无关的数字因子 Coefficient[expr, form] 多项式expr中form的系数

附录B:Mathematica的基本应用b

附录B :Mathematica 的基本应用 1. 什么是Mathematica Mathematica 是美国Wolfram Research 公司开发的通用科学计算软件,主要用途是科学研究与工程技术中的计算,这里介绍的是第6版(2008年更新为第7版)。由于它的功能十分强大,使用非常简便,现在已成为大学师生进行教学和科研的有力工具。它的主要特点有: 1)既可以进行程序运行,又可以进行交互式运行。一句简单的Mathematic 命令常常可以完成普通的c 语言几十甚至几百个语句的工作。例如解方程:x 4 + x 3 + 3x -5 = 0只要运行下面的命令: Solve[x^4+x^3+3 x-5 0,x] 。 2) 既可以进行任意高精度的数值计算,又可以进行各种复杂的符号演算,如函数的微分、积分、幂级数展开、矩阵求逆等等。它使许多以前只能靠纸和笔解决的推理工作可以用计算机处理。例如求不定积分:? x 4 e -2x dx 只要运行下面的命令: Integrate[x^4*Exp[2 x],x]。 3) 既可以进行抽象计算,又可以用图形、动画和声音等形式来具体表现,使人能够直观地把握住研究对象的特性。例如绘制函数图形:y = e -x /2 cos x , x ∈ [0, π],只要运行下面的命令: Plot[Exp[x/2]*Cos[x],{x,0,Pi}]。 4) Mathematica 把各种功能有机地结合在一个集成环境里,可以根据需要做不同的操作,给使用者带来极大的方便。 2. Mathematica 的基本功能 2.1 基本运算及其对象 Mathematica 的基本数值运算有加法、减法、乘法、除法和乘(开)方,分别用运算符“+”、“-”、“*”、“/”和“^”来表示(在不引起误解的情况下,乘号可以省略或用空格代替),例 如2.4*3^2 -(5/(6+3))^(1/3)表示3236534.2)(+÷-?。小括号“(”和“)”作为表示运算优先顺 序的符号,用于组合运算;中括号用于命令和函数,大括号用于集合和列表。 Mathematica 的关系运算符有:>、<、>=、<=、!=、== 等,它们的意义与通常的数学语言相同,要注意“!=”表示不等于,双等号“==”表示等于。而单等号“=”和冒号等号“:=”表示定义或赋值,不表示相等。逻辑运算符主要有:!、&&、||,它们的意义与c 语言中相同,分别是“非”、“与”、“或”。 Mathematica 的基本数值运算对象有常数、变数和函数,包含整数,有理数、实数和复数等数值类型。为了方便,Mathematica 预先用符号表示了一些重要常数,如Pi 表示圆周率π,E 表示自然对数的底e = 2.17828…,I 表示虚单位i ,Infinity 表示无穷大∞等。比如说,E^(2*Pi*I)表示i e π2。 Mathematica 还预先定义了大量数学函数以供调用,调用格式为“函数名[自变量]”,预定义的函数名用大写字母开始的标识符表示,常用的有

Mathematica中的常用函数命令

第8章Mathematica中的常用函数8.1 运算符及特殊符号 Linel 执行Line,不显示结果 Linel,line2 顺次执行Line1,Line2,并显示结果 ?name 关于系统变量name的信息 ??name 关于系统变量name的全部信息 !command 执行Dos命令 N! N的阶乘 !!filename 显示文件内容 <>filename 打开文件写 Expr>>>filename 打开文件从文件末写 ( ) 结合率 [ ] 函数 { } 一个表 <*MathFun*> 在c语言中使用math的函数 (*Note*) 程序的注释 #n 第n今参数 ## 所有参数 Rule& 把rule作用于后面的式子 % 前一次的输出 %% 倒数第二次的输出 Var::mote 变量var的注释 “Astring”字符串 Context 上下文 A+b 加 a-b 减 A*b或ab 乘 A/b 除 8.2 系统常量 Pi 3.1415的无限精度数值 E 2.17828的无限精度数值 Catalan 0.915966Catalan常数 EulerGamma 0.5772Euler常数 Khinchin 2.68545Khinchin Glaisher 0.915966Glaisher GoldenRatio 1.61803黄金分割数 Degree π/l80角度弧度换算 I 复数单位 Infinity 无穷大

-Infinity 负无穷大 Complexlnfinity 复无穷大 Indeterminate 不定式 8.3 代数计算 Expand[expr] 展开表达式 Factor[expr] 展开表达式 Simplify[expr] 化简表达式 FullSimplify[expr] 将特殊函数也进行化简PowerExpand[expr] 展开所有的幂次形式ComplexExpand[expr,{x1,x2…}] 按复数实部虚部展开FunctionExpand[expr] 化简表达式中的特殊函数 Collect[expr,x] 合并同次项 Collect[expr,{x1,x2,…}] 合并x1,x2,...的同次项 Together[expr] 通分 Apart[expr] 部分分式展开 Apart[expr,var] 对var的部分分式展开 Cancel[expr] 约分 ExpandAll[expr] 展开表达式 ExpandAll[expr,patt] 展开表达式 FactorTermsrpoly] 提出共有的数字因子 FactorTerms[poly,x] 提出与x无关的数字因子 FactorTerms[poly,(x1,x2…)] 提出与xi无关的数字因子 Coefficient[expr,form] 多项式expr中form的系数 Coefficient[expr,form,n] 多项式expr中form^n的系数 Exponent[expr,form] 表达式expr中form的最高指数 Numerator[expr] 表达式expr的分子 Denominator[expr] 表达式expr的分母 ExpandNumerator[expr] 展开expr的分子部分 8.4 解方程 Solve[eqns,vats] 从方程组eqns中解出Vats Solve[eqns,vats,elims] 从方程组eqns中削去变量elims,解出vats DSolve[eqn,y,x] 解微分方程,其中、y是x的函数 DSolve[{eqnl,eqn2,…},{y1,y2…},] 解微分方程组,其中yi是x的函数DSolve[eqn,y,{x1,x2…}]解偏微分方程 Eliminate[eqns,Vats] 把方程组eqns中变量vars约去SolveAlways[eqns,vars] 给出等式成立的所有参数满足的条件Reduce[eqns,Vats] 化简并给出所有可能解的条件LogicalExpand[expr] 用&&和,,将逻辑表达式展开InverseFunction[f] 求函数f的反函数 Root[f,k] 求多项式函数的第k个根

mathematica函数

其它函数HoldPattern用模式匹配,输出匹配之后的值MonomialList提取函数变量 Dynamic动态函数 Manipulate动态演示 Animate制作动画 ListAnimate将所有的图象制作动画 UpdateInterval更新时间间隔 Pause运算间隔 ToCharacterCode给出ASCII码 FromCharacterCode由ASCII码转化 Import载入 Export输出 DateList调取当时的时刻 Compile并行运算 Module局部变量 Block模块 Clear清除变量 CellularAutomaton元胞自动机 TuringMachine图灵机 ProgressIndicator变量追踪 Boole变量函数 True/TrueQ检测是否为真 False/FalseQ检测是否为假 Not否定 IntegerQ检测是否为整数 PrimeQ检测是否为质数 VectorQ检测是否为向量(单层链表) MatrixQ检测是否为矩阵(双层链表) NumberQ检测是否为数字(非变量,不识别含有属性的数字)NumericQ检测是否为数字 OddQ检测是否为奇数 EvenQ检测是否为偶数 MemberQ检测是否为元素 ImageQ是否为图片 画图函数 Plot画非隐式单变量函数 ParametricPlot参数函数画图 PolarPlot极坐标画图 Plot3D画非隐式双变量函数 ListPlot画二维点 ListPointPlot画二维点 ListLinePlot一次插值函数图 ListPlot3D画三维经一次插值之后的图象

Mathematica函数

Mathematica中数的类型: Integer任意长度的精确整数 Rational有理数的最简形式 Real实数 Complex复数 检验不同类型的数: NumberQ[x]检验x是否是数 IntegerQ[x] 检验x是否是整数 EvenQ[x] 检验x是否是偶数 OddQ[x] 检验x是否是奇数 PrimeQ[x] 检验x是否是素数 Head[x]===type 检验数的类型 数的输入形式: 不同形式的数之间的转换 IntegerDigits[n]整数n在十进制中的每一位数的列表 IntegerDigits[n, b]整数n在b进制中的每一位数的列表 IntegerDigits[n, b, len]在每位数的列表中的左端补0,使列表长度达到lenIntegerExponent[n, b]整数n在b进制中末尾零的个数 RealDigits[x]实数x在十进制中每一位数的列表,并给出小数点左边的位数RealDigits[x, b]实数x在b进制中的每一位数的列表 RealDigits[x, b, len] 实数x在b进制中的前len位的每一位数的列表

RealDigits[x, b, len, n]从b n的系数开始的前len位的列表FromDigits[list]从其十进制每位数的序列重构该数 FromDigits[list, b] 从其b进制每位数的序列重构该数 b^^nnnn b进制下的数 BaseForm[x, b] x在b进制下的形式 MantissaExponent[x]给出包含x的尾数和指数的列表(科学计数法)MantissaExponent[x, b]给出b进制下的尾数和指数 数值精度 Precision[x] x的十进制下的有效数位的总数 Accuracy[x] x的十进制下小数点后边的有效数位的数目 不定结果和无穷结果 Indeterminate 不确定的数值结果 Infinity 正无穷大量 -Infinity 负无穷大量(DirectedInfinity[-1])DirectedInfinity[r] 具有复方向r的无穷大量ComplexInfinity 不定方向的无穷大量 DirectedInfinity[ ] 等价于ComplexInfinity

mathematica_函数表

mathemat ica 命令大全 Mathemat ica 的内部常数 Pi , 或 π(从基本输入工具栏输入, 或“Esc ”+“p ”+“Esc ”) 圆周率 π E (从基本输入工具栏输入, 或“Esc ”+“ee ”+“Esc ”) 自然对数的底数e I (从基本输入工具栏输入, 或“Esc ”+“ii ”+“Esc ”) 虚数单位i 无穷大 ∞

A r c Sin[x]反正弦函数 A r cCos[x]反余弦函数 A r cTan[x]反正切函数 反三角函数 A r cCot[x]反余切函数 A r cSec[x]反正割函数 A r cCsc[x]反余割函数 S i n h[x]双曲正弦函数 Co s h[x]双曲余弦函数 Tanh[x] 双曲正切函数 双曲函数 Co t h[x]双曲余切函数 Sech[x] 双曲正割函数 C sc h[x]双曲余割函数 A r cSinh[x]反双曲正弦函数 A r c Cosh[x]反双曲余弦函数 A r c Tanh[x]反双曲正切函数 反双曲函数 A r c Coth[x]反双曲余切函数 A r c Sec h[x]反双曲正割函数 A r c Csc h[x]反双曲余割函数 求角度函数A r cTan[x,y]以坐标原点为顶点,x轴正半轴为始边,从原点到点(x,y) 的射线为终边的角,其单位为弧度 GCD[a,b,c,〃〃〃]最大公约数函数 L C M[a,b,c,〃〃〃]最小公倍数函数 M od[m,n]求余函数(表示m除以n的余数) Q u o ti e n t[m,n]求商函数(表示m除以n的商) 数论函数D i v isors[n]求所有可以整除n的整数 Fa c to rI n te ge r[n]因数分解,即把整数分解成质数的乘积 P r i me[n]求第n个质数 P r i meQ[n]判断整数n是否为质数,若是,则结果为T r u e,否则结果为F a l se R an do m[Int e g e r,{m,n}]随机产生m到n之间的整数 排列组合函数Fa c torial[n]或n!阶乘函数,表示n的阶乘 R e[z]实部函数 I m[z]虚部函数

mathematica命令大全

楼主大中小发表于 2005-11-20 21:55 只看该作者[分享]mathematica命令大全 Mathematica函数大全 一、运算符及特殊符号 Line1; 执行Line,不显示结果 Line1,line2 顺次执行Line1,2,并显示结果 ?name 关于系统变量name的信息 ??name 关于系统变量name的全部信息 !command 执行Dos命令 n! N的阶乘 !!filename 显示文件内容 Expr>> filename 打开文件写 Expr>>>filename 打开文件从文件末写 () 结合率 [] 函数 {} 一个表 <*Math Fun*> 在c语言中使用math的函数 (*Note*) 程序的注释 #n 第n个参数 ## 所有参数 rule& 把rule作用于后面的式子 % 前一次的输出 %% 倒数第二次的输出 %n 第n个输出 var::note 变量var的注释 "Astring " 字符串 Context ` 上下文 a+b 加 a-b 减 a*b或a b 乘 a/b 除 a^b 乘方 base^^num 以base为进位的数 lhs&&rhs 且 lhs||rhs 或

!lha 非 ++,-- 自加1,自减1 +=,-=,*=,/= 同C语言 >,<,>=,<=,==,!= 逻辑判断(同c) lhs=rhs 立即赋值 lhs:=rhs 建立动态赋值 lhs:>rhs 建立替换规则 lhs->rhs 建立替换规则 expr//funname 相当于filename[expr] expr/.rule 将规则rule应用于expr expr//.rule 将规则rule不断应用于expr知道不变为止param_ 名为param的一个任意表达式(形式变量)param__ 名为param的任意多个任意表达式(形式变量) 二、系统常数 Pi 3.1415....的无限精度数值 E 2.17828...的无限精度数值 Catalan 0.915966..卡塔兰常数 EulerGamma 0.5772....高斯常数 GoldenRatio 1.61803...黄金分割数 Degree Pi/180角度弧度换算 I 复数单位 Infinity 无穷大 -Infinity 负无穷大 ComplexInfinity 复无穷大 Indeterminate 不定式 三、代数计算 Expand[expr] 展开表达式 Factor[expr] 展开表达式 Simplify[expr] 化简表达式 FullSimplify[expr] 将特殊函数等也进行化简PowerExpand[expr] 展开所有的幂次形式ComplexExpand[expr,{x1,x2...}] 按复数实部虚部展开FunctionExpand[expr] 化简expr中的特殊函数 Collect[expr, x] 合并同次项 Collect[expr, {x1,x2,...}] 合并x1,x2,...的同次项 Together[expr] 通分

Mathematica画图函数命令大全

二维作图 Plot[f,{x,xmin,xmax}] 一维函数f[x]在区间[xmin,xmax]上的函数曲? Plot[,f2.{f1.},{x,xmin,xmax}] 在一张图上画几条曲线 ListPlot[{y1,y2,..}] 绘出由离散点对(n,yn)组成的图 ListPlot[{{x1,y1},{x2,y2},..}] 绘出由离散点对(xn,yn)组成的图 PlarametricPot[{fx,fy},{t,tmin,tmax}] 由参数方程在参数变化范围内的曲线ParametricPlot[{{fx,fy},{gx,gy},...},{t,tmin,tmax}]在一张图上画多条参数曲线选项: PlotRange->{0,1} 作图显示的值域范围 AspectRatio->1/GoldenRatio生成图形的纵横比 PlotLabel ->label 标题文字 Axes ->{False,True} 分别制定是否画x,y轴 AxesLabel->{xlabel,ylabel}x,y轴上的说明文字 Ticks->None,Automatic,fun用什么方式画轴的刻度 AxesOrigin ->{x,y} 坐标轴原点位置 AxesStyle->{{xstyle}, {ystyle}}设置轴线的线性颜色等属性 Frame ->True,False 是否画边框 FrameLabel ->{xmlabel,ymlabel,xplabel,yplabel} 边框四边上的文字 FrameTicks同Ticks 边框上是否画刻度 GridLines 同Ticks 图上是否画栅格线 FrameStyle ->{{xmstyle},{ymstyle}设置边框线的线性颜色等属性 ListPlot[data,PlotJoined->True] 把离散点按顺序连线 PlotSytle->{{style1},{style2},..}曲线的线性颜色等属性 PlotPoints->15 曲线取样点,越大越细致 三维作图 Plot3D[f,{x,xmin,xmax}, {y,ymin,ymax}] 二维函数f[x,y]的空间曲面 Plot3D[{f,s}, {x,xmin,xmax}, {y,ymin,ymax}]同上,曲面的染色由s[x,y]值决定ListPlot3D[array] 二维数据阵array的立体高度图 ListPlot3D[array,shades]同上,曲面的染色由shades[数据]值决定ParametricPlot3D[{fx,fy,fz},{t,tmin,tmax}] 二元数方程在参数变化范围内的曲线 二元数方程在参数变化范围内的曲线 ParametricPlot3D[{{fx,fy,fz},{gx,gy,gz},...},{t,tmin,tmax}]多条空间参数曲线选项: ViewPoint ->{x,y,z} 三维视点,默认为{1.3,-2.4,2} Boxed -> True,False 是否画三维长方体边框 BoxRatios->{sx,sy,sz} 三轴比例 BoxStyle 三维长方体边框线性颜色等属性 Lighting ->True 是否染色 LightSources->{s1,s2..} si为某一个光源si={{dx,dy,dz},color} color为灯色,向dx,dy,dz方向照射 AmbientLight->颜色函数慢散射光的光源

Mathematica 函数及使用方法

Mathematica函数及使用方法Mathematica函数大全--运算符及特殊符号一、运算符及特殊符号 Line1;执行Line,不显示结果 Line1,line2顺次执行Line1,2,并显示结果?name关于系统变量name的信息 ??name关于系统变量name的全部信息 !command执行Dos命令 n!N的阶乘 !!filename显示文件内容 <>filename打开文件写 Expr>>>filename打开文件从文件末写 ()结合率 []函数 {}一个表 <*Math Fun*>在c语言中使用math的函数(*Note*)程序的注释 #n第n个参数 ##所有参数 rule&把rule作用于后面的式子 %前一次的输出 %%倒数第二次的输出 %n第n个输出 var::note变量var的注释 "Astring"字符串 Context`上下文 a+b加 a-b减

a*b或a b乘 a/b除 a^b乘方 base^^num以base为进位的数 lhs&&rhs且 lhs||rhs或 !lha非 ++,--自加1,自减1 +=,-=,*=,/=同C语言 >,<,>=,<=,==,!=逻辑判断(同c) lhs=rhs立即赋值 lhs:=rhs建立动态赋值 收集制作:科研中国https://www.360docs.net/doc/b04982935.html,文章出处:南京大学小百合站lhs:>rhs建立替换规则 lhs->rhs建立替换规则 expr//funname相当于filename[expr] expr/.rule将规则rule应用于expr expr//.rule将规则rule不断应用于expr知道不变为止 param_名为param的一个任意表达式(形式变量) param__名为param的任意多个任意表达式(形式变量) Mathematica函数及使用方法————————————————————————————————————— 二、系统常数 Pi3.1415....的无限精度数值 E2.17828...的无限精度数值 Catalan0.915966..卡塔兰常数 EulerGamma0.5772....高斯常数 GoldenRatio1.61803...黄金分割数

mathematica命令大全

mathematica命令大全 Mathematica的内部常数 Pi , 或π(从基本输入工具栏输入, 或“Esc”+“p”+“Esc”) 圆周率π E (从基本输入工具栏输入, 或“Esc”+“ee”+“Esc”)自然对数的底数e I (从基本输入工具栏输入, 或“Esc”+“ii”+“Esc”)虚数单位i Infinity, 或∞(从基本输入工具栏输入, 或“Esc”+“inf”+“Esc”)无穷大∞ Degree 或°(从基本输入工具栏输入,或“Esc”+“deg”+“Esc”)度 Mathematica的常用内部数学函数 指数函数 Exp[x] 以e为底数 对数函数 Log[x] 自然对数,即以e为底数的对数 Log[a,x] 以a为底数的x的对数 开方函数Sqrt[x] 表示x的算术平方根 绝对值函数Abs[x] 表示x的绝对值 三角函数(自变量的单位为弧度)Sin[x] 正弦函数Cos[x] 余弦函数Tan[x] 正切函数Cot[x] 余切函数

Sec[x] 正割函数Csc[x] 余割函数 反三角函数ArcSin[x] 反正弦函数ArcCos[x] 反余弦函数ArcTan[x] 反正切函数ArcCot[x] 反余切函数ArcSec[x] 反正割函数ArcCsc[x] 反余割函数 双曲函数Sinh[x] 双曲正弦函数Cosh[x] 双曲余弦函数Tanh[x] 双曲正切函数Coth[x] 双曲余切函数Sech[x] 双曲正割函数Csch[x] 双曲余割函数 反双曲函数ArcSinh[x] 反双曲正弦函数ArcCosh[x] 反双曲余弦函数ArcTanh[x] 反双曲正切函数ArcCoth[x] 反双曲余切函数ArcSech[x] 反双曲正割函数ArcCsch[x] 反双曲余割函数 求角度函数ArcTan[x,y] 以坐标原点为顶点,x轴正半轴为始边,从原点到点(x,y) 的射线为终边的角,其单位为弧度 数论函数GCD[a,b,c,...] 最大公约数函数 LCM[a,b,c,...] 最小公倍数函数Mod[m,n] 求余函数(表示m除以n的余数)

Mathematica运算符特殊符号函数大全

athematica函数大全--运算符及特殊符号一、运算符及特殊符号 Line1; 执行Line,不显示结果 Line1,line2 顺次执行Line1,2,并显示结果?name 关于系统变量name的信息 ??name 关于系统变量name的全部信息 !command 执行Dos命令 n! N的阶乘 !!filename 显示文件内容 < Expr>> filename 打开文件写 Expr>>>filename 打开文件从文件末写 () 结合率 [] 函数 {} 一个表 <*Math Fun*>在c语言中使用math的函数(*Note*) 程序的注释 #n 第n个参数 ## 所有参数 rule&把rule作用于后面的式子 % 前一次的输出 %% 倒数第二次的输出 %n 第n个输出 var::note 变量var的注释 "Astring " 字符串 Context ` 上下文 a+b 加 a-b 减 a*b或a b 乘 a/b 除 a^b 乘方 除 a^b 乘方 base^^num 以base为进位的数 lhs&&rhs 且 lhs||rhs 或 !lha 非 ++,-- 自加1,自减1 +=,-=,*=,/= 同C语言 >,<,>=,<=,==,!= 逻辑判断(同c)

lhs=rhs 立即赋值 lhs:=rhs 建立动态赋值 lhs:>rhs 建立替换规则 lhs->rhs 建立替换规则 expr//funname 相当于filename[expr] expr/.rule 将规则rule应用于expr expr//.rule 将规则rule不断应用于expr知道不变为止param_ 名为param的一个任意表达式(形式变量)param__ 名为param的任意多个任意表达式(形式变量) 二、系统常数 Pi 3.1415....的无限精度数值 E 2.17828...的无限精度数值 Catalan 0.915966..卡塔兰常数 EulerGamma 0.5772....高斯常数 GoldenRatio 1.61803...黄金分割数 Degree Pi/180角度弧度换算 I 复数单位 Infinity 无穷大 -Infinity 负无穷大 ComplexInfinity 复无穷大 Indeterminate 不定式 三、代数计算 Expand[expr] 展开表达式 Factor[expr] 展开表达式 Simplify[expr] 化简表达式 FullSimplify[expr] 将特殊函数等也进行化简PowerExpand[expr] 展开所有的幂次形式ComplexExpand[expr,{x1,x2...}] 按复数实部虚部展开FunctionExpand[expr] 化简expr中的特殊函数 Collect[expr, x] 合并同次项 Collect[expr, {x1,x2,...}] 合并x1,x2,...的同次项 Together[expr] 通分 Apart[expr] 部分分式展开 Apart[expr, var] 对var的部分分式展开 Cancel[expr] 约分 ExpandAll[expr] 展开表达式 ExpandAll[expr, patt] 展开表达式 FactorTerms[poly] 提出共有的数字因子 FactorTerms[poly, x] 提出与x无关的数字因子FactorTerms[poly, {x1,x2...}] 提出与xi无关的数字因子Coefficient[expr, form] 多项式expr中form的系数Coefficient[expr, form, n] 多项式expr中form^n的系数

Mathematica学习之路

Mathematica入门教程 二.“表”及其用法 “表”是Mathematica中一个相当有用的数据类型,它即可以作为数组,又可以作为矩阵;除此以外,你可以把任意一组表达式用一个或一组{}括起来,进行运算、存储。可以说表是任意对象的一个集合。它可以动态地分配内存,可以方便地进行插入、删除、排序、翻转等等几乎所有可以想象到的操作。 如果你建立了一个表,你可以通过下表操作符[[]](双方括号)来访问它的每一个元素,如我们定义table={2,Pi,Sin[x],{aaa,A*I}}为一个表,那么table[[1]]就为2,table[[2]]就是Pi,而table[[3,1]]表示嵌套在table中的子表{aaa,A*I}的第一个元素即aaa,table[[3,2]]表示{aaa,A*I}第二个元素即A*I。总之,表每一层次上并列的部分用逗号分割,表可以无穷嵌套。 你可以通过Append[表,表达式]或Prepend[表,表达式]把表达式添加到表的最前面或最后面,如Append[{1,2,3},a]表示{1,2,3,a}。你还可以通过Union[表1,表2,......],Jion[表1,表2,......]来把几个表合并为一个表,二者不同在于Union在合并时删除了各表中重复的元素,而后者仅是简单的合并;你还可以使用Flatten[表]把表中所有子表"抹平"合并成一个表,而Patition[表,整数n]把表按每n个元素分段作为子表,集合成的表。如Flatten[{1,2,{Sin[x],dog},{{y}}}]表示{1,2,Sin[x],y},而Partition[{1,2,Sin[x],y},2]把表每两个分段,结果为{{1,2},{Sin[x],y}};还可以通过Delete[表,位置]、Insert[表,位置]来向表中按位置插入或删除元素,如要删除上面提到的table中的aaa,你可以用Delete[table,{3,1}]来实现;Sort[表]给出了表中各元素的大小顺序,Reverse[表]、RotateLeft[表,整数n]、RotateRight[表,整数n]可以分别将一个表进行翻转、左转n个元素、右转n个元素等操作,Length[表]给出了表第一个层次上的元素个数,Position[表,表达式]给出了表中出现该表达式的位置,Count[表,表达式]则给出表达式出现的次数。各种表的操作函数还有很多,这里就不再一一介绍了。 三.图形函数 Mathematica的图形函数十分丰富,用寥寥几句就可以画出复杂的图形,而且可以通过变量和文件存储和显示图形,具有极大的灵活性。 图形函数中最有代表性的函数为Plot[表达式,{变量,下限,上限},可选项],(其中表达式还可以是一个"表达式表",这样可以在一个图里画多个函数);变量为自变量;上限和下限确定了作图的范围;可选项可要可不要,不写系统会按默认值作图,它表示对作图的具体要求。例如Plot[Sin[x],{x,0,2*Pi},AspectRatio-1]表示在0

相关文档
最新文档