书签 分享 收藏 举报 版权申诉 / 28
上传文档赚钱

类型gauss-操作入门.doc

  • 上传人(卖家):罗嗣辉
  • 文档编号:1768326
  • 上传时间:2021-10-01
  • 格式:DOC
  • 页数:28
  • 大小:144.36KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《gauss-操作入门.doc》由用户(罗嗣辉)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    gauss_ 操作 入门
    资源描述:

    1、1 GaussGauss 系统介绍系统介绍 目录目录 1. 系统初步 2. 矩阵介绍 3. 矩阵运算及其它运算 4. Gauss 程序控制 5. 过程与模块化程序设计 6. 文件输入输出 7. Gauss 图形简介 8. 重要函数及语句分类参考 Gauss 系统是 Aptech Systems 公司出品的一个矩阵语言软件包,它可以十分方 便地编制矩阵计算程序,并内建了许多矩阵运算、概率统计函数,还可以绘制印 刷质量的图形。它可以在命令行交互计算,也可以编程计算,编程时具有通常的 分支、循环、模块化子程序等功能,并以矩阵为基本运算单位。利用附加的模块 可以进行经济财务分析、统计分析等等。我们主要

    2、用它来编制统计计算、模拟程 序。它进行矩阵运算时速度很快,甚至比编译的 C 代码还要快,这是因为它采用 了优化的矩阵计算内核。 Gauss 系统有微机版本,也可以运行于工作站等高档 机型。这里以 DOS 版 Gauss v2.2 为例说明。 系统初步系统初步 在安装好 Gauss 系统后,一般用一个批命令进入 Gauss 系统,比如说是 G0.BAT。 进入系统后,出现一个命令行的界面,命令提示为“”形状。在命令提示下可 以输入 Gauss 语句。用 Alt+H 可以启动帮助系统,在帮助系统内按 H 键后输入问 号然后回车可以得到一个帮助菜单。 为了退出 Gauss 系统,可以在命令行发布 S

    3、YSTEM 命令,或者按 ESC 键并回答 Y。 Gauss 的基本计算单位是矩阵。定义标量、向量、矩阵用等号赋值即可。例如, a = 15.2; b1 = 1 2 3; b2 = 1, 2, 3; c = 1 2 3, 4 5 6, 7 8 9; name=My first Gauss program 分别定义了标量 a、行向量 b1、列向量 b2、矩阵 c、字符串标量 name。矩阵定 义中一行的元素间用空格分隔,各列用逗号分隔。字符串两边用双撇号包围,不 2 能用单撇号。 Gauss 中除了字符串常量外不区分大小写,所以变量名既可以用 大写,也可以用小写。语句以分号结束,但在命令行界面可

    4、以省略分号。 要显示定义的变量的值,在命令行界面下只要键入变量名就可以显示其值,例如 c 1.00000002.00000003.0000000 4.00000005.00000006.0000000 7.00000008.00000009.0000000 显示变量值的正规方法是使用 PRINT 语句,如“print c;”。 PRINT 语句可以 输出几项,各项之间用空格分开,所以 PRINT 语句中如果有表达式,表达式中一 定不能有空格。例如: print A = a b1 = b1 A = 15.200000 b1 = 1.0000000 2.0000000 3.0000000 有一些函

    5、数可以生成常见的向量和矩阵。 SEQA(start, step, length)可以产生 从 start 开始, 按 step 递增, 长度为 length 的等差数列列向量, 如 seqa(1,2,4) 产生元素为 1、 3、 5、 7 的列向量。 SEQM(start, rate, length)可以产生从 start 开始,每次乘以 rate 的长度为 length 的等比数列列向量。 ZEROS(n,m)产生 n 行 m 列的元素全为零的矩阵。 ONES(n,m)产生 n 行 m 列的元素全为 1 的矩阵。 RNDU(n,m)产生 n 行 m 列的元素服从(0,1)均匀分布的伪随机数矩

    6、阵。RNDN(n,m) 产生 n 行 m 列的元素服从标准正态分布的伪随机数矩阵。 EYE(n)产生 n 阶单位 阵。 为了从键盘输入一个矩阵,使用函数 CON(n,m),其中 n 和 m 分别是要输入的行 数和列数。输入时用空格、回车、逗号分隔输入的数值。例如: c2 = con(2,3) ? 1 2 3 4 ? 5 6 c2 1.0000000 2.0000000 3.0000000 4.0000000 5.0000000 6.0000000 3 要输入字符串,一般用如“s= CONS;PRINT;”的方法,其中 s 是用来存放输入的 字符串的变量。 矩阵可以直接进行通常的矩阵运算。例如,

    7、 c1=1 2 3, 4 5 6; c2=3 2 1, 7 6 5; c3=c1+c2; c3; 4.0000000 4.0000000 4.0000000 11.000000 11.000000 11.000000 c4=1 2, 3 4; c5=c4*c3; c5; 26.000000 26.000000 26.000000 56.000000 56.000000 56.000000 矩阵 X 的转置可以用 X表示。 两个矩阵 X 和 Y 横向并接用 XY 表示。 矩阵 X 和 Y 纵向并接用 X|Y 表示。 为了解方程 A X = B,只要写 X = B/A 即可,当 A 为满秩方阵时即

    8、联立线性方程组求解, 当 A 的行数大于列数时求的是最小二乘 解。 矩阵与标量可以进行加减乘除运算。 除了可以使用命令行界面直接输入并运行 Gauss 语句, 我们还可以编辑一个程 序文件并运行这个程序文件。可以预先编辑好一个程序文件,比如 TEST.GSP, 里面有如下程序行: x=1 2 3; y=4,5,6; print x y; 4 把这个文件放在 Gauss 的当前目录下,在 Gauss 命令行用 RUN TEST.GSP 命令就可以运行这个程序文件。事实上, Gauss 提供了一个内建的程序编辑器, 比如,在命令行用 EDIT TEST.GSP 就可以打开 TEST.GSP 到 G

    9、auss 的内部编辑器中,如果原来没有这个文件将生成 一个新文件。编辑完毕按 Alt+X 出现一个选单,选 W 可以保存文件但不执行,选 R 可以保存并运行程序,并且运行时带有调试信息,可以显示出错行号。在运行 了一个程序后按 Ctrl+F1 键就可以之间调入刚刚执行的程序进行修改。 矩阵介绍矩阵介绍 Gauss 系统提供了一个完整的以矩阵为基本运算单位的程序设计语言。 Gauss 是一种解释性语言,但因为它的每一个操作都是对矩阵进行的,所以运行速度很 快。自己写程序时要尽量利用矩阵运算而应避免使用循环对单个元素运算。 Gauss 有矩阵和字符串两种数据类型。变量类型不需要预先说明。数据类型、

    10、元 素个数、矩阵形状可以在运行时改变。可以用 DECLARE 语句声明数据类型。矩阵 元素允许为字符串,字符矩阵的元素最多存储 8 个字符。 Gauss 的矩阵是按行存储的。矩阵元素都以 IEEE 8 字节双精度浮点数格式存在 内存中,称为“长实数”,有效位数有 1516 位,绝对值范围在 4.19E-307 到 1.67E308。 Gauss 计算由表达式完成。表达式是用运算符连接起来的常数、矩阵、字符串、 函数或过程调用。 Gauss 程序由语句构成,语句以分号结尾。 上一节我们已经看到了矩阵赋值的一些办法。 矩阵赋值还有一些灵活的方法, 如: let x2,2 = 1 2 3 4; 结果

    11、得到方阵 x,第一行为 1 2,第二行为 3 4。 let x2,3 = 1; 结果得到一个元素全为 1 的 2 行 3 列方阵。 let x2,3; 5 结果得到一个元素全为 0 的 2 行 3 列方阵。 LET 语句用来对矩阵赋值,但右边 只能是一些常数而不能是计算表达式。为了计算,省略 LET 并用和|连接行列, 例如: x (1/3) (1+1/4) | 3 4; 用 RESHAPE 函数可以改变一个矩阵的形状。例如, x = reshape(seqa(1,1,12), 3, 4); 把原始的列向量改成了 3 行 4 列矩阵: 1.0000000 2.0000000 3.0000000

    12、 4.0000000 5.0000000 6.0000000 7.0000000 8.0000000 9.0000000 10.000000 11.000000 12.000000 可以很方便地得到矩阵的子阵。例如, x2,3为第 2 行第三列元素, x1, . 为 x 的第一行, x., 2为 x 的第二列, x1 3,2 4为 x 的第 1、3 行和第 2、 4 列组成的子阵(注意方括号中不允许有多余的空格): x1 3,2 4; 2.0000000 4.0000000 10.000000 12.000000 下标可以用冒号表示一个范围,比如 x1 3,2:4; 2.0000000 3.0

    13、000000 4.0000000 10.000000 11.000000 12.000000 矩阵运算及其它运算矩阵运算及其它运算 Gauss 提供了丰富的运算符来进行矩阵运算和字符串操作。矩阵运算除了一般线 性代数中的运算外还有一些针对元素的运算, 为此定义两个矩阵 X 和 Y 是元素匹 6 配(ExE conformable)的,如果 X 和 Y 为图 1 情况之一。 元素运算为对应行、列元素的运算,如果行、列中只有一项是匹配的则只对这一 项匹配运算,例如: 7 上面的各运算交换后仍是匹配的。 Gauss 的矩阵运算包括: +加法。要求两矩阵元素匹配。 减法。要求两矩阵元素匹配。 *矩阵乘

    14、法或数乘。要求为 mk 阵乘以 kn 阵,或者两矩阵之一为标量。 /标量除或解线性方程组或最小二乘。 x = b / A 中如果 A 和 b 均为标量 则为标量除法; 如果 A 和 b 之一为标量则 x 为元素与标量分别相处得到的 矩阵。如果 A 为方阵, b 为与 A 阶数相同的列向量,则 b / A 用三角分 解方法解线性方程组 A x = b。如果 A 非方阵,与 b 行数相同,则求最小 二乘解。 %求余数运算。要求两矩阵元素匹配。对非整数先四舍五入。 !阶乘。比如 y= x!对 x 的每个元素求阶乘。非整数先四舍五入。 .*元素间乘积。要求两矩阵元素匹配。 ./元素间相除。要求两矩阵元

    15、素匹配。 元素间乘方。当底数为负数时指数必须取整数。 .与“”等价。 .*. Kronecker 积。 z = x .*. y 使 x 的每个元素的位置扩大为此元素乘 以 y 的结果。比如 *水平直积。计算 x * y, x 与 y 必须有相同行数,结果行数不变而列 数为 x 的列数与 y 的列数的乘积。比如 8 转置。 x为 x 的转置。 |垂直连接。比如 水平连接。比如 Gauss 提供的比较运算符包括: .= 或 .EQ 两矩阵元素间相等的比较,要求两矩阵元素相配,比较结果 为元素取 01 值的矩阵。 ./= 或 .NE 或 .$/= 两矩阵元素间不等的比较。 . 或 .LT 或 .$

    16、两矩阵元素间小于关系比较。 .= 或 .LE 或 .$ 或 .GT 或 .$G 两矩阵元素间大于关系比较。 .= 或 .GE 或 .$= 两矩阵元素间大于等于关系比较。 如果上面的比较算符中没有点则比较结果为标量结果,用于比较两个标量,如果 比较两个矩阵,则元素间所有比较结果都为真时才为真,否则为假。 Gauss 提供的逻辑运算符有: NOT x x 的否。 x AND y x 和 y 都成立时才为真。 x OR y x 和 y 只要有一个为真则结果为真。 x XOR y x 和 y 的异或。 x EQV y x 和 y 的等价。 上面的逻辑运算为标量运算, x 和 y 应为标量。逻辑运算也可

    17、以在两个矩阵的 元素之间进行,只要在运算符前加点,如 .AND, .OR。 其它运算符还有: 赋值:如 y=x1; 逗号:用作分隔符,比如 clear x, y, z; y = x3,5 9 y=momentd(x,d); 句点:在下标处代表“所有行”或“所有列”,例如 y=x.,5; /* 表示 x 的第 5 列所有行的元素组成的列向量 */ 空格:用来分开下标,例如: y=x1 3 5, 3 7; 冒号:在下标处表示连续的下标范围,如: y=x1:5,.; /* x 的第一到第五行 */ vnames = age,pay,sex; create f1 = dset with vname,

    18、0, 2; 结果等效于在 create 语句中直接写入字符串变量的值。 GaussGauss 程序控制程序控制 由于采用了矩阵作为基本运算单元, 所以 Gauss 程序经常用顺序结构就可以完成 任务。比如,要解方程组 只要用以下四个语句: A = 2 3,3 7; b = 9,11; x = b/A; print x; 10 结果得到: 6.0000000 -1.0000000 但是,对于比较复杂的问题,我们不可避免地要使用分支、循环等运算结构。 Gauss 提供了这些程序控制结构,但是我们再次提醒读者, Gauss 是一个基于矩 阵的语言,我们应该尽可能基于矩阵运算去实现算法。 Gauss

    19、分支结构使用 IF-ELSEIF-ELSE-ENDIF 结构,格式为: IF 标量表达式; (语句组) ELSEIF 标量表达式; (语句组) ELSE; (语句组) ENDIF; 其中各判断条件应为标量表达式,不允许是矩阵。标量值为非零时表示真值,为 零时表示假值。 “语句组”可以是一个或多个语句,每个语句以分号结尾。注 意 Gauss 的 IF 结构不使用 THEN 关键字。 Gauss 的循环结构为 DO WHILE 和 DO UNTIL 结构,没有计次循环结构。格式为: DO WHILE 标量表达式; (语句组) ENDO; 和 DO UNTIL 标量表达式; (语句组) ENDO;

    20、11 要注意其结束语句是 ENDO 而不是 ENDDO。为了从循环中退出可以用 BREAK 语句。 在循环中执行 CONTINUE 语句可以忽略循环体内后面的语句而返回到判断条件处 继续执行。 Gauss 也提供了 GOTO 语句,格式为:“GOTO 标号;”,其中标号为一个普通的 Gauss 名字,在定义时尾随一个冒号,引用时不写冒号,例如: goto errout; errout: Gauss 可以在程序中加注释,用/*和*/包围,或用和包围起来。 Gauss 的符号名(变量名、过程名、标号名等)要求由字母、数字、下划线组成, 第一个字符只能是字母或下划线,最多 8 个字符。 为了在程序运

    21、行时提供调试信息,可以在程序文件开头加上一个“#lineson;” 语句。这样出错时可以显示出错的行号。 过程与模块化程序设计过程与模块化程序设计 作为一个程序设计语言 Gauss 也提供了模块化的过程,可以实现模块化程序设 计。过程中可以使用局部变量,也可以引用外部的全局变量,并可以递归调用。 Gauss 使用用户自己编写的过程与使用内部过程一样方便。 Gauss 提供了一种单行函数定义可以很方便地把一个公式定义为一个函数,例 如: fn area(r) = 2*pi*r*r; 定义了面积函数,调用时只要用如“a=area(4);”。 过程可以使用复杂的程序逻辑,可以返回零到多个值,定义格式

    22、如下: PROC 返回值个数过程名(参数 1,参数 2, ,参数 N); LOCAL 语句; (语句组) RETP(表达式 1, ,表达式 N); 12 ENDP; 其中内的内容表示是可选的。当返回值个数为 1 个时可以省略“返回值个数 ”的说明。当没有参数时可以省略括号。没有返回值时要说明“(0)= ”即返 回值个数为 0,可以省略 RETP 语句。过程的调用格式为: 返回值 1, ,返回值 N= 过程名(参数 1,参数 2, ,参数 N); 或 CALL 过程名(参数 1,参数 2, ,参数 N); 使用 CALL 语句时无返回值或者忽略返回值。 例如,下面的过程计算回归分析: /* re

    23、gress * Input: * x - design matrix * y - dependent variable * Output: * b - regression coefficients * sd - standard deviation * t - t variable for every coefficient */ PROC (3)=regress(x, y); LOCAL xxi, b, ymxb, sse, sd, t; xxi = invpd(xx); b = xxi*(xy); ymxb = y - x*b; sse = ymxb*ymxb/(rows(x)-cols

    24、(x); 13 sd = sqrt(diag(sse*xxi); t = b ./ sd; retp(b, sd, t); ENDP; 调用可用如 b, sd, t = regress(x, y); 或 call regress(x, y); 使用 CALL 调用时忽略返回值。 在过程内使用的变量是局部变量,必须用 LOCALS 语句说明,对变量不必说明类 型,对过程名应说明为 PROC,单行函数说明为 FN,例如: locals x, y, f:proc, g:fn; 其中 x,y 是变量, f 是过程, g 是单行函数。 过程内可以使用全局变量,有两种全局变量,一种是所有在主程序中使用的变

    25、量 (即在所有过程外部定义的变量),例如: g_x = 1; call sub1; proc (0)=sub1; print in sub1; print global g_x = g_x; endp; 结果为: in sub1 global g_x = 1.0000000 14 我们注意到,这种用法很方便,但是也不利于程序调试(数据隐藏不够)。使用 Gauss 变较大的程序可能出现的一个问题就是在过程中无意中使用了主程序中 的变量名而造成不易发现的错误。 另一种全局变量在过程中使用 DECLARE 语句来声明, 声明的变量可以在其它过程 中使用。例如: call sub1; proc (0)

    26、=sub1; declare g_x != 0; g_x = 1; call sub2; endp; proc (0)=sub2; print in sub2; print global g_x = g_x; endp; DECLARE 语句中的!=表示赋初值,并且不论变量是否已初始化。如果改成?=则表 示原来未初始化则按给定值初始化,如果已经初始化则不动。如果改成=则表示 如果未初始化则初始化,如果已初始化则为重复定义错误。不写初值表示=0 初 始化。 过程也可以作为参数传递给另一个过程,例如我们有一个二分法解方程的过程 binsolv: proc binsolv( /* * f(x)是一个

    27、单调函数, * f(a)和 f(b)符号相反, * ascend=1 表示增函数, 15 * =0 表示减函数 * 解 c 应该在 a 和 b 之间 * 返回解. */ local f:proc, a, b, ascend; local c, tol; tol=1E-6; if(ascend); do until (b-a0); /* x 应该在 c 的左边 */ b=c; else; a=c; endif; endo; else; do until (b-a0); /* x 应该在 c 的右边 */ a=c; else; b=c; 16 endif; endo; endif; retp(c)

    28、; endp; 例如,我们要求函数 f(x)= x2 在 0 到 5 之间的解,可以用如下程序(写在上面 的程序上面, 或把上面的过程单独存为文件BINSOLV.G放在GAUSS的搜索路径中。 x = binsolv( print x; end; proc xsq(x); retp(x2 - 1); endp; 但是, 实际中我们要求解的函数经常是不止一个参数的,比如我们想利用 t 分布 的分布函数来求 t 分布的分位数,但 t 分布函数有第二个参数即自由度。这样的 问题需要定义一个辅助函数,这个辅助函数只有一个自变量,自由度通过全局变 量来传送。例如,下面的程序演示了如何调用 binsolv

    29、 过程编写一个求 t 分布分 位数的过程以及示例: q = con(1,1); x = tinv(q, 10); print tinv q x; end; proc tinv(q, n); 17 /* tinv 计算 n 个自由度的 t 分布的 q 分位数 */ declare tinv_n != 0; declare tinv_q1 != 0; tinv_n = n; tinv_q1 = 1-q; retp(binsolv( endp; proc futil(x); retp(cdftc(x, tinv_n)-tinv_q1); endp; 其中定义了辅助性的函数 futil,它依赖于函数

    30、tinv 中定义的两个全局变量 tinv_n 和 tinv_q1。 因为 Gauss 中没有给 t 分布函数而只是给了 t 分布的尾概率 函数(即 1 减分布函数),所以我们在 futil 中给的方程是解尾概率等于 1q。 甚至可以把过程指针组合成一个向量,例如: procvev = proc g(x, i); local f; f = procveci; local f:proc; retp(f(x); endp; Gauss 提供了很方便的模块化功能,其中一种是可以把一个过程放在一个单独的 与过程同名并用.G 作为扩展名的文件中,则程序执行时如果找不到某个过程自 18 动查找与过程同名的.

    31、G 文件。可以定义一个 GAUSSPATH 环境变量来设置从哪些 地方寻找过程。还可以把多个过程组合为一个“库文件”,一般为.ARC 文件, 并在一个.LIB 文件中加以说明,可以参考 Gauss 系统附带的 gauss.lib 等文件。 Gauss 可以把程序编译成字节码形式以加速运行。在命令行状态用 COMPILE 文件名; 命令可以把一个文件中的程序编译为字节码,结果存在“文件名.GCC”(Gauss v2.1)或“文件名.G32”(Gauss v2.2)中。 文件输入输出文件输入输出 Gauss 可以很容易地读写文本文件, 也可以使用专用二进制格式的Gauss 数据集。 这里我们只讲文

    32、本文件的读写。 可以用 LOAD 语句读入一个用空格或逗号分隔数据项的文本文件,格式为: LOAD 向量名文件名; 或 LOAD 矩阵名行数,列数 文件名; 第一种格式读入所有数据到一个向量,适用于未知数据个数的情况,第二种格式 读入给定的行、列数的数据项到一个矩阵。例如: file1 = c:gaussdat1.txt; load x=file1; n = rows(x)/5; if int(n) eq n; x = reshape(x, n, 5); elses; errorlog Read Error; end; endif; 19 上程序从一个文件中读入一个 5 列的矩阵,行数未知。注

    33、意文件名是直接写的, 比如读入当前目录下的 dat2.txt 只要用: load x=dat2.txt; 所以如果文件名存在变量中就要使用宏替换。文件名字符串中的反斜杠要用两 个。ERRORLOG 语句在错误记录文件中写入一个字符串。END 语句结束程序运行。 如果已知行数,则可以用如: load x100,5=dat2.txt; 在一个文件中可以放置多个项,比如,我们在文件“dat3.txt”中放置了样本个 数 n、n 行 3 列个样本观测、检验水平 alpha,就可以用如下程序分别读入: load inf=dat3.txt; n=inf1; x = reshape(inf2:3*n+1,

    34、n, 3); alpha=inf3*n+2; print n x alpha; 要写一个文本文件也很简单,只要用 OUTPUT FILE=文件名 RESET; 语句就可以打开一个文件并从头开始写, 这时用 PRINT 语句输出的结果在显示到 屏幕的同时被输出到指定的文件。如果上面的 RESET 改为 ON,则输出是附加在 指定文件末尾。为了关闭屏幕输出,用 SCREEN OFF; 语句。再打开用“SCREEN ON”语句。也可以暂时关闭文件输出,用: OUTPUT OFF; 语句。恢复用“OUTPUT ON”语句。 GaussGauss 图形简介图形简介 20 Gauss 系统有很好的图形功能

    35、,可以绘制印刷质量的图形,可以直接打印? ? 或 存为 HP-GL 格式文件。可以精确规定图形区域大小? ? 可以分窗口显示。在使用 绘图过程之前要加两个语句: library pgraph; graphset; 为了画连线图,使用 XY(x,y); 例如 x = seqa(0,1,101)*2*pi/100; y = (sin(x)+1)2; xy(x,y); 图形函数包括: BAR 条形图 DRAW 用全局变量控制绘图 HIST 直方图 HISTP 百分比直方图 HISTF 由频度向量画直方图 LOGLOG 两个坐标轴都用对数刻度的二维图 LOGX 只有 X 轴用对数刻度的二维图 LOGY

    36、 只有 Y 轴用对数刻度的二维图 POLAR 极坐标系作图 SURFACE 曲面图 XY 二维图(散点或曲线) XYZ 三维(曲线)图 重要函数及语句分类参考重要函数及语句分类参考 1.1. 数学函数数学函数 一、一般函数一、一般函数 ABS SQRT EXP LN(自然对数) LOG(x)(常用对数) 21 PI SIN COS TAN ARCSIN ARCCOS ATAN ATAN2 SINH COSH TANH BESSELJ(第一类 Bessel 函数) BESSSELY(第二类 Bessel 函数) GAMMA LNFACT(X)=LN(X!) 二、微积分二、微积分 GRADP=HE

    37、SSP=INTGRAT2= INTGRAT3= INTQUAD2=INTQUAD3= INTSIMP (用 Simpson 方法积分) 三、线性代数三、线性代数 1. 特征值分解 EIGCG EIGCG2 EIGCH EIGCH2 EIGRG EIGRG2 EIGRS EIGRS2 其中字母 C 代表复数, R 代表实数, G 表示通用, H 表示 Hermitian, S 表示对称, 2 表示加算特征向量。 2. 矩阵分解 CHOL:Cholesky 分解,对正定阵 x0 分解 x=yy, y 为上三角阵 CROUT, CROUTP:A=LU, L 为上三角, U 为下三角且主对角线元素都为

    38、 1 QR, QR1, QR2:A=QR, Q 正交(酉), R 为非奇异上三角 SVD, SVD1, SVD2:奇异值分解 NULL, NULL1, ORTH, ORTHGS:正交基计算 INV, INVPD(用于对称正定阵):求逆 SOLPD:解 Ax=b, A0 22 /:解线性方程组或求最小二乘 DET, DETL(已进行矩阵分解后用), COND:行列式,条件数 四、多项式运算四、多项式运算 POLYROOT:求复根 POLYEVAL:计算多项式的函数值 POLYMAKE:根据多项式的实根求系数 POLYMULT:多项式乘法 POLYINT:多项式差值 POLYMAT:返回各阶幂次的

    39、值 POLYCHAR:特征多项式 五、五、FourierFourier 变换变换 CFFT, CFFTI, DCFFT, DCFFTI, FFT, FFTI:带 I 表示反变换,带 C 表示复数序列输入,带 D 表示不用快速 Fourier 变换。 六、复数运算六、复数运算 COMPLEX, COMPLEX2:实型转复型 REAL, IMAG:取实部、虚部 CMTRANS:共轭转置 CMADD, CMSUB, CMMULT, CMDIV:复矩阵加减乘除 CMINV:复矩阵求逆 CMSOLN:解复线性方程组 七、统计函数七、统计函数 MEANC, MEDIAN, STDC:列均值、中位数、标准差

    40、 MOMENT,VCX, VCM, CORRM, CORRVC, CORRX:计算矩阵的叉积阵、协 方差阵、相关阵 23 MOMENTD, OLS, OLSQR, OLSQR2:计算数据集的回归 八、统计分布八、统计分布 CDFN(正态), CDFNC(正态上侧), CDFBVN(二维正态), CDFTVN (三维正态) PDFN(标准正态密度), ERF(为), ERFC(1ERF) CDFTC (t 上侧) , CDFTNC (非中心 t) , CDFCHIC (上侧) , CDFCHINC (非中心) CDFFC(F 上侧), CDFFNC(非中心 F) CDFGAM, CDFBETA:

    41、Gamma 分布和 Beta 分布函数 九、序列九、序列 SEQA(算术级数), SEQM(几何级数) RECSERCP(有乘运算的递归序列), RECSERRC(有除运算的递归序列) RECSERAR(自回归递归序列), 十、精度控制十、精度控制 BASE10(科学科学记数法), CEIL, FLOOR, ROUND, TRUNC, PRCSN 2.2. 矩阵操作矩阵操作 一、矩阵生成一、矩阵生成 EDITM(矩阵键盘录入), LET(矩阵赋值) EYE(单位阵), ONES(全 1 矩阵), ZEROS(全零矩阵) 二、读二、读/ /写矩阵写矩阵 LOADD (读入数据集) , LOAD

    42、或 LOADM (读入文本文件或矩阵文件中数据) SAVE(保存矩阵、过程等), SAVED(存入数据集) 24 三、大小、序、范围三、大小、序、范围 ROWS, COLS 求矩阵行数、列数 ROWSF, COLSF 求打开的数据集的行、列数 MAXC, MAXINDC, MINC, MININDC 每列最大值,最大值所在行号,最小 值及所在行 SUMC, PRODC 列的和、积 CUMSUMC, CUMPRODC 列的累加、累乘 RANKINDX 向量排序的秩得分向量 COUNTS 向量落入各区间的频数 COUNTWTS 带权重的频数 INDEXCAT 向量值落入某区间的下标集合 四、其他矩

    43、阵操作四、其他矩阵操作 SUBMAT 按行、列取出子矩阵 RESHAPE 有已有矩阵产生形状(行、列数) 不同的矩阵 DELIF 有条件地删去矩阵的某些行 SELIF 有条件地保留行 TRIMR 去掉 矩阵顶、底的若干行 EXCTSMPL 产生数据集的有放回的随机子样 VEC 矩阵按列拉直 VECR 矩阵按行拉直 VECH 对称阵上三角的行拉直 XPND 向量还原成对称阵 DIAG 取矩阵主对角线 DIAGRV 替换矩阵主对角 线 LOWMAT, UPMAT, LOWMAT1, UPMAT1 从矩阵中取出下/上三角阵(其它 处填 0),带 1 时主对角线置 1 UNION 向量并(两向量中元素

    44、的并集) INTERSECT 交集 SETDIF 差集 REV 矩阵行次序颠倒 ROTATER 行中元素推移排列(旋转) SHIFTR 行元 素左右平移并以规定值填充空出的位置 3.3. 数据管理数据管理 一、数据集一、数据集 25 LOADD 读入小的数据集 SAVED 存小的数据集 用 ATOG.EXE 程序转换大的 数据文件 CREATE 生成并打开数据集 OPEN 打开已有数据集 READR 读入一些行 WRITER 写出一些行 SEEKR 定位于数据集某行 EOF 判断是否数据集末尾 TYPEF 判断数据集数据类型(2, 4 或 8 字节) CLOSE, CLOSEALL 关闭 数据

    45、集 二、数据集的变量名二、数据集的变量名 GETNAME 找到数据集中所有变量(列)的名字 INDICES 数据集的列号与 变量名互求 INDICES2 类似 INDICES 但区分自变量与因变量 VARTYPPE 由变量名决定数值型(1)还是字符型(0),数值型变量用大写名字,字 符型变量用小写名字 SETVARS 把数据集中所有变量名引入并赋标量零 MAKEVARS 从数据集中 取出列成为向量 MERGEVARS 把列向量并成大的矩阵 INDCV 从某字符向量找出某些短字符串的位置(下标) INDNV 从数值型 向量中找出某些数的位置 三、数据变换三、数据变换 CODE 按一系列判断条件把

    46、向量内的数据离散化(变成分级数据) RECODE 类似 CODE,但若每一条件都不满足时原数据值不变 SUBSCAT 用上升的分 组区间来离散化向量的值 SUBSTUTE 与 RECODE 类似但对矩阵进行 ISMISS 判断一个矩阵内有无缺失值 SCALMISS 判断一标量是否取缺失值 MISS 把给定值换成缺失值 MISSRV 把缺失值换成给定值 MISSEX 按判断 条件决定缺失值 PACKR 删除包含缺失值的行 MSYM 确定缺失值的打印符 号 DUMMY, DUMMYBR, DUMMYDN 由整值列向量生成 01 设计阵,每个数对 应 1 所在的列号 四、排序与合并四、排序与合并 S

    47、ORTC 矩阵按数值列排序 SORTHC 堆法排序 SORTIND 按数值向量排序后 的序号向量 SSORTCC,SORTHCC 矩阵按字符列排序 SORTINDC 字符向量的排序序号向 量 SORTMC 矩阵按多个列排序(数字、字符型) 26 UNIQUE 从向量中删除重复项 UNIQINDX 向量排序后无重复的序号,数值 型、字符型均可 INTRLEAVE 两个小的按同一变量排好序的数据集行交叠地组成大的有序 数据集 MERGEBY 两个小的有同一变量且按此变量排好序的数据集行并接得到的 大的数据集 4.4. 程序控制程序控制 一、开始及结束一、开始及结束 END, PAUSE(暂停指定的

    48、时间), RUN, STOP, SYSTEM(退出到 DOS) END(停止运行并关闭所有打开的文件, STOP 不关闭) 二、分支二、分支 IF ELSEIF ELSE ENDIF GOTO, POP(弹出 GOTO 的变量) 三、循环三、循环 DO WHILE ENDO DO UNTIL ENDO BREAK, CONTINUE 四、子程序四、子程序 GOSUB, POP(弹出 GOSUB 的参数), RETURN 五、过程五、过程 PROC, LOCAL, RETP, ENDP 六、库六、库 LIBRARY(列出活动库文件表) DECLARE(编译时初始化变量) EXTERNAL (外部

    49、符号引用说明) CALL(调用,不要函数值) 七、编译七、编译 27 COMPILE, SAVEALL, USE(调入已编译过的代码), SAVE(存编译的过 程), LOADP(调入编译的过程) 八、其它编程语言的使用八、其它编程语言的使用 LOADEXE 调入其它编程语言代码(可执行) CALLEXE 调入其它编程语言 的函数 5.5. DOSDOS 功能功能 DOS(暂入 DOS) EXIT FILES(给定目录下的文件) CDIR(查询当前目 录名) EXEC (执行一个可执行文件) DFREE (查询磁盘剩余空间) ENVGET (返回 DOS 的环境变量) 6.6. 工作空间管理工

    50、作空间管理 CLEAR(X= (0)) CLEARG(清全局符号,赋(0)) NEW(清当前工作空间) DELETE(删除指定的全局符号) SHOW(显示全局符号表) CORELEFT(查 询剩余工作空间) TYPE(变量类型) TYPEPCV(符号名是字符串、矩阵、 过程还是函数) 7.7. 出错处理及调试出错处理及调试 ERRORLOG(显示并存出错信息到文件) TRACE(跟踪调试) #LINESON, #LINESOFF 行号信息开/关 ERROR DISABLE ENABLE TRAP SCALERR TRAPCHK NDPCNTRL NDPCHK NDPCLEX 8.8. 字符串处

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:gauss-操作入门.doc
    链接地址:https://www.163wenku.com/p-1768326.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库