Upgrade to Pro — share decks privately, control downloads, hide ads and more …

微積分

 微積分

Fa69ad98c55c859259ac3df21698f5fc?s=128

陳鍾誠

April 14, 2022
Tweet

More Decks by 陳鍾誠

Other Decks in Education

Transcript

  1. 授權聲明 本書最主要的內容來自 Unabridged Version of Sean's Applied Math Book ,該書作者

    Sean Mauch 慷慨的 釋出著作權 (No rights reserved),讓大家可以任意使用,以下是該書的網址: http://www.its.caltech.edu/~sean/book/unabridged.html 另外、本書也從維基百科擷取了不少圖片與文字。 為了遵守維基百科的授權規定,本書採用創作共用的「姓名標示、相同方式分享」的授權,請使用者 於修改使用時務必遵守此授權規定。 陳鍾誠 2013/3/19 於 金門大學 資訊工程系 2
  2. 序 我很喜歡用武俠小說中的「氣宗與劍宗」與學術中的「理論與實務」相對比。氣宗的人一開始就學習 一堆理論,直到內力充足以後才慢慢了解實務操作;而劍宗的人則是直接拿起劍就找人比試,在不了 解理論的情況下直接出招,一開始進步很快,但到後來就會發現內功不夠深厚,遇到高手時總要吃虧 的。 雖然我的求學過程比較像是氣宗的教育方式,但是最後寫出來的書卻往往像是劍宗的教材,或許這就 是一種內心矛盾的反射,因為理論念得多了,就發現自己在實務上一竅不通,所以寫出來之後往往從 實務出發,最後才回到理論進行印證。 在本書中,我們將採用「理論=>實務=>理論=>實務...」的循環,交替的說明原理與實務,我們會先給 大家看一大堆「圖片」、「影片」甚至是「程式」,然後再回過頭來講解原理,透過這種方式,希望

    大家都能達到「氣劍合一」的境界。 陳鍾誠 2012/9/19 於 金門大學 資訊工程系 3
  3. 內容目錄 第 0 章 數學基礎..................................................................................................................................................13 0.1.集合 (Set)...................................................................................................................................................13 0.1.1.聯集、交集、差集 (Union, Intersection

    and Difference)................................................................14 0.1.2.集合的代數 (Set and Algebra)..........................................................................................................19 0.2.代數 (Algebra)...........................................................................................................................................20 0.2.1.代數空間 (Algebraic Space)..............................................................................................................20 0.2.2.群 (Group)..........................................................................................................................................20 0.2.3.場 (Field)............................................................................................................................................20 0.3.函數 (Function).........................................................................................................................................23 0.3.1.函數的數學定義 (The Definition of Function).................................................................................24 0.3.2.單射(injective)、滿射(surjective)與雙射 (bijective)........................................................................26 0.3.3.反映射與多值函數 (Inverse and Multivalued Function)..................................................................28 0.4.數學符號的念法.......................................................................................................................................31 0.4.1.希臘符號的念法................................................................................................................................32 4
  4. 0.4.2.運算與標記的念法............................................................................................................................33 第 1 章 微積分簡介 (Introducton to Calculus).....................................................................................................36 1.1.微積分與電資領域 (Calculus

    and Computer)..........................................................................................36 1.1.1.離散與連續 (Discrete and Continuous)............................................................................................36 1.1.2.微積分與程式 (Calculus and Coding)..............................................................................................38 1.1.3.微積分與電路 (Calculus and Circuit)...............................................................................................39 1.2.微積分的歷史...........................................................................................................................................40 1.3.函數大觀園...............................................................................................................................................48 1.4.積分的概念...............................................................................................................................................59 1.4.1.單變數函數的積分 – 計算面積.......................................................................................................59 1.4.2.雙變數函數的積分 – 計算體積.......................................................................................................63 第 2 章 微分 (Differential Calculus) ....................................................................................................................64 2.1.微分的概念...............................................................................................................................................64 2.2.極限 (Limits).............................................................................................................................................69 2.2.1.函數的極限 (Limits of Function) .....................................................................................................69 2.2.2.左極限與右極限 (Left and Right Limits):.....................................................................................74 5
  5. 2.2.3.極限的性質........................................................................................................................................79 2.3.連續 (Continuous).....................................................................................................................................80 2.4.導數 (Derivative).......................................................................................................................................82 2.4.1.導數的定義........................................................................................................................................82 2.4.2.可導 (可微分)....................................................................................................................................84 2.4.3.病態函數............................................................................................................................................88 2.5.微分

    ..........................................................................................................................................................89 2.5.1.微分法則............................................................................................................................................89 2.5.2.微分的代數........................................................................................................................................92 2.5.3.微分的計算........................................................................................................................................94 2.5.4.微分公式的證明................................................................................................................................95 2.5.4.1.整次方的微分公式證明............................................................................................................95 2.5.4.2.常數乘法 c*f(x)的微分公式證明.............................................................................................96 2.5.4.3.f(x)*g(x) 的微分公式 之證明..................................................................................................98 2.5.4.4.鏈鎖規則 的證明......................................................................................................................99 2.5.4.5.sin(x) 的微分公式證明............................................................................................................100 6
  6. 2.5.4.6.自然指數函數的微分公式證明..............................................................................................104 2.5.5.鏈鎖規則的運用 (Chain Rule) .......................................................................................................105 2.6.均值定理 (Mean Value Theorems)..........................................................................................................107 2.7.羅必達法則

    (L’Hospital’s Rule)..............................................................................................................111 2.8.隱函數的微分 (Implicit Differentiation)................................................................................................119 2.9.極大值與極小值 (Maxima and Minima)................................................................................................121 2.10.實作:數值微分...................................................................................................................................124 2.11.習題.......................................................................................................................................................125 第 3 章 積分........................................................................................................................................................126 3.1.積分符號.................................................................................................................................................126 3.2.定積分 (Definite Integral).......................................................................................................................130 3.2.1.定積分的特性 (Properties)..............................................................................................................130 3.3.微積分基本定理.....................................................................................................................................132 3.4.不定積分 (Indefinite Integral).................................................................................................................135 3.4.1.不定積分的特性..............................................................................................................................138 3.4.2.積分值定理 (integral evaluation theorem)......................................................................................138 7
  7. 3.5.積分的技巧 (Techniques of Integration).................................................................................................141 3.5.1.變數代換 (Change of Variable).......................................................................................................141 3.5.2.部份積分 (Integration

    by parts).......................................................................................................146 3.5.3.部分分式 (Partial Fractions)............................................................................................................148 3.6.瑕積分 (Improper Integral).....................................................................................................................155 3.6.1.單邊瑕積分......................................................................................................................................156 3.6.2.無限大的情況..................................................................................................................................159 3.7.實作:數值積分.....................................................................................................................................162 3.8.練習.........................................................................................................................................................164 第 4 章 微分與函數逼近....................................................................................................................................169 4.1.函數逼近.................................................................................................................................................169 4.2.泰勒展開式.............................................................................................................................................170 4.3.尤拉數 e – 微積分的單位元素...............................................................................................................184 4.3.1.尤拉數 e 的性質..............................................................................................................................184 4.3.2.尤拉函數 – 微積分的單位元素....................................................................................................186 4.3.3.尤拉複函數 –e 與三角函數的關連................................................................................................190 8
  8. 4.4.傅立葉級數–以三角函數逼近 f(x)........................................................................................................193 第 5 章 積分與函數轉換....................................................................................................................................196 5.1.傅立葉轉換 (Fourier Transform)............................................................................................................196 5.1.1.傅立葉級數與轉換..........................................................................................................................196

    5.1.2.傅立葉轉換的直覺意義..................................................................................................................203 5.1.3.傅立葉轉換的幾種不同寫法..........................................................................................................211 5.1.4.轉換..................................................................................................................................................213 5.2.程式實作.................................................................................................................................................215 5.2.1.離散餘弦轉換 (DCT)......................................................................................................................215 5.2.2.慢速傅立葉轉換 (SFT)...................................................................................................................217 5.2.3.使用複數結構版本..........................................................................................................................220 5.2.4.不使用複數結構版本......................................................................................................................225 5.2.5.二維傅立葉轉換與 JPEG 影向壓縮..............................................................................................228 第 6 章 常微分方程式........................................................................................................................................231 6.1.簡介.........................................................................................................................................................231 6.2.分離變數法.............................................................................................................................................234 9
  9. 6.3.齊次常系數微分方程式.........................................................................................................................239 6.4.應用:電子電路分析.............................................................................................................................244 6.4.1.RC 電路 (一階)................................................................................................................................247 第 7 章 拉普拉斯轉換........................................................................................................................................251 7.1.拉氏轉換

    (Laplace Transform) 的定義..................................................................................................251 7.2.拉氏轉換的直覺意義.............................................................................................................................254 7.3.拉氏轉換存在的條件.............................................................................................................................259 7.4.拉氏變換的性質.....................................................................................................................................260 7.5.常見函數的拉氏轉換表.........................................................................................................................265 7.6.用拉氏轉換求解微分方程.....................................................................................................................276 7.7.Z 轉換 – 拉氏轉換的離散快速版..........................................................................................................281 第 8 章 多變數微分............................................................................................................................................285 8.1.多變數函數.............................................................................................................................................285 8.2.極限與連續.............................................................................................................................................285 8.3.偏導數.....................................................................................................................................................287 8.4.鏈鎖規則 (Chain Rule)............................................................................................................................292 10
  10. 8.5.Lagrange 乘子法.....................................................................................................................................293 第 9 章 多變數積分............................................................................................................................................300 9.1.雙重積分.................................................................................................................................................300 9.2.多重積分.................................................................................................................................................307 第 10

    章 向量微分..............................................................................................................................................308 10.1.向量.......................................................................................................................................................308 10.2.向量場...................................................................................................................................................315 10.3.向量函數的微分...................................................................................................................................321 10.3.1.純量函數........................................................................................................................................321 10.3.2.向量函數........................................................................................................................................321 10.3.3.向量函數的導數............................................................................................................................322 10.4.梯度 (nabla) 與拉普拉斯算子..............................................................................................................324 第 11 章 電磁學與向量微積分...........................................................................................................................327 11.1.向量場的線積分...................................................................................................................................327 11.2.電力線與磁力線...................................................................................................................................331 11.3.通量與散度...........................................................................................................................................335 11
  11. 11.3.1.散度的微分型定義........................................................................................................................343 11.4.環量與旋度...........................................................................................................................................346 11.4.1.旋度的微分型定義........................................................................................................................350 11.5.馬克斯威方程式...................................................................................................................................351 11.6.波動方程式...........................................................................................................................................359 附錄 A. 用電腦學數學- WolframAlpha 篇........................................................................................................367

    附錄 B. 繪製函數圖的程式...............................................................................................................................376 12
  12. 第0章 數學基礎1 0.1. 集合 (Set) 離散數學的基礎是「整數類」(integer) 的集合,而連續數學的基礎則是「實數類」(real number) 的集合, 因此要學習微積分我們得從「實數類」的集合開始,就讓我們先來看看何謂集合吧!

    集合是一種數學的群體,舉例而言,集合 {0, 1} 就包含了電腦中二進位系統的基本元素 – 0 與 1, 研究這個集合的數學領域稱為布林代數,布林代數是數位電路分析與設計的基礎。 在數學符號中,集合的外面通常用大括號 { … } 框住,像是 {0,1,2,3,4,5,6,7,8,9} 就是十進位系統的基 本符號元素,以下是一些常見的離散型集合。 • 空集合: • 整數集合: 1 古文小品:「無用之用、乃為大用」 – 莊子 13
  13. • 有理數集合: • 實數集合: • 複數集合: • 正數集合: (正整數)、 (正有理數)、

    (正實數)、 • 包含 0 的正數集合: • 開集合: • 閉集合: 離散數學的研究對象,通常以整數類的集合為主,像是 {0, 1}, {0, 1, 2, …, n}, 整數 Z 等等。而連續數 學的研究對象,則通常以實數類的集合為主,像是 R, C 等等。 0.1.1. 聯集、交集、差集 (Union, Intersection and Difference) 集合的基本運算有聯集 (Union)、交集 (Intersection)、差集 (Difference) 等,聯集是將兩者聯合起來, 14
  14. 交集則取共用的,而差集則是將前者與後者共同的部分去除,以下是集合運算的基本數學符號: • 聯集: • 交集: • 差集: 15

  15. 集合之間的運算可以用凡氏圖來解說,以下是來自維基百科的凡氏圖範例。 16

  16. 集合透過這些基本運算,集合可以形成的一個代數空間2,像是 R 就是一個實數加、減、乘、除運算的 代數空間 (Algebraic Space),因為「實數 (+-*/) 實數」仍然會是一個實數,所以實數就形成了加減乘除 的代數空間。 對整數而言,加法、減法、乘法的結果都是整數,所以對這些運算而言整數是其代數空間,但是對於

    除法而言,整數除以整數不見得還是整數,例如 3 / 2 就不是整數。因此,當我們討論除法的代數空間 時,就必須考慮將代數空間擴展到有理數的範圍,甚至是實數的範圍了。 對於集合而言,由於「集合與集合之間」的「聯集、交集、差集」結果仍然是集合,所以我們說「所 有的集合形成一個聯集、交集、差集的代數空間」。 對於代數空間中的運算,也就是代數運算(Algebraic Operation)而言,數學家們在意的是其代數特性,常 見的代數特性有「結合性、交換性」等,而代數空間中很重要的「單位元素」與「反元素」也是數學 家所在意的特性,以下我們就來看看集合的代數特性。 2 S 中任兩元素 a,b 經運算 X 後的結果可用 c = a X b 表示,如果這些運算結果 c 也都在 S 當中,則我們稱 S 為一個代數空 間。 17
  17. 0.1.2. 集合的代數 (Set and Algebra) • 單位元素 (identity element):空集合是「交集、差集」的單位元素,但不是「聯集」的單位元素。 ◦

    • 交換性 (commutative) :交集與聯集運算具有交換性 ◦ • 結合性 (associative):交集與聯集運算具有結合性 ◦ –所以可以直接寫成 ◦ –所以可以直接寫成 • 分配性 (distributive): ◦ 聯集對交集運算具有分配性: ◦ 交集對聯集運算具有分配性: 18
  18. 0.2. 代數 (Algebra) 0.2.1. 代數空間 (Algebraic Space) 如前所述,對於一個集合 S (例如整數)

    與某個運算 X (例如加法) 而言,如果兩個元素的運算結果 c = a X b 也在集合當中,那麼 S 就可以形成一個代數空間。這種讓 a X b 全數落入集合 S 當中的特性, 稱為封閉性。如果對集合 S 運算 X 而言具有封閉性,那麼 S 才能說是一個代數空間。 0.2.2. 群 (Group) 當運算 X 在集合 S 中具有「封閉性 (Closure)、結合性 (Associativity)、單位元素 (Identity element)、 反元素 (Inverse element)」等四項特性時,我們稱 (S, X) 形成一個群 (Group)。 如果運算 X 還具有交換性,那我們稱 (S,X) 形成一個交換群。 0.2.3. 場 (Field) 在同一個代數空間 S 當中,(S, O) 形成一個群,而且 (S, X) 也形成一個群,而且運算 O 與 X 之間具 有分配性的時候,我們說 (S, O, X) 形成一個場 (field, 或稱為「場」)。 19
  19. 讓我們將「場」以代數的數學形式寫出來,讀者應該能更清楚理解場的定義: (S, O) 是一個群 (S, X)是一個群 封閉性 結合性 (a O

    b) O c = a O (b O c) (a X b) X c = a X (b X c) 單位元素 a O o = o O a = a i X a = a X i = a 反元素 分配性 a X (b O c) = (a X b) O (a X c) 不知道您是否已經注意到了,以上關於「場」的定義好像認識卻又很陌生,感學有點難懂,因為實在 太抽象了。 但是這種抽象性正是數學家所想要的,因為他們不希望一個數學只能綁在某個特定的實體上,因而將 那些法則抽出來形成代數結構。事實上這種 (S, O, X) 這種「場」代數結構有一個很常見的實例,那就 20
  20. 是「實數空間中的加與乘」之代數 (R, *, +),讓我們將上述表格用 * 與 + 重寫一遍您就會覺得很熟悉 了。 (R,

    +) 是一個群 (R, *)是一個群 封閉性 結合性 (a + b) + c = a + (b + c) (a * b) * c = a * (b * c) 單位元素 a + 0 = 0 + a = a 1 * a = a * 1 = a 反元素 分配性 a * (b + c) = (a * b) + (a * c) 在較為抽象的層次上探討各種運算的特性,然後歸納出哪些特性 (公理) 可以推導出哪些定理,正是代 數學的基本研究方向,而純粹研究這種代數特性的數學就稱為「抽象代數」。 21
  21. 0.3. 函數 (Function) 函數可以分為「離散」與「連續」兩類,離散函數架構在「離散型」集合 ({0, 1} 或整數 Z) 之上,而 連續函數則架構在連續型集合

    (實數 R 或複數 C) 之上 以下是一些連續函數的範例,這些函數我們在國中數學時就曾經見過了。 • • • 離散型的函數或許有些人比較不常見,其表示方法通常是用遞迴或加總的方式表現的,以下是幾個離 散函數的範例。 • f(n) = f(n-1) + f(n-2) ; 其中 f(0)=f(1)=1 22
  22. • 0.3.1. 函數的數學定義 (The Definition of Function) 一般而言,我們所說的函數 (function) 通常是指單值函數

    (Single Value Function),也就是一個 f(x) 只 會對映到一個 y,不會有 f(x) = y , f(x) = z 且 的情況發生。 讓我們用較正式的數學語言對定義「函數」這個詞彙: 單值函數 (Single-Valued Functions, 又稱 Single-Valued Mapping) :單值函數是一種將定義域(domain) X 中的元素映射到對映域(codomain)3 Y 中的元素的對應方式,數學表示法如下。 或 如果對每個 X 當中的元素 x 都有一個 y=f(x) 的對應元素,則該函數稱為定義良好的 (well defined)。 3 請注意,對映域(codomain) 並非值域 (range),range 指的是 codomain 當中有被 f 映射到的那些值所成的集合。 23
  23. 當我們想表達定義域中某個元素 x 的函數值時,可以用下列表示法: 或 或 如果一個函數總是將定義域中的值應設到其自身 f(x) = x,那這個函數就稱為單位函數 (identity

    function)。 一個函數 的值域 (range)代表那些有被映射到的值所成的集合,如下所示: 值域 (range) 是對應域 (codomain) 的子集合。 如果我們想知道值域 Y 中的某一部分 Z 的來源範圍,可以將函數反映射回定義域,這個反應射的區域 就稱為「反映像」(Inverse Image)。 以下是從 R 映射到 R 的函數範例: 24
  24. • 多項式 • 自然指數: 以下是從 R 映射到 Z 的函數範例: •

    地板函數: • 天花板函數: 0.3.2. 單射(injective)、滿射(surjective)與雙射 (bijective) 在數學專用的英文術語當中,有幾個以 -jectives 結尾的詞彙都代表著函數映射的概念,包含 injective (單射), surjective (滿射), bijective (雙射),但意義相當不同,請務必仔細區別。 25
  25. 單射 injective 是指不同元素對應到的值也不同 ,滿射 surjective 是 指所有對映域的值都被映射到了,而雙射 bijective 則是指一對一對映,也就是既符合 injective

    又 符合 surjective。 26
  26. 0.3.3. 反映射與多值函數 (Inverse and Multivalued Function) 如果函數的一個值只對應到一個值,那稱為一對一函數 (one-to-one),有時函數的一個值會對應到多 個值,這種函數稱為一對多函數 (many-to-one)。如果多個值對應到一個值,這種函數稱為多對一函

    數 (one-to-many)。 如果 則可以用 代表其反映射。如果 f 是一對一對映函數,則反映射也會 是一對一對映函數。 如果 f 是一對一對映函數,則映射後再反映射的結果將會是單位函數 。也就是 27
  27. 。以下是反映射的一些範例。 映射函數 反映射函數 合成結果 4 4 但須注意的是 28

  28. 範例:sin(x) 是一個多對一函數,如下方左圖所示。而其反函數 arcsin(x) 則是一對多函數,如下方中 圖所示。 29

  29. 如果我們只取 y=arcsin(x) 中位於 之間的 y ,則該函數可以寫為字首大寫的 Arcsin(x),如上 方右圖所示。 0.4. 數學符號的念法

    我是個不會去認真細究的人,從大學到研究所的學習數學過程當中,對於數學符號總是靠印象來念, 結果常常是亂念一通。直到成為大學教師之後,透過 wikidot 學習了 Latex 的數學運算式寫法,才開始 認身想要弄清楚數學符號的念法,結果發現自己之前很多念法都是錯的。 數學從西方工業革命後開始展現出強大的力量,但這些數學的基礎往往是從希臘時代就開始建立的, 因此數學領域用了很多希臘字母來做為數學的抽象符號,以便與英文字母明顯的區分開來,所以要認 識數學符號之前,首先要先認識希臘字母的念法。 如果您有需要經常撰寫含有數學公式的論文或書籍,或者您是維基的編輯愛好者,那麼使用 Latex 將 會是一種快速的數學公式撰寫方法。當您開始用 Latex5 撰寫數學公式之後,自然而然的就會學會那些 數學符號的念法與寫法,本書的數學公式就是用 Latex 撰寫的6。 5 Tex 是資訊領域的大師 Knuth 花了九年時間發展出來的一套標記語言,透過 Latex 這種軟體可以將這種語言轉換成排板 良好的書籍或論文,很多英文的書籍與論文都是用 Latex 撰寫並排板的。 6 我們用 LibreOffice 中的 TexMaths 插件來撰寫數學式,筆者覺得這個方法比 LibreOffice 中的 Math 系統更加好用。 30
  30. 0.4.1. 希臘符號的念法 31

  31. 0.4.2. 運算與標記的念法 32

  32. 這些希臘字母的念法有英文版7、希臘版8與數學版9,說真的很難看出大家有一致的共識與念法 10,所 以我上網找了 YouTube 幫忙,請聽聽看以下版本的念法您應該就會清楚了。 • Greek Alphabet (標準版) –

    http://www.youtube.com/watch?v=0qgd11XPE0U • Greek Alphabet Pronounce – http://www.youtube.com/watch?v=vPEtRc05G7Q • Greek Alphabet – http://www.youtube.com/watch?v=1FyEWbwBarQ • Greek Alphabet (Rap 版) – http://www.youtube.com/watch?v=AvrDEegIo9g ◦ 從 28 秒開始聽,有文字與聲音快速對照。 • The (koine) Greek Alphabet Song – http://www.youtube.com/watch?v=3gaeIUsPJ-Y 7 http://en.wikipedia.org/wiki/English_pronunciation_of_Greek_letters 8 已故新約神學博士 Dr.Degner 【唸給你聽】,一口氣唸完全部 24 個字母。http://a2z.fhl.net/bible/greek/Gclass1.html 9 http://howtosaymathematics.files.wordpress.com/2011/08/greek-alphabet2.pdf 10 【Question】psi 和 xi 的發音一樣? – http://www.student.tw/forum862/thread106386.html 其中 Ξ ξ xi 與 Ψ ψ psi 兩者念起來其實都像 C 的音,為了區分兩者,採用古音的希臘念法, Ξ ξ 念成 k-si, Ψ ψ 念成 p- si。 33
  33. ◦ 我最愛,54 秒唱兩遍,還有空抬槓。 我發現每個版本念得都不太一樣,我不是希臘字母專家,所以念得不標準也請大家見諒了!另外,我 也 YouTube 找了數學符號的念法,請參考下列連結。 Common Mathematical Symbols

    : http://www.youtube.com/watch?v=usZM04s1uAs Math Symbols : http://www.youtube.com/watch?v=CG0Q0jo2v6k 34
  34. 第1章 微積分簡介 (Introducton to Calculus) 1.1. 微積分與電資領域 (Calculus and Computer)

    微積分在電子領域當中顯得相當重要,因為電感、電容、電晶體非線性元件等都需要用微積分才能描 述,但是在資訊領域則要在比較研究性強的主題 (像是人工智慧) 才會用到,一般的程式設計較少用到。 1.1.1. 離散與連續 (Discrete and Continuous) 如果從集合的角度看數學,大致上可以將數學分為連續與離散兩類,連續領域的數學以「微積分」為 基礎,然後向上銜接「線性代數」與「工程數學」等學科,這類的數學被用在「電子、電機、機械、 土木」等領域。 而離散領域的數學則通常以「離散數學」為起始點,然後銜接「布林邏輯、正規語言、計算理論、資 訊理論」等學科,這類的數學是「資訊科系」強調的重點,因為現今電腦本質上是數位的裝置,採用 離散的 0 與 1 作為基礎,所以這類的課與資訊領域有直接的關連性。 35
  35. 「機率統計」是難以用「連續」或「離散」的角度進行分類的,因為機率統計當中既有連續機率密度 函數,也有離散機率密度函數,連續與離散兩類的數學都會用到。機率統計的應用很廣,像是人工智 慧中常見的「隱馬可夫模型」(Hidden Markov Model) 、「貝氏網路」 (Bayesian Network)、「期望-最 大化演算法」(Expectation-Maximization Algorithm,

    EM)等方法,都是建築在機率統計理論上的。 傳統上、資訊工程系的數學是以離散數學為主,因為資訊領域處理的是數位資料,數位資料都可以表 示為只有 0 與 1 兩種位元值的組合,所以離散數學是資訊工程系主要關注的焦點。 但是在電子電機領域,由於探討的是連續的電流,因此必須以函數對電流進行描述,所以微積分的重 要性就凸顯了出來,因為微積分是探討連續函數的數學。 但電子資訊領域有時是互相跨越的,其中所用的數學也是如此。舉例而言,語音原本是連續的波形, 但是經過取樣之後就變成了離散的取樣點,這時如果用離散的角度去看語音,就不容易掌握其中的奧 秘。 如果採用連續的數學用函數去描述語音,然後再用三角函數 (sin, cos) 去逼近語音的波形,就會發現傅 立葉轉換是很好用的工具,可以用來將波形轉換為不同頻率的三角函數之組合。 當我們轉回離散領域去思考時,就會發現語音或影像壓縮可以用離散傅立葉轉換來進行,利用餘弦函 數的系數代替取樣點,可以有效的將影像檔大小壓縮到二十分之一左右,這種壓縮法就是 JPEG 檔案 36
  36. 格式所採用的方法。 本書的特色是使用程式人的觀點,盡可能的將微積分這門數學以程式人的角度去解讀,讓您能將數學 理論直接應用在程式撰寫上,並用微積分來理解電腦的世界。 1.1.2. 微積分與程式 (Calculus and Coding) 在一般性的程式領域,微積分是很少用上的,但是在某些特殊的領域,特別是「通訊」、「控制」與 「人工智慧」等領域,則是大量的使用了微積分這門數學。

    雖然「通訊領域」現在經常是以離散的方是透過程式來處理,但是訊號原本是連續的函數,因此當您 想撰寫程式去處理「電磁波」訊號時,其實是與「連續函數」在打交道。於是在「微積分」的進階課 程 – 「工程數學」中,有很多神奇方法被用在通訊領域的程式上,特別是與周期函數有關的那一部 分,像是「三角函數、複變函數、傅立葉轉換與拉普拉斯轉換」等等,這些數學都是從微積分延伸出 來的,只有徹底的瞭解了微積分,您才能理解這些數學的意義。 在「人工智慧」當中,研究的是如何讓電腦可以模擬人的智慧,像是模擬眼睛的「影像辨識」、模擬 耳朵的「語音辨識」、模擬身體手腳的「機器人控制」等領域,也都大量的使用到「微積分」的數學 37
  37. 工具,像是「類神經網路」就使用了「微分」的方式進行「反傳遞的學習動作」,而影像及語音等領 域由於原本就是訊號的處理,所以使用「傅立葉轉換」與「小波轉換」等方法也就理所當然了。 1.1.3. 微積分與電路 (Calculus and Circuit) 在電子電路的領域,微積分則是大量的被使用上,因為「電流」本身就是一個連續函數。 電路的基本元件,像是「電阻、電容、電感」等,都會造成電流的連續性變化。電阻是線性的元件, 而「電容、電感」則是非線性的元件。當我們想理解這些元件,特別是具有「電容、電感」這類非線

    性元件的電路時,就必須要用到「微分方程式」 這個工程數學裏面最重要的領域。 另外,在電磁學的領域,由於在電磁效應當中的「電」與「磁」可以說是密不可分的兩種「場」 (field),如何用數學描述這兩種「場」,並且理解電與磁之間的交互作用,則需要高深的微積分理論, 這部分會用到「向量微積分」領域當中的「線積分、內積、外積、張量、梯度、旋度、散度」等等數 學,想學會這個部份的理論也非得先學會微積分不可。 「千里之行,始於足下」,現在就讓我們開始進入微積分的數學領域吧! 38
  38. 1.2. 微積分的歷史 讓我們先透過維基百科的介紹,來大致瞭解一下微積分的歷史,以及對微積分學有重要貢獻的人物, 像是牛頓 (Newton)、萊布尼茲 (Leibniz)、Euler、Lagrange、Laplace、傅立葉 (Fourier) 等人與微積分 之間的關係吧! 39

  39. 40

  40. 41

  41. 42

  42. 43

  43. 44

  44. 45

  45. 46

  46. 1.3. 函數大觀園 學習微積分之前,先盡可能多看一些函數圖形是很有幫助的,以下圖形都是筆者用 附錄 B. 的程式所 繪製的,首先讓我們來看看一些直線函數,這些直線函數可以寫成 c x,其中的 c

    是個常數,稱為斜 率。 47
  47. 接著讓我們來看看 的這種多項式函數,在以下圖中,pow(x, k) 代表的就是 的函數,我們可以 看到 這些函數的曲線圖,您會發現當 k 越大時,函數的曲線就會成長越快。 48

  48. 接著讓我們來看看多項式函數 的函數圖,如以下左圖所示,右圖中所顯示的是 與其一次微分 、二次微分 、三次微分 的 圖形。 49

  49. 接著讓我們來看看不連續的函數,像是 ceil(x) 天花板函數 (數學符號為 ) 與地板函數 floor(x) (數 學符號為 )

    與函數 x 之間的關係,如以下左圖所示。 然後再看看成長很快的指數函數,如以上右圖中的 exp(x) (數學符號為 )、pow(2,x) (數學符號為 )、pow(3,x) (數學符號為 ),由於自然數 e 的值為 2.71828...,所以 的成長速度介於 與 之間。 50
  50. 接著再讓我們看看 這樣的函數,這種函數在 k 為奇數時會呈現 0 的兩邊上下不同方向的走法, 而在 k 為偶數時在 0

    的兩邊會呈現上下相同方向的走法。而且當函數越逼近 0 點,函數 的絕對 值就會越大。 51
  51. 接著再讓我們來看看三角函數的圖形,在下方左圖中是 cos(x) 的圖形,您可以看到 cos(x) 是對稱於 x=0 點的,也就是 ,這種函數稱為偶函數。 在上方右圖中同時繪出了 sin(x)

    與 cos(x) 的圖,而 sin(x) 的圖形則有 的特性, 這種函數稱為奇函數。您可以看到 sin(x) 與 cos(x) 兩者的圖形非常的相像,只要我們將圖形在 x 軸向 左或向右移動 就可以讓兩個函數重疊在一起。 52
  52. 接著讓我們看看三角函數經過調整振幅 (調幅、Amplifier Modulation, AM) 或調整頻率 (調頻、 Frequency Modulation, FM) 的情況。在下方左圖中是調幅的情況,調幅可用

    k*sin(x) 表示,您可看到 sin 的波的波長沒有變化,但是振幅卻變化了。震盪的幅度與 k 的大小有關,k 越大震盪幅度就越大, k 越小震盪幅度就越小。 上方右圖中顯示的是調頻的情況,可用 sin(k x) 表示,您可以看到當 k 越大時震盪頻率越大,震盪速 度就會越快,也就是震盪週期 (頻率的倒數) 變得越小了。 53
  53. 下方左圖中顯示的是 的圖形,右圖中顯示的是 的圖形,由於受到除以 x 的影響, 這兩個函數離原點越遠時,振幅就會越小。 (從以上兩個圖形當中您應該可以判斷出該函數是奇函數還是偶函數,請想想看!) 54

  54. 接著讓我們來看一組複雜一點的圖形,以下兩個圖形都是 sin(1/x) 的圖形,只是顯示的範圍與尺度不太 相同,左圖中的範圍是 x 位於 (-1, 1) 之間,而右圖則是 x

    在 -0.1 到 0.1 之間的情況,雖然我們在右 圖中用非常細微的尺度去觀察,但其波形仍然持續且密集的震盪,不論我們將尺度放到多麼的微小,0 點附近的震盪仍然會非常密集。 55
  55. 如果我們將 與 放在一起,會形成一個上下對稱的圖形,如下方左圖所示。但是如果我們在 加入 也放進來,就會發現形成了一個在原點附近密集震盪且縮小收斂的圖。 56

  56. 接著讓我們看看微分的圖型概念,在以下的 sin(x) 圖形中,我們使用 cut(sin, -5, 1) 繪出從 sin(-5) 到 sin(-4)

    的這條割線 (淺藍色),然後再用 cut(sin, -5, 0.001) 繪出從 sin(-5) 到 sin(-4.999) 的這條割線,由 於差距 0.001 已經非常的小,所以割線已經幾乎就是切線了。 在右邊的圖當中,我們將割線的兩點差距從 1, 0.3, 0.1, 一路縮小到 0.01,於是就會發現割線斜率的變 動情況,當兩點差距從 0.001 再往下縮小時,肉眼就會難以辨別兩條線斜率的差別了,這個斜率也就 幾乎就是 sin(x) 的微分在 -5 這點的值了。 57
  57. 1.4. 積分的概念 1.4.1. 單變數函數的積分 – 計算面積 以下是積分的基本定義,以及對應的圖形。 58

  58. 接著讓我們看看積分的幾種方法, 像是從垂直方向切分的「黎曼積分 法」 (Riemann Integration),以及 從水平方向切分的「黎曼-德布斯 積分法」等等,如右圖所示。 59

  59. 當我們使用黎曼積分,用長方形去逼近曲線面積時,長條形的寬度越窄,就會逼近得越好,而長條形 的高度,又可以採用「右端值、左端值、極大值、極小值」等四種,但這四種在長條形寬度趨近於零 的情況下,將會趨近於相同的「積分值」,也就是「曲線下的真正面積」。 60

  60. 61

  61. 1.4.2. 雙變數函數的積分 – 計算體積 當我們將微積分的自變數擴充為兩個 (通常用 x, y) 表示,此時函 數就可以用

    z=f(x,y) 表示,於是我們可以用以下符號代表 (a < y < b), (c<x<d) 這個區塊範圍內的函數體積,這種表達方法就稱為雙變 數函數的積分。 當然、我們也可以有更多的自變數,例如 n 個,這樣 就會變成「n 變數函數的積分」,於是就將積分擴充到 了高維空間的領域。 62 插圖 1: 體積分 -- 雙變數函數的 積分
  62. 第2章 微分 (Differential Calculus) 2.1. 微分的概念 一個函數 f 在某一點 x

    的微分 ,其實就是函數 f(x) 在該點切線的斜率。 f 函數在 x 點的微分是 ,這與 f 從 到 的割線斜率 還有一小段差距。 我們可以從右圖中看出這個情形。 但是當 越來越小的時候,這條割線的斜率 就會愈來愈接近切線斜率,我們可以將這個「愈 來愈小直到無窮小」的慨念寫成如下算式。 63
  63. 其中的 符號也有其他表示法,像 或 等都是等價的寫法,只是表達 方式不同而已。 以上的概念是針對任何一點 x 而言的,只要代入 x 的值,我們就可以計算出

    這個數字,例如 我們代入 3 到上式中,就可以得到 這個數字,這個數字代表 f(x) 在 x=3 這一個點上的切線斜 率,正式的名稱為「導數」(derivative)。 換句話說, 在 a 點的值 就是 f(x) 在 a 點的切線斜率,稱為 f(x) 在 a 點的導數。而 這個函數就稱為函數 的微分式。 64
  64. 由於微分概念實在太重要了,讓我們再用另一個寫法說明導數與微分的意義,以下圖形與公式代表了 f(x) 函數在 點的切線,也告訴了我們如何計算導數的方法。 65

  65. 讓我們再看看更多的切線圖形範例: 66

  66. 必須注意的是,函數 f(x) 的微分 在每一點上都有切線,而且切線的斜率通常會不斷的變化,也 就是若 ,則導數 與 通常會不相同。以下網址的圖形顯示了導數的動態慨念。 http://zh.wikipedia.org/wiki/File:Graph_of_sliding_derivative_line.gif 67

  67. 2.2. 極限 (Limits) 2.2.1. 函數的極限 (Limits of Function) 極限是整個微積分的重要核心概念,但這個慨念其實相當抽象,以致於很多古代的中外哲學家對極限 的思考型成了一些似是而非的「詭論」,像是中國道家的莊子

    11 、以及名家的惠施 12 ,就分別提出 了一些有趣的詭論,如果您沒學過微積分,還真的可能被這些詭論給搞得一頭霧水呢? 11 「一尺之捶、日取其半、萬世不竭」 – 莊子天下篇 12 「飛鳥之景,未嘗動也」– 惠施 68
  68. 另外、在西洋的哲學史上,也有很多關於極限的詭論,其中最著名的大概就是「芝諾悖論」了,像是 「阿基里斯永遠追不上烏龜」 13 ,以及「飛矢不動」 14 等詭論,都是由「芝諾」所提出來的著名詭 論,這些詭論乍聽之下可都很有道理呢? 13 芝諾悖論之「阿基里思與烏龜」 –

    動得最慢的物體不會被動得最快的物體追上。由於追趕者首先應該達到被追者出發之 點,此時被追者已經往前走了一段距離。因此被追者總是在追趕者前面。 來源:—亞里士多德, 物理學 VI:9, 239b15 Zeno's paradoxes:Achilles and the tortoise – In a race, the quickest runner can never overtake the slowest, since the pursuer must first reach the point whence the pursued started, so that the slower must always hold a lead. 14 芝諾問他的學生 「一支射出的箭是動的還是不動的?」 「那還用說,當然是動的。」 「確實是這樣,在每個人的眼裡它都是動的。可是,這支箭在每一個瞬間裡都有它的位置嗎?」 「有的,老師。」 「在這一瞬間裡,它佔據的空間和它的體積一樣嗎?」 「有確定的位置,又佔據著和自身體積一樣大小的空間。」 「那麼,在這一瞬間裡,這支箭是動的,還是不動的?」 「不動的,老師」 「這一瞬間是不動的,那麼其他瞬間呢?」 「也是不動的,老師」 「所以,射出去的箭是不動的?」 69
  69. 當您在學習微積分的時候,就可以看出數學家與哲學家的思考模式有何不同,數學家從「定義」與 「公理」出發,然後想辦法推論出這些「定義與公理」所能導出的「定理」。但是哲學家則不同,他 們從思考「宇宙人生的大道理」開始,然後用這些大道理檢視你在日常生活上所看見的事物是否為真, 這兩種手法導致了截然不同的學術體系。 希望上述的詭論,沒有把各位搞糊塗了,不過在「數學課」裏看看「哲學想法」,有時候其實蠻有趣 的,這樣做可以調和一下兩種思想的手法。 但是、既然「微積分」是門數學課,在看了這麼多哲學詭論之後,還是讓我們回到數學領域,看看數 學家對「極限」這個概念的定義吧。 70

  70. 極限的定義 如果在 x 趨近於 a 時 f(x) 可以「任意接近」 b ,那我們就說

    f(x) 趨近於 a 時的極限為 b,其數學符 號定義如下。 以上定義中的「任意接近」(arbitrarily close to) 的數學意義是:對於任何 ,都存在一個 使得在 的情況下 會滿足 ,如下圖所示。 所以如果您想證明 f(x) 在 x=a 的極限存在,只 要證明可以「任意接近」就行了。也就是找出滿 足 的 條件,並證明這個 條件存在就行了。 71
  71. 範例:請證明 解答:對於任何 而言,我們都可以找到一個 使得在 的情況之下,符合: 因此 證明完成。 72

  72. 範例:請證明 解答:對於任何 而言,我們都可以找到一個 使得在 的情況之下,符合: 因此 證明完成。 習題:請證明 。 2.2.2.

    左極限與右極限 (Left and Right Limits): 極限並不一定存在,例如有些函數會有不連續的斷點,則在斷點之處的極限就不存在。因為在斷點之 處的左極限 (left limits) 與右極限 (right limit) 並不相同。 73
  73. 例如下圖為天花板函數 的圖形,在整數點 (…,-2,-1,0,1,2,...) 時這些函數有斷點,例 如在 x=1 這個點上,其左極限為 ,而右極限 ,所以 ceil(x)

    函數在 x=1 這個點上的極限不存在。 另外,有時某些函數包含孤立的點,舉例而言,像是下列函數就只有在整數點為 1,其他部分都是 0。 74
  74. 這種函數的左極限 與右極限 都存在,但是這兩個極限值 卻都與 不同。 那麼,是否有哪些函數在某點的極限不存在,導致我們無法找到這樣的 去滿足 的條件呢? (當然是有的,請看下列範例) 75

  75. 範例:請證明 的極限不存在。 解答:假如 存在,我們就可以用某實數 b 代表 的極限。 但是 的情況是不可能成立的。 不論

    多麼小,只要 ,那麼 代表 ,也就是 。 因為 時 且 時 。 1 與 2 之間的距離為 1,不論 b 怎麼取,都不可能同時滿足 與 。 習題:請證明 的極限不存在。 76
  76. 範例:請證明 解答:對於任何 ,我們需要找出一個 使得在 的條件下滿足 的要求。首先讓我們看看對於特定 值所造成的偏離情形。 接著我們就可以選定一個 條件,使得 ,然後我們就可以找到滿足

    的 條件如下。 這樣的 必定是個正數,而且滿足 的條件,所以我們證明了 這個極限 是存在無誤。 77
  77. 2.2.3. 極限的性質 假如極限 與 都存在,則極限式具有下列數學性質。 性質 數學式 加法特性 乘法特性 除法特性

    if 78
  78. 2.3. 連續 (Continuous) 連續的定義: 如果函數 f(x) 在 x=c 這點的極值 ,則我們說函數

    f(x) 在 x=c 這 點是連續的。 連續函數:假如函數 f(x) 在定義域的每一點都是連續的,那麼 f(x) 稱為一個連續函數。 區段連續:假如 f(x) 在 中的任何一點都是連續的,且 , , 那麼我們說 f(x) 在閉區間 [a,b] 連續。 79
  79. 下圖中左端的函數為 在原點不存在,但是在其他點卻都存在且連續,這種情況稱為可移除 的不連續性 (removable discontinuity)。中間的圖形顯示函數 H(x) 在 0 這一點跳空了,這種情況稱為跳 躍不連續性

    (jump discontinuity)。右端的圖形顯示 1/x 這個函數在 0 這一點有無窮大的極值,這種情 況稱為無限不連續性 (infinite discontinuity)。 80
  80. 連續函數的特性:如果函數 f(x) 與 g(x) 兩者都在 c 點連續,那麼其組合將有以下特性。 性質 數學特性 加法特性

    在 c 點連續 乘法特性 在 c 點連續 除法特性 在 c 點連續,當 時 組合特性 若 f(x) 在 c 點連續,且 g(x) 在 m=f(c) 這點連續,那麼 在 c 點連續。 有界性 (boundedness) 若一個函數在閉區間 [a,b] 中連續,則該函數在區間[a,b] 當中必定是有界的 (bounded, 非無窮大) 2.4. 導數 (Derivative) 2.4.1. 導數的定義 如前所述,函數 f(x) 在 a 點的導數 乃是其切線的斜率,而這些斜率所形成的函數稱為函數 81
  81. f(x) 的導函數 ,又可以寫成 。 在上圖中,當 趨近於 0 時,極限式 可以寫成 更簡單的

    或者 ,這個函數 就稱為 f(x) 的導函數 (或稱微分式),讓我們將這些 數學整理成一個算式如下。 82
  82. 2.4.2. 可導 (可微分) 定義:(可微分) 若 f(x) 在 x=c 點可微分,則 f

    必須滿足下列條件。 定理: 設函數 f 在 x 可微分 ,則 f 在 x 點上連續。 說明: 在 y = f (x) 之圖形上,其中的點 (a, f (a)) 之切線為 (1 )非垂直:過 ( a, f (a)) 且斜率為 f'(a) 之直線,若 f'(a) 存在; (2 )垂直:直線 x = a,且導數為無限大。 以下是維基百科中對於函數可導條件的描述。 83
  83. 84

  84. 85

  85. 86

  86. 2.4.3. 病態函數 病態函數是一種處處連續卻又處處不可微分的函數,以下 是維基百科中的說明。 87

  87. 2.5. 微分 假使一個函數 f(x) 在 a 點的導數存在 (derivative exists),則我們說該函數在 a

    點可微分(differentiable) 。 請注意:可微分必定連續,但連續並不一定可微分 (例如:左右極限不相同的「角形函數」,就是連續 但不可微分的)。 2.5.1. 微分法則 函數類型 函數 導函數 說明與範例 常數 次方 88
  88. 自然指數 是微積分的單位函數 指數 自然對數 對數 三角函數的導數 正弦函數 sin 的微分會使其落後 成為

    =cos(x) 餘弦函數 cos 的微分會使其再度落後 成為 = -sin(x) 89
  89. 正切函數 用 去想就可以解出 餘切函數 用 去想就可以解出 正割函數 用 去想就可以解出 餘割函數

    用 去 想就可以解出 反三角函數的導數 反正弦函數 90
  90. 反餘弦函數 反正切函數 反餘切函數 反正割函數 反餘割函數 2.5.2. 微分的代數 導數性質 數學式 (萊布尼茲寫法)

    數學式 (柯西寫法) 91
  91. 常數乘法 加法規則 常數加乘 乘法規則 除法規則 指數規則 鏈鎖規則 92

  92. 2.5.3. 微分的計算 範例:對於函數 而言,請計算 f(x) 在 x = 1 上的導數。

    解答: 範例:我們也可以計算 在任何一點的導數 (微分式) 93
  93. 2.5.4. 微分公式的證明 2.5.4.1. 整次方的微分公式證明 定理: 證明: 在點 x 的導數可以根據定義計算如下 94

  94. 因此得證 。 2.5.4.2. 常數乘法 c*f(x)的微分公式證明 定理: 95

  95. 證明: 函數 在點 x 的導數可以根據定義計算如下 因此得證 。 96

  96. 2.5.4.3. f(x)*g(x) 的微分公式 之證明 證明:函數 在點 x 的導數可以根據定義計算如下 97

  97. 2.5.4.4. 鏈鎖規則 的證明 證明:(不嚴格,有疏漏的) (f, g 必須都是連續可微),令 ,則: 98

  98. 但是,由於當 在逼近 0 的過程中, 有可能已經是 0,此時會造 成除以 0 的問題,因此以上證明是不嚴格的。 為了避免除以

    0 的問題,我們可以定義下列函數以便避開除以零的問題: 詳細的證明請參看 Wikipedia:Chain_Rule - http://en.wikipedia.org/wiki/Chain_rule#First_proof 2.5.4.5. sin(x) 的微分公式證明 sin(x) 的微分:根據微分運算的定義,以及和角公式,我們可以推導證明出正弦函數的導函數如下 99
  99. 說明:最後的推論必須使用羅必達法則 (0/0 的情況),可得到 ,而 且 100

  100. 和角公式證明:在上一節中,我們為了要推導 sin(x) 的微分,使用了和角公式。和角公式是三角函數 中計算兩角相加後函數值的算法,可以用傳統歐氏幾何的方式證明,以下是和角公式的列表。 由於在三角函數的微分公式之推導需要用到和角公式,所以我們在此以 sin(a+b) =sin(a) cos(b) + cos(a)

    sin(b) 的證明為例,說明和角公式的證明方法。 101
  101. sin 的和角公式:sin(a+b) =sin(a) cos(b) + cos(a) sin(b) 證明:如圖所示。 102

  102. 2.5.4.6. 自然指數函數的微分公式證明 引理: (這個引理將不會在此進行證明,但您可以將 h 取得很小用計算機算算看) 定理: 證明: 103

  103. 2.5.5. 鏈鎖規則的運用 (Chain Rule) 根據鏈鎖規則,假如 y=f(u) 且 u = f(x),則

    服從下列法則,這在計算複合函數的時候很有用。 範例:計算 的微分式 證明:我們可以利用鏈鎖規則計算 的微分函數,只要使用 這個算式就行了。 範例:計算 的微分式 證明:我們可以利用鏈鎖規則計算 f(x) 的微分函數,首先讓 ,則可得下列算式。 104
  104. 範例:計算 的微分式 的反函數是 ,所以我們可以根據微分式 導出其反函數的微分 式如下 105

  105. 2.6. 均值定理 (Mean Value Theorems) 羅爾定理 (Rolle's Theorem) 如果 f(x)

    在 [a,b] 區間連續且可微,而且 f(a)=f(b)=0,那麼必然存在一個 c 介於 a, b 之間,使得 ,如下圖所示。 證明: 1. 假如 f(x) = 0 ,那羅爾定理成立。 2. 假如 f(x) 不是零函數,那在 [a,b] 區間必然有非零的極大或極小值存在,令 x = c 為此極值之 x 值。既然 x 是可微的,那麼 f'(c) 必然為 0。(否則就不是極值了) 106
  106. 107

  107. 均值定理 (Theorem of the Mean) 如果 f(x) 在 [a,b] 區間連續且在

    (a,b) 區間可微,那麼必然存在一個 c 介於 a, b 之間,使得 換句話說,至少有一個中間點 c 的斜率等於平均斜率,如右圖所示。 證明:考慮函數 , 該函數的 g(a) = g(b) = 0,所以滿足羅爾定理,也就是 [a,b] 區間存在一個點 c 使得 g'(c)=0。 若我們對 g(x) 取微分後,會得到 ,g(x) 在 c 點的導數為,所 以 。 108
  108. 均值定理擴展型 (Generalized Theorem of the Mean) 如果 f(x) 在 [a,b]

    區間連續且在 (a,b) 區間可微,且 ,那麼必然存在一個 c 介於 a, b 之間,使得 證明方法:與均值定理類似。 109
  109. 2.7. 羅必達法則 (L’Hospital’s Rule) 羅必達法則 (L’Hospital’s Rule) 當 均趨近於零 (或無限大)

    時,可以用羅必達法則求出不定型 (indeterminate) 或 的微分式。 羅必達法則: 使用條件:必須在 或 的情況下才能使用,且 f(x) 與 g(x) 在某個包含 a 的開區間中可微分 (a 除外),且 110
  110. 111

  111. 範例:求 解答:由於在零點時上下均趨近於零,所以可套用羅必達法則 (說明: 在零點有可移除的不連續性) 112

  112. 範例:求 解答: (說明:所以 在零點為有限不連續。) 113

  113. 範例:求 (說明:所以 在零點為無限不連續。) 114

  114. 範例:a, d 均不為零,求 解答: 115

  115. 範例:求 由於上式在 時為 0/0 的不定式,所以可用羅必達法則 由於還是 0/0 的不定式,所以再用一次羅必達法則 我們也可以在 與

    這兩種不定型上使用羅必達法則,只要改寫為 0/0 的除法形式就 行了。羅必達法則可以連續使用很多次,直到結果不為不定型為止。 116
  116. 範例:求 解答: 117

  117. 範例:求 解答: 如果我們將上式取 ln,則可得 , 當 時為 的不定型,可改寫為 0/0 的形

    式後使用羅必達法則 於是我們可以用 將兩邊的 ln 拿掉,得到結果 。 2.8. 隱函數的微分 (Implicit Differentiation) 有時一個變數不容易表示成另一個變數的函數,也就是 y 很難表示為 f(x),但這兩個變數之間存在某 種關係方程式 (例如 f(x,y)=0),此時就可以採用隱函數的微分法,以計算導函數。 範例:請根據隱等式 (implicit equation) 求出 解答:假如不使用隱函數微分,那麼我們可以將 y 表示為 x 的函數如下 118
  118. 然後套用鏈鎖法則求解,於是可以得到以下微分式 但是如果我們採用隱函數微分法,則可對整個隱等式 直接進行微分,可得到以 下算式。 於是我們可以得到下列結果 然後將 y 代入,得到 119

  119. 2.9. 極大值與極小值 (Maxima and Minima) 由於導數 f'(x) 代表的是斜率,所以當導數 f'(x) >

    0 時,函數處於上升狀態 (increasing),而 f'(x) < 0 時, 函數處於下降狀態 (decreasing),而當函數 f'(x) = 0 時,我們說函數 f 在 x 點上處於穩定狀態 (stationary) 。 因此在函數 時,很可能會有相對極大值 (relative maxima) 或者相對極小值 (relative minima) 的情況。但必須注意的是,並非所有穩定狀態的點都是相對極大或相對極小值。 120
  120. 例如下圖中的 在 x=0 點時有極小值, 在 x=0 點時有極大值,但 在 x=0 點時雖然微

    分 ,但是卻是一種水平暫態,並非極大或極小值。 121
  121. 而且並非所有的極大值或極小值都會發生在 的點上,例如某些「角」是不可微分的點, 但卻是極大極小值之所在。 我們可以用一階導數 來測試極點的特性,如果 且 1. 在經過 a 時從負轉正,那就有相對極小值。

    2. 在經過 a 時從正轉負,那就有相對極大值。 3. 在經過 a 時沒有變符號,那就不是極值點。 我們也可以進一步二階導數 來測試極點的特性,如果 且 1. 時為凹向下,有相對極大值。 2. 時為凹向上,有相對極小值。 3. 時測試失效,無法判定是否有極值。 122
  122. 2.10. 實作:數值微分 程式:diff.c 執行結果 #include <stdio.h> #include <math.h> #define dx

    0.0001 typedef double (*F1)(double); // 數值微分的主要函數 double df(F1 f, double x) { double dy = f(x+dx)-f(x); return dy/dx; } // 顯示函數在點 x 的值 f(x) 與微分值 f'(x) void showDiff(F1 f, char *fname, double x) { printf("===== f(x)=%s ======\n", fname); printf("f(%f) = %f\n", x, f(x)); D:\code>gcc diff.c -o diff D:\code>diff ===== f(x)=sin(x) ====== f(1.047198) = 0.866025 f'(1.047198) = 0.499957 123
  123. printf("f'(%f) = %f\n", x, df(f, x)); } int main() {

    showDiff(sin, "sin(x)", M_PI/3); } 2.11. 習題 1. 請問 的極限存在嗎? 2. 請計算 的導函數? 3. 請計算 的導函數? 4. 請計算 的導函數? 124
  124. 第3章 積分 3.1. 積分符號 當我們想計算一個函數 f(x) 與 x 軸之間所圍出的面積時,可以採用逼近的方法, 如右圖所示。如果我們用長條圖的面積加總代表面積,那麼將會有一些誤差,但

    是當們將長條圖的每一條寬度變得很窄的時候,整個長條圖的面積總合就會非常 接近函數 f(x) 所圍出的面積,這種計算面積的方法稱為黎曼積分法,採用的是以 下的黎曼和序列,以計算 f(x) 在 a 到 b 範圍間圍出的面積。 當 [a,b] 之間的分割變得越細之時,黎曼和 就會越接近曲線 f(x) 在 [a,b] 區 125
  125. 間的面積,當我們讓 [a,b] 之間分割數趨近於無限大 ( )、且每個分割長度都趨近於無限小時 ( ),那麼這個梨曼和將會收斂到某個極限,這個極限就被稱為 f(x) 在 [a,b]

    區間的積分值, 也就是其面積大小,這時整個級數可以撰寫如下。。 這種上下限都確定的積分方式就稱為定積分 (definite integral)。 數值積分 在黎曼和中沒有規定每個 都要一樣,這樣的定義方式雖然比較彈性,但卻不容易寫為程式, 如果我們規定所有 都一樣是 ,於是就可以將黎曼和的極限改寫為下列算式。 126
  126. 如此我們只要將 設得很小 (例如:0.0001),那麼就能透過加總的方法用程式計算出積分,這種 積分方法稱為數值積分。(在 3.7 當中我們將會實作此一程式) 127

  127. 積分符號 右圖的積分符號是萊布尼 茲發明的,這是目前最常 被使用的積分表達式。 萊布尼茲同時也發明了微 分符號 dy/dx ,萊布尼茲 的微積分符號可以比較恰 當的反應微積分的意義,

    卻又不會太過複雜,熟悉 這些符號對學習微積分有 相當大的好處。 128
  128. 3.2. 定積分 (Definite Integral) 定積分 若 為閉區間 的一個分割,如果 代表所有分割中長度最大者,也就 是

    則函數 f(x) 在 [a,b] 區間的定積分定義如下: 3.2.1. 定積分的特性 (Properties) 特性 數學式 129
  129. 線性 可加性 相反性 零積分 有界性 令 且 則 均值定理 存在一個

    滿足 130
  130. 或者也可以寫為存在一個 滿足 3.3. 微積分基本定理 微積分基本定理 假如我們讓定積分的上界 b 成為一個變數,那麼積分函數 F(x) 可以寫為如下的積分式:

    那麼 F'(x) 將會是 f(x),如下所示,這個定理稱為微積分基本定理,代表了微分與積分互為反運算 (非常重要)。 131
  131. 證明: 從上述的微積分基本定理我們知道,微分與積分互為反運算。假如我們用 D 代表微分運算,然後用 I 代表積分運算,那麼 ,也就是 。 132

  132. 事實上,當我們將一個函數 f 進行「反微分」的 運算時,會得到很多可能的函數 (例如 F1(x) , F2(x) , …..),但是這些

    F(x) 之間其實最多只會差距一個常數。 舉例而言,我們知道 的微分是 ,也就是 ,但事實上 , …. 全部都是 ,所以當我們用 I(f) 代表函數 f(x) 的微分反運算時,可 能會有很多的 F(x) 都滿足這個反微分的條件,而且這些 F(x) 之間最多只會差一個常數 c。 那麼,這些 F(x) 之間有甚麼關係呢?而 c 又代表甚麼意義呢?讓我們再仔細看一下這種上界為變數 x 的積分符號 假如我們將下標為 a 上標為 x 的積分式寫為 ,那麼那麼我們就可以用 代表從 0 開始積分的結果,用 代表從 3 開始積分的結果。 事實上,不論我們是從哪個 a 點開始積分,積分式 之間都只會差一個常數,所以如果我們不 133
  133. 去規定下界 a,然後固定用變數 x 代表上界,那麼就可以直接用 F(x) 代表 f(x) 的積分,於是可以寫 成以下形式。 這種不固定上下標的積分式寫法就稱為不定積分,代表了微分運算的反函數,也就是不定積分運算。

    3.4. 不定積分 (Indefinite Integral) 定義:不定積分 令 F(x) 為 f(x) 的反導函數,則 f(x) 的不定積分定義為 F(x),其中的 C 為任意常數 134
  134. 範例:求 解答:已知 ,根據微分的線性特性可得 ,所以可得 的不定積分為 。 範例:求 135

  135. 解答:已知 ,所以可得 。 136

  136. 3.4.1. 不定積分的特性 特性 數學式 常數乘法 函數相加 線性組合 3.4.2. 積分值定理 (integral

    evaluation theorem) 如果我們將上下限給定義出來,那麼在 F(b) – F(a) 的減法過程當中,那個常數 c 就會自動被消去了, 於是不管我們取哪一個 F,其 F(b) – F(a) 的值都會是固定的,所以我們可以利用這個特性去計算積分 值,這就是微積分基本定理的第二形式,稱為求積分值定理。 137
  137. 求積分值定理 (integral evaluation theorem) 若 F 為 f 在 [a,b]

    間的任意反導函數,則 說明:由於 F 是 f 的反導函數,代表 ,所以 ,如 果我們將 b= a 代入,那麼會得到下列算式 138
  138. 於是我們知道 ,也就是 。 範例:求 解答: 範例:求 解答: 139

  139. 3.5. 積分的技巧 (Techniques of Integration) 3.5.1. 變數代換 (Change of Variable)

    g(x) 的微分式移項一下可得 d g = g'(x) dx,所以我們可能會猜想當 u=g(x) 時,下列積分式是否成立: 這個猜想是正確的,我們可以用微分鏈鎖法則去證明以上定理。 由於 u=g(x) 是 x 的函數,因此根據微分鏈鎖法則可得 或者用運算的概念可以寫成以下運算子 140
  140. 證明:在 這個待證明的等式中,我們分別對兩邊各取導數。 左邊的導數為 右邊的導數為 左右兩邊的微分式都等於 f(u),所以左右兩邊的定積分相同。 141

  141. 範例:求 的不定積分 解答:令 ,則 142

  142. 範例:求 的不定積分 解答:首先觀察到 ,接著令 ,則 。 根據微分鏈鎖律與變數代換法則,令 ,則 ,所以若 ,則

    所以 故 143
  143. 範例:求定積分 令 , ,則可得到下列運算結果: 144

  144. 3.5.2. 部份積分 (Integration by parts) 部分積分公式 完整公式: 簡寫公式: 證明: 145

  145. 範例:求 如果我們選擇 ,那麼根據部分積分法則可正確求得結果。 但是如果我們選用錯誤,讓 ,那麼根據部分積分法則會得到下列結果: 146

  146. 這樣只會讓積分越來越複雜,無法得到正確的結果。 所以選用時必須有技巧,其技巧為:1. 選擇讓 u' 比 u 簡單方案。 2. 選擇 dv

    在計算積分 v 時不會變 複雜的。 3.5.3. 部分分式 (Partial Fractions) 部分分式:對於如 的函數除法形式而言,可以改寫成以下形式: 其中 為常數,如下算式所示 147
  147. (Why? 原理是根據泰勒展開式在點 的值所展開的對應結果) 一但改寫為部分分式之後,那積分就變得容易很多了。 範例:求 令 ,則 可計算如下 148

  148. 所以我們可以得到 。 接著計算其積分結果,就會變得很容易了。 149

  149. 範例:求 先求 的展開式,如 所示,其係數為: 150

  150. 於是我們得到 ,接著計算積分式 得到解答。 151

  151. 部分分式 (共軛複數版) : 假如有理函數的除法有如 的形式,那麼同樣可 以採用部分分式的作法,展開如下: 152

  152. 範例:求 的展開式為 ,其中的係數如下: 所以我們可以得到以下等式 接著計算積分式 153

  153. 3.6. 瑕積分 (Improper Integral) 瑕積分 假如 f(x) 的積分範圍中有不連續的斷點,這種積分稱為瑕積分 (有瑕疵的積分) 假如

    f(x) 在 [a,b] 區間中,除了 c 點之外均連續,那麼就可以利用以下定理計算其積分。 154
  154. 3.6.1. 單邊瑕積分 範例:求 在 [0,1] 區間的積分 解答:由於 ln 在 0

    點不存在 (負無窮大),因此我們可以利用瑕積分搭配羅必達法則進行計算: 155
  155. 範例:求 在 [0,1] 之間的積分式 156

  156. 如果 a < 0 則在 0 點會有不連續的情況,首先我門假設 上述極限只在 a >

    -1 時存在。接著考慮 a = -1 的情況 上述極限不存在,所以我們可以得到: 157
  157. 3.6.2. 無限大的情況 如果積分的範圍是單邊無限大,例如 ,那麼我們可以將積分改為下列極限寫法以進行計算: 如果積分的範圍是雙邊無限大 ,那麼可以改寫為下列極限式進行計算: 158

  158. 範例:求 解答: 159

  159. 範例:求 首先考慮 的情況 當 時上述極限存在。 接著考慮 a = -1 的情況:

    160
  160. 上述極限不存在。所以我們得到下列結果: 3.7. 實作:數值積分 編譯執行結果 D:\code>gcc integral.c -o integral D:\code>integral ============

    f(x)=sin(x) ========= f(0.785398)=0.707107 ; f(1.570796)=1.000000 integral(f, 0.785398, 1.570796) = 0.707094 程式:integral.c 161
  161. #include <stdio.h> #include <math.h> #define dx 0.0001 typedef double (*F1)(double);

    // 數值積分的主要函數 double intergal(F1 f, double a, double b) { double sum=0.0; double x; for (x = a; x <=b; x+=dx) { sum += f(x)*dx; } return sum; } // 顯示 f(x) 從 a 到 b 的積分結果 void showIntegral(F1 f, char *fname, double a, double b) { printf("============ f(x)=%s =========\n", fname); printf("f(%f)=%f ; f(%f)=%f\n", a, f(a), b, f(b)); 162
  162. printf("integral(f,%f,%f)=%f\n", a, b, intergal(f,a,b)); } int main() { showIntegral(sin, "sin(x)",

    M_PI/4.0, M_PI/2.0); } 3.8. 練習 練習 1:求不定積分 解答:令 2x+3 = u,根據變數代換公式 ,可推論如下: 163
  163. 所以可得不定積分式的結果 。 練習 2:求不定積分 解答:令 ,根據變數代換公式 可推論如下: 164

  164. 所以可得不定積分式的結果 練習 3:請根據積分定義 證明 。 (其中 且 ) 解答: 165

  165. 練習 4 : 求不定積分 解答:令 ,則 ,如此根據部分積分可得: 166

  166. 練習 5 : 求不定積分 解答: 167

  167. 第4章 微分與函數逼近 微積分概念中的微分,具有許多神奇的應用,其中基於多項式不斷微分概念的泰勒級數,更成為函數 逼近論的基礎,函數逼近方法中最重要的傅立葉轉換,更成為影像處理的神奇工具,本章將說明微積 分、泰勒級數與透過微分逼近函數的概念。 4.1. 函數逼近 對於一個連續函數 f(x),如果我們已經知道 f(3)

    的值,但是卻想估計 f 在 3 附近的值 (例如 f(3.01)=?),那麼我們有該用甚麼辦法估計呢? 一個簡單的辦法是利用 f(x) 的連續性,既然 3 與 3.01 差不多,那麼 f(3) 與 f(3.01) 應該也不會差太多, 所以我們就直接認為 f(3.01) 的值就是 f(3)。 這種方法雖然看來可以,但是如果我們想估計 f(3.02), f(3.03), …. 甚至是 f(3.1) 呢?這樣的方法還夠好 嗎?有沒有更好的方法呢? 168
  168. 有的,因為我們現在已經學會了微分,所以我們知道 f 函數在 3 這點的斜率 ,所以我們可以利 用斜率進行 f 函數在 x

    點附近的估計,其估計方法如下: 這樣,我們就可以用 來進行估計了,這個估計感覺比直接用 f(3) 好。 既然我們可以用一次微分 來估計,那麼為何不能用二次微分 來估計呢?那三次微分 呢? 如果我們一直用到 n 次微分,然後讓 n 趨近無窮大,那會如何呢?這樣我們是不是可以完全重建 f(x) 函數,只要我們知道其中一個點就可以了呢? 4.2. 泰勒展開式 以上的想法其實就是泰勒展開式的由來,讓我們先來看看泰勒展開式長得如何? 169
  169. 泰勒展開式 為何泰勒展開式要長成上面那個樣子呢?這得讓我們從多項式函數在零點的連續微分開始說起。 連續函數通常可以不斷的進行微分,因此、就可以用多項式來逼近該函數,其背後的想法是: 『如果我想用一個多項式來逼近函數,應該如何做呢?』 關於這個問題、如果我們直接將函數表示成多項式,可改寫如下: 170

  170. 然而、這些 c0, c1, ... 等係數,到底應該是多少呢?關於這個問題,必需使用函數逼近法,所謂的函數 逼近法,就是利用微分的概念,對於一個指定函數 f(x),在某特定點附近不斷取微分的方法。 根據上式不斷對 f(x) 進行微分,可以導出下列算式:

    171
  171. 於是、根據上述最後一個通用算式,若在 x 趨近於 0 時,可捨棄具有 x 的項目(因為 x 非常接近 0,

    所以 都很小、捨棄一點點無所謂啦),於是我們就發現下列關係: 接著、我們就可以將這些係數 套回 f(x) 的多項式表示法,得到下列算式 這就是所謂的泰勒級數,又稱泰勒展開式 (請注意,通常我們稱泰勒展開式是在 x=a 點的微分式,上 述公式乃是取 x=0 附近的微分式,這種在零點的泰勒展開式有個特殊的名稱叫麥克羅林級數 Maclaurin Seires)。 上述的論述是針對函數 f(x) 在接近 0 的地方進行逼近的結果,對於在接近 a 的地方,泰勒級數將修改 172
  172. 如下15: 如此、我們可以在任一點的附近,透過上式計算函數的逼近值。 而且、微分裏的均值定理,也有泰勒展開式版本的,稱為泰勒均值定理。 泰勒均值定理:若 f 在 (a,b) 區間上連續且可微,那麼存在一個 使得下式成立: 泰勒均值定理給了我們逼近函數的一個重要線索。

    接著,讓我們來看一些泰勒展開式的範例吧!這會讓我們更了解泰勒級數在函數逼近上的效果與限制。 15 泰勒展開式要能夠逼近函數 f(x),則 f(x) 必須滿足兩個條件,這兩個條件是 f(x) 必須是連續函數,而且 f(x) 可以微分 (在任何一點上),也就是 f(x) 必須是連續且可微分的函數。 173
  173. 範例:請寫出 在 0 點的泰勒展開式,並畫出逼近的情況 解答:由於 ,所以 , ,..., ,因此 在

    0 點的泰勒展開式如下: 讓我們來看看前幾項的逼近狀況: 請注意當項次越多時,逼近的程度會越好。(只限於附近沒有離太遠之處) 174
  174. 範例:請寫出 在 0 點的泰勒展開式,並畫出逼近的情況 解答:函數 cos(x) 的連續微分式如下所示: 我們可以觀察到 cos(x) 的微分式有下列規則:

    由於 cos(0) = 1,sin(0) = 0,所以奇數項在 x=0 點時會消失,只留下偶數項,所以得到泰勒展開式如下: 175
  175. 以下是泰勒展開式前幾項的逼近情況,我們可以看到項次越多圖形就越像: 176

  176. 如果我們用泰勒均值定理取到第 20 項,那麼可得下列算式: 由於 ,所以如果我們取到第 20 項的剩餘項 ,此剩餘 項在 x<6

    時都很小,幾乎可以忽略也不會影響線型。(但是當 x>7 時會開始暴增,此時就無法忽略不 計了) 177
  177. 範例:請寫出 在 x=1 時的泰勒展開式,並畫出逼近的情況 解答:ln(x) 的連續微分式如下: 所以 ln(x) 在 x=1

    的連續導數為: 178
  178. 根據泰勒均值定理我們可以寫出下列逼近式 下圖是分別取 2, 4, 10, 50 項逼近式的結果: 179

  179. 4.3. 尤拉數 e – 微積分的單位元素 尤拉數 e 是數學中,與圓周率幾乎同樣重要的一個數字,然而、尤拉數卻並沒有像圓周率這樣清楚的 直覺意義,而且其用途與表現非常多樣化,這使得一般學生無法掌握到尤拉數的意義,本小節將列出 尤拉數

    e 的幾種不同表示法,並說明其這些表示法之間的關係,以使讀者了解尤拉數 e 的數學價值。 4.3.1. 尤拉數 e 的性質 尤拉數 e 是一個很難掌握的數字,但卻應用很廣,其表現出來的形式大致有以下幾種: 尤拉數 公式 說明 定義 尤拉數是一種逼近值 特性 1/x 從 1 到 e 的積分為 1 180
  180. 泰勒級數 尤拉數的泰勒級數非常簡單 微分 尤拉函數是微分運算的單位元素 積分 尤拉函數是積分運算的單位元素 4.3.2. 尤拉函數 – 微積分的單位元素

    定理: 說明: 尤拉函數 是微分運算的單位元素,也就是該函素的微分就是他本身。(這種特性有點像線性代數 181
  181. 當中的特徵值 ) 證明: 根據上表中尤拉數的定義 ,只要將 n 改寫為 ,就可以得到下列代換式 接著將兩邊都取 次方的極限運算,得到

    稍微移項調整一下,得到下列算式 182
  182. 因此 183

  183. 證明完畢,我們證明了 ,也就是尤拉函數是微分的單位運算。 由於尤拉函數 是微分的單位運算,所以 不管微分多少次,結果都是 ,如下所示。 所以 的泰勒級數雖然有無窮多項,但卻非常簡單,以下是 的泰勒展開式。 184

  184. 所以如果要用無窮級數表示 e,那只要用 x=1 代入上式就可以得到下列結果。 4.3.3. 尤拉複函數 –e 與三角函數的關連 傅立葉級數其實就是一種泰勒級數,是尤拉數 e

    的虛數次方 的泰勒級數,天啊! 又有 e 又有虛數 i,怎麼這麼抽象 ! 姑且不論 的抽象程度,先讓我們來看看 進行連續微分後的結果。 185
  185. (Equation 4.1) 您可以發現 連續微分的結果,基本上是重複著 這樣的循環,這個 觀察如果對應到複數的極座標表示法,您就可以發現原來虛數 的效果是為了讓微分運算陷入循環, 就好像繞圈圈一般的繞個不停。 每當我們微分一次,由於多出了一個 i

    的乘數,於是在極座標上就表現為旋轉 90 度 ( )的效果, 於是微分運算對函數而言其實與旋轉運算掛上了勾,而旋轉運算不就是要用三角函數的 sin 與 cos 來 描述的那種東西嗎? 186
  186. 於是 與 之間就發生了某種連結關係,其中的關係竟然是透過 sin 與 cos 達成的旋轉效果,這就 是數學厲害的地方了,實數成立後就想辦法證明看看虛數可不可以用,深入探討之後就會發現 竟 然可以表達為三角函數中的

    sin(x), cos(x) 的組合,這真是一個神奇的定理16。 尤拉公式 (Euler's Formula) 證明:(尤拉公式 ) 16 虛數是在極座標當中是很有意思的,實數 1 就好像一個人,而虛數 i 就好像是他的幽靈一般,一但 1 認識了 i,就好像 一個人通靈了之後可以自由穿梭在陰陽兩界一樣,但是大部分的時候這個人是有一部分在陰間一部分在陽間 ,條件是陰間與陽間的兩部分的總面積 (平方和) 永遠都為 1 ,這也很合理,因為通靈的人不是活在真實的世界,而是一個沒有質量的世界,所以 只有面積沒有體積,你所看到的一切都是表象而已。 187
  187. 若我們對函數 取泰勒展開式,則將會得到下列函數: 天啊、所有的 與 的符號通通都不見了,只剩奇數次方中的負號與 i 還存在,好簡潔的公 式。 更神奇的是、若我們將 sin(x)

    與 cos(x) 的泰勒級數寫出來,就會發現下列泰勒展開式: 如果您認真檢查以上三個算式,並且仔細比較,就會發現以下公式被證明完畢了。 188
  188. 這樣的結果令人驚訝的原因是,原本不相關的東西竟然透過泰勒級數連結起來了,數學果真厲害。 4.4. 傅立葉級數–以三角函數逼近 f(x) 假設我們希望用三角函數 sin(nx) 與 cos(nx) 逼近一個函數 f(x),我們可以仿照先前在推導多項式的泰

    勒級數時的做法,先將 f(x) 寫成如下的算式: (Equation 4.2) 由於 這個定理,我們可將各種週期的三角函數 cos(nx) 與 sin(n x) 轉 為自然指數如下: 189
  189. 因此、若我們允許系數 包含虛數,則我們可將 f(x) 寫成如下的自然指數 (其實本質上還是 cos(n x) 與 sin(n x)

    的組合,只是用 將兩者合體,這樣寫起來就更短了)。 (Equation 4.3) (Equation 4.3) 被稱為傅立葉級數,其實就是將函數分解為三角函數 sin 與 cos 總合的一種函數逼近法 (如 (Equation 4.2) 所示)。 其中 與 的關係如下: 190
  190. 到目前為止,我們已經將傅立葉轉換之所以可以用來逼近函數的數學公式說明清楚了,傅立葉轉換就 是用來逼近 f(x) 函數的 sin(nx), cos(nx) 項的係數,因此、只要算出這些係數,就可以重新組合出 f(x)。 那麼,傅立葉級數的系數 到底是甚麼東西呢?這個說來話又長了,且讓我們先賣個關子,讓我們

    將這個主題移到下一章討論傅立葉轉換的部分再來解說。 191
  191. 第5章 積分與函數轉換 5.1. 傅立葉轉換 (Fourier Transform) 延續前一章的主題,且讓我們先回顧一下傅立葉級數,然後在讓我們再進一步探討傅立葉轉換,這個 轉換可以用來計算出傅立葉級數的係數。 5.1.1. 傅立葉級數與轉換

    回顧一下上一章有關傅立葉級數的定義方法,乃是用三角函數 sin(nx) 與 cos(nx) 逼近一個函數 f(x), 然後三角函數又可以透過虛數 i 掛勾到 上頭 ( ),於是我們可以 將傅立葉級數連寫成下列形式。 192
  192. (Equation 5.1) 先讓我們看看上式的最後一個總合,也就是 這一部分,不知您是否覺得這部份有點像 是在做積分,而且是以 為單位的黎曼積分,下圖是來自維基百科的黎曼積分示意圖。 193

  193. 如果我們真的將 改成積分,那麼我們將得到 ,此時 n 不再是一個 整數,而是實數了,所以我們將 改寫為實函數 F(n),於是就得到了 這個 積分式。如果我們再將

    n 的範圍從正數延伸到整個實數空間 (包含負數),那就可以再度將積分式改寫 為 ,這個積分是被稱為逆向傅立葉轉換 (或稱傅立葉反轉換),因為他將函數 f(x) 轉換到其傅立葉對偶函數 F(n) 上。 如果我們將這個算式套回 (Equation 5.1),則我們可以在整個算式的結尾再補上一筆。 194
  194. (Equation 5.2) 如果我們將上式中的 再度轉換回 cos(x) 與 sin(x) 的組合,那麼我們就可以得到下列結果。 195

  195. (Equation 5.3) 其中的 C 乃是規一化常數,用來讓 F(n) 與 f(x) 之間在正逆轉換之後不會被放大,而是回到原函數的 一個平衡系數,在傅立葉逆轉換當中,這個平衡系數通常取為

    。 以下是傅立葉轉換的整理表格。 196
  196. 正轉換 反轉換 (逆向轉換) 傅立葉轉換 ? 實部 ? 虛部 ? 接下來我們就得問一個問題了,既然反轉換已經有了,那麼正轉換到底是甚麼呢?

    答案與反轉換很像,只是 f(x) 與 F(n) 身分對換 (f 變 F, x 變 n),而反轉換中的 inx 在正轉換中變成了 -inx,答案如下表所示。 正轉換 反轉換 (逆向轉換) 197
  197. 傅立葉轉換 當然,這些轉換也都有離散版本的,兩者的差異只是連續函數用積分 (範圍 ),而離散函 數用加總 (範圍 , ),而且將規一化系數改為 而已,並不會太難記住,讓我們將各 個轉換的離散版整理成下列表格。

    正轉換 反轉換 (逆向轉換) 離散傅立 葉轉換 雖然以上的推論看起來都很合理,但是並非嚴格的數學證明,真正的數學證明必須像微積分基本定理 那樣,證明 f(x) 經正轉換成 F(n) 之後,再用逆轉換時就會回到原函數 f(x),這樣才能證明兩者互為反 運算。 198
  198. 5.1.2. 傅立葉轉換的直覺意義 但是即使證明了兩者互為反運算,那又如何,這些轉換具有甚麼意義呢?可以怎麼用呢?我想這是學 工程的人最重要的問題了。就讓我們嘗試用圖解法來說明這些轉換的直覺意義吧! 下圖顯示了這些轉換的直覺意義,圖中的每個格子都有個權重 w(n,x),如果我們將 f(x) 根據權重散布 到行中每一格,那麼每一格的份量就是 。

    199
  199. 然後我們再根據列的權重進行加總,於是就得到了列方向的累加值 。 於是我們將代表行加總的 f(x) 函數轉換到了代表列加總的 F(n) 函數,順利的從代表「行」的領域 x 轉換到了代表「列」的領域 n

    上。 同樣的,將列加總 F(n) 也是將份量散布到每一格中,然後再透過「行加總」的方式轉換回 f(x) 的領域, 只是由於 f(x) 在散布加總時沒有經過正規化,也就是權重 的總合並不是 1,所以 在進行反向運算時,就必須將該總合給除回來,於是反向運算的公式才會在前面乘上一個 的常數。 上圖是以離散的情況進行加總的計算,而積分的計算則只是將離散的世界轉換到了連續的世界,於是 w(x,y) 就不再是一個矩陣,而是一個二維的連續空間了。下圖是這種連續轉換頻譜的示意圖,您可以 看到我們用顏色來代表每一點的權重,最後的加總結果則變成了以積分呈現的頻譜轉換形式。 200
  200. 201

  201. 以下圖形代表以傅立葉級數進行逼近時頻率為 0, 1, 2, ...,n, 之情況 : 202

  202. 以下圖形代表利用 sin(nx) 的波形去組合出函數 f(x) 的一個情況,其中: 紅色線代表 黃色線代表 綠色線代表 203

  203. 藍色線代表 紫色線代表 根據這種方法、前面的項數加得越多,逼近的程度就越高、越精確。 而 sin(nx) , cos(nx) 的特性,就是在 n 愈小時越平滑,這些平滑的函數可以用來表示圖形中變化較小的

    部份,當 n 越大時,變化越快且頻率越高,因此、 n 大的部分代表了影像快速的細微變化,這些細微 變化常是人眼的視覺所自動忽略的,因此、可以將高頻的部分省掉,留下低頻的部份,影像看起來仍 然會非常接近原 來的影像,這就是電腦進行影像壓縮所用的方法。 傅立葉轉換是將時域中的一個函數 f(t) 轉換到頻域中的一個函數 上,方法如同前述的想法, 利用 做為中介以進行分散與加總的動作,以完成時域與頻域之間函數的轉換動作。 在圖形上,傅立葉正轉換是一個在 t 軸上積分的方式,而逆轉換則沿著 軸上的積分方式,是多變 數或向量積分的一個案例。(但是 軸是複數,又可以分解成 cos 與 sin 兩個分量) 204
  204. 205

  205. 5.1.3. 傅立葉轉換的幾種不同寫法 在很多書籍或文章中,您會看到不同的傅立葉轉換寫法,其中最大的不同在於歸一化系數有所差異, 以下我們列出其中幾個常見的版本,以便讓讀者在看到這些不同寫法時,不至於感到迷惑。 由於歸一化系數只要讓 F 與 f 正逆轉換後回到原函數,也就是正轉換 F

    = FT(f) 之後再用逆轉換 f=iFT(F) 可以回到原本的 f,因此我們可以將歸一化系數只放在逆轉換當中,形成不對稱型的正逆轉換 配對。也可以將歸一化系數平均分配到正逆轉換中,形成對稱型的正逆轉換配對。以下是連續傅立葉 轉換的三種常見形式。 連續傅立葉轉換 正轉換 F = FT(f) 反轉換 (逆向轉換) f = iFT(F) 不對稱型 對稱型 206
  206. 超對稱型 連續傅立葉轉換中,由於採用積分形式,對應到 cos(x) 與 sin(x) 的圓周運動,如果直接使用 , 那麼當 x 從

    0 到 的過程中,才會完成一圈的圓周運動。此時逆向轉換的歸一化系數必須使用 ,才能將正轉換的結果歸一。但是如果採用超對稱型的寫法,將 直接寫入 當中, 那麼就不需要在反轉換時進行任何調整,這種形式顯得非常的對稱,因此筆者將之稱為超對稱型。 在離散傅立葉轉換當中,通常採用類似連續的超對稱型之方法,直接將 納入到 中,這樣 看來應該不需要在反轉換中加入歸一化系數,但是由於離散型的方法就像是黎曼積分時每一步長度都 是 1,因此總共累加了 N 個 1,所以在反轉換的時候就必須將其除回來,因此規一化系數為 ,如下 表所示。 207
  207. 正轉換 F = FT(f) 反轉換 (逆向轉換) f = iFT(F) 不對稱型

    對稱型 5.1.4. 轉換 您注意到了嗎?我們用三角函數的「微分」導出了「傅立葉級數」,然後再用「傅立葉積分」算出 「傅立葉級數」中的系數。 從「微分與積分」互為反運算的想法上,我們可以猜測一件事情,那就是「傅立葉級數」與「傅立葉 積分」之間也可以互相轉換,就像以下微積分基本定理當中所表現的「微分後在積分」與「積分後再 微分」都會回到原本函數一樣。 208
  208. 積分後微分 傅立葉反轉換 以上的兩個算式可以寫成更簡單的形式如下,代表微分與積分互為反運算: 那麼,我們可以找出傅立葉轉換的反向轉換,將 F(t) 轉回 f(x) 嗎?答案當然是可以的,讓我們將傅立 葉正轉換與反轉換同時列出來對照。 傅立葉正轉換

    傅立葉反轉換 與積分微分相類似,如果我們進行正向轉換後再進行逆向轉換,或者反過來做,都會得到原函數。 209
  209. 5.2. 程式實作 5.2.1. 離散餘弦轉換 (DCT) #include <stdio.h> #include <math.h> //

    DCT(n) = \sum^{N-1}_{x=0} f[x] * cos((-2.0*M_PI*x)/N*n); // iDCT(n) = 1.0/N \sum^{N-1}_{x=0} f[x] * cos((-2.0*M_PI*x)/N*n); // 離散餘弦變換 void DCT(double f[], int N, double F[]) { int n, x; double Nf = 1.0; for (n=0; n<N; n++) F[n] = 0.0; for (n=0; n<N; n++) { for (x=0; x<N; x++) { F[n] += Nf * f[x] * cos((-2.0*M_PI*x)/N*n); 210
  210. } } } // 離散餘弦反變換 void iDCT(double F[], int N,

    double f[]) { int n, x; double Nf = 1.0/N; for (x=0; x<N; x++) f[x] = 0.0; for (n=0; n<N; n++) { for (x=0; x<N; x++) { f[x] += Nf * F[n] * cos((-2.0*M_PI*x)/N*n); } } } // 浮點陣列傾印 void dArrayDump(char *name, double f[], int N) { int i; printf("%-2s:", name); for (i=0; i<N; i++) printf("%6.4f ", f[i]); 211
  211. printf("\n"); } int main() { double x[] = { 0.0,

    1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0 }; double X[8], x2[8]; dArrayDump("x", x, 8); DCT(x, 8, X); // 離散餘弦轉換 DCT dArrayDump("x", X, 8); iDCT(X, 8, x2); // 離散餘弦反轉換 iDCT dArrayDump("x2", x2, 8); } 5.2.2. 慢速傅立葉轉換 (SFT) 想要用電腦實作傅立葉轉換程式,通常只能實作離散版本的傅立葉轉換,但是由於 f(x) 其實是個複函 數,函數值為一個複數,所以還得進一步區分為實部與虛部,我們可以用 f(x).r 代表該函數值的實部 212
  212. 數值 (real part),然後用 f(x).i 代表該函數值的虛部數值 (imaginary part)17。 傅立葉轉換寫成 表達形式時會相對簡單, 正轉換 離散傅立

    葉轉換 實部 虛部 17 說明:也就是若 f(x) = a+ i b,那麼 a 就是 f(x).r,b 就是 f(x).i 。 213
  213. 當然,在實作反轉換的時候,同樣我們也是採用 cos, sin 的組合公式去算的,以下是反轉換的公式,其 實作函數為 iSFT()。 反轉換 (逆向轉換) 離散傅立 葉逆轉換

    實部 虛部 214
  214. 5.2.3. 使用複數結構版本 以下是我們的簡易離散傅立葉轉換程式 sft_e.c (使用複數結構的版本)。 #include <stdio.h> #include <math.h> //

    F(n) = \sum^{N-1}_{x=0} f(x) e^{- 2 \pi i \frac{x}{N} n} // f(x) = \sum^{N-1}_{n=0} F(n) e^{2 \pi i \frac{x}{N} n} // 複數 typedef struct { double r, i; } Complex; // 複數相加 (a+bi)+(c+di) = (a+c)+(b+d)i Complex cadd(Complex c1, Complex c2) { Complex c; c.r = c1.r + c2.r; c.i = c1.i + c2.i; return c; } 215
  215. // 複數相乘 (a+bi)*(c+di) = (ac-bd)+(ad+bc)i Complex cmul(Complex c1, Complex c2)

    { Complex c; c.r = c1.r*c2.r - c1.i*c2.i; c.i = c1.r*c2.i + c1.i*c2.r; return c; } // e^{i f} = cos(f) + i sin(f) Complex cexpi(double f) { Complex c; c.r = cos(f); c.i = sin(f); return c; } // 印出複數 void cprint(Complex c) { printf("%3.1f%+3.1fi ", c.r, c.i); } 216
  216. // 複數陣列傾印 void cdump(char *name, Complex f[], int N) {

    printf("%-2s:", name); int i; for (i=0; i<N; i++) cprint(f[i]); printf("\n"); } // 慢速傅立葉轉換 void SFT(Complex f[], int N, Complex F[]) { int n, x; double Nf = 1.0; for (n=0; n<N; n++) { F[n].r = 0.0; F[n].i = 0.0; } for (x=0; x<N; x++) { for (n=0; n<N; n++) { Complex exp = cexpi((-2.0*M_PI*x)/N*n); Complex fexp = cmul(f[x], exp); F[n] = cadd(F[n], fexp); } } 217
  217. } // 慢速傅立葉反轉換 void iSFT(Complex F[], int N, Complex f[])

    { int n, x; double Nf = 1.0/N; for (x=0; x<N; x++) { f[x].r = 0.0; f[x].i = 0.0; } for (n=0; n<N; n++) { for (x=0; x<N; x++) { Complex exp = cexpi((2.0*M_PI*x)/N*n); Complex Fexp = cmul(F[n], exp); Fexp.r /= N; Fexp.i /= N; f[x] = cadd(f[x], Fexp); } } } int main() { Complex f[] = {{0.0, 1.0}, {1.0, 0.0}, {0.0, 1.0}, {1.0, 0.0}, {0.0, 1.0}, {1.0, 0.0}, {0.0, 1.0}, {1.0, 0.0}}; Complex F[8], f2[8]; 218
  218. cdump("f", f, 8); SFT(f, 8, F); // 離散傅立葉轉換 SFT ,將

    f(x) 轉為 F(n) cdump("F", F, 8); iSFT(F, 8, f2); // 離散傅立葉反轉換 iSFT ,將 F(n) 轉回成 f2(x) cdump("f2", f2, 8); } 執行結果 D:\c>gcc sft_e.c -o sft_e D:\c>sft_e f :0.0+1.0i 1.0+0.0i 0.0+1.0i 1.0+0.0i 0.0+1.0i 1.0+0.0i 0.0+1.0i 1.0+0.0i F :4.0+4.0i -0.0+0.0i 0.0+0.0i -0.0+0.0i -4.0+4.0i 0.0-0.0i -0.0+0.0i 0.0+0.0i f2:0.0+1.0i 1.0+0.0i 0.0+1.0i 1.0-0.0i -0.0+1.0i 1.0+0.0i -0.0+1.0i 1.0+0.0i 5.2.4. 不使用複數結構版本 實作時,如果沒有先建立複數形態的物件,則必須還原成 sin(n x) 與 cos(n x) 的形式去計算,這會讓算 式變得較為冗長,以下是離散傅立葉正轉換拆解成實部與虛部的 cos, sin 函數的算式,我們的程式 219
  219. SFT() 函數也正是依據這樣的公式去計算的。 SFT() 函數的原形為 void SFT(double f[][2], int N, double

    F[][2]),其中 f[x][0] 代表實部 f(x).r,f[x][1] 代表虛部 f(x).i,同樣的 F[n][0] 也代表轉換後函數的實部 F(n).r,F[n][1] 代表轉換後函數的虛部 F(n).i。 以下是我們的簡易離散傅立葉轉換程式 sft.c (不使用複數結構)。 #include <stdio.h> #include <math.h> // F(n).r = \sum^{N-1}_{x=0} f(x).r*cos(- 2 \pi \frac{x}{N} n) - f(x).i*sin(-2 \pi \frac{x}{N} n) // F(n).i = \sum^{N-1}_{x=0} f(x).r*sin(- 2 \pi \frac{x}{N} n) + f(x)*cos(- 2 \pi \frac{x}{N} n) // f(x).r = \frac{1}{N} \sum^{N-1}_{n=0} F(n).r*cos(2 \pi \frac{n}{N} x) - F(n).i*sin(2 \pi \frac{n}{N} n) // f(x).i = \frac{1}{N} \sum^{N-1}_{n=0} F(n).r*sin(2 \pi \frac{n}{N} x) + F(n).i*cos(2 \pi \frac{n}{N} x) // 複數陣列傾印 void cArrayDump(char *name, double f[][2], int N) { int i; printf("%-2s.r:", name); for (i=0; i<N; i++) printf("%6.4f ", f[i][0]); 220
  220. printf("\n"); printf("%-2s.i:", name); for (i=0; i<N; i++) printf("%6.4f ", f[i][1]);

    printf("\n"); } // 慢速傅立葉轉換 void SFT(double f[][2], int N, double F[][2]) { int n, x; double Nf = 1.0; for (n=0; n<N; n++) { F[n][0] = 0.0; F[n][1] = 0.0; } for (n=0; n<N; n++) { for (x=0; x<N; x++) { F[n][0] += Nf * f[x][0] * cos((-2.0*M_PI*x)/N*n) - Nf * f[x][1] * sin((-2.0*M_PI*x)/N*n); F[n][1] += Nf * f[x][0] * sin((-2.0*M_PI*x)/N*n) + Nf * f[x][1] * cos((-2.0*M_PI*x)/N*n); } } } 221
  221. // 慢速傅立葉反轉換 void iSFT(double f[][2], int N, double F[][2]) {

    int n, x; double Nf = 1.0/N; for (n=0; n<N; n++) { F[n][0] = 0.0; F[n][1] = 0.0; } for (n=0; n<N; n++) { for (x=0; x<N; x++) { F[n][0] += Nf * f[x][0] * cos((2.0*M_PI*x)/N*n) - Nf * f[x][1] * sin((2.0*M_PI*x)/N*n); F[n][1] += Nf * f[x][0] * sin((2.0*M_PI*x)/N*n) + Nf * f[x][1] * cos((2.0*M_PI*x)/N*n); } } } int main() { double f[][2] = {{0.0, 1.0}, {1.0, 0.0}, {0.0, 1.0}, {1.0, 0.0}, {0.0, 1.0}, {1.0, 0.0}, {0.0, 1.0}, {1.0, 0.0}}; double F[8][2], f2[8][2]; cArrayDump("f", f, 8); SFT(f, 8, F); // 離散傅立葉轉換 SFT 222
  222. cArrayDump("F", F, 8); iSFT(F, 8, f2); // 離散傅立葉反轉換 iSFT cArrayDump("f2",

    f2, 8); } 5.2.5. 二維傅立葉轉換與 JPEG 影向壓縮 在本章中我們介紹了如何利用多項式的不斷微分法導出泰勒級數,接著列出 函數的微分,並與 比較以導出傅立葉級數,然後利用傅立葉級數對影像進行轉換,而得到一個 基於 cos 與 sin 的係數組,這個係數組所代表的乃是利用 sin, cos 的波形對影像進行逼近的結果,因而、 當我們從中取出低頻率係數而捨棄高頻率係數時,就得到了一個非常近似於原始影像,但節省許多儲 存空間的表示法,這幾乎 就是所有影像壓縮技術的基礎。 JPEG 就是用 cosine transform 做的,也就是取傅立葉級數 (Equation 5.1)中的 的部份。 壓縮率這麼好的原因是:在頻率域其實是儲存某頻率波的係數,低頻部份通常很重要 (例如最低頻的常 數其實就是整個色塊的平均值),因此編碼時只要留下低頻部份 ,也就是 cos(nx) 當 中 n 從 0~k 部分的係數 ,然後去掉高頻部份 的點,最後再進行壓縮 223
  223. 系數的編碼與壓縮,如此通常可以去除或減少取樣位元數,如此就達到了壓縮的目 的。 JPEG 並不是直接對整張影像進行餘弦轉換,而是將整張影像分割成 32*32 個點的小塊,然後對每個小 塊進行 cosine transform 後再壓縮。

    假如有一個小塊全部都是同一個顏色,那麼餘弦轉換後將會只剩下 的值不是零,其他部分就會全 部為 0,如此就只需要記住 一個點的值,這種完美的情況其實也很常見,像是螢幕上的空白部分, 或者是單一顏色的背景區塊,都可以得到很好的壓縮率,基本上大約是 1/(32*32),也就是壓縮了 1024 倍。 所以當您將 .BMP 檔轉存為 .JPG 檔時,通常可以達到很高的壓縮率,正常情況下即使壓縮了 20 倍, 人的眼睛都感覺不太出來。 224
  224. 第6章 常微分方程式 6.1. 簡介 在數學中,「方程式」指的是變數之間的一組限制關係,例如 就是一個包含兩變數的方 程式。 「微分方程式」(Differential Equation )

    是指包含有微分運算的方程式,例如 ,或者 等等。 微分方程式中若只有一個自變數,則稱為「常微分方程式」( Ordinary Differential Equation, ODE) 18。如 果有兩個以上的自變數,則稱為「偏微分方程式」(Partial Diffrerential Equation, PDE)。 一個常微分方程式中的最高微分次數稱為其「階數」(Order),以下是一些不同階數的常微分方程式範 例。 18 常微分方程式的自變數通常以 x 表示,而且因變數可以很多個,像是 y, z, ….。 225
  225. 階數 常微分方程式 1 階 2 階 3 階 而常微分方程式的次數 (Degree)

    是指最高階導數項的次方數,以下是一些範例: 次數 常微分方程式 1 次 2 次 3 次 當我們說一個方程式是線性的 (Linear),是指該方程式的因變數的次數只有一次,例如 就 是一個線性方程式,但是 就不是線性方程式。 同樣的,對常微分方程式而言,若其因變數 (y, z, ….) 的次數只有一次,那麼該方程式就是一個線性常 微分方程式,以下是一些範例。 226
  226. 次數 常微分方程式 線性 非線性 一個常微分方程式若沒有任何一項只包含自變數而沒有因變數,則這個常微分方程式稱為齊次的 (homogeneous),否則稱為非齊次的 (inhomogeneous),以下是一些範例。 次數 常微分方程式 齊次

    非齊次 微分方程式也可以寫成萊布尼茲表示法,但是會比較複雜,其方法是將 y' 改寫為 dy/dx,然後移項而 得,例如: 一般寫法 萊布尼茲寫法 227
  227. 微分方程式的解是指代入之後會滿足該方程式的一個函數,例如 是方程式 的一個解,因為代入後可得到 。 同樣的,我們也可以驗證 是常微分方程式 的一個解,因為將 代入後 得到 。

    但是,我們應該要如何找出一個常微分方程式的解呢?這就是本章所要學習的主題了。 6.2. 分離變數法 由於常微分方程式有微分運算,所以無法直接得到解答,一個簡單的想法是,將這些有微分運算的部 分積分回去,以便消去微分運算符號,這種方法就稱為分離變數法,以下是一個簡單的範例。 228
  228. 範例:求常微分方程式 y' = x 的解 (已知邊界條件 y(1) = 0)。 解答:改寫為萊布尼茲寫法,得

    ,然後兩邊積分。 得 為此方程式之通解。 然後將 y(1) = 0 代入,得 ,所以得到 ,於是得到 為此方程式之特 解。 229
  229. 分離變數法 對於像以上可以將 x, y 拆成兩邊的問題 (Separable Equations),其一般情形如以下形式: 這種形況可以對兩邊各自進行積分,以便求解,以下是分離變數法的一般性推導方式。 230

  230. 範例:求常微分方程式 的解。 解答:改寫為萊布尼茲寫法,然後兩邊積分。 231

  231. 範例:求常微分方程式 的解。 解答:首先改寫為分離式 ,然後兩邊積分。 其中 。 232

  232. 6.3. 齊次常系數微分方程式 齊次常系數微分方程式 (Homogeneous Coefficient Differential Equations) 可寫成通式如下: 其中 P(x,

    y) 與 Q(x, y) 均為 n 階齊次常系數函數,其解法可此函數轉換為分離變數方程式,如下所示: 然後令 ,代入得 ,接著再用分離變數法可得 233
  233. 其中 。 234

  234. 範例:求常微分方程式 的解。 解答: 235

  235. 範例:求常微分方程式 的解。 解答: 236

  236. 範例:求常微分方程式 的解。 解答: 說明: 237

  237. 6.4. 應用:電子電路分析 元件 數學式 電阻 V = I R 電流

    電容 Q = C V,兩邊微分得 = I (電流:單位時間內電子進出電容的流量) 電感 (電流變化時會引起感應電動勢 EMF) 238
  238. 電阻的效果:根據歐姆定律,V = I R,所以電阻 R 的效果會讓 V 與 I 同步震盪,並不會改變相位。

    電容的效果:根據 Q = C V,兩邊 微分得 ,所以電 流 I 是與 V 的變化率同步的,也 就是 I 與「V 的斜率」成正比,就 像 一樣,會造 成 V 相位超前 I 達 的情況。 239 插圖 2: 電阻對波形相位的影響 插圖 3: 電容對波形相位的影響
  239. 電感的影響:根據 , 電感兩端的電壓與電流變化率成 正比,因此電感兩端的電壓 V 相位會落後電流 I 達 。 240

    插圖 4: 電感對波形相位的影響
  240. 6.4.1. RC 電路 (一階) RC 串聯電路的暫態響應 (充放電時的反應) 一個最簡單的 RC 電路是由一個電阻器和一個電容器串聯組成

    的,如右圖所示。 當我們外加直流電源 V 伏特對 RC 電路的電容充電時,由於電子 無法穿過電容,因此流過電阻的 電流全數流入了電容,因此可得 微分方程式 241 插圖 5: RC 電路的示意圖 插圖 6: RC 電路對電容充電時的情況
  241. 同樣的,當我們將外加直流電源拿 掉,變成放電的時候,電容內的電 子流出後全數都會通過電阻釋放回 去,所以可得微分方程式 19 19 說明:充電開始時電壓 ,而放電時 ,以上兩種情形,由於克希荷夫定律, 流過電阻的電流全數流入了電容,回流時也全數從電容流回電阻,因此其微分方程式都是如下形式,只是初始條件不同

    (充 電時 ,放電時 ) ,所以解出來的答案也不同罷了。 242 插圖 7: RC 電路電容放電時的情況
  242. 為了簡化起見,我們以下將用 V 符號代替 。 讓我們先求取放電的情況,也就是 這個微分方程式的解 其中的 K 為不定積分過程中產生的常數,而 也是個常數,如果我們將放電的初始電壓

    V(0) 代入,則可得 ,所以可得 A = V(0),因此放電過程中電壓函數可寫為以下的微分方程式特 解。 243
  243. 對於充電時的情況,必需求解 的解答,其解答為 。 對於任意的電壓輸入 V_{in} 而言20,其微分方程的解答為 20 可能是不斷變動的電壓 ,例如輸入是個 或

    等情形。 244
  244. 第7章 拉普拉斯轉換 7.1. 拉氏轉換 (Laplace Transform) 的定義 函數 f(t) 的拉普拉斯轉換定義如下:21

    其中 F(s) 稱為 f(t) 的拉普拉斯轉換,而 f(t) 則是 F(s) 的反向拉普拉斯轉換。 21 拉普拉斯轉換的直覺意義: http://www.quora.com/Intuitively-speaking-what-does-a-Laplace-transformation-represent http://math.stackexchange.com/questions/6661/laplace-transformations-for-dummies http://www.rowan.edu/open/depts/math/osler/Introduction%20to%20Complex%20Analysis/Chapt8/Chap%208%20A.pdf 245
  245. 由於 微積分的單位元數,是令 D 代表微分運算,I 代表積分運算,則 。微分與積分的 單位元素都是 ,也就是 , ,根據鏈索法則,可得

    。 如果令 ,則 就變成了 ,若令 , 就變成了 , 這就是為何拉式轉換採用 與 作為轉換對的原因,這有點像線性代數中的特徵值。 拉普拉斯轉換的基本想法是「讓函數的微分運算變成像基礎數學中的多項式運算」,這個想法的實現, 所依賴的是以下這些拉氏轉換的基本性質。(這些性質可以稱為時域微分特性) ... 以下是這些性質的證明: 246
  246. 問題:請證明 解答: 問題:請證明 247

  247. 解答: 問題:請證明 解答:方法與上列兩題類似,但必須推廣為通式。 以上這些公式在微分方程求解當中特別有用。 7.2. 拉氏轉換的直覺意義 如果您仔細看「拉普拉斯轉換」與「傅立葉轉換」,會發現這兩個轉換實在是很像,讓我們將這兩個 轉換列在一起看看。 248

  248. 拉普拉斯轉換 傅立葉轉換 事實上,在傅立葉轉換當中,我們更常將 x 寫為 t (代表時間),n 寫為 (代表週期)。 拉普拉斯轉換

    傅立葉轉換 在這樣的直覺想法中,時域中的一個點用 t 表示,在頻域中的一個點用 表示。 249
  249. 傅立葉轉換是將時域中的一個函數 f(t) 轉換到頻域中的一個函數 上,方法如同前述的想法, 利用 做為中介以進行分散與加總的動作,以完成時域與頻域之間函數的轉換動作。 在圖形上,傅立葉正轉換是一個在 t 軸上積分的方式,而逆轉換則沿著 軸上的積分方式,是多變

    數或向量積分的一個案例。(但是 軸是複數,又可以分解成 cos 與 sin 兩個分量) 250
  250. 那麼,拉普拉斯轉換又有何意義呢?事實上,只要讓 並放寬 t 的積分範圍到整個實數軸,則 拉式轉換 就變成了傅立葉轉換 。 當我們將 當中的虛數部分擴展,變成 時,如果

    s 可以是個複數 ,而且 |s| 不 為 1,那麼代表轉換後將不是只有時域轉換為頻域的動作,而且在極座標中會有長度 |s| 放大縮小的作 用,於是拉氏轉換就成了一個會放大縮小長度的擴展型傅立葉轉換。如下圖所示。 251
  251. 由於 是個指數型函數, 會隨著 s t 的變大而快速的縮小,這讓拉氏轉換的效果不像傅立 葉轉換純粹只是將「時域轉換為頻域」,而且在頻域上會隨著 s t 的大小而縮放,於是上述直覺想法中

    的權重 w(s,t) 將會隨著 s, t 的放大而變小,也就是在 w(s,t) 這個權重頻譜上,(s, t) → (0, 0) 之處的權重 會很重,而 的權重會變得很小,於是您可以想像一個以原點為高峰的山形圖, 離原點越遠的山腳會越來越低,而這正是拉普拉斯轉換與傅立葉轉換的不同之處。 事實上,我們沒辦法用一個很清楚的直覺意義說明拉式轉換後的結果,但是卻可以大致上看出拉式轉 換後,距離原點越遠才隆起的函數,其轉換結果的能量就越小,而在原點處就隆起的函數,其轉換結 果能量就越大,這有點像山坡的感覺。 那麼,為何要進行拉氏轉換呢?除了求解微分方程的問題時會比較方便之外,有些問題在 t 領域處理 比較簡單時,就在 t 領域處理,有些問題在頻域 ( ) 處理比較方便就可用傅立葉轉換後處理,而有些 問題在 s 領域 (s-domain) 處理比較方便時,就可先用拉式轉換後再去處理了。 拉氏轉換除了在求解微分方程上有用之外,由拉氏轉換衍生出來的 Z 轉換在通訊領域也有強大的功用, 通訊領域上有一些常見的基礎函數,這些函數的拉式轉換都很簡單,這也是拉式轉換為何有用的原因。 252
  252. 7.3. 拉氏轉換存在的條件 並非所有函數的拉式轉換都會存在,對於那些成長太快的函數而言,拉式轉換可能會不存在。 拉氏轉換必須符合函數 f 的「指數階」 (exponential order) 為某 的條件,其轉換函數才會存在,否

    則就會發散而變成無窮大。 所謂的「f 是指數階 」 是指一個函數 f(t) ,存在 與 M 符合下列條件: 定理:假如 存在,且「f 是指數階 」,則 f(t) 的拉氏轉換 F(s) 在 的條 件下存在。 以下是一些「f 是指數階 」的概念。 1. 是指數階 0. 253
  253. 2. 是指數階 對於任意 3. 的指數階不存在 (任何 都無法滿足) 4. 是指數階 0

    5. 沒有拉普拉斯轉換,因為其積分會發散 (0 點處為無限大)。 7.4. 拉氏變換的性質 性質 數學式 線性疊加 時域微分 -單邊拉氏變換 254
  254. s 域微分 s 域積分 時域積分 初值定理 : 要求 F(s) 為真分式,即分子的最高次小於分母的最高

    255
  255. 次,否則使用多項式除法將 F(s) 分解 終值定理 : 要求 F(s) 的所有極點都在左半複平面或原點為單極點。 終值定理的實用性在於它能預見到系統的長期表現,且避免部分分式展開。如果函 數的極點在右半平面,那麼系統的終值未定義(例如:

    或 )。 s 域平移 時域平移 註 : u(t) 表示步階函數 卷積 256
  256. c 是收斂區間的橫坐標值,是一個實常數且大於所有 的個別點的實部值 問題:請證明 解答: 257

  257. 問題:請證明若 f(t) 是指數階 ,則 是指數階 解答: 問題:請證明 解答: 1. 根據定義

    2. 假如 ,則 258
  258. 所以 得 7.5. 常見函數的拉氏轉換表 拉氏轉換在通訊領域特別有用,因此對於一些通訊領域的函數,像是脈衝函數與步階函數,瞭解其拉 氏轉換就有不少好處。 259

  259. 讓我們先來看看這些通訊領域的基礎函數,包含脈衝 函數 與步階函數 的定義吧。 單位步階函數 (Unit Step Function):又稱 Heaviside Step

    Function ,是在 0 點上升一階的函數,其定義如 下 260
  260. 單位脈衝函數 (Unit Impulse Function):又稱 Dirac Delta Function,是只有在 0 有值的函數,其定義如下 但是單位脈衝函數是一個本質為離散型的函數,這對微

    積分這種連續領域的數學會是難以處理的,因此在連續 領域,通常我們用以下函數來逼近單位脈衝函數,迪拉 克函數如下所示: 261
  261. 但是上述函數有斷點,所以無法完全微分,若想要用微分這個工具, 有時也會用下列定義: 在這種定義下我們就能對 進行積分,事實上若我們將 a 改 寫為 並趨近於無限小,就可以改寫為 ,當我們對這 個

    函數進行積分的時候,就會得到前述的單位步階函數 。 262
  262. 原函數 轉換後 收斂區域 說明 1 all s 脈衝函數 轉換後變成一個水平面函數 1,這樣好像拉氏轉換會將直的轉成橫的?

    ,此時拉氏轉換會 將位於 的脈衝函數轉為一個山形的函數。 22 s > 0 位於 0 的步階函數被轉換成斜坡函數 s > 0 位於 的步階函數被轉換成山形函數 22 注意:表中的 u(t) 其實都可以去掉,改寫為 1,因為拉氏轉換從 0 才開始積分,負的部分是不管的,所以 u(t) 與 f(t) = 1 的拉氏轉換都是相同的 (所以像 可以寫為 t 就好了,而 可以寫為 就好了。 263
  263. s > 0 s > 0 s > 0 s

    > 0 23 23 sinh 與 cosh 稱為雙曲正餘旋函數,請參考:http://zh.wikipedia.org/wiki/%E5%8F%8C%E6%9B%B2%E5%87%BD %E6%95%B0 264
  264. 脈衝函數 轉換後變成一個水平面函數 1,這樣好像拉氏轉換會將直的轉成橫的?其實不然,當我 們再看規則 ,此時拉氏轉換會將位於 的脈衝函數轉為一個山形的函數。 接著再看位於 0 的步階函數又被轉換成斜坡函數 ,然後再看位於

    的步階函數又被轉換成山形函數 ,然後 又被轉換成二次類似溜滑梯的函數 ,到底拉式轉換的意義是甚麼呢? 當我們看到 被轉換為 ,而 被轉換為 的時候, 似乎可以看到一些拉式轉換的特性,您可以發現 sin 的步階函數轉換後上面是 ,但是 cos 的步階函 數轉換後上面是 s,一個上半只與角度有關,另一個上半與整個複數 s 有關。 265
  265. 問題:請證明 解答:因為 ,所以根據不定積分的定義得 。 於是 而 ,所以 。 問題:請證明 引理:

    (這個引理將不會在此進行證明,但您可以將 h 取得很小用電腦算算看) 266
  266. 解答:為了能夠積分,我們將採用 這個定義。 證明過程: 267

  267. 接著令 ,則可得 問題:求 解答: 所以得到 268

  268. 問題:求 解答: 所以得到 269

  269. 問題:求 解答: 所以得到 7.6. 用拉氏轉換求解微分方程 拉氏轉換的一個功用是求解微分方程,其想法是建構出一個系統,企圖將微分運算轉換成多項式運算。 舉例而言,針對下列問題: 270

  270. 且有初始條件 則若轉換後能得到 ,那是最好的。 但事情沒辦法這麼完美,不過也非常接近了,因為我們可以根據如下的拉式轉換的時域微分規則 以寫出該微分方程轉換後對應的多項式函數。 根據 與 等兩公式,我們 可以寫出該該微分方程經拉氏轉換為 s

    領域後的結果。 且有初始條件 代入上述公式後得到下列結果。 271
  271. 接著使用部分分式,令 ,解得 a = 2, b = -5,所以得到 。 再根據查表看到轉換公式

    ,所以可以將 Y(s) 逆向轉換回去,得到 272
  272. 。 問題:請用拉普拉斯轉換求解 解答:先對該方程進行拉普拉斯轉換,得到 接著進行反轉換對映 273

  273. 問題:請用拉普拉斯轉換求解 解答:先對該方程進行拉普拉斯轉換,得到 從轉換表可以查出以下轉換對 接著進行反轉換對映 274

  274. 7.7. Z 轉換 – 拉氏轉換的離散快速版 在電腦的計算當中,由於浮點數的計算較慢,且 的計算並不方便,如果改用整數的方式,然後將 整個轉換的積分改為離散版本的加總,那麼就可以得到一個更快速且適合電腦計算的轉換方式,於是 275

  275. 拉式轉換就變成了離散版的 Z 轉換。 Z 轉換把離散時域的 x[n] 轉為 z 域 (z-domain)

    的 X(z),其中 n 是整數,z 是複數變量,其表示方式 為 ,這個表示方式很明顯的用極座標表示出長度 r 與角度 。 連續函數 f(t) 拉氏轉換 L(s) 收斂區域 離散函數 x[n] Z 轉換 X(z) 收斂區域 1 all s 1 所有 z s > 0 |z| > 1 276
  276. |z| < 1 s > 0 s > 0 |z|

    > 1 |z| < 1 |z| > |a| 277
  277. s > 0 s > 0 |z| >1 s >

    0 |z| >1 24 24 sinh 與 cosh 稱為雙曲正餘旋函數,請參考:http://zh.wikipedia.org/wiki/%E5%8F%8C%E6%9B%B2%E5%87%BD %E6%95%B0 278
  278. 第8章 多變數微分 8.1. 多變數函數 定義:多變數函數 多變數函數是一個從 映射到 R 的函數,可以寫成 ,換言之對於每個實數值序

    列 ,函數 f 都會指定一個實數值 w 做為對應的映射值,如下所示。 舉例而言, 就是一個三個變數的函數。 8.2. 極限與連續 對於多變數函數而言,其極限值的定義方式與單變數函數類似,只是多變數函數的鄰近區域範圍改用 n 維空間中的距離衡量,這樣的定義方式可以包容單變數函數的情況。 279
  279. 定義:多變數函數的極限 假如對於每個 ,都存在一個對應的正數 ,使得所有在 f 定義域內的點 ,只要符合 的限 制,都滿足 的條件,則我們說函數

    f 在 點的極限 為 L。 為了方便起見,我們通常將多變數函數的輸入視為一個向量,以 表示,如此, 我們就可以將上述極限式改寫如下。 對於多變數函數而言,其極限的性質與單變數函數時類似, 280
  280. 假如極限 與 都存在,則極限式具有下列數學性質。 性質 數學式 加法特性 乘法特性 除法特性 if 8.3.

    偏導數 定義:偏導數 在點 對 的偏導數定義為 281
  281. 範例:求 在 (x,y) = (1, 2) 點上對 x 的偏導數。 解答:

    將 (x,y) = (1,2) 代入,得到 ,因此 在 (x,y) = (1, 2) 點上對 x 的偏導數為 2。 282
  282. 範例:兩電阻 R1, R2 並聯時可得到一個等效電阻 R,R 與 R1, R2 之間的關係式為 ,試求

    。 解答:使用隱函數的微分法,將兩邊各自對 R2 進行偏微分,得到下列結果。 283
  283. 定義:高階偏導數 代表先對 y 偏微分、再對 x 偏微分 代表先對 x 偏微分、再對 y

    偏微分 代表連續對 x 進行兩次偏微分 代表連續對 y 進行兩次偏微分 定理:混合導數定理 若 f 為連續且可偏微分,則 284
  284. 範例: 如下圖所示。 則可得 , , 。 285

  285. 8.4. 鏈鎖規則 (Chain Rule) 定理:雙變數鏈鎖規則 z=f(x,y) 為連續且可微分,且 x = x(t),

    y=y(t) 也是可微分函數,則 w 對 t 的微分滿足下列鏈鎖規則: 範例:給定 ,其中 且 ,請計算 與 。 解答: 286
  286. 8.5. Lagrange 乘子法 方法:Lagrange 乘子法 對於以下具有限制條件的優化問題 最大化: 限制條件: 我們可以透過引入一個未知標量 λ≠

    0 讓,並求解以得到極大極小值的方法, 287
  287. 一旦求出 λ 的值,將其套入下式,就可求出無約束極值和極值所對應的點。 新方程 在達到極值時與 相等,因為 達到極值時 總等於零。 由於有限制條件 ,所以光是利用微分

    的條件去尋找函數的極值是不正 確的,因為找到有極值的點很可能不滿足 這樣的限制條件,此時就可以用 Lagrange 乘 子法來求取極值。 Lagrange 乘子法的想法是,假如我們將 g(x,y) 的等高線圖畫出,那麼 f(x,y) 的極值會出現在與 g(x,y) 斜率相同 (平行) 的點上 (因為如果不是平行,那 f 就可再增加,直到平行為止),如下圖所示。 288
  288. 雖然 f 與 g 在該點上所有偏微分的斜率都相同,但是兩者並不需要相同,可以相差一個倍率,這個倍 率就是 的意義。 範例:求以下限制方程式的最小值 最小化: 限制條件:

    解答: 令 ,則我們可以用 lagrange 乘子法寫出下列算式 289
  289. 將所有 方程的偏微分設為零,得到以下的限制條件 求解上述方程組,結果如下: x y 0 0 1 0 0

    -1 290
  290. 將所有組合代回,一個一個計算 f(x,y) ,得到最小值 f(x,y) 為 -0.3849 範例:求概率分布的最大熵 解答: 所有概率的總和是 1,因此我們得到的約束是

    g(p)= 1 即 291
  291. 可以使用拉格朗日乘數找到最高熵(概率的函數)。對於所有的 k 從 1 到 n,要求 由此得到 計算出這''n''個等式的微分,我們得到: 這說明 都相等

    (因為它們都只是 λ 的函數).解出約束 ,得到 因此,使用均勻分布可得到最大熵的值。 292
  292. 293

  293. 第9章 多變數積分 9.1. 雙重積分 多變數的積分與單變數的黎曼積分定義類似,但是卻是在多維空間上的積分。在單變數的情況下,積 分是計算許多長條矩形的面積和,而在雙變數的情況下,則是用許多長方體的體積和來逼近整個體積。 以下是雙變數積分的黎曼和極限定義式: 其中 P 代表一個二為空間上的分割,而

    代表這個分割中任一長方形的最大邊寬度 (長或 寬都算)。 範例:求 294
  294. 解答: 範例:求 解答: 根據這樣的定義,Guido Fubini 證明了以下定理: 295

  295. Fubini 定理 296

  296. 在 的條件之下,以下等式成立。 在上述情形下,我們可以先對 y 變數積分 (此時先將 x 當常數看待,然後再對 x 進行積分),以下是

    一個範例。 範例:求 解答: 297
  297. 但是,以上的算式對於非矩形區域的面積就無能為力了,所以 Fubini 定理衍生出了以下的加強型法則, 可以用來計算非矩形區域的積分: Fubini 定理 (加強型) 298

  298. f(x,y) 在區域 R 上連續,若 R 的定義為 ,且 在 [a,b] 上連續,則以下等式成立。

    範例:求 解答: 299
  299. 300

  300. 9.2. 多重積分 同樣的,根據類似的想法,更多變數的積分可以定義如下: 多重積分的性質如下表所示 特性 數學式 線性 可加性 若 ,則

    301
  301. 第10章 向量微分 在傳統的工程數學中,通常會講授向量微積分的主題,但是並不會引入電磁學的範疇。然而這種做法 會讓讀者搞不清楚向量微積分的歷史意義,筆者認為只有將向量微積分置入在電磁學的領域中,才能 看清楚這些數學的意義。因此在本章中,我們將介紹向量微積分的數學概念,然後再下一章中引入電 磁學,讓讀者能夠理解這些數學背後的物理概念。 10.1. 向量 學過線性代數的人,通常對向量的概念並不陌生。在 n

    維空間中的一個點,可以被表示為一組 n 個的 實數串,這個實數串就稱為向量,如下所示。 302
  302. 舉例而言,位於三度空間中 (x=1, y=2, z=1) 的這個點,就可以表示成 (1,2,1) 這個向量。 向量之間可以作加減運算,也可以對常數作加減乘除,於是可以形成一些代數規則,如下所示: 加法特性 代數法則

    乘法特性 代數法則 封閉性 仍然是個向量 向量分配律 結合性 乘法結合律 單位元素 常數分配律 反元素 長度倍數 交換律 三角不等式 由於 向量與向量之間的運算,除了加減法之外,還有類似「乘法」的「內積與外積」,以下是內積的定義: 303
  303. 內積 (純量積) 定義: 由於上述定義與下列算法的數值是相等的,所以 計算時通常採用下列算法。 根據圖形,可看出其結果為在 方向延伸 倍的長度值。 而外積的定義則與內積有點像,只是 cos

    改為 sin,並且結果會是有方向的向量,而不是單一的數值。 304
  304. 外積 (向量積) 定義: 外積的計算比內積複雜,舉例而言,兩個 三維向量的外積,可以寫成如下的行列式: 由於 i, j, k 代表

    x, y, z 三個座標軸的單位向量, 所以該行列式的結果是如下的一個向量。 上述的外積定義,可以用來描述安培右手定則 所描述的那些電與磁之間的關係。 305
  305. 下表顯示的是內積與外積的代數特性。 內積 代數法則 (特性) 外積 代數法則 (特性) 垂直最弱 若 與

    垂直,則 垂直最強 若 與 垂直,則 同向最強 同向最弱 若 與 同向,則 交換律 負交換律 分配律 分配律 常數結合律 常數結合律 柯西不等式 拉格朗日式 純量三重積 向量三重積 306
  306. 下圖為純量三重積的幾何意義: 307

  307. 當我還是個大學生時,總是不懂內積與外積的意義,後來看到「電磁學」與向量場的「線積分與面積 分」,才逐漸理解為何這兩個乘積要如此定義,所以接下來我們將會介紹「向量場的線積分與面積 分」概念。 但是在這之前,先讓我們瞭解一下何謂向量場吧! 308

  308. 10.2. 向量場 在第 0 章的「代數結構」主題中,我們曾經談到一種稱為「場」的代數結構,讓我們將該結構的代數 特質重新列示如下: (S, O) 是一個群 (S,

    X)是一個群 封閉性 結合性 (a O b) O c = a O (b O c) (a X b) X c = a X (b X c) 單位元素 a O o = o O a = a i X a = a X i = a 反元素 分配性 a X (b O c) = (a X b) O (a X c) 向量場之所以稱為場,正是因為「向量的加法」形成一個群的結構,而純量的乘法本身也是個群結構, 309
  309. 並且純量與向量之間有分配性,所以形成了一個「向量場」的代數結構。 (R, *) 是一個群 ( , +)是一個群 封閉性 結合性 單位元素

    反元素 分配性 310
  310. 電場、磁場、力場、速度場等都事向量場的範例,以下讓我們先看看一些向量場的圖片。 下圖是 v(x,y) = -r 這個向量場的兩種不同描繪方式。25 25 註:本節的向量場圖片來自維基百科 http://en.wikipedia.org/wiki/Vector_field 311

  311. 由於場線是密密麻麻布在整個空間之中的,因此我們不可能將整個空間的場線都畫出來,所以通常會 用向量的長短與箭頭的密集程度,來代表一個向量場。 右圖中的向量場,具有旋轉的傾向,如果這 是一個電場,那麼當你將一個電子放入之後, 該電子將會沿著場線旋轉。 如果這是一個磁場,那麼當您將一個「磁單 極」放到磁場中,那麼該「磁單極」將會在 磁場中延著場線旋轉。 (有趣的是、在物理的世界裏,磁單極是不 存在的、或者說到目前為止從來沒有被發現

    過)。 312
  312. 當然、場線有時會很複雜,有時會朝某個點集中,或者發散,或者有各式各樣奇怪的形狀,例如下圖 也是個場線。 313

  313. 然而、上述的場線都是在平面上的,但在電磁學的領域當中,電場與磁場是充滿整個三度空間的,因 此場線畫起來應該要像下面的這種樣子才對,也就是整個空間中都充滿了「場」,下圖只畫出了在求 體表面的場線而已。 314

  314. 10.3. 向量函數的微分 10.3.1. 純量函數 在沒有特別強調的情況下,我們所說的函數都是指純量函數,純量含數將某個點 P 映射到一個實數, 可以寫成 ,也就是將 n

    維空間中的一個點映射到某個實數。 舉例而言, 就是一個純量函數。 10.3.2. 向量函數 但是向量函數會將 n 維空間中的點 P 映射到某個向量,可以寫成 ,由於從 0 到點 P 之間也形成一個向量,因此向量函數是將向量映射到向量的函數 (但維度不一定相同)。 舉例而言, 就是個向量函數,其中的 i, j 分別為 (m=2) 空間中的單位向量 ,也就是 i=(1,0), j=(0,1)。 抽象而言,向量含數可以寫成 m 個純量函數所形成的串列,例如將 3 維映射到 2 維空間中的向量函數 315
  315. f,可以寫成 所以以上的範例 也可以改寫成 這種形式。 10.3.3. 向量函數的導數 假如空間中的點 P ,例如 (x,y,z)

    可以由另一些自變數,例如自變數 t (時間) 所決定。此時我們就可以 將點 P 寫成這些自變數的函數 。 然後、我們就可以定義這種只含單一自變數的向量函數之導數了,如下所示: 316
  316. 例如在三度空間 (x,y,z) 當中,向量函數 f(x,y,z) 的導數可以寫成: 假如空間中的點 P ,例如 (x,y,z) 可以由另一些自變數,例如自變數

    t (時間), 或者極座標的距離 (r) 所 所決定。此時我們就可以將點 P 寫成這些自變數的函數 , 或者寫 成 。 然後、我們就可以定義向量函數的偏導數慨念了,例如 f 對 t 的偏導數為: 也可以寫成 317
  317. 10.4. 梯度 (nabla) 與拉普拉斯算子 雖然向量微積分是討論向量的,但是卻可以透過一個稱為「梯度」的概念與純量函數連結起來,這世 向量微積分與多變數純量微積分之間的重要關係。 以下是梯度的定義: 定義:梯度 (nabla) 在點

    的梯度定義為 梯度代表在多維空間中,某個曲面在每一點上斜率最大的方向導數。而且、梯度是個向量,這就是純量微分與向量的 連結點。 318
  318. 那麼、方向導數是甚麼意思呢?以下是方向導數的定義: 定義:方向導數 f 在某點 P 依向量 之方向的變化率,稱為 f 在 P

    沿 方向的方向導數。 方向導數與梯度兩者之間是有關係的,簡單來說、梯度是增加量最大的方向導數,原因如下: 由於 cos 必然小於 1,因此 必然 小於 。 接著、如果我們將多為空間中的曲面函數 f(P) 的每個點都取梯度,形成一個梯度函數,那麼該梯度函 數將會是一個向量函數 v(P)。 其中的函數 f(P) 在物理學中對應到「勢能」,而 v(P) 則是物體在該點所受到力的向量。 319
  319. 這種「勢能與力」之間的關係,形成了物理上相當重要的一個方程式,稱為「拉普拉斯方程式」,如 下所示: 如果我們定義 ,那麼上式就可以寫成更簡單的形式如下: 其中的 符號稱為拉普拉斯運算子。 320

  320. 第11章 電磁學與向量微積分 為了要描述「力場、電場、磁場」等這些概念,物理學家與數學家發展出了通用的「向量場」觀念, 這些觀念與微積分中的「無窮小」概念整合後,就發展出了「通量、環量、散度、旋度」等等數學 描述,透過這些數學描述,我們就能更快速的進入「馬克斯威」的電磁理論領域。 11.1. 向量場的線積分 顧名思義,線積分就是沿著某條線進行積分,線積分有兩種,一種是純量場線積分,一種是向量場線 積分。 321

  321. 向量場的線積分 定義: 向量場的線積分是沿著某條線前進,對將向 量場位於該線上的向量 (藍線) 與線的方向 (紅線) 作內積,這個內積的値會形成下半部 的那條綠色積分線,該綠色區域的面積就是 這個線積分的積分値。

    上述圖形來自維基百科,事實上該圖為一個 動畫,若點選下列這個動畫連結,您可以更 清楚的看到線積分的概念。 http://zh.wikipedia.org/wiki/File:Line_integral_of_vector_field.gif 322
  322. 從以上的線積分定義中您可以看到,這種積分採用內積的方式定義,將內積的結果拿來「積分」了。 那麼、外積又是用在哪裡呢? 關於這個問題,則必須瞭解「向量場的面積分」! 323

  323. 向量場的面積分 定義: 向量場的面積分是對某個曲面 S 進行向量 強度的加總,但由於向量與表面間不見得垂 直,因此必須考慮角度問題,所以要計算 S 的表面法向量與 F

    的場向量之間的內積, 然後進行積分加總動作。 但是、如果我們考慮的是表面的漩渦場,那 麼就可以用外積的方式去計算旋渦強度與方 向,這樣就變成在旋渦部份先以外積計算出 旋渦法向量 ,然後再與 S 表面的法向量進行內積後積分加總,於是 就得到上述公式。 324
  324. 11.2. 電力線與磁力線 在電磁的世界中,那些看不見的力所形成的「力線」是很重要的物理概念,像是「電力線」與「磁力 線」等抽象概念,是「法拉第」與「馬克斯威」等人建立電磁理論的基礎。 因此、在進入「電磁學」的「微積分」世界之前,先讓我們看看這些「力線」的概念,將會有助於讀 者理解「向量微積分」裏所說的那些符號的意義。以下是一些來自維基百科的「場線」圖形 26。 對於電子而言,那些正電與正電之間的排斥力,以 及正電與負電之間的吸引力,也會形成向量場,以 下是兩個電子所形成的場線之圖形。

    26 以下圖形來自 http://en.wikipedia.org/wiki/Field_line 325
  325. 對於磁場而言,一根磁鐵可以分為南極 (S) 與北極 (N),這兩個極之間同樣具有「同性相斥、異性相 吸」的特性,因此一根長形磁鐵所形成的場線,其實有點類似上述一正一負電子所形成的場線,只不 過這種場線代表的是「磁場中的磁力強度」。 326

  326. 327

  327. 如果我們把指南針放在磁鐵的周圍,就能很容易看出這些磁場線的方向。 328

  328. 11.3. 通量與散度 在一個向量場當中,通量是指通過某個表面的向量總數,通常用積分的方式累加計算,例如在以下的 圖 (a) 中,由於該粒子帶正電,會對其它正電粒子產生排斥力,因此其電場是向外發射的,於是若我們 在電子外部加一個包覆球面,那麼通過該球面的電通量就會是正的,而且電通量大小就會是該粒子的 電量大小。 329 插圖

    8: 電場與電通量
  329. 同樣的、在圖 (b) 中由於粒子帶負電,會對其它正電粒子產生吸引力,因此其電場是向內集中的,所 以通過包覆球面的電通量就會是負的。 如果該帶電粒子的電量較大,那麼我們通常會把電場線畫多一點,這種較密集的電場線在視覺上可以 強調哪一部份的電場較強,如以上的圖 (c) 所示。 看過這個範例,我們就可以來正式定義「通量」的概念了。 通量

    直覺意義: 1. F 是一個向量場 (例如電場),S 是一個曲面。 2. 代表向量場與曲面法向量的內積。 330
  330. 3. 向量場 A 與整個曲面 S 的法向量內積總和,即是通量。 4. 通量代表通過曲面 S 表面的向量內積總和。

    5. 通量大於零 (通量 > 0) 代表有向外發射的傾向。 6. 通量小於零 (通量 < 0) 代表有向內匯集的傾向。 假如 S 是一個封閉曲面,那麼我們通常會用以下的環狀積分來代表這種封閉的情況。 對於電場而言 ,通常我們在意的是環狀曲面的通量,因此可以用上述環狀積分符號 來表示此種情 況。 通量的概念不只適用於一個粒子產生的電場,而是任何的電場都可以適用的。例如以下是兩個粒子所 產生的電場,其中圖 (a) 是兩個負電粒子所產生的電場,所以如果在兩者之外定義一個封閉曲面,那麼 331
  331. 其電通量將會是這兩個粒子的負電量總合。 同樣的,如果是像圖 (b) 這樣一正一負的兩個粒子,那麼通過外部封閉曲面的電通量,將會因為正負相 互抵消而變成零。 332 插圖 9: 兩個帶電粒子產生的電場與電通量

  332. 如果、我們想用微積分的概念,透過很多微小區塊的積分來計算通量總合的話,那麼我們就可以定義 一個非常微小區域的通量密度,這種逼近無限小的平均通量概念,就稱為散度。其定義如下: 散度 直覺意義: 1. F 是一個向量場 (例如電場),S 是一個封閉曲面,V 是封閉曲面所包圍的體積。

    2. 代表向量場與曲面法向量的內積。 3. 代表封閉曲面 S 的通量。 333
  333. 4. 散度是發散點或內聚點的衡量值。 5. 發散點箭頭向外散射(散度 > 0)。 6. 內聚點箭頭向內聚射 (散度 <

    0)。 7. 散度是單一點的通量密度。 如果某一點的散度大於 0,代表那個點向外射出的向量比向內射入的多,如果小於零則代表向內射入的 向量比向外射出的多。 散度定理 直覺意義: 334
  334. 1. V 是空間中的一個區域,而 S 是 V 的表面。 2. V 區域的散度積分

    ,等於向量場 F 對 S 的面積分 。 3. 在電磁學中,這代表我們只要計算通過 S 曲面的向量積分,就可以知道 V 區域裏面帶有多少電量。 反過來說、只要知道 V 區域帶有多少電量,就知道通過其表面的電力線總共有多少。 335
  335. 散度定理的證明想法:對於曲面內部的兩個相 鄰小立方體 A, B 而言,這些向量直接穿過相鄰 面,所以從 A 射出的向量與 B 射入的向量互相

    抵消,因此只有最外圍的那一面才不會被抵銷, 因此只要算最外層表面的向量加總就可以了。 336
  336. 11.3.1. 散度的微分型定義 在三維直角坐標系 (x,y, z) 中,設向量場 F 的表示為 其中的 i,j,k

    分別是 x 軸、y 軸、z 軸方向上的單位向量,場的份量 P、Q、R 具有一階連續偏導數,那麼 向量場 A 的散度就是: 換句話說,在三維迪卡兒座標系統內,以下等式是成立的: 由於上式看起來等號兩邊並沒有直接關係,因此讀者必然感到奇怪,但是受限於筆者的數學能力,恐 怕無法進行正式的證明,因此我們簡要的寫出「證明想法」如下。 337
  337. 證明想法:(非正式證明) ; 根據散度定義 ; 根據下表的微量面積算式 ; 根據均值定理 ; 因為 S

    無限小。 338
  338. 說明:上述陳述的證明想法,牽涉到「微量長度、微量面積、微量體積」的表示方法,如下所示: 微量極限 簡要概念 數學定義 說明 微量體積 dv =dx dy dz

    純量 微量長度 向量 微量面積 向量 注意:在迪卡兒座標系中,向量場 F 的散度為 ,但這個算式其實是 的內積值,因此數學上才會用類似內積的 符號代表散度。 339
  339. 11.4. 環量與旋度 環量與旋度是用來計算環繞著某個封閉曲線的旋轉力量強度,以下是一個環狀向量場的圖示範例: 340 插圖 10: 環形向量場

  340. 為了衡量向量場的這種旋轉強度,數學家們定義了環量這個概念。 環量 直覺意義: 1. A 是一個向量場 (例如磁場),C 是一條封閉曲線, 是曲線邊緣的切線向量。 2.

    環量和通量一樣,是描述向量場的重要參數,但環量描述的是旋轉的力量總和,而通量描述的是吸 引與排斥的力量總和。 3. 某個區域中的環量不等於零,說明這個區域中的向量場表現出環繞某一點或某一區域旋轉的特性。 為了描述一個向量場 F 在一點附近的環量,將閉合曲線 C 收小,使它包圍面的面積 U 趨於零時,可以 得到一個環量強度 (或稱環量密度) ,這個點環量強度就稱為向量場 F 在該點的旋度。 341
  341. 旋度 直覺意義: 1. F 是一個向量場 (例如磁場),C 是一條極小的封閉曲線,U 是 C 所包圍的面積大小。

    2. 旋度是環量範圍 C 趨近於零的結果,是某一點的環量除以面積的極限值 (環量密度)。 3. 旋度代表被 C 包圍的那一點在方向 上的旋轉強度。 4. 旋度與方向 有關,在不同的方向旋度也不同。 雖然旋度與散度一樣都是個純量,但是旋度卻必須指定方向 才有辦法計算,因此隨著方向 的不 同,得到的旋度也會有所不同。 342
  342. 斯托克定理 (Stokes theorem) – 又稱「旋度定理」 直覺意義: 1. S 是空間中的一個曲面,而 C

    是環繞 S 邊緣的封閉曲線。 2. S 曲面上的旋度總和 ,等於 S 邊緣任一封閉曲線 C 的通量總和 。 證明的想法:在上圖中,S 曲面內方格的向量會互相取消,於是只要計算延著邊緣環繞線 C 的向量內 積總和 ,就可以算出整體的旋量 。 343 插圖 11: 斯托克定理 的適用情況
  343. 11.4.1. 旋度的微分型定義 同樣的、對於旋度而言,也有微分型與積分型的定義方式,其微分型定義如下: 數學上可以證明,上面的微分型定義,與下面的積分型定義,是相等的: 而散度與旋度的定義,可以很好的解釋「電與磁」之間的關係,這個理論就是所謂的馬克斯威方程式。 344

  344. 11.5. 馬克斯威方程式 在電磁學上,有四個重要的物理量,分別是 - 電場 (E)、磁場 (H)、電通量 (D) 與磁通量 (B)

    等,這四 個物理量之間,可形成四條重要的物理學關係式,這四條關係式就是著名的馬克斯威方程式。 符號 對應的物理量 (四個符號均代表向量場) 與其他符號間的關係式 E 電場強度 (Electric field intensity) ; 其中 為介電率 H 磁場強度 (Magnetic field intensity) ; 其中 為導磁率 D 電通量密度 (Electric flux density) B 磁通量密度 (Magnetic flux density) 345
  345. 當初馬克斯威寫下的方程式,由於沒有使用「散度」與「旋度」這樣的算子,因此描述起來較為複雜, 每個方程式都會寫成一組包含好幾個微分方程式的複雜寫法。但是有了上述的數學概念之後,我們就 可以用「散度」與「旋度」這樣的算子,更簡單的描述馬克斯威方程式了。 以下是使用散度與旋度描述的馬克斯威方程式。 定律 微觀公式 (使用散度、旋度) 巨觀公式 (使用通量、環量) 說明

    法拉第定律 磁通量 B 的變化會產生 感應電場 E 安培定律 電流 J 與電通量變化 會產生磁場 H 高斯定律 電荷密度 決定電通量 D 346
  346. 自然定律 進入任一曲面的磁通量一 定等於出去的磁通量 以上四個定律,分別是經由實驗所歸納出來的,這些實驗大部份是由法拉第與安培等人做的,最後再 由馬克斯威綜合之後得到四個方程式的關係。 如果是在相同的介質當中,上述方程式裏的介電率 與導磁率 就會是固定的,此時整個馬克斯威 方程式就可以進一步簡化為下列兩條: 定律

    微觀公式 (在相同的介質中) 說明 法拉第定律 磁場強度 H 的變化會產生感應電場 E 安培定律 電流 J 與電場強度 E 的變化 會產生磁場 H 347
  347. 於是「法拉第定律」與「安培定律」就成了電磁學裏最重要的兩條方程式。 如果將上述相同介質中「法拉第定律」的「散度」與「旋度」等算子 ( ) 給還原,然後再將 三度空間中每個方向的分量都寫出來,那麼上述的 算式就可以改寫為下列向 量場方程式: 同樣的、安培定律 也可以改寫為以下的向量場方程式:

    而上述的這種寫法也就是當初「馬克斯威」所寫的方程式形態,這種型態的方程式經過「黑維塞」用 ( 348
  348. , ) 等算子重新詮釋之後,就成了表格中您所看到的簡潔版本了。 根據上述的馬克斯威方程組,我們可以看到介電率和磁導率是兩個重要的常數,通常介電率用符號 表示,而磁導率用符號 表示。 介電率是介質響應外加電場的極化的衡量值,介電率的測量單位是法拉/公尺(Farad/meter,F/m)。 真空狀態的介電率 (「真空介電常數」) 的數值是

    磁導率是一種材料對一個外加磁場線性反應的磁化程度。磁導率 的單位是亨利每米(H/m),或牛 頓每安培的平方( )。而真空狀態的磁導率為 。 但是、這些方程式對應的物理意義,到底是甚麼呢?讓我們用圖形的方式來解釋。 349
  349. 安培定律: 原始公式: 修正公式: J 是穿過曲面 S 的電流的電流密度,I 是通過曲面 S 的總體電流。

    電流 I 流過會在週圍產生環形磁場 H (與磁通量 B 方向相同),這是 這個公式的意義,磁場 H 的旋度等於(產生該磁 場的)傳導電流密度 J 。 這是 這個算式的意義,此一算式是由安培所發現的, 因此稱為安培定律。 350
  350. 在靜磁學內,上述的安培定律是正確的。但是、出了靜磁學範圍,當電流不穩定的時候,這就不一定 正確了。 這也是為何馬克斯威要修正該公式的原因,請觀察右邊這個連 接電容器的線路,就可以知道這個想法。 在右圖正在充電的過程當中,電流經過 L 曲面時,符合原始安 培定律 這個公式,但是對於 S-L

    這個曲面而 言,並沒有任何電流通過,因此 ,但 是這個區域的磁通量應該不是零,而是與曲面 C 一樣,也就是 ,那這段差距到底應該用甚麼填補呢? 於是馬克斯威認為應該用電通量 來填補,因為充電的過 程當中,R 曲面的電通量是一直上升的。27 27 維基百科 安培定律的條目 中記載:應用流體力學的方法,馬克士威摹想磁場為電介質渦旋(vortex)大海,而位移電流 即為大海內的電極化電流。在他於 1861 年發表的論文《論物理力線》裡面,馬克士威將位移電流項目加入了安培定律。 351
  351. 法拉第定律 微觀公式: 巨觀公式: 法拉第定律的上述公式代表磁場變化 (磁通量變 化) 也會產生電場,所以像發電機就是利用這種 原理,讓線圈在磁鐵當中旋轉,造成磁通量的 變化,因而產生電流 (交流電)。

    352 插圖 12: 發電機:線圈在磁鐵當中旋轉產生電流
  352. 11.6. 波動方程式 以下的向量場微分方程式可以用來描述電磁波的傳遞行為,因此稱為波動方程式 (其中的 E 代表電場, 是個向量場)。 根據上述的波動方程式 ,電磁波的速度為 ,在真空狀態下,電磁波的速度等於

    ,也就是光速,這個現象讓馬 克斯威直覺的推論出「光是一種電磁波」。 那麼、波動方程式是怎麼來的呢? 這個問題的解答,當然是從馬克斯威方程延伸推論而來的,我們只要利用相同介值中的法拉第定律與 安培定律,也就是下列兩條,就可以導出波動方程式了。 353
  353. 定律 微觀公式 (在相同的介質中) 說明 法拉第定律 磁場強度 H 的變化會產生感應電場 E 安培定律

    電流 J 與電場強度 E 的變化 會產生磁場 H 推導:波動方程式 根據上述的法拉第定律與安培定律,可推得下列結果 ; 354
  354. 接著假設電流密度為零 (J=0) ,於是得到 接著根據迪卡兒座標系統中向量場的 curl of curl 定理 , 可得下式

    接著假設電荷密度為零 ,那麼根據 可推論 ,於是得到: 355
  355. 以上這個式子就是波動方程式了。 (其中的 稱為拉普拉斯運算,在三度空間中定義為 ) 接著、我們就可以根據波動方程式推論電磁波的傳遞速度,讓我們用一個範例來看看這個推論: 範例:假設某電場 E 在三度空間中可用函數 描述,其中 ,而

    Q, R 均為 0,那麼那麼請問 c 是多少才會符合 波動方程式的解。 解答:讓我們透過計算波動方程式 的左右兩邊,以便看看 c 應該是多少。 首先看看左邊,根據 E 的函數 ,取 運算可得: 356
  356. 接著看看右邊中的 ,您可以用偏微分算出結果如下: 接著根據波動方程式 ,可以得到下式: 所以可以推論 357

  357. 因此、上述範例中的電場之函數如下: 這代表 E 為一個往 z 軸方向行進的電磁波,其振幅為 A,而頻率為 ,且行進速度為 。 說明:上述電場波動的振幅為

    A,頻率為 是比較容易理解的,學過 sin, cos 等三角函數的人應該可 以輕易理解。 但是為何行進速度為 呢?請看以下的解釋說明: 如果您想像一個海浪,正往右方打去,那麼該海浪的速度為多少呢?一個直覺的看法是看波峰走的距 離,然後除以花費的時間就得到速度。 同樣的,對於 這個波而言,如果在 t 時間波峰在 z,且在 t+dt 這個時間點波峰在 z+dz,那麼我們就可以用 dz/dt 來計算波速。而要保持某點在正弦波上的位置 358
  358. 不變,方法就是用 去抵銷 t 所造成的功效,也就是兩者都在波峰、或者兩者都在波谷的情況。 因此該電磁波的速度就是滿足 的情況,於是我們可以得到: ; 在某個時間 t,位置 z

    處的電場大小為 ; 在經過 dt 時間後,我們看到 向量移動到 z+dz ; 也就是該電場位置從 z 移到了 z+dz ; 於是我們找出 dt 與 dz 的關係式。 ; 也就是速度為 . 而且、我們知道在真空中,介電率 與 代入後,該速度 恰好為光速,這也正是馬克 359
  359. 斯威推論光波為一種電磁波的原因。 360

  360. 附錄 A. 用電腦學數學- WolframAlpha 篇 http://www.wolframalpha.com/ 是由 Wolfram Research, Inc.

    這家公司所設計經營的一個網站, 或許很多人沒聽過這家公司,但如果說起該公司的產品 Mathematica 這個數學軟體,那應該就有很多 人聽過了。 Wolfram Research 公司的總裁史蒂芬·沃爾夫勒姆於 2009 年 3 月宣布了 Wolfram|Alpha 計劃, 該網站於 2009 年 5 月 15 日正式上線。該網站曾在美國 Popular Science 雜誌的投票評選中獲得 2009 年度最偉大的科技創新產品的榮譽。 一進入 WolframAlpha 這個網站,您可能會以為該網站是一個搜尋引擎,因為長得有點像 Google, 只不過界面更漂亮了一些。 361
  361. 362

  362. 如果您還沒用過該網站,請點選 Examples 連結,您會看到下列畫面。 363

  363. 仔細翻閱一下這個些範例,您會發現這個網站的神奇之處,他竟然可以解答 「數學、天文、地理、統計、化學、金融、物理、星象、工程、交通、電腦、....」等等問題。 既然 Wolfram 是 Mathematica 軟體的創造者,想必數學應該是他們的強項,就讓我們來用用看。 用 WolframAlpha 學數學

    當您進入 http://www.wolframalpha.com/examples/Math.html 這個數學領域的範例網頁, 您會看到 WolframAlpha 可以解答的數學問題真的是五花八門,從基本的「加減乘除」到 「微分方程」都有。 WolframAlpha 可以「畫函數曲線圖、做符號微積分、數值微積分、求方程式的解」等等, 由於筆者正在教授微積分的課程,因此就讓我們先用 WolframAlpha 來學學微積分好了。 364
  364. 以下是微分指令「derivative of x^4 sin x」的顯示結果,除了顯示出 的運算結果之外,還顯示了該函數的線圖,與泰勒展開式的前幾項等等,以下是顯示的畫面截圖。 365

  365. 會做微分並不算甚麼,積分行不行呢?答案當然是可以的,以下是筆者輸入的積分範例的結果: integrate e^x sin x dx from x=0 to pi

    366
  366. 最下面顯示了不定積分的原型 。 而最上面則顯示了定積分的結果 。 以上結果是正確的! 367

  367. 解微分方程式 接著筆者輸入 這個電容放電時的微分方程式,結果 WolframAlpha 回應畫 面如下:(最下面的部份顯示了該微分方程的解答為 ,這也是正確答案)。 368

  368. 看來、筆者似乎可以用這個網站來教「微積分、線性代數、機率統計、離散數學」等資訊工程領域的 數學課,應該是沒有問題的了! 補充:在本文預覽版分享出去之後,有朋友提到開放原始碼領域也有一個對應的網站,是用 Python 的 SymPi 建構而成的,而且也可以安裝在自己的電腦上使用,該網站稱為 Mathics ,網址如下: http://www.mathics.org/

    369
  369. 附錄 B. 繪製函數圖的程式 本文描述一個使用 JavaScript / jQuery.flot 繪製函數圖的程式,您可以透過網頁介面輸入函數與範圍之 後利用此程式繪製圖形。 使用範例如右圖所示。

    1. 您可以輸入任何單變數函 數,變數名稱必須是 x,像 是右圖中的 sin(x) 與 cos(x)。 2. 您可以會出割線或切線, 語法是 cut(f, a, dx),其中 f 為某函數,割線的兩個端點 分別為 (a,a+dx) ,如果 dx 很小,那畫出來的割線就差 不多是切線了。 370
  370. 3. 您也可以自行定義函數,像是右圖中的 f=function(x) { return 0.01*pow(x,3); } 這一行,代表 ,語法必須符合 JavaScript

    語言。 程式碼:curve.htm <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <!--[if lte IE 8]><script language="javascript" type="text/javascript" src="../excanvas.min.js"></script><![endif]--> <script language="javascript" type="text/javascript" src="http://people.iola.dk/olau/flot/jquery.js"></script> <script language="javascript" type="text/javascript" src="http://people.iola.dk/olau/flot/jquery.flot.js"></script> </head> <body> <div id="placeholder" style="width:360px;height:240px;"></div> <div> from:<input id="from" type="text" value="-10" size="4"/> to:<input id="to" type="text" value="10" size="4"/> step:<input id="step" type="text" value="0.1" size="4"/> ymin:<input id="ymin" type="text" value="-10" size="4"/> ymax:<input id="ymax" type="text" value="10" size="4"/> </div> 371
  371. <textarea id="shell" cols="60" rows="10"> sin(x) cos(x) </textarea> <script type="text/javascript"> var

    sin=Math.sin; var cos=Math.cos; var tan=Math.tan; var cot=Math.cot; var sec=Math.sec; var csc=Math.csc; var ceil=Math.ceil; var exp=Math.exp; var floor=Math.floor; var log=Math.log; var max=Math.max; var min=Math.min; var pow=Math.pow; var p=Math.pow; var random=Math.random; var round=Math.round; var abs=Math.abs; var sqrt=Math.sqrt; function cut(f, a, dx) { var fa = f(a); var fb = f(a+dx); 372
  372. return function(x) { return fa + (fb-fa)/dx * (x-a); }

    } function ExpCurve(from, to, step) { this.from = from; this.to = to; this.step = step; this.plotsList = []; this.curve = function(code, ymin, ymax) { var plots = []; for (var x = this.from; x < this.to; x += this.step) { var y = eval(code); if (x > this.from && abs(y-ylast)/this.step > 1000.0) // 斜率太大,近乎垂直,中斷處不畫 plots.push(null); plots.push([x, y]); if (y < ymin-100 || y > ymax+100) // 超出範圍,超出點不畫 plots.push(null); ylast = y; } return { label: code, data: plots }; } this.curveList = function(codeList, ymin, ymax) { var size=this.plotsList.length; for (var i=0; i<codeList.length; i++) { if (codeList[i].indexOf("=") >=0) { 373
  373. eval(codeList[i]); this.plotsList[size+i] = {}; } else this.plotsList[size+i] = this.curve(codeList[i], ymin,

    ymax); } return this.plotsList; } return this; } function drawCurveList(target, codeList, from, to, ymin, ymax, step) { eval("fx = function(x) { return x; }"); var c = new ExpCurve(from, to, step); $.plot($(target), c.curveList(codeList, ymin, ymax), { yaxis: { min: ymin, max: ymax }, series: { lines: { show: true }, points: { show: false }, bars: { show: false, barWidth: step }, } }); return c; } function drawGraph() { var from = eval($("#from").val()); 374
  374. var to = eval($("#to").val()); var ymin = eval($("#ymin").val()); var ymax

    = eval($("#ymax").val()); var step = eval($("#step").val()); var codeList = $("#shell").val().split("\n"); return drawCurveList("#placeholder", codeList, from, to, ymin, ymax, step); } function keyEnter(event) { if (event.which == 13) { // event.preventDefault(); drawGraph(); } } $(drawGraph); $("#shell").keypress(keyEnter); $("#from").keypress(keyEnter); $("#to").keypress(keyEnter); $("#step").keypress(keyEnter); </script> </body> </html> 375