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

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年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$$

2022年6月30日 星期四

兩個方法求冪次和公式

以$1^2+2^2+3^2+...+n^2$為例。更高次仿此可得。

方法一:牛頓差分法

首先我們需要一個數列,這個數列的每一項都是冪次和。 注意必須從零開始,因為我們要用的公式是差分版的麥克勞林級數:

假定數列是$F(0),F(1),F(2),...$

$$
\begin{multline*}
F(n)=F(0)+\Delta F(0)n+\frac{1}{2!}\Delta^2F(0)n(n-1)+\frac{1}{3!}\Delta^3F(0)n(n-1)(n-2) \\
+\cdots+\frac{1}{r!}\Delta^rF(0)n(n-1)(n-2)...(n-r+1)+\cdots
\end{multline*}
$$

2022年4月7日 星期四

Burnside 定理的證明

    這是一個計數定理,用來計算一個有限集合被群作用(排列)下的等價類個數。其實這定理不是 Burnside 發現或證明的,只是 Burnside 最早把它寫進教科書。證明這定理要用到一些群論的定理,雖然這些定理的證明也可以直接全部寫入本定理的證明當中,但是證明會變得很冗長,其實會更不容易懂。

2022年1月12日 星期三

如何做 Haskell 的 η conversion,以 (.).(.)為例

 Haskell的函數直接支援 η(eta) conversion,也就是說函數的撰寫可以變成完全無參數。事實上還是會接收參數,只是經過 η conversion 之後可以不寫。於是就有像 (.).(.) 這種完全不知道在幹什麼的函數。這不是乳房的象形文字,是一個合法的函數,而且還很有用。當然最好別這樣寫,這樣寫沒人看得懂。(.).(.) 函數可以經由 η conversion 轉回來變成有參數,Haskell當中有一種機械化的代數運算方式計算出 (.).(.) 的型別,有了型別就知道它在幹什麼了。

2021年12月1日 星期三

國中生就會 y-combinator

國中的時候大家都做過一個題目:
$$\sqrt{2+\sqrt{2+\sqrt{2+\cdots}}}=?$$
這題目的做法是令$\sqrt{2+\sqrt{2+\sqrt{2+\cdots}}} = x$  ,接下來都會做了,兩邊都平方,就變成 $2+x=x^2$。其實也可以左邊加2再取根號,意思一樣。這裏當然有一個假設沒跟國中生講,就是$\sqrt{2+\sqrt{2+\sqrt{2+\cdots}}}$會收斂到一個數。

2021年2月25日 星期四

一個高中分式的極值問題

 題目:$a, b > 0$,求 $(a^2+b^2+ab+1)/(a+b)$ 的最小值

2018年8月16日 星期四

如何記住切空間的公式

當然,在這之前必須對隱函數定理很熟悉,否則就算記住了,你也不知道這公式是在切哪裏。就是說,你看到這種等式 $f(x, y, z) = 0$ ,不用想就知道這是一個曲面,或是說看到這種聯立等式 $f(x, y, z) = 0$ 和 $g(x, y, z) = 0$,不用想就知道這是一條曲線。就跟人家問八乘九等於多少,不需要想就可以回答一樣。

2017年4月7日 星期五

小o符號的使用

小o符號在計算函數極限和闡述微分定義時非常的有用。對於極限理論來講,它並沒有帶來新的思想,但是符號的使用非常便利,可以造成思考上的省力效果,對於各種極限運算也可以透過小o,在形式上完全變成代數運算。小o可以說是偷渡"無窮小"的數到標準分析學裏的一個辦法。不用學習非標準分析繁重的邏輯就能夠享受非標準分析的好處。

2017年1月19日 星期四

微分形式的不變性

微分的定義是這樣的
$$df=f'(x)dx\tag{1}$$
高階微分的定義
$$d^nf=f^{(n)}(x)dx^n\tag{1a}$$
這個式子的由來是因為我們把$dx$當成固定的,它不是$x$的函數,所以$d(dx)=0$,但是$f'(x)$是$x$的函數,因此

帶參數積分的微分

$$\frac{d}{dy} \int_{v(y)}^{u(y)} f(x,y) \, dx$$
這式子要如何計算?
$$\begin{align*}  設 \int_v^u f(x,y) \, dx&=I(u,v,y) \\
  dI&=\frac{\partial I}{\partial u} du + \frac{\partial I}{\partial v} dv + \frac{\partial I}{\partial y} dy \\
&=f(u(y),y)u'(y)dy-f(v(y),y)v'(y)dy+ (\int_v^u f'_y(x,y) \, dx)\, dy  \\
\therefore \frac{dI}{dy} &= f(u(y),y)u'(y)-f(v(y),y)v'(y)+\int_v^u f'_y(x,y)\,dx
\end{align*} $$
證明要比這個麻煩,這樣只是方便記憶。

2017年1月14日 星期六

泰勒多項式的兩種餘項

假設$f(x)$在$[a, b]$連續,在$(a, b)$ $n+1$階可微,帶餘項的泰勒公式是這樣的:
$  f(b) = \sum_{k=1}^n f^{(k)}(a)/(k!) (b-a)^k+f^{(n+1)}(\xi)/((n+1)!)(b-a)^{n+1} $

$f^{(n+1)}(\xi)/((n+1)!)(b-a)^{n+1}$是最常見的餘項,叫做拉格朗日餘項。但是還有令一種餘項叫做積分餘項(還有第三種,暫時不提),這可以直接用分部積分推導,或是從拉格朗日餘項用積分中值公式推導。後一種方法簡單一點。

多加上一個條件,就是$f(x)$在$(a, b)$連續可微,就成立積分餘項
$(1/n!)\int_a^b f^{(n+1)}(x)(b-x)^n \, dx$

注意到$(b-x)$在 $x$ 屬於$[a,b]$時不變號,又發現
$(1/n!)\int_a^b (b-x)^n \, dx= (b-a)^{n+1}/(n+1)!$,
之後套用積分中值公式就知道兩種餘項相等了。

2013年5月9日 星期四

抽象代數

抽象代數是在研究算術系統(例如整數,有理數和加法乘法等等)的結構,進而將之抽象化(群,環,整域和體)後,可以廣泛的研究各種可能的算術系統。對於研究高等數學,是非常有用處的,作為一個設基系統也是典範。

按照慣例,還是沒有什麼中文書籍可參考。楊維哲的"簡單整數論"最後兩章就是在講抽象代數,除非是天才,不然對國中生來講可能是太難了一點。另外還有一本翻譯書抽象代數導論,正在拜讀,可惜還是有很多中文數學書的老問題,大量的排版錯誤和錯字,跟英文原版拿來一比,更是相去不可以道里計。雖然還是可讀的,不過最好是已經有一些基本概念之後再來讀這本,原因並不是因為這本太難(相反地,這本很簡單而且講的很詳細),而是因為排版和錯字很多,必須要有一定的基礎才能自己改正。最後是一本離散數學初步,裡面有一章講群與環,入門從這裡看是可以的。這本書雖然也是翻譯劉炯朗的離散數學,但是在翻譯書中算是品質相當好(可惜的是符號和圖表的印刷很醜,遠不如原版的美觀)。如果只讀中文書,先念這本的群與環再念抽象代數導論是一個辦法。

英文書很多,品質大概都比中文書好。
A Book of Abstract Algebra不錯,也很便宜。

2012年7月4日 星期三

一個有趣的行列式(determinant)問題

因為是在楊維哲的"湖濱高中資優數學講義:代數" 中看到的,所以下面把行列式稱為定準,這是該書中的稱呼。翻成行列式的確是蠻奇怪,我從國中的時候就覺得怪了。
題目:
$$
\begin{Vmatrix}
(a - x)^2 & (a - y)^2 & (a - z)^2 \\
(b - x)^2 & (b - y)^2 & (b - z)^2 \\
(c - x)^2 & (c - y)^2  & (c - z)^2
\end{Vmatrix}
$$
作法:把定準中每個元素展開,例如把$(a-x)^2$展成$a^2 - 2ax + x^2$。因為每個元素都有三項,結構也都很類似,這就給我們一個靈感:根據每列作加法的拆解,可以把原定準拆成$3*3*3 = 27$個定準的和。因為每一列的元素都能拆成三項,共三列,所以是三的三次方。但是不用怕,因為這27個當中很多都是零。 如果任兩列取的是同一項(例如第一列取$a^2$,第二列取$b^2$),那麼定準為零。這麼一來就只剩下$3*2*1=6$個定準。

六個定準當中隨便取一個來看,發現都可以把它拆成
(a和b和c的乘積)*{Vandemode定準,變數為xyz}。觀察可以得到要如何得到這六個,有規則可循。既然我們知道Vandemode公式,那麼就只剩下如何拆那一大串a和b和c的多項式
$-a^2 b + a b^2 + a^2 c - b^2 c - a c^2 + b c^2$

看出這是一個三元的交錯式,肯定有$(a-b)(b-c)(c-a)$的因式,那麼跟原式只差正負號,觀察或代入可得剛好是正的

那麼答案就是$(a-b)(b-c)(c-a)(z-x)(z-y)(y-z)$

2010年10月21日 星期四

Mathematica研究:rookPolynomial

rookPolynomial[list_] :=
Plus @@ Flatten@
Apply[Times,
Flatten[list //. {a_ /; Union@Flatten@a == {1, x} :> a,
{{{a_, c_}}, b___} :> {b, {{1}}, {{x}}},
{a : {{x} ..}, b___} :> {b, a},
{{b_, d___}, c___} :> {c, {d},
Append[Select[{d},
Length[#] <
2 || (#[[1]] != b[[1]] && #[[2]] !=
b[[2]]) &], {x}]}}, {3}], {2}]


以上是mathematica的code。這演算法特別適合rule based的寫法,寫出來很簡潔。使用方法:
rookPolynomial[{{{1,1},{1,2},{1,3},{2,1},{2,2}}}],數字是格子座標,視為矩陣的index。

西洋棋中的城堡可直行橫行,在任意形狀的棋盤上放置數個城堡,如果這些城堡不互相攻擊,則每個城堡必須彼此不在同行同列上。rook polynomial就是每種排列法的生成函數,特別適合用來解決有限制的排列問題(或稱瓶頸指派問題)。例如八個人排成一列,甲不排1,3,5位,乙不排2,3,4位之類的,或是更複雜的問題(例如不規則的棋盤形狀),這種問題在高中時通常是用排容原理來計算,但是限制位數一多,或是棋盤形狀非常不規則,那排容原理會顯的非常繁雜,這時rook polynomial就可派上用場了。

值得注意的是,如果沒有禁止的位置,棋盤形狀是正方形,那是有公式可計算的。手動計算rook polynomial時,可以做行列交換換得一個更容易計算的棋盤,上面的程式就沒那麼聰明,不過基於電腦運算的快速,還是會比手算來得快上許多。詳細情況可以查找離散數學的教科書,或是wiki,上面的程式可以幫助你檢驗答案。實作時,如果禁位少,也可利用直接對禁位作rook polynomial,再利用排容原理計算。

2010年10月15日 星期五

Mathematica研究:常用的rule 和 functional program,以Quick Sort 為例

一行實現quick sort演算法:
QuickSort[l_List] :=
l /. {x_, y__} :>
Join @@ QuickSort /@ {Select[{y}, # < x &], {x},
Select[{y}, # >= x &]}


/. :expr/.rules
applies a rule or list of rules in an attempt to transform each
subpart of an expression expr.

_ :_ or Blank[]
is a pattern object that can stand for any Mathematica expression.
x_ gives a name to _ as x
x:{pattern} gives a name to pattern as x


__
:__ (two _ characters) or BlankSequence[]
is a pattern object that can stand for any sequence of one or more
Mathematica expressions.

___ :___ (three _ characters) or BlankNullSequence[]
is a pattern object that can stand for any sequence of zero or more \
Mathematica expressions.

.. :p.. or Repeated[p]
is a pattern object which represents a sequence of one or more \
expressions, each matching p.

:> :lhs:>rhs or lhs:>rhs
represents a rule that transforms lhs to rhs, evaluating rhs only
after the rule is used.

@@ :Apply[f,expr]
or f@@expr replaces the head of expr by f.

/@ :Map[f,expr] or f/@expr
applies f to each element on the first level in expr.

& :Function[body]
or body& is a pure function. The formal parameters are # (or #1), #2, etc.

2010年6月8日 星期二

Google求職問題

某天在矽谷的某條高速公路上矗立了一個巨型看板,上面寫著
{the first 10-digit prime in consecutive digits of e}.com

有興趣的人解出了第一題之後,進到那網頁,有第二個問題:
f(1)=7182818284
f(2)=8182845904
f(3)=8747135266
f(4)=7427466391
f(5)=?

解出f(5)之後,解答後加上.com可以連到另一個網頁,是google的求才資訊。這是很久以前的事了(所以算出來以後不用試著去連那網頁,早拿掉了),不過我想還是很多人沒聽過。有興趣可以算算。我自己用mathematica算出來的解答如下

1. 7427466391
2. 5966290435

程式碼如下

StringDigitsE = StringDrop[ToString[N[E, 200]], {2}]
Select[Table[
ToExpression[StringTake[StringDigitsE, {i, i + 9}]], {i,
190}], PrimeQ]
Select[Table[
ToExpression[StringTake[StringDigitsE, {i, i + 9}]], {i,
190}], (Total[IntegerDigits[#]] == 49) &]


說明:第一個問題很直接,都是程式技巧的問題。第二個問題需要一點創意思考,要點是每個F(n)的值的每個數位相加總合都是49。當然可以硬湊出答案,不過那不會是出題者的本意。