顯示具有 數學 標籤的文章。 顯示所有文章
顯示具有 數學 標籤的文章。 顯示所有文章

2024年10月16日 星期三

旋轉參考系的假想力 (旋轉餐廳裡面的物理學)

在一個旋轉餐廳面擺一個撞球檯, 觀察球的軌跡, 數學式會變成什麼樣子? (如果它轉得夠快的話啦) 離心力, 每當公車轉彎時都可以感受得到; 科氏力, 常常聽到但一直覺得理解得有點心虛。 我偏好用精準但不要太難的數學式去理解物理, 這樣即使省略囉唆的數學運算過程, 還是可以很放心地把最終得到的物理知識放進我的信仰體系裡面。 很認真地搜尋到這篇 (正好符合我的程度與偏好的) 文章: Non-Inertial Frames, 又有很棒的漫畫, 一定要導讀/分享一下重點。

2024年5月9日 星期四

透過 maxima 感受「平方反比定律」 的神奇

wxmaxima 畫面 忘記很久以前在哪裡讀到, 說 萬有引力的平方反比定律 裡面這個 "2" 次方是很神奇、 很剛好的數字。 也忘記到底是怎麼剛好法。 最近心血來潮, 開始讀 向量場的數學, 在 Anchordoqui 寫的講義 裡面讀到一個範例 (5.3 節範例 3): 令 r=(x,y,z) 表示空間中一個起始於原點的向量。 如果向量場 vf3 的數學式是: vf3(r) = r/|r|^3, 那麼 vf3 的散度 (divergence) 到處都是零。 讀者不用擔心高深的數學, 這裡我只假設讀者知道純量場、 向量場跟偏導數的定義。 至於一個向量場 vf3 的散度, 它只不過是一個 公式很簡單的純量場。 至於它有什麼物理意義或數學特性, 就暫時先隨便無所謂了。

2023年6月25日 星期日

判斷字串長度是否為質數的正規表示式

讀到一個神奇的正規表示式, 竟然可以拿來判斷字串長度是否為質數?!
^x?$|^(xx+?)\1+$
"|" 的左邊很簡單, 只是在比對長度為0或者1的字串。

比較燒腦的右邊則是在嘗試比對 「長度恰好為 p*(q+1)」 的字串。 小括弧裡面的部分抓取 「長度至少為2的子串, 越短越好」。 這裡用 non-greedy 的 +? 而不是較常見的 (greedy 的) + 來表達「越短越好」。 後面的 \1+ 表示 「重複前面小括弧比對成功的同一字串任意次, 至少1次」。 如果小括弧內的字串長度為 p, 後面的成功比對次數為 q, 那麼整個字串的長度就是 p*(q+1), 不是質數。

用 python 寫, 程式長這樣:

import re
def is_prime(n):
    return not re.match(r'^x?$|^(xx+?)\1+$', 'x'*n)

def primes_up_to(n):
    return [ i for i in range(n) if is_prime(i) ]

primes_up_to(100)

這一篇 有更詳細的解說。

2019年8月7日 星期三

尺規作圖遊樂場 Dr. Geo

過圓外一點 C 做切線 CE 跟 CF 還記得小時候學的 (沒有刻度的) 直尺與圓規作圖嗎? 光用這兩個工具, 就可以畫出相似三角形、 三角形的外接圓/內切圓等等圖形。 這是很燒腦又很好玩的益智遊戲。 用電腦畫更好玩, 因為繪圖完成後, 你可以用滑鼠抓著原圖的頂點或圓心, 改變原圖 (例如三角形) 的大小/形狀/位置的同時, 看著衍生圖 (例如外接圓或內切圓) 跟著變動, 超有成就感! 十幾年前我寫過 DrGeo: 物理老師也會心動的幾何教學玩具。 後來 Dr. Geo 大改版; 幾個月前得知: 新版的 Dr. Geo 不僅支援中文顯示, 也支援中文輸入, 今天終於要來重寫一篇新版的介紹文了。

2018年9月2日 星期日

資料視覺化幫我重新發現克卜勒第三定律

如果你沒空看 18 分鐘的 TED 演講 Hans Rosling 用前所未有的方法詮釋數字統計, 那麼至少要欣賞一下這個 4 分鐘的短片 「200 年, 200 個國家」:

資料視覺化可以幫我們從枯燥的數字當中, 一眼看出奇特、 令人驚訝的現象。 而且即使我們手邊沒有任何特殊的資源, 還是可以玩出一些有趣的東西。 今天我們要重新發現 (天文學上的) 克普勒第三定律。

2017年12月3日 星期日

用 GRASS 繪製燦坤各分店的勢力範圍地圖 Voronoi Diagram

燦坤各分店勢力範圍地圖 想像你有一張 「中華電信基地臺分佈地圖」, 並且假設每個基地臺的功率都一樣大。 地圖上的每一個點都可以問: 「哪一個基地臺離我最近?」 以便決定哪個基地臺的訊號比較強、 我的手機要跟誰連線。 以 (不會移動的) 「偶像 - 粉絲」 之間的關係來比喻, 每個偶像有自己的勢力範圍, 範圍內的所有點就是它的粉絲。 各勢力範圍之間的分界線由相鄰兩偶像的垂直平分線所組成。 這樣畫出來的圖稱為 Voronoi Diagram。 因為我拿不到基地臺座標, 所以只好改畫燦坤各分店的勢力範圍地圖。 目前可能沒什麼用, 因為分店跟粉絲的直線距離沒有太大意義; 但以後出現無人機送/取貨業務時, 這張地圖可能就有用了。

2017年11月7日 星期二

多邊形求面積與地理中心/形心/幾何中心近似值

幾所大學的校園範圍及地理中心 最近想要處理 osm 上面撈出來的便利商店資料。 其中有些以點標示, 有些以多邊形標示。 為了簡化問題, 想用多邊形的 地理中心 (點) 來取代多邊形 (面)。 以數學術語來說, 就是需要計算 幾何中心, 也就是 centroid, 亦稱為形心。 在 平面上的多邊形形心計算公式 裡面, 還需要順便計算面積。 所以我寫了 gj-area-centroid.py 來計算 geojson 簡單多邊形的面積與形心的近似值。

2017年7月20日 星期四

資料科學/機器學習的好用入門工具 t-SNE 幫你看見高維度數值資料

手寫數字測試 t-sne 演算法 想像你有一個試算表, 裡面有幾十個數值欄位, 還有幾個 「分類用」 的字串欄位。 你想問: 如果我拿到一筆資料的所有數值欄位, 是否可以猜出它屬於哪一個分類? 比方說, 已知一個人的身高/體重/BMI/心跳速率/血壓/睡眠時間/肝指數GOT、GPT/... 是否可以猜出他比較可能是哪一種血型/星座/生肖/職業/...? (有點毛毛的例子, 不過也正好提醒大家: 現代的趨勢就是這樣 -- 你的隱私, 就是政府或大企業手中的大數據。) 這是機器學習領域裡面典型的分類問題 (classification)。 如果資料量不大 (例如只有幾百筆或幾千筆資料、 每筆只有幾十個或幾百個欄位), 可能不足以拿來訓練複雜的人工智慧演算法; 又或者你有大量的資料, 但想要在全力運算之前小量取樣, 並且用一個操作簡單運算量較低的演算法、 以不是很精確但可以視覺化的方式迅速了解你的資料長相。 這時, 屬於非監督式學習類型的 t-SNE 演算法就非常適合拿來用肉眼觀察資料的群聚/分類現象。

2016年8月13日 星期六

試算表按姓名/國別/分類/群組/... 等等標籤來分項/分組加總

你有一個試算表, 其中有一個數字欄位 (例如金額/人口/面積), 還有一個文字欄位 (例如商品名稱/團隊名稱/姓名), 現在想要根據這個文字欄位來對數字欄位分項/分組加總, 把相同商品名稱 (或相同團隊名稱、 或相同姓名) 的所有列的數字欄位全部累加起來, 該怎麼做? 在 LibreOffice/OpenOffice/google sheet/excel 等等各家試算表軟體裡面, 都有 (1) subtotal (2) pivot table (3) sumif 三種方式都可以達到相同的效果。 本文採用 LibreOffice Calc, 分別以這三種方法來處理這兩個範例:

  1. 處理 blockbuster.csv 「有史以來票房前五十名的電影及導演列表」 (從 1 2 整理出來的) 從而製作出 「導演-導過最賣座幾部片票房總額」 的對照表 ( 成果檔)。
  2. 處理 countries.csv 「全球各國人口及面積列表」, (從 這裡 整理出來的) 從而製作出 「六大洲人口密度列表」 ( 成果檔)。

這三個方法也可以拿來應用於統計各國奧運得獎數、 朋友旅遊結束後拆帳、 公司部門之間比較績效等等場合。

2012年12月26日 星期三

HTML 網頁內嵌 MathML 數學式及 SVG 向量圖

廿年前讀博士班時, 我那份有點像是數學系產品的論文是用 LaTeX 寫的。 LaTeX 的排版真的超讚; 不過它也很龐大。 相對地, 改用 HTML 製作講義, 就輕簡很多, 而且不論走到哪裡, 幾乎每一部電腦都可以讀寫。 至於數學式, 幾年前曾經試著把 MathML 內嵌到 HTML 裡面, 沒成功。 今年又教到微積分, 於是再試一下, 竟然就發現 firefox 支援 HTML 網頁內嵌 MathML 數學式及 SVG 向量圖! 真是太讚了! 我用的是 firefox 17; 讀者留言表示 opera 和 chromium 也可以; chrome 23 只能顯示 SVG 不能顯示 MathML; konqueror 4.9.2 則是兩者都無法顯示。

2011年4月5日 星期二

Gnuplot 十分鐘的 3d 曲面奇航

請給我十分鐘 (到第二節為止), 讓你看看 3d 數學曲面之美。 操作完這篇之後, 或許你會想認真 學 gnuplot and 認真學多變數函數與微分幾何。 閱讀完整講義

兩個二次極限存在但不相等, 所以二重極限不存在 sinc 函數的旋轉曲面 分不出正反面的 Moebius Strip

2010年1月16日 星期六

一些 logo 語言的資源

小 P 放寒假了, 閒得發慌; 我幫他找些好玩的東西。 先丟 kturtle 給他玩。 當然也要給一些教學網站; 可是用 "kturtle tutorial" 卻找不到什麼相關文件。 換了好幾個關鍵詞 (logo﹑ syntax﹑ programming﹑ gallery) 終於找到:
  1. 指令列表 (中文)
  2. The KTurtle Handbook 完整英文手冊
  3. Logo 15-word challenge 15 個指令以內的 logo 程式畫出來的圖片集錦。

給大人看的部分: logo 語言 是為小朋友設計的學習程式語言入門玩具。 kturtle 是一個實作。 有些 logo 語言允許多隻烏龜同時跑來跑去一起畫圖。 (待補)