2023年4月1日 星期六

Haskell的函數庫和沙盒

 Haskell 管理 package 和編譯專案的軟體 cabal,以前有沙盒功能,建立沙盒環境後,自己的專案所引入的函數庫不會污染到別的地方,只在自己的專案有用。現在這功能已經拿掉了。為何呢?

2023年3月27日 星期一

座標變換後新的基向量如何導出

如果只是要答案,那很簡單,假設位置向量$\bf{X}$,
$x=x(u,v,w)$,$y=y(u,v,w)$,$z=z(u,v,w)$,那麼新座標系$(u,v,w)$的基向量可以取為
$$\mathbf{g}_1=\frac{\partial \mathbf{X}}{\partial u},\ \mathbf{g}_2=\frac{\partial \mathbf{X}}{\partial v}, \ \mathbf{g}_3=\frac{\partial \mathbf{X}}{\partial w}$$這是未標準化的向量,物理上常常要取基向量的長度為1,那就把上述的向量除以各自的長度。

Courant的數學分析的第二卷第一分冊,練習3.6d就是在問如何導出新座標系的基向量,以及在新的基向量之下如何表示梯度。這是很有代表性的問題,因為這些問題通常是物理課本的內容,一般數學書不會提到,所以這本書把它放在練習題。題目如下:

2023年3月16日 星期四

Haskell當中的List monad用do notation時如何作到篩選

很神奇,在List monad中do notation的篩選功能guard不是語言內核,而是一個用Haskell寫的函數而已。

Haskell report 2010對於guard有如下敘述:

guard :: MonadPlus m => Bool -> m ()

guard b is return () if b is True, and mzero if b is False

2023年3月6日 星期一

部落格中用到的幾個Latex的Math語法說明

\$...內容...\$:行內使用Latex語法。
\$\$ ...內容...\$\$:獨立段落使用Latex語法。
行內使用語法會把數學式調整成一行高。

$\verb|\begin{align*}|$
$\verb|\\|$
$\verb|&|$ 
$\verb|&=|$ 
$\verb|\end{align*}|$

{align*}:標示區塊中使用&語法對齊。*代表不自動對式子編號。
\\:換行。
&:放在行首表示該行靠左對齊
&=:將此等號對齊上一個有前綴&的等號。

\tag{1a}:在行尾加標籤,可用於式子編號。
\mathbf{}:粗體。
\overbrace{}^{}:上括弧,說明文字在上。
\underbrace{}_{}:下括弧,說明文字在下。
\left(:自動調整大小的左括弧,必須跟\right)對應。其實可用在任何成對的左右標記上。例如\left| \right| ...等等。

2023年2月21日 星期二

測度論講義中的定理10.5.5的證明補充說明

跟上一篇一樣是出自測度論講義(嚴加安著)第三版,這次書中的證明過程都沒錯了,只是有一個地方很難明白,所以補充說明。
定理如下:

設 $\mu$ 是 $E$ (同上一篇)上的實值集函數,滿足四條公理(Shapley值必須符合的公理)的函數$\phi$是唯一的,等於下式:
$$
\phi_i(\mu)=\sum_{T \subset E}\gamma_n(|T|)[\mu(T)-\mu(T \backslash \{i\})], i=1,\cdots,n \\
\gamma_n(|T|)=\frac{(n-|T|)!(|T|-1)!}{n!}
$$

2023年2月20日 星期一

測度論講義中的引理10.5.1的證明補充說明

書籍是測度論講義 (嚴加安著) 第三版。以下按照書中證明,只是難懂的部份加上補充以及錯誤的地方改正。 要證明的是

$$\sum_{T \subset F \subset A}(-1)^{|F|-|T|} \frac{1}{|F|}=\frac{(|A|-|T|)!(|T|-1)!}{|A|!}\ \ \ \  \ (10.5.2)$$

這裡假設 $E=\{1,2,...n\},A \subset E,A \neq \varnothing,T \subset A$。

2022年8月11日 星期四

Euler的絕招

Euler 的絕招很多,介紹一個最有名的。
 
$$P(x)=1+Ax+Bx^2+Cx^3+\cdots=(1+\alpha_1x)(1+\alpha_2x)(1+\alpha_3x)\cdots$$
 
這式子有什麼大不了呢?根據Euler的看法,這式子延伸到無窮項也成立,$P(x)$不是多項式也成立。這就非常大不了了。兩邊取對數之後微分,可以得到

$$\frac{P'(x)}{P(x)} = \frac{\alpha_1}{1+\alpha_1x}+\frac{\alpha_2}{1+\alpha_2x}+\frac{\alpha_3}{1+\alpha_3x}+\cdots$$