![gauss_操作入門_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-9/30/a3abfea6-9a29-4e7f-84ef-e01965de2ad0/a3abfea6-9a29-4e7f-84ef-e01965de2ad01.gif)
![gauss_操作入門_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-9/30/a3abfea6-9a29-4e7f-84ef-e01965de2ad0/a3abfea6-9a29-4e7f-84ef-e01965de2ad02.gif)
![gauss_操作入門_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-9/30/a3abfea6-9a29-4e7f-84ef-e01965de2ad0/a3abfea6-9a29-4e7f-84ef-e01965de2ad03.gif)
![gauss_操作入門_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-9/30/a3abfea6-9a29-4e7f-84ef-e01965de2ad0/a3abfea6-9a29-4e7f-84ef-e01965de2ad04.gif)
![gauss_操作入門_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-9/30/a3abfea6-9a29-4e7f-84ef-e01965de2ad0/a3abfea6-9a29-4e7f-84ef-e01965de2ad05.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Gauss系統(tǒng)介紹目錄1. 系統(tǒng)初步 2. 矩陣介紹 3. 矩陣運算及其它運算 4. Gauss程序控制 5. 過程與模塊化程序設(shè)計 6. 文件輸入輸出 7. Gauss圖形簡介 8. 重要函數(shù)及語句分類參考 Gauss系統(tǒng)是Aptech Systems公司出品的一個矩陣語言軟件包,它可以十分方便地編制矩陣計算程序,并內(nèi)建了許多矩陣運算、概率統(tǒng)計函數(shù),還可以繪制印刷質(zhì)量的圖形。它可以在命令行交互計算,也可以編程計算,編程時具有通常的分支、循環(huán)、模塊化子程序等功能,并以矩陣為基本運算單位。利用附加的模塊可以進行經(jīng)濟財務(wù)分析、統(tǒng)計分析等等。我們主要用它來編制統(tǒng)計計算、模擬程序。它進行矩陣運算時速度
2、很快,甚至比編譯的C代碼還要快,這是因為它采用了優(yōu)化的矩陣計算內(nèi)核。 Gauss系統(tǒng)有微機版本,也可以運行于工作站等高檔機型。這里以DOS版Gauss v2.2為例說明。 系統(tǒng)初步 在安裝好Gauss系統(tǒng)后,一般用一個批命令進入Gauss系統(tǒng),比如說是G0.BAT。進入系統(tǒng)后,出現(xiàn)一個命令行的界面,命令提示為“”形狀。在命令提示下可以輸入Gauss語句。用Alt+H可以啟動幫助系統(tǒng),在幫助系統(tǒng)內(nèi)按H鍵后輸入問號然后回車可以得到一個幫助菜單。 為了退出Gauss系統(tǒng),可以在命令行發(fā)布SYSTEM命令,或者按ESC鍵并回答Y。 Gauss的基本計算單位是矩陣。定義標(biāo)量、向量、矩陣用等號賦值即可。例
3、如, 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分別定義了標(biāo)量a、行向量b1、列向量b2、矩陣c、字符串標(biāo)量name。矩陣定義中一行的元素間用空格分隔,各列用逗號分隔。字符串兩邊用雙撇號包圍,不能用單撇號。 Gauss中除了字符串常量外不區(qū)分大小寫,所以變量名既可以用大寫,也可以用小寫。語句以分號結(jié)束,但在命令行界面可以省略分號。 要顯示定義的變量的值,在命令行界面下只要鍵入變量名就可以顯示其值,例如 c 1.0000000 2.0000000 3.0000000 4.
4、0000000 5.0000000 6.0000000 7.0000000 8.0000000 9.0000000 顯示變量值的正規(guī)方法是使用PRINT語句,如“print c;”。 PRINT語句可以輸出幾項,各項之間用空格分開,所以PRINT語句中如果有表達式,表達式中一定不能有空格。例如: print A = a b1 = b1A = 15.200000 b1 = 1.0000000 2.0000000 3.0000000有一些函數(shù)可以生成常見的向量和矩陣。 SEQA(start, step, length)可以產(chǎn)生從start開始,按step遞增,長度為length的等差數(shù)列列向量,如
5、seqa(1,2,4)產(chǎn)生元素為1、3、5、7的列向量。 SEQM(start, rate, length)可以產(chǎn)生從start開始,每次乘以rate的長度為length的等比數(shù)列列向量。 ZEROS(n,m)產(chǎn)生n行m列的元素全為零的矩陣。 ONES(n,m)產(chǎn)生n行m列的元素全為1的矩陣。 RNDU(n,m)產(chǎn)生n行m列的元素服從(0,1)均勻分布的偽隨機數(shù)矩陣。 RNDN(n,m)產(chǎn)生n行m列的元素服從標(biāo)準(zhǔn)正態(tài)分布的偽隨機數(shù)矩陣。 EYE(n)產(chǎn)生n階單位陣。 為了從鍵盤輸入一個矩陣,使用函數(shù)CON(n,m),其中n和m分別是要輸入的行數(shù)和列數(shù)。輸入時用空格、回車、逗號分隔輸入的數(shù)值。例
6、如:c2 = con(2,3)? 1 2 3 4? 5 6c21.0000000 2.0000000 3.00000004.0000000 5.0000000 6.0000000要輸入字符串,一般用如“s= CONS;PRINT;”的方法,其中s是用來存放輸入的字符串的變量。 矩陣可以直接進行通常的矩陣運算。例如, c1=1 2 3, 4 5 6; c2=3 2 1, 7 6 5; c3=c1+c2; c3;4.0000000 4.0000000 4.000000011.000000 11.000000 11.000000c4=1 2, 3 4;c5=c4*c3;c5;26.000000 26
7、.000000 26.00000056.000000 56.000000 56.000000矩陣X的轉(zhuǎn)置可以用X表示。 兩個矩陣X和Y橫向并接用XY表示。 矩陣X和Y縱向并接用X|Y表示。 為了解方程A X = B,只要寫X = B/A即可,當(dāng)A為滿秩方陣時即聯(lián)立線性方程組求解, 當(dāng)A的行數(shù)大于列數(shù)時求的是最小二乘解。 矩陣與標(biāo)量可以進行加減乘除運算。 除了可以使用命令行界面直接輸入并運行Gauss語句, 我們還可以編輯一個程序文件并運行這個程序文件??梢灶A(yù)先編輯好一個程序文件,比如TEST.GSP,里面有如下程序行:x=1 2 3;y=4,5,6;print x y;把這個文件放在Gauss
8、的當(dāng)前目錄下,在Gauss命令行用RUN TEST.GSP命令就可以運行這個程序文件。事實上, Gauss提供了一個內(nèi)建的程序編輯器,比如,在命令行用EDIT TEST.GSP就可以打開TEST.GSP到Gauss的內(nèi)部編輯器中,如果原來沒有這個文件將生成一個新文件。編輯完畢按Alt+X出現(xiàn)一個選單,選W可以保存文件但不執(zhí)行,選R可以保存并運行程序,并且運行時帶有調(diào)試信息,可以顯示出錯行號。在運行了一個程序后按Ctrl+F1鍵就可以之間調(diào)入剛剛執(zhí)行的程序進行修改。 矩陣介紹 Gauss系統(tǒng)提供了一個完整的以矩陣為基本運算單位的程序設(shè)計語言。 Gauss是一種解釋性語言,但因為它的每一個操作都是
9、對矩陣進行的,所以運行速度很快。自己寫程序時要盡量利用矩陣運算而應(yīng)避免使用循環(huán)對單個元素運算。 Gauss有矩陣和字符串兩種數(shù)據(jù)類型。變量類型不需要預(yù)先說明。數(shù)據(jù)類型、元素個數(shù)、矩陣形狀可以在運行時改變??梢杂肈ECLARE語句聲明數(shù)據(jù)類型。矩陣元素允許為字符串,字符矩陣的元素最多存儲8個字符。 Gauss的矩陣是按行存儲的。矩陣元素都以IEEE 8字節(jié)雙精度浮點數(shù)格式存在內(nèi)存中,稱為“長實數(shù)”,有效位數(shù)有1516位,絕對值范圍在4.19E-307到1.67E308。 Gauss計算由表達式完成。表達式是用運算符連接起來的常數(shù)、矩陣、字符串、函數(shù)或過程調(diào)用。 Gauss程序由語句構(gòu)成,語句以分
10、號結(jié)尾。 上一節(jié)我們已經(jīng)看到了矩陣賦值的一些辦法。矩陣賦值還有一些靈活的方法,如: let x2,2 = 1 2 3 4;結(jié)果得到方陣x,第一行為1 2,第二行為3 4。 let x2,3 = 1;結(jié)果得到一個元素全為1的2行3列方陣。 let x2,3;結(jié)果得到一個元素全為0的2行3列方陣。 LET語句用來對矩陣賦值,但右邊只能是一些常數(shù)而不能是計算表達式。為了計算,省略LET并用和|連接行列,例如: x (1/3) (1+1/4) | 3 4;用RESHAPE函數(shù)可以改變一個矩陣的形狀。例如, x = reshape(seqa(1,1,12), 3, 4);把原始的列向量改成了3行4列矩陣
11、:1.0000000 2.0000000 3.0000000 4.00000005.0000000 6.0000000 7.0000000 8.00000009.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.000000010.000000 12.000000下標(biāo)可以用冒號表示一個范圍,比如 x1 3,2:4;2.00
12、00000 3.0000000 4.000000010.000000 11.000000 12.000000矩陣運算及其它運算 Gauss提供了豐富的運算符來進行矩陣運算和字符串操作。矩陣運算除了一般線性代數(shù)中的運算外還有一些針對元素的運算,為此定義兩個矩陣X和Y是元素匹配(ExE conformable)的,如果X和Y為圖 1情況之一。 元素運算為對應(yīng)行、列元素的運算,如果行、列中只有一項是匹配的則只對這一項匹配運算,例如:上面的各運算交換后仍是匹配的。 Gauss的矩陣運算包括: +加法。要求兩矩陣元素匹配。 減法。要求兩矩陣元素匹配。 *矩陣乘法或數(shù)乘。要求為mk陣乘以kn陣,或者兩矩陣
13、之一為標(biāo)量。 /標(biāo)量除或解線性方程組或最小二乘。 x = b / A中如果A和b均為標(biāo)量則為標(biāo)量除法;如果A和b之一為標(biāo)量則x為元素與標(biāo)量分別相處得到的矩陣。如果A為方陣, b為與A階數(shù)相同的列向量,則b / A用三角分解方法解線性方程組A x = b。如果A非方陣,與b行數(shù)相同,則求最小二乘解。 %求余數(shù)運算。要求兩矩陣元素匹配。對非整數(shù)先四舍五入。 !階乘。比如y= x!對x的每個元素求階乘。非整數(shù)先四舍五入。 .*元素間乘積。要求兩矩陣元素匹配。 ./元素間相除。要求兩矩陣元素匹配。 元素間乘方。當(dāng)?shù)讛?shù)為負數(shù)時指數(shù)必須取整數(shù)。 .與“”等價。 .*. Kronecker積。 z = x
14、.*. y使x的每個元素的位置擴大為此元素乘以y的結(jié)果。比如 *水平直積。計算x * y, x與y必須有相同行數(shù),結(jié)果行數(shù)不變而列數(shù)為x的列數(shù)與y的列數(shù)的乘積。比如 轉(zhuǎn)置。 x為x的轉(zhuǎn)置。 |垂直連接。比如 水平連接。比如 Gauss提供的比較運算符包括: .= 或 .EQ兩矩陣元素間相等的比較,要求兩矩陣元素相配,比較結(jié)果為元素取01值的矩陣。 ./= 或 .NE 或 .$/= 兩矩陣元素間不等的比較。 . 或 .LT 或 .$ 兩矩陣元素間小于關(guān)系比較。 .= 或 .LE 或 .$ 或 .GT 或 .$G 兩矩陣元素間大于關(guān)系比較。 .= 或 .GE 或 .$= 兩矩陣元素間大于等于關(guān)系比
15、較。 如果上面的比較算符中沒有點則比較結(jié)果為標(biāo)量結(jié)果,用于比較兩個標(biāo)量,如果比較兩個矩陣,則元素間所有比較結(jié)果都為真時才為真,否則為假。 Gauss提供的邏輯運算符有: NOT x x的否。 x AND y x和y都成立時才為真。 x OR y x和y只要有一個為真則結(jié)果為真。 x XOR y x和y的異或。 x EQV y x和y的等價。 上面的邏輯運算為標(biāo)量運算, x和y應(yīng)為標(biāo)量。邏輯運算也可以在兩個矩陣的元素之間進行,只要在運算符前加點,如 .AND, .OR。 其它運算符還有: 賦值:如y=x1; 逗號:用作分隔符,比如 clear x, y, z;y = x3,5y=momentd(
16、x,d); 句點:在下標(biāo)處代表“所有行”或“所有列”,例如 y=x.,5; /* 表示x的第5列所有行的元素組成的列向量 */ 空格:用來分開下標(biāo),例如: y=x1 3 5, 3 7; 冒號:在下標(biāo)處表示連續(xù)的下標(biāo)范圍,如: y=x1:5,.; /* x的第一到第五行 */ &:取過程指針。 $+:字符串連接。 x $+ y當(dāng)x是字符串時結(jié)果為x和y連接的結(jié)果,當(dāng)x是字符矩陣時結(jié)果為連接的字符矩陣。 :字符串宏替換。例如: dset = olsdat;vnames = age,pay,sex;create f1 = dset with vname, 0, 2;結(jié)果等效于在create語句中直接
17、寫入字符串變量的值。 Gauss程序控制 由于采用了矩陣作為基本運算單元,所以Gauss程序經(jīng)常用順序結(jié)構(gòu)就可以完成任務(wù)。比如,要解方程組只要用以下四個語句:A = 2 3,3 7;b = 9,11;x = b/A;print x;結(jié)果得到:6.0000000-1.0000000但是,對于比較復(fù)雜的問題,我們不可避免地要使用分支、循環(huán)等運算結(jié)構(gòu)。 Gauss提供了這些程序控制結(jié)構(gòu),但是我們再次提醒讀者, Gauss是一個基于矩陣的語言,我們應(yīng)該盡可能基于矩陣運算去實現(xiàn)算法。 Gauss分支結(jié)構(gòu)使用IF-ELSEIF-ELSE-ENDIF結(jié)構(gòu),格式為:IF 標(biāo)量表達式;(語句組)ELSEIF 標(biāo)
18、量表達式;(語句組)ELSE;(語句組)ENDIF;其中各判斷條件應(yīng)為標(biāo)量表達式,不允許是矩陣。標(biāo)量值為非零時表示真值,為零時表示假值。 “語句組”可以是一個或多個語句,每個語句以分號結(jié)尾。注意Gauss的IF結(jié)構(gòu)不使用THEN關(guān)鍵字。 Gauss的循環(huán)結(jié)構(gòu)為DO WHILE和DO UNTIL結(jié)構(gòu),沒有計次循環(huán)結(jié)構(gòu)。格式為:DO WHILE 標(biāo)量表達式;(語句組)ENDO;和DO UNTIL 標(biāo)量表達式;(語句組)ENDO;要注意其結(jié)束語句是ENDO而不是ENDDO。為了從循環(huán)中退出可以用BREAK語句。在循環(huán)中執(zhí)行CONTINUE語句可以忽略循環(huán)體內(nèi)后面的語句而返回到判斷條件處繼續(xù)執(zhí)行。 G
19、auss也提供了GOTO語句,格式為:“GOTO 標(biāo)號;”,其中標(biāo)號為一個普通的Gauss名字,在定義時尾隨一個冒號,引用時不寫冒號,例如:goto errout;errout:Gauss可以在程序中加注釋,用/*和*/包圍,或用和包圍起來。 Gauss的符號名(變量名、過程名、標(biāo)號名等)要求由字母、數(shù)字、下劃線組成,第一個字符只能是字母或下劃線,最多8個字符。 為了在程序運行時提供調(diào)試信息,可以在程序文件開頭加上一個“#lineson;”語句。這樣出錯時可以顯示出錯的行號。 過程與模塊化程序設(shè)計 作為一個程序設(shè)計語言Gauss也提供了模塊化的過程,可以實現(xiàn)模塊化程序設(shè)計。過程中可以使用局部變
20、量,也可以引用外部的全局變量,并可以遞歸調(diào)用。 Gauss使用用戶自己編寫的過程與使用內(nèi)部過程一樣方便。 Gauss提供了一種單行函數(shù)定義可以很方便地把一個公式定義為一個函數(shù),例如:fn area(r) = 2*pi*r*r;定義了面積函數(shù),調(diào)用時只要用如“a=area(4);”。 過程可以使用復(fù)雜的程序邏輯,可以返回零到多個值,定義格式如下:PROC 返回值個數(shù)過程名(參數(shù)1,參數(shù)2, ,參數(shù)N);LOCAL 語句;(語句組)RETP(表達式1, ,表達式N);ENDP;其中內(nèi)的內(nèi)容表示是可選的。當(dāng)返回值個數(shù)為1個時可以省略“返回值個數(shù)”的說明。當(dāng)沒有參數(shù)時可以省略括號。沒有返回值時要說明“
21、(0)= ”即返回值個數(shù)為0,可以省略RETP語句。過程的調(diào)用格式為:返回值1, ,返回值N= 過程名(參數(shù)1,參數(shù)2, ,參數(shù)N);或CALL 過程名(參數(shù)1,參數(shù)2, ,參數(shù)N);使用CALL語句時無返回值或者忽略返回值。 例如,下面的過程計算回歸分析:/* regress* Input:* x - design matrix* y - dependent variable* Output:* b - regression coefficients* sd - standard deviation* t - t variable for every coefficient*/PROC (3
22、)=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(x);sd = sqrt(diag(sse*xxi);t = b ./ sd;retp(b, sd, t);ENDP;調(diào)用可用如b, sd, t = regress(x, y);或call regress(x, y);使用CALL調(diào)用時忽略返回值。 在過程內(nèi)使用的變量是局部變量,必須用LOCALS語句說明,對變量不必說明類型,對過程名應(yīng)說明為PROC,單行
23、函數(shù)說明為FN,例如:locals x, y, f:proc, g:fn;其中x,y是變量, f是過程, g是單行函數(shù)。 過程內(nèi)可以使用全局變量,有兩種全局變量,一種是所有在主程序中使用的變量(即在所有過程外部定義的變量),例如:g_x = 1;call sub1;proc (0)=sub1;print in sub1;print global g_x = g_x;endp;結(jié)果為:in sub1global g_x = 1.0000000我們注意到,這種用法很方便,但是也不利于程序調(diào)試(數(shù)據(jù)隱藏不夠)。使用Gauss變較大的程序可能出現(xiàn)的一個問題就是在過程中無意中使用了主程序中的變量名而造成
24、不易發(fā)現(xiàn)的錯誤。 另一種全局變量在過程中使用DECLARE語句來聲明,聲明的變量可以在其它過程中使用。例如:call sub1;proc (0)=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語句中的!=表示賦初值,并且不論變量是否已初始化。如果改成?=則表示原來未初始化則按給定值初始化,如果已經(jīng)初始化則不動。如果改成=則表示如果未初始化則初始化,如果已初始化則為重復(fù)定義錯誤。不寫初值表示=0初始化。 過程也可以作為參數(shù)傳遞給
25、另一個過程,例如我們有一個二分法解方程的過程binsolv:proc binsolv(&f, a, b, ascend);/* f(x)是一個單調(diào)函數(shù),* f(a)和f(b)符號相反,* ascend=1表示增函數(shù),* =0表示減函數(shù)* 解c應(yīng)該在a和b之間* 返回解.*/local f:proc, a, b, ascend;local c, tol;tol=1E-6;if(ascend);do until (b-a0); /* x應(yīng)該在c的左邊 */b=c;else;a=c;endif;endo;else;do until (b-a0); /* x應(yīng)該在c的右邊 */a=c;else;b=c
26、;endif;endo;endif;retp(c);endp;例如,我們要求函數(shù)f(x)= x2在0到5之間的解,可以用如下程序(寫在上面的程序上面,或把上面的過程單獨存為文件BINSOLV.G放在GAUSS的搜索路徑中。 x = binsolv(&xsq, 0, 5, 1);print x;end;proc xsq(x);retp(x2 - 1);endp;但是,實際中我們要求解的函數(shù)經(jīng)常是不止一個參數(shù)的,比如我們想利用t分布的分布函數(shù)來求t分布的分位數(shù),但t分布函數(shù)有第二個參數(shù)即自由度。這樣的問題需要定義一個輔助函數(shù),這個輔助函數(shù)只有一個自變量,自由度通過全局變量來傳送。例如,下面的程序演
27、示了如何調(diào)用binsolv過程編寫一個求t分布分位數(shù)的過程以及示例:q = con(1,1);x = tinv(q, 10);print tinv q x;end;proc tinv(q, n);/* tinv計算n個自由度的t分布的q分位數(shù)*/declare tinv_n != 0;declare tinv_q1 != 0;tinv_n = n;tinv_q1 = 1-q;retp(binsolv(&futil, -10, 10, 0);endp;proc futil(x);retp(cdftc(x, tinv_n)-tinv_q1);endp;其中定義了輔助性的函數(shù)futil,它依賴于函數(shù)
28、tinv中定義的兩個全局變量tinv_n和tinv_q1。因為Gauss中沒有給t分布函數(shù)而只是給了t分布的尾概率函數(shù)(即1減分布函數(shù)),所以我們在futil中給的方程是解尾概率等于1q。 甚至可以把過程指針組合成一個向量,例如:procvev = &f1 &f2 &f3 f4;proc g(x, i);local f;f = procveci;local f:proc;retp(f(x);endp;Gauss提供了很方便的模塊化功能,其中一種是可以把一個過程放在一個單獨的與過程同名并用.G作為擴展名的文件中,則程序執(zhí)行時如果找不到某個過程自動查找與過程同名的.G文件??梢远x一個GAUSSP
29、ATH環(huán)境變量來設(shè)置從哪些地方尋找過程。還可以把多個過程組合為一個“庫文件”,一般為.ARC文件,并在一個.LIB文件中加以說明,可以參考Gauss系統(tǒng)附帶的gauss.lib等文件。 Gauss可以把程序編譯成字節(jié)碼形式以加速運行。在命令行狀態(tài)用COMPILE 文件名;命令可以把一個文件中的程序編譯為字節(jié)碼,結(jié)果存在“文件名.GCC”(Gauss v2.1)或“文件名.G32”(Gauss v2.2)中。 文件輸入輸出 Gauss可以很容易地讀寫文本文件,也可以使用專用二進制格式的Gauss數(shù)據(jù)集。這里我們只講文本文件的讀寫。 可以用LOAD語句讀入一個用空格或逗號分隔數(shù)據(jù)項的文本文件,格式
30、為:LOAD 向量名文件名;或LOAD 矩陣名行數(shù),列數(shù) 文件名;第一種格式讀入所有數(shù)據(jù)到一個向量,適用于未知數(shù)據(jù)個數(shù)的情況,第二種格式讀入給定的行、列數(shù)的數(shù)據(jù)項到一個矩陣。例如: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;上程序從一個文件中讀入一個5列的矩陣,行數(shù)未知。注意文件名是直接寫的,比如讀入當(dāng)前目錄下的dat2.txt只要用:load x=dat2.txt;所以如果文件名存在變量中就要
31、使用宏替換。文件名字符串中的反斜杠要用兩個。 ERRORLOG語句在錯誤記錄文件中寫入一個字符串。 END語句結(jié)束程序運行。 如果已知行數(shù),則可以用如:load x100,5=dat2.txt;在一個文件中可以放置多個項,比如,我們在文件“dat3.txt”中放置了樣本個數(shù)n、n行3列個樣本觀測、檢驗水平alpha,就可以用如下程序分別讀入:load inf=dat3.txt;n=inf1;x = reshape(inf2:3*n+1, n, 3);alpha=inf3*n+2;print n x alpha;要寫一個文本文件也很簡單,只要用OUTPUT FILE=文件名 RESET;語句就可
32、以打開一個文件并從頭開始寫,這時用PRINT語句輸出的結(jié)果在顯示到屏幕的同時被輸出到指定的文件。如果上面的RESET改為ON,則輸出是附加在指定文件末尾。為了關(guān)閉屏幕輸出,用SCREEN OFF;語句。再打開用“SCREEN ON”語句。也可以暫時關(guān)閉文件輸出,用:OUTPUT OFF;語句?;謴?fù)用“OUTPUT ON”語句。 Gauss圖形簡介 Gauss系統(tǒng)有很好的圖形功能,可以繪制印刷質(zhì)量的圖形,可以直接打印? ? 或存為HP-GL格式文件??梢跃_規(guī)定圖形區(qū)域大小? ? 可以分窗口顯示。在使用繪圖過程之前要加兩個語句:library pgraph;graphset;為了畫連線圖,使用X
33、Y(x,y);例如x = seqa(0,1,101)*2*pi/100;y = (sin(x)+1)2;xy(x,y);圖形函數(shù)包括: BAR 條形圖 DRAW 用全局變量控制繪圖 HIST 直方圖 HISTP 百分比直方圖 HISTF 由頻度向量畫直方圖 LOGLOG 兩個坐標(biāo)軸都用對數(shù)刻度的二維圖 LOGX 只有X軸用對數(shù)刻度的二維圖 LOGY 只有Y軸用對數(shù)刻度的二維圖 POLAR 極坐標(biāo)系作圖 SURFACE 曲面圖 XY 二維圖(散點或曲線) XYZ 三維(曲線)圖 重要函數(shù)及語句分類參考 1. 數(shù)學(xué)函數(shù) 一、一般函數(shù)ABS SQRT EXP LN(自然對數(shù)) LOG(x)(常用對數(shù)
34、)PI SIN COS TAN ARCSIN ARCCOS ATAN ATAN2 SINH COSH TANHBESSELJ(第一類Bessel函數(shù)) BESSSELY(第二類Bessel函數(shù)) GAMMA LNFACT(X)=LN(X!)二、微積分GRADP=HESSP=INTGRAT2=INTGRAT3=INTQUAD2=INTQUAD3=INTSIMP (用Simpson方法積分)三、線性代數(shù)1. 特征值分解EIGCG EIGCG2 EIGCH EIGCH2 EIGRG EIGRG2 EIGRS EIGRS2其中字母C代表復(fù)數(shù), R代表實數(shù), G表示通用, H表示Hermitian, S
35、表示對稱, 2表示加算特征向量。 2. 矩陣分解CHOL:Cholesky 分解,對正定陣x0分解x=yy, y為上三角陣CROUT, CROUTP:A=LU, L為上三角, U為下三角且主對角線元素都為1QR, QR1, QR2:A=QR, Q正交(酉), R為非奇異上三角SVD, SVD1, SVD2:奇異值分解NULL, NULL1, ORTH, ORTHGS:正交基計算INV, INVPD(用于對稱正定陣):求逆SOLPD:解Ax=b, A0/:解線性方程組或求最小二乘DET, DETL(已進行矩陣分解后用), COND:行列式,條件數(shù)四、多項式運算POLYROOT:求復(fù)根POLYEV
36、AL:計算多項式的函數(shù)值POLYMAKE:根據(jù)多項式的實根求系數(shù)POLYMULT:多項式乘法POLYINT:多項式差值POLYMAT:返回各階冪次的值POLYCHAR:特征多項式五、Fourier變換CFFT, CFFTI, DCFFT, DCFFTI, FFT, FFTI:帶I表示反變換,帶C表示復(fù)數(shù)序列輸入,帶D表示不用快速Fourier變換。 六、復(fù)數(shù)運算COMPLEX, COMPLEX2:實型轉(zhuǎn)復(fù)型REAL, IMAG:取實部、虛部CMTRANS:共軛轉(zhuǎn)置CMADD, CMSUB, CMMULT, CMDIV:復(fù)矩陣加減乘除CMINV:復(fù)矩陣求逆CMSOLN:解復(fù)線性方程組七、統(tǒng)計函數(shù)
37、MEANC, MEDIAN, STDC:列均值、中位數(shù)、標(biāo)準(zhǔn)差MOMENT,VCX, VCM, CORRM, CORRVC, CORRX:計算矩陣的叉積陣、協(xié)方差陣、相關(guān)陣MOMENTD, OLS, OLSQR, OLSQR2:計算數(shù)據(jù)集的回歸八、統(tǒng)計分布CDFN(正態(tài)), CDFNC(正態(tài)上側(cè)), CDFBVN(二維正態(tài)), CDFTVN(三維正態(tài))PDFN(標(biāo)準(zhǔn)正態(tài)密度), ERF(為), ERFC(1ERF)CDFTC(t上側(cè)), CDFTNC(非中心t), CDFCHIC(上側(cè)), CDFCHINC(非中心)CDFFC(F上側(cè)), CDFFNC(非中心F)CDFGAM, CDFBETA
38、:Gamma分布和Beta分布函數(shù)九、序列SEQA(算術(shù)級數(shù)), SEQM(幾何級數(shù))RECSERCP(有乘運算的遞歸序列), RECSERRC(有除運算的遞歸序列)RECSERAR(自回歸遞歸序列), 十、精度控制BASE10(科學(xué)科學(xué)記數(shù)法), CEIL, FLOOR, ROUND, TRUNC, PRCSN2. 矩陣操作 一、矩陣生成EDITM(矩陣鍵盤錄入), LET(矩陣賦值)EYE(單位陣), ONES(全1矩陣), ZEROS(全零矩陣)二、讀/寫矩陣LOADD(讀入數(shù)據(jù)集), LOAD或LOADM(讀入文本文件或矩陣文件中數(shù)據(jù))SAVE(保存矩陣、過程等), SAVED(存入數(shù)
39、據(jù)集)三、大小、序、范圍ROWS, COLS 求矩陣行數(shù)、列數(shù)ROWSF, COLSF 求打開的數(shù)據(jù)集的行、列數(shù)MAXC, MAXINDC, MINC, MININDC 每列最大值,最大值所在行號,最小值及所在行SUMC, PRODC 列的和、積CUMSUMC, CUMPRODC 列的累加、累乘RANKINDX 向量排序的秩得分向量COUNTS 向量落入各區(qū)間的頻數(shù)COUNTWTS 帶權(quán)重的頻數(shù)INDEXCAT 向量值落入某區(qū)間的下標(biāo)集合四、其他矩陣操作SUBMAT 按行、列取出子矩陣 RESHAPE 有已有矩陣產(chǎn)生形狀(行、列數(shù))不同的矩陣DELIF 有條件地刪去矩陣的某些行 SELIF 有
40、條件地保留行 TRIMR 去掉矩陣頂、底的若干行 EXCTSMPL 產(chǎn)生數(shù)據(jù)集的有放回的隨機子樣VEC 矩陣按列拉直 VECR 矩陣按行拉直 VECH 對稱陣上三角的行拉直 XPND 向量還原成對稱陣 DIAG 取矩陣主對角線 DIAGRV 替換矩陣主對角線LOWMAT, UPMAT, LOWMAT1, UPMAT1 從矩陣中取出下/上三角陣(其它處填0),帶1時主對角線置1UNION 向量并(兩向量中元素的并集) INTERSECT 交集 SETDIF 差集REV 矩陣行次序顛倒 ROTATER 行中元素推移排列(旋轉(zhuǎn)) SHIFTR 行元素左右平移并以規(guī)定值填充空出的位置3. 數(shù)據(jù)管理 一
41、、數(shù)據(jù)集LOADD 讀入小的數(shù)據(jù)集 SAVED 存小的數(shù)據(jù)集 用ATOG.EXE程序轉(zhuǎn)換大的數(shù)據(jù)文件CREATE 生成并打開數(shù)據(jù)集 OPEN 打開已有數(shù)據(jù)集 READR 讀入一些行 WRITER 寫出一些行 SEEKR 定位于數(shù)據(jù)集某行 EOF 判斷是否數(shù)據(jù)集末尾 TYPEF 判斷數(shù)據(jù)集數(shù)據(jù)類型(2, 4或8字節(jié)) CLOSE, CLOSEALL 關(guān)閉數(shù)據(jù)集二、數(shù)據(jù)集的變量名GETNAME 找到數(shù)據(jù)集中所有變量(列)的名字 INDICES 數(shù)據(jù)集的列號與變量名互求 INDICES2 類似INDICES但區(qū)分自變量與因變量 VARTYPPE 由變量名決定數(shù)值型(1)還是字符型(0),數(shù)值型變量用
42、大寫名字,字符型變量用小寫名字SETVARS 把數(shù)據(jù)集中所有變量名引入并賦標(biāo)量零 MAKEVARS 從數(shù)據(jù)集中取出列成為向量 MERGEVARS 把列向量并成大的矩陣INDCV 從某字符向量找出某些短字符串的位置(下標(biāo)) INDNV 從數(shù)值型向量中找出某些數(shù)的位置三、數(shù)據(jù)變換CODE 按一系列判斷條件把向量內(nèi)的數(shù)據(jù)離散化(變成分級數(shù)據(jù)) RECODE 類似CODE,但若每一條件都不滿足時原數(shù)據(jù)值不變 SUBSCAT 用上升的分組區(qū)間來離散化向量的值 SUBSTUTE 與RECODE類似但對矩陣進行ISMISS 判斷一個矩陣內(nèi)有無缺失值 SCALMISS 判斷一標(biāo)量是否取缺失值 MISS 把給定
43、值換成缺失值 MISSRV 把缺失值換成給定值 MISSEX 按判斷條件決定缺失值 PACKR 刪除包含缺失值的行 MSYM 確定缺失值的打印符號DUMMY, DUMMYBR, DUMMYDN 由整值列向量生成01設(shè)計陣,每個數(shù)對應(yīng)1所在的列號四、排序與合并SORTC 矩陣按數(shù)值列排序 SORTHC 堆法排序 SORTIND 按數(shù)值向量排序后的序號向量SSORTCC, SORTHCC 矩陣按字符列排序 SORTINDC 字符向量的排序序號向量SORTMC 矩陣按多個列排序(數(shù)字、字符型)UNIQUE 從向量中刪除重復(fù)項 UNIQINDX 向量排序后無重復(fù)的序號,數(shù)值型、字符型均可INTRLEA
44、VE 兩個小的按同一變量排好序的數(shù)據(jù)集行交疊地組成大的有序數(shù)據(jù)集MERGEBY 兩個小的有同一變量且按此變量排好序的數(shù)據(jù)集行并接得到的大的數(shù)據(jù)集4. 程序控制 一、開始及結(jié)束END, PAUSE(暫停指定的時間), RUN, STOP, SYSTEM(退出到DOS) END(停止運行并關(guān)閉所有打開的文件, STOP不關(guān)閉)二、分支IF ELSEIF ELSE ENDIFGOTO, POP(彈出GOTO的變量)三、循環(huán)DO WHILE ENDODO UNTIL ENDOBREAK, CONTINUE四、子程序GOSUB, POP(彈出GOSUB的參數(shù)), RETURN五、過程PROC, LOCAL, RETP, ENDP六、庫LIBRARY(列出活動庫文件表) DECLARE(編譯時初始化變量) EXTERNAL(外部符號引用說明)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度城市配送貨車運輸承包服務(wù)合同
- 2025年度互聯(lián)網(wǎng)企業(yè)股東股份收購與轉(zhuǎn)讓服務(wù)協(xié)議
- 買賣交易合同(29篇)
- 2024-2025學(xué)年第25課中華人民共和國成立和向社會主義的過渡-勤徑學(xué)升高中歷史必修上同步練測(統(tǒng)編版2019)
- 2025年光伏產(chǎn)業(yè)協(xié)同發(fā)展協(xié)議
- 2025年醫(yī)院人員勞動合同格式
- 2025年中學(xué)食堂食材供應(yīng)合同模板
- 2025年二手住宅購買貸款合同指南
- 2025年雙方解除雇傭合同文件
- 2025年黏膜制劑材料項目提案報告模板
- (正式版)JBT 14682-2024 多關(guān)節(jié)機器人用伺服電動機技術(shù)規(guī)范
- 2024年職業(yè)衛(wèi)生技術(shù)人員評價方向考試題庫附答案
- 紅樓夢詩詞全集
- 像科學(xué)家一樣思考-怎么做-怎么教-
- 苯胺合成靛紅工藝
- 三年級上冊數(shù)學(xué)脫式計算大全600題及答案
- 2024年度農(nóng)村電子商務(wù)ppt演示課件
- 計算機控制系統(tǒng) 課件 第10章 網(wǎng)絡(luò)化控制系統(tǒng)的分析與設(shè)計
- 高原反應(yīng)的癥狀和處理方法
- 南京大學(xué)儀器分析習(xí)題集
- 空調(diào)維保應(yīng)急預(yù)案
評論
0/150
提交評論