2024年6月4日

捉放法要標記多少才會準確?用js程式進行模擬

 你有沒有好奇過進行捉放法的活動時,到底要標記多少才會準確啊?

為了解答這個疑惑,我就寫了一支程式來模擬看看吧。

https://chihhsiangchien.github.io/capture-recapture-inquiry/index.html


輸入參數有三項:族群實際數目、取樣次數、取樣大小,按下執行的按鈕之後,

程式自動會進行捉放法,假設族群實際數目有200隻,取樣5次,取樣大小50的設定,那麼就會先進行標記1隻的情況,一共做了5次捉放法,每次取樣都抓50隻來估計族群大小。然後再做標記2隻的情況、標記3隻的情況,一直到標記200隻的情況。

做出來的結果就如第一張圖,標記數量太少,越容易低估或高估。舉例來說明明族群有200隻,但是你標記1隻後,取樣50隻發現有1隻做標記,就會估算出族群數量為50隻。或是當標記20隻,但是你取樣50隻,只有1隻作記號,那麼就會估算成1000隻。從下圖可以見到大概在標記60隻以下經常會看到估算過高或過低的情形,你也許會認為那就只要標記實際族群的某個比例就可以算準了,但是那前提是你得先知道實際族群是多少。你都已經知道實際族群了,何需再用捉放法呢?

所以第一張圖頂多就是讓你知道標記要多一些,才會比較準。




接下來第二和第三張圖,是用平均數來估計族群大小,比方說取樣5次做平均。右邊那張圖的縱座標是對數顯示

第四和第五張圖則是用中位數來估計

最後一張圖則是同時將平均數的估計數和中位數的估計數放在一起比較。以預設的參數來進行模擬,會發現這種情況的中位數的估計誤差在多數的情況都比平均數來得小,因為標記數目太小容易產生極端值,而這正是中位數可以避免這樣的情況。



2024年5月30日

捉放法的互動程式

 

https://chihhsiangchien.github.io/markRelease/index.html

其實捉放法的互動程式,早就有人寫了,請見線上捉放法的模擬

只是我在使用上有時候有一些需求是別人程式無法滿足的,於是前兩天就趁著有空寫一支出來給自己用,基本架構就是參考virtualbiologylab的,所以內部程式的變數也是設定成池塘裡捕捉蝌蚪,放在魚缸裡標記。

這隻程式有幾個特點:
  1. 每次出現的蝌蚪總數是隨機的,在1000~2000之間
  2. 把捉放法的三個關鍵按鈕放在一起:捕捉、標記、釋放,比較能夠說明講解
  3. 可以輸入自己推測的總數答案,提交答案後系統自動算出誤差百分比。而提交答案後系統會自動重置蝌蚪數量。
  4. 捕捉的邏輯是隨機的,每一隻的被捕獲率預設是1%。每次採樣大概會抓個十多隻,採樣的極限是100隻,這可以避免學生用採樣把所有綠點都抓起來。

2024年5月7日

畫一棵碎形樹

 最近上一個資訊課程,上課的涂老師讓我們做了一個很有趣的活動,我覺得值得紀錄。

首先他在校園裡摘了一個約50cm長的帶葉枝條,接著讓大家猜測這個枝條上的葉子有多少片。待大家都猜測一輪之後,開始讓大家分這段枝條,然後合作把整個枝條的葉子都算出來!

我覺得真是太酷了,我從來沒有仔細算過一條枝條有多少葉子啊,印象中那個枝條的葉子有2千多片。

接著老師講解如何畫一棵科學樹,讓大家也試著畫看看。規則是在「一個分支上畫三個分支,一個是延伸原枝條,另兩個是左邊和右邊各延伸一條」,不斷重複這樣的規則。最後在每一個分支畫上葉子就好了。

第一輪會有3個枝條

第二輪在本來的3個枝條上,各畫3個枝條,所以共有 3^2個枝條

第三輪在本來的3^2個枝條上,各畫3個枝條,所以共有 3^3個枝條

若是畫了五輪,就有3^5 = 243 個枝條

在每個枝條的末端都畫一片葉子,所以就會有 729片葉子了。


我覺得這真的也很瘋耶(讚許)
畫碎形樹這種事,怎麼想都不會是手動完成啊。

我覺得這很有趣,於是就用js寫一個網頁程式來畫畫程式的碎形樹

將許多變數變成可以手動調整的,就可以畫出完全不同的樹了







2024年3月28日

客觀評估硫代硫酸鈉與鹽酸的反應速率實驗終點的模組

學校裡的理化老師經常跟我討論一個問題,他們在帶領學生進行硫代硫酸鈉與鹽酸的反應時,經常有一個困擾是無法客觀評估反應終點。反應進行時會逐漸生成奈米硫的沉澱物,當沉澱物增加到一定程度時,就會遮住燒杯底下的黑十字,學生必須計時從開始反應到遮住十字的經過時間,但是什麼時候稱為「遮住」,這就無法客觀了。

也因此,有許多的科展作品都用了光學儀器去測量這個反應,當然也都得到了很好的結果。只是如果是要在實驗室,多組學生同時操作時,儀器的簡化和操作便利性就必須列入考量了。

一開始同事希望使用Arduino來進行測量,這當然可以,不只可以計時,還可以設計亮光或聲響來提示進行過程。只是當儀器有許多按鈕和接線時,在實際在課堂上進行實驗時,就會產生許多干擾因素,像是學生忘記怎麼按鈕,某個接線脫落時要如何接回正確位置。

一開始我幫忙設計的感測電路是使用紅外線LED和光電電晶體,紅外線對著溶液照射,當沉澱物增加時,反射的紅外線就會增加,然後你只要測量光電晶體的電壓改變就好,只是當零件太多時,就更難讓學生使用了。

怎麼改進呢?後來想起,市面早有這樣的商品化模組可以使用,就是用在自走車上的紅外線循跡模組呀,這類型模組也會用在像碎紙機的感應紙張自動啟動。

模組上就有紅外線發射LED和接收的光電晶體,你只要接上3V電池,把它對著溶液就可以。當溶液的沉澱物增加到一定程度時,光電晶體接受反射的紅外線到某一個程度時,模組上有一個LED就會亮起。

當你要讓學生進行小組內的實驗時,你根本不用管那個「沉澱物的濃度」是多少,因為你使用的是同樣一組感測裝置,不管你是改變反應溫度、反應物濃度等,反正燈亮起來的時候,就是濃度到了那個特定濃度了,你只要確定每次感測時,你的感測模組和燒杯的距離都是一樣的就行了。

至於那個「濃度」是多少,有沒有辦法量化呢?使得全班都測量同一個反應濃度呢?也是可以的。這就要認識一下模組上的腳,此外,你也需要使用三用電表。

1.模組上有一個微調電阻,你可以轉動它,使模組在濃一點的濃度時候才亮,或是稀一點時就亮。

2.模組的接腳有兩種類型,一種是三隻接腳,分別是VCC、GND、OUT。另一種是四隻接腳,分別是VCC、GND、D0和A0。

VCC和GND就是供電用的,一般工作電壓是3.3V-5V,通常用3V電池就可以工作。至於三隻接腳的OUT或四隻接腳的D0其實是一樣的,就是輸出0或1,你可以再跟聲音的模組接在一起,當那個特定濃度到達時的時候,OUT或D0就會輸出1,使得聲音模組叫出來。

至於四隻腳模組的A0,你可以接上三用電表或是伏特計,直接看到感測過程中A0輸出的電壓變化,使用過程中記得要讓電表和模組共地,這樣你就可以在設定在什麼特定電壓時,模組就會亮起來。

如果你想要搭配上Arduino或是micro:bit進行其他開發應用,反正已經可以輸出電壓了,當然後續也都可以做了。


實際使用這項裝置時,只要把模組裝上麵包版,再接上電池盒的線就好了。


確保模組感測的位置是在溶液液面下,實驗進行時,你只要注意模組的燈什麼時候亮起就可以。附帶一提的是,模組上面通常有兩個燈,一個是電源指示燈,插上電就可以用,另外一顆才是你要注意的燈。


2024年1月19日

測量橫膈活動度

寫這一篇你的呼吸模式正確嗎?測量你的呼吸活動範圍之後,課程來到呼吸運動了,於是就讓學生測量看看「胸腹呼吸靈活度」。

一開始,我先按照書裡的計算方式,發下皮尺,讓學生們量吸氣和吐氣的圍長,然後相減之後除以吐氣圍長在乘上1000,結果發現課程進行的難度意外的高。

發生什麼問題呢?
1. 學生不會用皮尺,他們會把皮尺兩端拉得長長的, 然後不知道怎麼看刻度。
2. 找不到肋骨在哪裡,摸到髂骨去了。
3. 不會用計算機

於是我邊教邊改,換成以下的作法,順利很多。
  1. 發下皮尺,先教怎麼測量手腕圍度,請學生做出測量的動作,讓我檢查。
  2. 示範錯誤的測量方式:例如皮尺兩端拉長長的,還有測量成胸圍和腰圍。
  3. 坐下測量胸腔底部擴張量,也就是紀錄吸氣圍長和吐氣圍長。
  4. 計算時,只計算吸氣和吐氣的圍長差就好,但是講這樣學生還是不懂,所以就講大數字減掉小數字的差距。雖然除以吐氣圍長是有其意義的,不過我們就看差距就好了。

學生們都很意外,怎麼自己吸氣時,胸腔底部的擴張量這麼小,大多數就只有2-3公分。


 

接著請學生駝背含胸再測量一次,如果不明白這樣的姿勢,那就是低頭滑手機的姿勢啦。大多數人用這樣的姿勢測量時會發現擴張量變得更小,也就是很難進行水平呼吸,這樣產生的結果就是換氣量減少。其實也有很多學生發現怎麼自己駝背的測量和剛剛一開始的測量量都一樣,喔,那看來就是平時坐姿就已經不良了。

接著在站立測量一次,想像吸氣時把氣灌進肚子裡讓肚子變大,通常這樣的姿勢就可以讓擴張量變大一點。

安排這樣的活動,我是期待學生可以先看到自己的問題,然後有意識的去改變自己的行為和姿勢,100個當中有1個會改就好了。

2023年12月25日

運動後,體表溫度的變化


這是在體溫恆定的單元中可以進行的小活動


先請學生測量自己手指的溫度,讓學生在觸控螢幕的溫度欄位下寫座號,即便在室外溫度十來度的氣溫下,大家的手指溫度也至少有20度到30多度。


接下來請學生預測,在跑完一圈操場之後,手指溫度會怎麼變化。多數學生根據跑步之後變熱的經驗,認為跑步後手指應該會變熱。只有三位學生的經驗是跑步之後手似乎變涼。

 

實際上測試之後,大多數學生的手指溫度都是下降的,甚至有些還下降10度。有這樣的情形可能來自於身體血液的調控,在跑步過程中,送往腿部肌肉的血液增加,而送往手指末梢的血液則是減少。


明年這樣的實驗,可以加上一個測量,就是測量小腿肚的皮膚溫度,我認為應該會看到不一樣的現象。

2023年10月15日

你的呼吸模式正確嗎?測量你的呼吸活動範圍

過去幾十年來,每次開學前我都會煩惱著,在第一週我一定會喉嚨沙啞,心想著退休前每一年都要這樣度過嗎?但是在開始肌力訓練之後,發現這間接改善了我喉嚨沙啞的問題,甚至在教室上課還通常不用麥克風?原來是重量訓練時要特別注意腹式呼吸,進而讓我在生活中就改變呼吸模式了,從原本的胸式呼吸變成了腹式呼吸,然後就漸漸發現在教室上課不用麥克風居然也能上課呢。

你怎麼知道自己是什麼呼吸模式呢?有沒有簡單評估的方法?這本書《健身者、運動員呼吸訓練全書:科學化訓練x圖解,正確呼吸,全面提升肌力、耐力、恢復力》就提供了答案,還提供了許多運動的訓練方式與呼吸法。而我讀書進行實作之後,的確發現在改變呼吸模式之後,最大肌力的確提昇了不少。

我對評估方式特別感興趣,因為是一條皮尺就可以測量的,也是可以運用在生物課程中。


呼吸的動作位置

有別於胸式和腹式呼吸的名詞,作者是以垂直和水平呼吸來稱呼這兩類呼吸模式。進行垂直呼吸時,身體上半部會位移,肩膀會有些微起伏。而水平呼吸時,身體上半部不會移動,肚子和下肋骨會在吸氣時擴展,吐氣時內縮,也就是吸氣時肚子會變大,吐氣肚子變小。如果是兩者皆有,則稱為混合呼吸。


吸氣的肌肉

以上討論的是呼吸時的動作位置(Location of Movement ,LOM),用什麼動作位置呼吸,取決於你使用哪些呼吸肌肉。

怎麼吸氣?這在國高中的生物就有教,吸氣的主要肌肉是橫膈和外肋間肌,它們使肋骨向上向外移動藉以擴張胸腔。除了這兩處肌肉以外,還有一群吸氣的輔助肌肉,這些輔助肌肉分佈在肩頸和上背部位。本來輔助肌肉只是穩定輔助之用,但它們若是參與了吸氣,變成拉抬肋骨的主角,那麼在外觀上就會出現吸氣時肩膀上抬的現象。你可以在YT上搜尋「假喘」,就會看到韓國藝人的結尾妖精影片,仔細看看肩膀是怎麼和呼吸產生關聯的。



呼氣的肌肉

一般呼氣不需要肌肉收縮,只要負責吸氣的橫膈和外肋間肌放鬆,胸腔就會變小吐氣了。但如果需要用力呼氣(active expiration)時,就需要許多肌肉了,包括內肋間肌、腹肌等肌肉以及一些輔助肌肉。你可以從下圖看到這些呼吸輔助肌肉就在腰腹部位。




觀察嬰兒的呼吸模式,會發現他們在呼吸時都是肚子明顯起伏,也就是進行水平呼吸,但為什麼長大了之後大家好像就忘記這種呼吸呢?其中一個原因是「縮小腹=美」的觀念影響著。

如果你被這個觀念影響,你就會限制了肚子的活動,嫌棄「吸氣時肚子鼓起」的正常現象,然後你就會讓呼吸模式從水平呼吸變成垂直呼吸了。想想看,本來的肩頸上背的吸氣輔助肌肉,現在變成了主要肌肉,你的身體會發生什麼問題?


呼吸的活動範圍

在這書中,作者還進一步結合呼吸的動作位置和呼吸的活動範圍(ROM),來評估胸腹呼吸靈活度,也就是評估呼吸是否夠有效率。

要測量呼吸的活動範圍需要一條皮尺,測量的位置是量測肋骨底部(位置在乳頭位置正下方),也就是如下圖的紅線位置。


只要量測你吸氣和吐氣時的圍長,就可以進行評估了。

活動範圍的計算方式是 
(吸氣圍長-吐氣圍長)/吐氣圍長 x1000

例如我的吸氣圍長是94公分,吐氣圍長是84公分,則我的活動範圍是這樣計算
(92-82)/82 x 1000 = 121.95

再加上我的動作位置是水平呼吸,我就可以評估我的胸腹呼吸靈活度屬於A等級。其實一開始我還沒練習呼吸時,我是落在B等級。

知道自己等級的位置之後,首要是讓改善自己的呼吸動作位置(忘掉縮小腹這件事吧),讓自己的的呼吸從垂直動作改善成水平動作,接著就是提昇水平環狀呼吸的能力,進而讓等級往A移動,讓主要工作的肌肉去工作,輔助的就去輔助就好。