一、比較法 將待測物理量與選做標準單位的物理量進行比較的方法叫比較法。
如測量物體長度,用天平稱量質(zhì)量,用電橋測電阻等。有時光有標準量具還不夠,還需要配置比較系統(tǒng),使被測量量與標準量實現(xiàn)比較。
如:測量金屬在某溫度下的比熱容。因為金屬的比熱容隨溫度的升高而變大,可以找一個在該溫度下比熱容的金屬材料,用比較法測,把兩者做成形狀相同的樣品,加熱到一定溫度讓其自然冷卻,作降溫曲線(T-t曲線)由牛頓冷卻定律即可得解。
比較法是物理實驗中最普通、最基本的實驗方法,也是實驗設(shè)計中設(shè)計對照實驗的基礎(chǔ)。 二、替代法 用已知的標準量去代替未知的待測量,以保持狀態(tài)和效果相同,從而推出待測量的方法叫替代法。
如用合力替代各個分力,用總電阻替代各部分電阻,浮力替代液體對物體的各個壓力等。 三、累積法 又稱疊加法。
將微小量累積后測量求平均的方法,能減小相對誤差。實驗中也經(jīng)常涉及這一方法。
如在《用單擺測定重力加速度》實驗中,需要測定單擺周期,用秒表測一次全振動的時間誤差很大,于是采用測定30-50次全振動的時間T,從而求出單擺的周期T=t/n(n為全振動次數(shù))。 四、控制法 在中學許多物理實驗中,往往存在著多種變化的因素,為了研究它們之間的關(guān)系可以先控制一些量不變,依次研究某一個因素的影響。
如通過導(dǎo)體的電流I受到導(dǎo)體電阻R和它兩端電壓U的影響,在研究電流I與電阻R的關(guān)系時,需要保持電壓U不變;在研究電流I與電壓U的關(guān)系時,需要保持電阻R不變。 五、留跡法 有些物理現(xiàn)象瞬間即逝,如運動物體所處的位置、軌跡或圖像等,用留跡法記錄下來,以便從容地測量、比較和研究。
如在《測定勻變速直線運動的加速度》、《驗證牛頓第不運動定律》、《驗證機械能守恒定律》等實驗中,就是通過紙帶上打出的點記錄下小車(或重物)在不同時刻的位置(位移)及所對應(yīng)的時刻,從而可從容計算小車在各個位置或時刻的速度并求出速度;對于簡諧運動,則是通過擺動的漏斗漏出的細沙落在勻速拉動的硬紙板上而記錄下各個時刻擺的位置,從而很方便地研究簡諧運動的圖像;利用閃光照相記錄自由落體運動的軌跡等實驗都采用了留跡法。 六、放大法 在現(xiàn)象、變化、待測物理量十分微小的情況下,往往采用放大法。
根據(jù)實驗的性質(zhì)和放大對象的不同,放大所使用的物理方法也各異。例如:在《測定金屬電阻率》實驗中所使用的螺旋測微器:主尺上前進(或后退)0.5毫米,對應(yīng)副尺上有5n個等分,實際上是對長度的機械放大;許多電表如電流表、電壓表是利用一根較長的指針把通電后線圈的偏轉(zhuǎn)角顯示出來。
七、補償法 補償法是找一種效應(yīng)與之相抵消,從而對被測物理量進行測量的方法。由于被測量的作用在測量中被抵消,故表示標準量與被測量作用之差的儀表示數(shù)為0,所以又稱零示法。
八、轉(zhuǎn)換法 某些物理量不容易直接測量,或某些現(xiàn)象直接顯示有困難,可以采取把所要觀測的變量轉(zhuǎn)換成其它變量(力、熱、聲、光、電等物理量的相互轉(zhuǎn)換)進行間接觀察和測量,這就是轉(zhuǎn)換法。如卡文迪許《利用扭秤裝置測定萬有引力恒量實驗》:其基本的思維方法便是等效轉(zhuǎn)換。
卡文迪許扭秤發(fā)生扭轉(zhuǎn)后,引力對T形架的扭轉(zhuǎn)力矩與石英絲由于彈性形變產(chǎn)主的扭轉(zhuǎn)力矩這就是等效轉(zhuǎn)換,間接地達到了無法達到的目的。又如轉(zhuǎn)換法還應(yīng)用于石英絲扭轉(zhuǎn)角度的測量、根據(jù)電流的熱效應(yīng)來認識電流大小、根據(jù)磁場對磁體有力的作用來認識磁場等上。
轉(zhuǎn)換法是一種較高層次的思維方法,是對事物本質(zhì)深刻認識的基礎(chǔ)上才產(chǎn)生的一種飛躍。 九、理想化法 影響物理現(xiàn)象的因素往往復(fù)雜多變,實驗中??刹捎煤雎阅承┐我蛩鼗蚣僭O(shè)一些理想條件的辦法,以突出現(xiàn)象的本質(zhì)因素,便于深入研究,從而取得實際情況下合理的近似結(jié)果。
如在《用單擺測定重力加速度》的實驗中(假設(shè)懸線不可伸長)懸點的摩擦和小球在擺動過程的空氣阻力不計,在電學實驗中把電壓表變成內(nèi)阻是無窮大的理想電壓表,電流表變成內(nèi)阻等于0的理想電流表等實驗都采用了理想化法。 十、模型法 有時受客觀條件限制,不能對某些物理現(xiàn)象進行直接實驗和測量,于是就人為地創(chuàng)造一定的模型,在模型的條件下進行實驗。
但要求模型和原型必須具有一定的相似性。如在《電場中等勢線的描繪》實驗中,因為對靜電場直接測量很“困難”,故采用易測量的電流場來模擬。
又如在確定磁場中磁感線的分布,因為磁感線實際不存在。我們就用鐵屑的分布來模擬磁感線的存在。
如用太陽系模型代表原子結(jié)構(gòu),用簡單的線條代表杠桿等。以上僅是中學物理實驗中常用的方法,有時在一個實驗中同時會用到多種方法。
同時,具體用運中還會遇到實驗設(shè)計的方法、實驗結(jié)果的處理方法等,在此不再贅述。
R語言實際上是函數(shù)的集合,用戶可以使用base,stats等包中的基本函數(shù),也可以自己編寫函數(shù)完成一定的功能。但是初學者往往認為編寫R函數(shù)十分困難,或者難以理解。這里對如何編寫R函數(shù)進行簡要的介紹。
函數(shù)是對一些程序語句的封裝。換句話說,編寫函數(shù),可以減少人們對重復(fù)代碼書寫,從而讓R腳本程序更為簡潔,高效。同時也增加了可讀性。一個函數(shù)往往完成一項特定的功能。例如,求標準差sd,求平均值,求生物多樣性指數(shù)等。R數(shù)據(jù)分析,就是依靠調(diào)用各種函數(shù)來完成的。但是編寫函數(shù)也不是輕而易舉就能完成的,需要首先經(jīng)過大量的編程訓練。特別是對R中數(shù)據(jù)的類型,邏輯判別、下標、循環(huán)等內(nèi)容有一定了解之后,才好開始編寫函數(shù)。 對于初學者來說,最好的方法就是研究現(xiàn)有的R函數(shù)。因為R程序包都是開源的,所有代碼可見。研究現(xiàn)有的R函數(shù)能夠使編程水平迅速提高。
R函數(shù)無需首先聲明變量的類型,大部分情況下不需要進行初始化。一個完整的R函數(shù),需要包括函數(shù)名稱,函數(shù)聲明,函數(shù)參數(shù)以及函數(shù)體幾部分。
1. 函數(shù)名稱,即要編寫的函數(shù)名稱,這一名稱就作為將來調(diào)用R函數(shù)的依據(jù)。
2. 函數(shù)聲明,包括 <- function, 即聲明該對象的類型為函數(shù)。
3. 函數(shù)參數(shù),這里是輸入的數(shù)據(jù),函數(shù)參數(shù)是一個虛擬出來的一個對象。函數(shù)參數(shù)所等于的數(shù)據(jù),就是在函數(shù)體內(nèi)部將要處理的值,或者對應(yīng)的數(shù)據(jù)類型。 函數(shù)體內(nèi)部的程序語句進行數(shù)據(jù)處理,就是對參數(shù)的值進行處理 ,這種處理只在調(diào)用函數(shù)的時候才會發(fā)生。函數(shù)的參數(shù)可以有多種類型。R help的界面對每個函數(shù),及其參數(shù)的意義及所需的數(shù)據(jù)類型都進行了說明。
4. 函數(shù)體
常常包括三部分.
(1). 異常處理
輸入的數(shù)據(jù)不能滿足函數(shù)計算的要求,或者類型不符, 這時候一定要設(shè)計相應(yīng)的機制告訴用戶,輸入的數(shù)據(jù)在什么地方有錯誤。 錯誤又分為兩種。
第一種, 如果輸入的數(shù)據(jù)錯誤不是很嚴重,可以經(jīng)過轉(zhuǎn)換,變?yōu)榉咸幚硪蟮臄?shù)據(jù)時, 此時只需要給用戶一個提醒,告知數(shù)據(jù)類型不符,但是函數(shù)本身已經(jīng) 進行了相應(yīng)的轉(zhuǎn)換。
第二種,數(shù)據(jù)完全不符合要求,這種情況下,就 要終止函數(shù)的運行,而告知因為什么,函數(shù)不能運行。這樣,用戶在 使用函數(shù)的情況先才不至于茫然。
(2). 運算過程
包括具體的運算步驟。 運算過程和該函數(shù)要完成的功能有關(guān)。
R運算過程中,應(yīng)該盡量減少循環(huán)的使用,特別是嵌套循環(huán)。R提供了 apply,replicate等一系列函數(shù),來代替循環(huán),應(yīng)該盡量應(yīng)用這些函數(shù), 提高效率。 如果在R中實在太慢,那么核心部分只能依靠C或者Fortran 等語言編寫,然后再用R調(diào)用這些編譯好的模塊,達到更高的效率。
運算過程中,需要大量用到if等條件作為判別的標準。if和while都是需要數(shù)據(jù)TRUE/FALSE這樣的邏輯類型變量,這就意味著,if內(nèi)部,往往是對條件的判別,例如 is.na, is.matrix, is.numeric等等,或者對大小的比較,如,if(x > 0), if(x == 1), if(length(x)== 3)等等。if后面,如果是1行,則花括號可以省略,否則就必須要將所有的語句都放在花括號中。這和循環(huán)是一致的。
例子:
## if與條件判斷
fun.test <- function(a, b, method = "add"){
if(method == "add") { ## 如果if或者for/while;
res <- a + b ## 等后面的語句只有一行,則無需使用花括號。
}
if(method == "subtract"){
res <- a - b
}
return(res) ## 返回值
}
### 檢驗結(jié)果
fun.test(a = 10, b = 8, method = "add")
fun.test(a = 10, b = 8, method = "substract")
r實驗指的是科學研究的基本方法之一。根據(jù)科學研究的目的,盡可能地排除外界的影響,突出主要因素并利用一些專門的儀器設(shè)備,而人為地變革、控制或模擬研究對象,使某一些事物(或過程)發(fā)生或再現(xiàn),從而去認識自然現(xiàn)象、自然性質(zhì)、自然規(guī)律。
科學實驗,是指根據(jù)一定目的,運用一定的儀器、設(shè)備等物質(zhì)手段,在人工控制的條件下,觀察、研究自然現(xiàn)象及其規(guī)律性的社會實踐形式。是獲取經(jīng)驗事實和檢驗科學假說、理論真理性的重要途徑。它不僅包括儀器、設(shè)備、實驗的物質(zhì)對象,還包括背景知識、理論假設(shè)、數(shù)據(jù)分析、科學解釋,以及實驗者之間的協(xié)商、交流和資金的獲取等相關(guān)社會因素。其性質(zhì)不只是物質(zhì)性的,還是文化性的和社會性的。
通常把對物理特性的檢驗稱為物理檢驗;對化學性質(zhì)或組成的檢驗稱為化學檢驗或簡稱化驗。檢驗一般有破壞性檢驗和非破壞性檢驗,前者只能從整體中取樣進行抽查,然后用數(shù)理統(tǒng)計方法推定整體的情況;后者可對整體進行逐個檢查。從被檢對象的類別考慮,人們又常將它分為半成品檢驗、成品檢驗或商品檢驗等。
也指用工具、儀器或其它分析方法檢查各種原材料、半成品、成品是否符合特定的技術(shù)標準、規(guī)格的工作過程。
對產(chǎn)品或工序過程中的實體,進行度量,測量,檢查,和實驗分析,并將結(jié)果與規(guī)定值進行比較和確定是否合格所進行的活動。
原發(fā)布者:紅米粉39
如何使用R語言進行正態(tài)性檢驗(實例演示)熊榮川六盤水師范學院生物信息實驗室xiongrongchuan@126.com/u/Bearjazz數(shù)據(jù)的正態(tài)性檢測往往是進一步深入分析的基礎(chǔ),這個操作在一般的統(tǒng)計分析軟件非常容易實現(xiàn)。然而R語言平臺操作的特性,加上數(shù)據(jù)包的豐富,使得許多朋友還不是很了解怎么在R語言平臺上進行數(shù)據(jù)的正態(tài)性檢驗?,F(xiàn)在我們就以一些實例進行初步的演示。實例一R語言自帶的正態(tài)性檢測(Shapiro-Wilk方法)注釋隨機產(chǎn)生10個正態(tài)分布的數(shù)據(jù)查看nx查看的結(jié)果>>;輸入nxShapiro-Wilk方法進行正態(tài)檢驗檢驗結(jié)果,因為p值小于W值,所以數(shù)據(jù)為正態(tài)分布,和Origin統(tǒng)計的結(jié)果一致(下圖)Shapiro-Wilknormalitytestdata:nxW=0.9084,p-value=0.2699實例二輸入>>R語言自帶的正態(tài)性檢測(Kolmogorov-Smirnov方法)注釋隨機產(chǎn)生10個正態(tài)分布的數(shù)據(jù)查看nx查看的結(jié)果nxks.test(nx,"pnorm",mean=mean(nx),sd=Shapiro-Wilk方法進sqrt(var(nx)))行正態(tài)
在初學C語言時,可能會遇到有些問題理解不透,或者表達方式與以往數(shù)學學習中不同(如運算符等),這就要求不氣餒,不明白的地方多問多想,鼓足勇氣進行學習,待學完后面的章節(jié)知識,前面的問題也就迎刃而解了,這一方面我感覺是我們同學最欠缺,大多學不好的就是因為一開始遇到困難就放棄,曾經(jīng)和好多同學談他的問題,回答是聽不懂、不想聽、放棄這樣三個過程,我反問,這節(jié)課你聽過課嗎?回答又是沒有,根本就沒聽過課,怎么說自己聽不懂呢?相應(yīng)的根本就沒學習,又談何學的好? 學習C語言始終要記住“曙光在前頭”和“千金難買回頭看”,“千金難買回頭看”是學習知識的重要方法,就是說,學習后面的知識,不要忘了回頭弄清遺留下的問題和加深理解前面的知識,這是我們學生最不易做到的,然而卻又是最重要的。
學習C語言就是要經(jīng)過幾個反復(fù),才能前后貫穿,積累應(yīng)該掌握的C知識。 那么,我們?nèi)绾螌W好《C程序設(shè)計》呢? 一.學好C語言的運算符和運算順序 這是學好《C程序設(shè)計》的基礎(chǔ),C語言的運算非常靈活,功能十分豐富,運算種類遠多于其它程序設(shè)計語言。
在表達式方面較其它程序語言更為簡潔,如自加、自減、逗號運算和三目運算使表達式更為簡單,但初學者往往會覺的這種表達式難讀,關(guān)鍵原因就是對運算符和運算順序理解不透不全。當多種不同運算組成一個運算表達式,即一個運算式中出現(xiàn)多種運算符時,運算的優(yōu)先順序和結(jié)合規(guī)則顯得十分重要。
在學習中,只要我們對此合理進行分類,找出它們與我們在數(shù)學中所學到運算之間的不同點之后,記住這些運算也就不困難了,有些運算符在理解后更會牢記心中,將來用起來得心應(yīng)手,而有些可暫時放棄不記,等用到時再記不遲。 先要明確運算符按優(yōu)先級不同分類,《C程序設(shè)計》運算符可分為15種優(yōu)先級,從高到低,優(yōu)先級為1 ~ 15,除第2、3級和第14級為從右至左結(jié)合外,其它都是從左至右結(jié)合,它決定同級運算符的運算順序. 二.學好C語言的四種程序結(jié)構(gòu) (1)順序結(jié)構(gòu) 順序結(jié)構(gòu)的程序設(shè)計是最簡單的,只要按照解決問題的順序?qū)懗鱿鄳?yīng)的語句就行,它的執(zhí)行順序是自上而下,依次執(zhí)行。
例如;a = 3,b = 5,現(xiàn)交換a,b的值,這個問題就好像交換兩個杯子水,這當然要用到第三個杯子,假如第三個杯子是c,那么正確的程序為: c = a; a = b; b = c; 執(zhí)行結(jié)果是a = 5,b = c = 3如果改變其順序,寫成:a = b; c = a; b = c; 則執(zhí)行結(jié)果就變成a = b = c = 5,不能達到預(yù)期的目的,初學者最容易犯這種錯誤。 順序結(jié)構(gòu)可以獨立使用構(gòu)成一個簡單的完整程序,常見的輸入、計算,輸出三步曲的程序就是順序結(jié)構(gòu),例如計算圓的面積,其程序的語句順序就是輸入圓的半徑r,計算s = 3.14159*r*r,輸出圓的面積s。
不過大多數(shù)情況下順序結(jié)構(gòu)都是作為程序的一部分,與其它結(jié)構(gòu)一起構(gòu)成一個復(fù)雜的程序,例如分支結(jié)構(gòu)中的復(fù)合語句、循環(huán)結(jié)構(gòu)中的循環(huán)體等。 (2) 分支結(jié)構(gòu) 順序結(jié)構(gòu)的程序雖然能解決計算、輸出等問題,但不能做判斷再選擇。
對于要先做判斷再選擇的問題就要使用分支結(jié)構(gòu)。分支結(jié)構(gòu)的執(zhí)行是依據(jù)一定的條件選擇執(zhí)行路徑,而不是嚴格按照語句出現(xiàn)的物理順序。
分支結(jié)構(gòu)的程序設(shè)計方法的關(guān)鍵在于構(gòu)造合適的分支條件和分析程序流程,根據(jù)不同的程序流程選擇適當?shù)姆种дZ句。分支結(jié)構(gòu)適合于帶有邏輯或關(guān)系比較等條件判斷的計算,設(shè)計這類程序時往往都要先繪制其程序流程圖,然后根據(jù)程序流程寫出源程序,這樣做把程序設(shè)計分析與語言分開,使得問題簡單化,易于理解。
程序流程圖是根據(jù)解題分析所繪制的程序執(zhí)行流程圖。 學習分支結(jié)構(gòu)不要被分支嵌套所迷惑,只要正確繪制出流程圖,弄清各分支所要執(zhí)行的功能,嵌套結(jié)構(gòu)也就不難了。
嵌套只不過是分支中又包括分支語句而已,不是新知識,只要對雙分支的理解清楚,分支嵌套是不難的。下面我介紹幾種基本的分支結(jié)構(gòu)。
①if(條件) { 分支體 } 這種分支結(jié)構(gòu)中的分支體可以是一條語句,此時“{ }”可以省略,也可以是多條語句即復(fù)合語句。它有兩條分支路徑可選,一是當條件為真,執(zhí)行分支體,否則跳過分支體,這時分支體就不會執(zhí)行。
如:要計算x的絕對值,根據(jù)絕對值定義,我們知道,當x>=0時,其絕對值不變,而x②if(條件) {分支1} else {分支2} 這是典型的分支結(jié)構(gòu),如果條件成立,執(zhí)行分支1,否則執(zhí)行分支2,分支1和分支2都可以是1條或若干條語句構(gòu)成。如:求ax^2+bx+c=0的根 分析:因為當b^2-4ac>=0時,方程有兩個實根,否則(b^2-4ac d=b*b-4*a*c; if(d>=0) {x1=(-b+sqrt(d))/2a; x1=(-b-sqrt(d))/2a; printf(“x1=%8.4f,x2=%8.4f\n”,x1,x2); } else {r=-b/(2*a); i =sqrt(-d)/(2*a); printf(“x1=%8.4f+%8.4fi\n”r, i); printf(“x2=%8.4f-%8.4fi\n”r,i) } ③嵌套分支語句:其語句格式為: if(條件1) {分支1}; else if(條件2) {分支2} else if(條件3) {分支3} …… else if(條件n) {分支n} else {分支n+1} 嵌套分支語句雖可解決多個入口和出口的問題,但超過3重嵌套后,語句結(jié)構(gòu)變得非常復(fù)雜,對于程序的閱讀和理解都極為不便,建議嵌套在3重以內(nèi),超過3重可以用下面的語句。
④switch開關(guān)語句:該語句也是多分支選。
聲明:本網(wǎng)站尊重并保護知識產(chǎn)權(quán),根據(jù)《信息網(wǎng)絡(luò)傳播權(quán)保護條例》,如果我們轉(zhuǎn)載的作品侵犯了您的權(quán)利,請在一個月內(nèi)通知我們,我們會及時刪除。
蜀ICP備2020033479號-4 Copyright ? 2016 學習鳥. 頁面生成時間:2.954秒