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

微積分

Avatar for 陳鍾誠 陳鍾誠
April 14, 2022

 微積分

Avatar for 陳鍾誠

陳鍾誠

April 14, 2022

More Decks by 陳鍾誠

Other Decks in Education

Transcript

  1. 1

  2. 授權聲明 本書最主要的內容來自 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
  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. 第0章 數學基礎1 0.1. 集合 (Set) 離散數學的基礎是「整數類」(integer) 的集合,而連續數學的基礎則是「實數類」(real number) 的集合, 因此要學習微積分我們得從「實數類」的集合開始,就讓我們先來看看何謂集合吧!

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

    (正實數)、 • 包含 0 的正數集合: • 開集合: • 閉集合: 離散數學的研究對象,通常以整數類的集合為主,像是 {0, 1}, {0, 1, 2, …, n}, 整數 Z 等等。而連續數 學的研究對象,則通常以實數類的集合為主,像是 R, C 等等。 0.1.1. 聯集、交集、差集 (Union, Intersection and Difference) 集合的基本運算有聯集 (Union)、交集 (Intersection)、差集 (Difference) 等,聯集是將兩者聯合起來, 14
  13. 集合透過這些基本運算,集合可以形成的一個代數空間2,像是 R 就是一個實數加、減、乘、除運算的 代數空間 (Algebraic Space),因為「實數 (+-*/) 實數」仍然會是一個實數,所以實數就形成了加減乘除 的代數空間。 對整數而言,加法、減法、乘法的結果都是整數,所以對這些運算而言整數是其代數空間,但是對於

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

    • 交換性 (commutative) :交集與聯集運算具有交換性 ◦ • 結合性 (associative):交集與聯集運算具有結合性 ◦ –所以可以直接寫成 ◦ –所以可以直接寫成 • 分配性 (distributive): ◦ 聯集對交集運算具有分配性: ◦ 交集對聯集運算具有分配性: 18
  15. 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
  16. 讓我們將「場」以代數的數學形式寫出來,讀者應該能更清楚理解場的定義: (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
  17. 是「實數空間中的加與乘」之代數 (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
  18. 0.3. 函數 (Function) 函數可以分為「離散」與「連續」兩類,離散函數架構在「離散型」集合 ({0, 1} 或整數 Z) 之上,而 連續函數則架構在連續型集合

    (實數 R 或複數 C) 之上 以下是一些連續函數的範例,這些函數我們在國中數學時就曾經見過了。 • • • 離散型的函數或許有些人比較不常見,其表示方法通常是用遞迴或加總的方式表現的,以下是幾個離 散函數的範例。 • f(n) = f(n-1) + f(n-2) ; 其中 f(0)=f(1)=1 22
  19. • 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
  20. 當我們想表達定義域中某個元素 x 的函數值時,可以用下列表示法: 或 或 如果一個函數總是將定義域中的值應設到其自身 f(x) = x,那這個函數就稱為單位函數 (identity

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

    地板函數: • 天花板函數: 0.3.2. 單射(injective)、滿射(surjective)與雙射 (bijective) 在數學專用的英文術語當中,有幾個以 -jectives 結尾的詞彙都代表著函數映射的概念,包含 injective (單射), surjective (滿射), bijective (雙射),但意義相當不同,請務必仔細區別。 25
  22. 0.3.3. 反映射與多值函數 (Inverse and Multivalued Function) 如果函數的一個值只對應到一個值,那稱為一對一函數 (one-to-one),有時函數的一個值會對應到多 個值,這種函數稱為一對多函數 (many-to-one)。如果多個值對應到一個值,這種函數稱為多對一函

    數 (one-to-many)。 如果 則可以用 代表其反映射。如果 f 是一對一對映函數,則反映射也會 是一對一對映函數。 如果 f 是一對一對映函數,則映射後再反映射的結果將會是單位函數 。也就是 27
  23. 如果我們只取 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
  24. 這些希臘字母的念法有英文版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
  25. 第1章 微積分簡介 (Introducton to Calculus) 1.1. 微積分與電資領域 (Calculus and Computer)

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

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

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

    性元件的電路時,就必須要用到「微分方程式」 這個工程數學裏面最重要的領域。 另外,在電磁學的領域,由於在電磁效應當中的「電」與「磁」可以說是密不可分的兩種「場」 (field),如何用數學描述這兩種「場」,並且理解電與磁之間的交互作用,則需要高深的微積分理論, 這部分會用到「向量微積分」領域當中的「線積分、內積、外積、張量、梯度、旋度、散度」等等數 學,想學會這個部份的理論也非得先學會微積分不可。 「千里之行,始於足下」,現在就讓我們開始進入微積分的數學領域吧! 38
  29. 接著讓我們來看看不連續的函數,像是 ceil(x) 天花板函數 (數學符號為 ) 與地板函數 floor(x) (數 學符號為 )

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

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

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

    k*sin(x) 表示,您可看到 sin 的波的波長沒有變化,但是振幅卻變化了。震盪的幅度與 k 的大小有關,k 越大震盪幅度就越大, k 越小震盪幅度就越小。 上方右圖中顯示的是調頻的情況,可用 sin(k x) 表示,您可以看到當 k 越大時震盪頻率越大,震盪速 度就會越快,也就是震盪週期 (頻率的倒數) 變得越小了。 53
  33. 接著讓我們來看一組複雜一點的圖形,以下兩個圖形都是 sin(1/x) 的圖形,只是顯示的範圍與尺度不太 相同,左圖中的範圍是 x 位於 (-1, 1) 之間,而右圖則是 x

    在 -0.1 到 0.1 之間的情況,雖然我們在右 圖中用非常細微的尺度去觀察,但其波形仍然持續且密集的震盪,不論我們將尺度放到多麼的微小,0 點附近的震盪仍然會非常密集。 55
  34. 接著讓我們看看微分的圖型概念,在以下的 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
  35. 1.4.2. 雙變數函數的積分 – 計算體積 當我們將微積分的自變數擴充為兩個 (通常用 x, y) 表示,此時函 數就可以用

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

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

    這個數字,例如 我們代入 3 到上式中,就可以得到 這個數字,這個數字代表 f(x) 在 x=3 這一個點上的切線斜 率,正式的名稱為「導數」(derivative)。 換句話說, 在 a 點的值 就是 f(x) 在 a 點的切線斜率,稱為 f(x) 在 a 點的導數。而 這個函數就稱為函數 的微分式。 64
  38. 2.2. 極限 (Limits) 2.2.1. 函數的極限 (Limits of Function) 極限是整個微積分的重要核心概念,但這個慨念其實相當抽象,以致於很多古代的中外哲學家對極限 的思考型成了一些似是而非的「詭論」,像是中國道家的莊子

    11 、以及名家的惠施 12 ,就分別提出 了一些有趣的詭論,如果您沒學過微積分,還真的可能被這些詭論給搞得一頭霧水呢? 11 「一尺之捶、日取其半、萬世不竭」 – 莊子天下篇 12 「飛鳥之景,未嘗動也」– 惠施 68
  39. 另外、在西洋的哲學史上,也有很多關於極限的詭論,其中最著名的大概就是「芝諾悖論」了,像是 「阿基里斯永遠追不上烏龜」 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
  40. 極限的定義 如果在 x 趨近於 a 時 f(x) 可以「任意接近」 b ,那我們就說

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

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

    函數在 x=1 這個點上的極限不存在。 另外,有時某些函數包含孤立的點,舉例而言,像是下列函數就只有在整數點為 1,其他部分都是 0。 74
  43. 範例:請證明 的極限不存在。 解答:假如 存在,我們就可以用某實數 b 代表 的極限。 但是 的情況是不可能成立的。 不論

    多麼小,只要 ,那麼 代表 ,也就是 。 因為 時 且 時 。 1 與 2 之間的距離為 1,不論 b 怎麼取,都不可能同時滿足 與 。 習題:請證明 的極限不存在。 76
  44. 2.3. 連續 (Continuous) 連續的定義: 如果函數 f(x) 在 x=c 這點的極值 ,則我們說函數

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

    (jump discontinuity)。右端的圖形顯示 1/x 這個函數在 0 這一點有無窮大的極值,這種情 況稱為無限不連續性 (infinite discontinuity)。 80
  46. 連續函數的特性:如果函數 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
  47. f(x) 的導函數 ,又可以寫成 。 在上圖中,當 趨近於 0 時,極限式 可以寫成 更簡單的

    或者 ,這個函數 就稱為 f(x) 的導函數 (或稱微分式),讓我們將這些 數學整理成一個算式如下。 82
  48. 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
  49. 2.5. 微分 假使一個函數 f(x) 在 a 點的導數存在 (derivative exists),則我們說該函數在 a

    點可微分(differentiable) 。 請注意:可微分必定連續,但連續並不一定可微分 (例如:左右極限不相同的「角形函數」,就是連續 但不可微分的)。 2.5.1. 微分法則 函數類型 函數 導函數 說明與範例 常數 次方 88
  50. 2.5.3. 微分的計算 範例:對於函數 而言,請計算 f(x) 在 x = 1 上的導數。

    解答: 範例:我們也可以計算 在任何一點的導數 (微分式) 93
  51. 但是,由於當 在逼近 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
  52. 2.5.5. 鏈鎖規則的運用 (Chain Rule) 根據鏈鎖規則,假如 y=f(u) 且 u = f(x),則

    服從下列法則,這在計算複合函數的時候很有用。 範例:計算 的微分式 證明:我們可以利用鏈鎖規則計算 的微分函數,只要使用 這個算式就行了。 範例:計算 的微分式 證明:我們可以利用鏈鎖規則計算 f(x) 的微分函數,首先讓 ,則可得下列算式。 104
  53. 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
  54. 均值定理 (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
  55. 均值定理擴展型 (Generalized Theorem of the Mean) 如果 f(x) 在 [a,b]

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

    時,可以用羅必達法則求出不定型 (indeterminate) 或 的微分式。 羅必達法則: 使用條件:必須在 或 的情況下才能使用,且 f(x) 與 g(x) 在某個包含 a 的開區間中可微分 (a 除外),且 110
  57. 範例:求 由於上式在 時為 0/0 的不定式,所以可用羅必達法則 由於還是 0/0 的不定式,所以再用一次羅必達法則 我們也可以在 與

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

    式後使用羅必達法則 於是我們可以用 將兩邊的 ln 拿掉,得到結果 。 2.8. 隱函數的微分 (Implicit Differentiation) 有時一個變數不容易表示成另一個變數的函數,也就是 y 很難表示為 f(x),但這兩個變數之間存在某 種關係方程式 (例如 f(x,y)=0),此時就可以採用隱函數的微分法,以計算導函數。 範例:請根據隱等式 (implicit equation) 求出 解答:假如不使用隱函數微分,那麼我們可以將 y 表示為 x 的函數如下 118
  59. 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
  60. 例如下圖中的 在 x=0 點時有極小值, 在 x=0 點時有極大值,但 在 x=0 點時雖然微

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

    2. 在經過 a 時從正轉負,那就有相對極大值。 3. 在經過 a 時沒有變符號,那就不是極值點。 我們也可以進一步二階導數 來測試極點的特性,如果 且 1. 時為凹向下,有相對極大值。 2. 時為凹向上,有相對極小值。 3. 時測試失效,無法判定是否有極值。 122
  62. 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
  63. 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
  64. 第3章 積分 3.1. 積分符號 當我們想計算一個函數 f(x) 與 x 軸之間所圍出的面積時,可以採用逼近的方法, 如右圖所示。如果我們用長條圖的面積加總代表面積,那麼將會有一些誤差,但

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

    區間的積分值, 也就是其面積大小,這時整個級數可以撰寫如下。。 這種上下限都確定的積分方式就稱為定積分 (definite integral)。 數值積分 在黎曼和中沒有規定每個 都要一樣,這樣的定義方式雖然比較彈性,但卻不容易寫為程式, 如果我們規定所有 都一樣是 ,於是就可以將黎曼和的極限改寫為下列算式。 126
  66. 3.2. 定積分 (Definite Integral) 定積分 若 為閉區間 的一個分割,如果 代表所有分割中長度最大者,也就 是

    則函數 f(x) 在 [a,b] 區間的定積分定義如下: 3.2.1. 定積分的特性 (Properties) 特性 數學式 129
  67. 或者也可以寫為存在一個 滿足 3.3. 微積分基本定理 微積分基本定理 假如我們讓定積分的上界 b 成為一個變數,那麼積分函數 F(x) 可以寫為如下的積分式:

    那麼 F'(x) 將會是 f(x),如下所示,這個定理稱為微積分基本定理,代表了微分與積分互為反運算 (非常重要)。 131
  68. 事實上,當我們將一個函數 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
  69. 3.4.1. 不定積分的特性 特性 數學式 常數乘法 函數相加 線性組合 3.4.2. 積分值定理 (integral

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

    間的任意反導函數,則 說明:由於 F 是 f 的反導函數,代表 ,所以 ,如 果我們將 b= a 代入,那麼會得到下列算式 138
  71. 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
  72. 這樣只會讓積分越來越複雜,無法得到正確的結果。 所以選用時必須有技巧,其技巧為:1. 選擇讓 u' 比 u 簡單方案。 2. 選擇 dv

    在計算積分 v 時不會變 複雜的。 3.5.3. 部分分式 (Partial Fractions) 部分分式:對於如 的函數除法形式而言,可以改寫成以下形式: 其中 為常數,如下算式所示 147
  73. 3.6. 瑕積分 (Improper Integral) 瑕積分 假如 f(x) 的積分範圍中有不連續的斷點,這種積分稱為瑕積分 (有瑕疵的積分) 假如

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

    點不存在 (負無窮大),因此我們可以利用瑕積分搭配羅必達法則進行計算: 155
  75. 如果 a < 0 則在 0 點會有不連續的情況,首先我門假設 上述極限只在 a >

    -1 時存在。接著考慮 a = -1 的情況 上述極限不存在,所以我們可以得到: 157
  76. 上述極限不存在。所以我們得到下列結果: 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
  77. #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
  78. 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
  79. 第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
  80. 有的,因為我們現在已經學會了微分,所以我們知道 f 函數在 3 這點的斜率 ,所以我們可以利 用斜率進行 f 函數在 x

    點附近的估計,其估計方法如下: 這樣,我們就可以用 來進行估計了,這個估計感覺比直接用 f(3) 好。 既然我們可以用一次微分 來估計,那麼為何不能用二次微分 來估計呢?那三次微分 呢? 如果我們一直用到 n 次微分,然後讓 n 趨近無窮大,那會如何呢?這樣我們是不是可以完全重建 f(x) 函數,只要我們知道其中一個點就可以了呢? 4.2. 泰勒展開式 以上的想法其實就是泰勒展開式的由來,讓我們先來看看泰勒展開式長得如何? 169
  81. 於是、根據上述最後一個通用算式,若在 x 趨近於 0 時,可捨棄具有 x 的項目(因為 x 非常接近 0,

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

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

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

    由於 cos(0) = 1,sin(0) = 0,所以奇數項在 x=0 點時會消失,只留下偶數項,所以得到泰勒展開式如下: 175
  85. 如果我們用泰勒均值定理取到第 20 項,那麼可得下列算式: 由於 ,所以如果我們取到第 20 項的剩餘項 ,此剩餘 項在 x<6

    時都很小,幾乎可以忽略也不會影響線型。(但是當 x>7 時會開始暴增,此時就無法忽略不 計了) 177
  86. 4.3. 尤拉數 e – 微積分的單位元素 尤拉數 e 是數學中,與圓周率幾乎同樣重要的一個數字,然而、尤拉數卻並沒有像圓周率這樣清楚的 直覺意義,而且其用途與表現非常多樣化,這使得一般學生無法掌握到尤拉數的意義,本小節將列出 尤拉數

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

    定理: 說明: 尤拉函數 是微分運算的單位元素,也就是該函素的微分就是他本身。(這種特性有點像線性代數 181
  88. 所以如果要用無窮級數表示 e,那只要用 x=1 代入上式就可以得到下列結果。 4.3.3. 尤拉複函數 –e 與三角函數的關連 傅立葉級數其實就是一種泰勒級數,是尤拉數 e

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

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

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

    與 cos(x) 的泰勒級數寫出來,就會發現下列泰勒展開式: 如果您認真檢查以上三個算式,並且仔細比較,就會發現以下公式被證明完畢了。 188
  92. 因此、若我們允許系數 包含虛數,則我們可將 f(x) 寫成如下的自然指數 (其實本質上還是 cos(n x) 與 sin(n x)

    的組合,只是用 將兩者合體,這樣寫起來就更短了)。 (Equation 4.3) (Equation 4.3) 被稱為傅立葉級數,其實就是將函數分解為三角函數 sin 與 cos 總合的一種函數逼近法 (如 (Equation 4.2) 所示)。 其中 與 的關係如下: 190
  93. 第5章 積分與函數轉換 5.1. 傅立葉轉換 (Fourier Transform) 延續前一章的主題,且讓我們先回顧一下傅立葉級數,然後在讓我們再進一步探討傅立葉轉換,這個 轉換可以用來計算出傅立葉級數的係數。 5.1.1. 傅立葉級數與轉換

    回顧一下上一章有關傅立葉級數的定義方法,乃是用三角函數 sin(nx) 與 cos(nx) 逼近一個函數 f(x), 然後三角函數又可以透過虛數 i 掛勾到 上頭 ( ),於是我們可以 將傅立葉級數連寫成下列形式。 192
  94. 如果我們真的將 改成積分,那麼我們將得到 ,此時 n 不再是一個 整數,而是實數了,所以我們將 改寫為實函數 F(n),於是就得到了 這個 積分式。如果我們再將

    n 的範圍從正數延伸到整個實數空間 (包含負數),那就可以再度將積分式改寫 為 ,這個積分是被稱為逆向傅立葉轉換 (或稱傅立葉反轉換),因為他將函數 f(x) 轉換到其傅立葉對偶函數 F(n) 上。 如果我們將這個算式套回 (Equation 5.1),則我們可以在整個算式的結尾再補上一筆。 194
  95. 正轉換 反轉換 (逆向轉換) 傅立葉轉換 ? 實部 ? 虛部 ? 接下來我們就得問一個問題了,既然反轉換已經有了,那麼正轉換到底是甚麼呢?

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

    正轉換 反轉換 (逆向轉換) 離散傅立 葉轉換 雖然以上的推論看起來都很合理,但是並非嚴格的數學證明,真正的數學證明必須像微積分基本定理 那樣,證明 f(x) 經正轉換成 F(n) 之後,再用逆轉換時就會回到原函數 f(x),這樣才能證明兩者互為反 運算。 198
  97. 然後我們再根據列的權重進行加總,於是就得到了列方向的累加值 。 於是我們將代表行加總的 f(x) 函數轉換到了代表列加總的 F(n) 函數,順利的從代表「行」的領域 x 轉換到了代表「列」的領域 n

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

    部份,當 n 越大時,變化越快且頻率越高,因此、 n 大的部分代表了影像快速的細微變化,這些細微 變化常是人眼的視覺所自動忽略的,因此、可以將高頻的部分省掉,留下低頻的部份,影像看起來仍 然會非常接近原 來的影像,這就是電腦進行影像壓縮所用的方法。 傅立葉轉換是將時域中的一個函數 f(t) 轉換到頻域中的一個函數 上,方法如同前述的想法, 利用 做為中介以進行分散與加總的動作,以完成時域與頻域之間函數的轉換動作。 在圖形上,傅立葉正轉換是一個在 t 軸上積分的方式,而逆轉換則沿著 軸上的積分方式,是多變 數或向量積分的一個案例。(但是 軸是複數,又可以分解成 cos 與 sin 兩個分量) 204
  99. 5.1.3. 傅立葉轉換的幾種不同寫法 在很多書籍或文章中,您會看到不同的傅立葉轉換寫法,其中最大的不同在於歸一化系數有所差異, 以下我們列出其中幾個常見的版本,以便讓讀者在看到這些不同寫法時,不至於感到迷惑。 由於歸一化系數只要讓 F 與 f 正逆轉換後回到原函數,也就是正轉換 F

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

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

    對稱型 5.1.4. 轉換 您注意到了嗎?我們用三角函數的「微分」導出了「傅立葉級數」,然後再用「傅立葉積分」算出 「傅立葉級數」中的系數。 從「微分與積分」互為反運算的想法上,我們可以猜測一件事情,那就是「傅立葉級數」與「傅立葉 積分」之間也可以互相轉換,就像以下微積分基本定理當中所表現的「微分後在積分」與「積分後再 微分」都會回到原本函數一樣。 208
  102. 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
  103. } } } // 離散餘弦反變換 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
  104. 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
  105. 數值 (real part),然後用 f(x).i 代表該函數值的虛部數值 (imaginary part)17。 傅立葉轉換寫成 表達形式時會相對簡單, 正轉換 離散傅立

    葉轉換 實部 虛部 17 說明:也就是若 f(x) = a+ i b,那麼 a 就是 f(x).r,b 就是 f(x).i 。 213
  106. 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
  107. // 複數相乘 (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
  108. // 複數陣列傾印 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
  109. } // 慢速傅立葉反轉換 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
  110. 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
  111. 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
  112. 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
  113. // 慢速傅立葉反轉換 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
  114. 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
  115. 系數的編碼與壓縮,如此通常可以去除或減少取樣位元數,如此就達到了壓縮的目 的。 JPEG 並不是直接對整張影像進行餘弦轉換,而是將整張影像分割成 32*32 個點的小塊,然後對每個小 塊進行 cosine transform 後再壓縮。

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

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

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

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

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

    ,然後兩邊積分。 得 為此方程式之通解。 然後將 y(1) = 0 代入,得 ,所以得到 ,於是得到 為此方程式之特 解。 229
  121. 6.3. 齊次常系數微分方程式 齊次常系數微分方程式 (Homogeneous Coefficient Differential Equations) 可寫成通式如下: 其中 P(x,

    y) 與 Q(x, y) 均為 n 階齊次常系數函數,其解法可此函數轉換為分離變數方程式,如下所示: 然後令 ,代入得 ,接著再用分離變數法可得 233
  122. 6.4. 應用:電子電路分析 元件 數學式 電阻 V = I R 電流

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

    電容的效果:根據 Q = C V,兩邊 微分得 ,所以電 流 I 是與 V 的變化率同步的,也 就是 I 與「V 的斜率」成正比,就 像 一樣,會造 成 V 相位超前 I 達 的情況。 239 插圖 2: 電阻對波形相位的影響 插圖 3: 電容對波形相位的影響
  124. 6.4.1. RC 電路 (一階) RC 串聯電路的暫態響應 (充放電時的反應) 一個最簡單的 RC 電路是由一個電阻器和一個電容器串聯組成

    的,如右圖所示。 當我們外加直流電源 V 伏特對 RC 電路的電容充電時,由於電子 無法穿過電容,因此流過電阻的 電流全數流入了電容,因此可得 微分方程式 241 插圖 5: RC 電路的示意圖 插圖 6: RC 電路對電容充電時的情況
  125. 第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
  126. 由於 微積分的單位元數,是令 D 代表微分運算,I 代表積分運算,則 。微分與積分的 單位元素都是 ,也就是 , ,根據鏈索法則,可得

    。 如果令 ,則 就變成了 ,若令 , 就變成了 , 這就是為何拉式轉換採用 與 作為轉換對的原因,這有點像線性代數中的特徵值。 拉普拉斯轉換的基本想法是「讓函數的微分運算變成像基礎數學中的多項式運算」,這個想法的實現, 所依賴的是以下這些拉氏轉換的基本性質。(這些性質可以稱為時域微分特性) ... 以下是這些性質的證明: 246
  127. 拉普拉斯轉換 傅立葉轉換 事實上,在傅立葉轉換當中,我們更常將 x 寫為 t (代表時間),n 寫為 (代表週期)。 拉普拉斯轉換

    傅立葉轉換 在這樣的直覺想法中,時域中的一個點用 t 表示,在頻域中的一個點用 表示。 249
  128. 那麼,拉普拉斯轉換又有何意義呢?事實上,只要讓 並放寬 t 的積分範圍到整個實數軸,則 拉式轉換 就變成了傅立葉轉換 。 當我們將 當中的虛數部分擴展,變成 時,如果

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

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

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

    5. 沒有拉普拉斯轉換,因為其積分會發散 (0 點處為無限大)。 7.4. 拉氏變換的性質 性質 數學式 線性疊加 時域微分 -單邊拉氏變換 254
  132. 單位脈衝函數 (Unit Impulse Function):又稱 Dirac Delta Function,是只有在 0 有值的函數,其定義如下 但是單位脈衝函數是一個本質為離散型的函數,這對微

    積分這種連續領域的數學會是難以處理的,因此在連續 領域,通常我們用以下函數來逼近單位脈衝函數,迪拉 克函數如下所示: 261
  133. 原函數 轉換後 收斂區域 說明 1 all s 脈衝函數 轉換後變成一個水平面函數 1,這樣好像拉氏轉換會將直的轉成橫的?

    ,此時拉氏轉換會 將位於 的脈衝函數轉為一個山形的函數。 22 s > 0 位於 0 的步階函數被轉換成斜坡函數 s > 0 位於 的步階函數被轉換成山形函數 22 注意:表中的 u(t) 其實都可以去掉,改寫為 1,因為拉氏轉換從 0 才開始積分,負的部分是不管的,所以 u(t) 與 f(t) = 1 的拉氏轉換都是相同的 (所以像 可以寫為 t 就好了,而 可以寫為 就好了。 263
  134. 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
  135. 脈衝函數 轉換後變成一個水平面函數 1,這樣好像拉氏轉換會將直的轉成橫的?其實不然,當我 們再看規則 ,此時拉氏轉換會將位於 的脈衝函數轉為一個山形的函數。 接著再看位於 0 的步階函數又被轉換成斜坡函數 ,然後再看位於

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

    (這個引理將不會在此進行證明,但您可以將 h 取得很小用電腦算算看) 266
  137. 拉式轉換就變成了離散版的 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
  138. |z| < 1 s > 0 s > 0 |z|

    > 1 |z| < 1 |z| > |a| 277
  139. 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
  140. 第8章 多變數微分 8.1. 多變數函數 定義:多變數函數 多變數函數是一個從 映射到 R 的函數,可以寫成 ,換言之對於每個實數值序

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

    f 在 點的極限 為 L。 為了方便起見,我們通常將多變數函數的輸入視為一個向量,以 表示,如此, 我們就可以將上述極限式改寫如下。 對於多變數函數而言,其極限的性質與單變數函數時類似, 280
  142. 範例:求 在 (x,y) = (1, 2) 點上對 x 的偏導數。 解答:

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

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

    偏微分 代表連續對 x 進行兩次偏微分 代表連續對 y 進行兩次偏微分 定理:混合導數定理 若 f 為連續且可偏微分,則 284
  145. 8.4. 鏈鎖規則 (Chain Rule) 定理:雙變數鏈鎖規則 z=f(x,y) 為連續且可微分,且 x = x(t),

    y=y(t) 也是可微分函數,則 w 對 t 的微分滿足下列鏈鎖規則: 範例:給定 ,其中 且 ,請計算 與 。 解答: 286
  146. 一旦求出 λ 的值,將其套入下式,就可求出無約束極值和極值所對應的點。 新方程 在達到極值時與 相等,因為 達到極值時 總等於零。 由於有限制條件 ,所以光是利用微分

    的條件去尋找函數的極值是不正 確的,因為找到有極值的點很可能不滿足 這樣的限制條件,此時就可以用 Lagrange 乘 子法來求取極值。 Lagrange 乘子法的想法是,假如我們將 g(x,y) 的等高線圖畫出,那麼 f(x,y) 的極值會出現在與 g(x,y) 斜率相同 (平行) 的點上 (因為如果不是平行,那 f 就可再增加,直到平行為止),如下圖所示。 288
  147. 舉例而言,位於三度空間中 (x=1, y=2, z=1) 的這個點,就可以表示成 (1,2,1) 這個向量。 向量之間可以作加減運算,也可以對常數作加減乘除,於是可以形成一些代數規則,如下所示: 加法特性 代數法則

    乘法特性 代數法則 封閉性 仍然是個向量 向量分配律 結合性 乘法結合律 單位元素 常數分配律 反元素 長度倍數 交換律 三角不等式 由於 向量與向量之間的運算,除了加減法之外,還有類似「乘法」的「內積與外積」,以下是內積的定義: 303
  148. 外積 (向量積) 定義: 外積的計算比內積複雜,舉例而言,兩個 三維向量的外積,可以寫成如下的行列式: 由於 i, j, k 代表

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

    垂直,則 垂直最強 若 與 垂直,則 同向最強 同向最弱 若 與 同向,則 交換律 負交換律 分配律 分配律 常數結合律 常數結合律 柯西不等式 拉格朗日式 純量三重積 向量三重積 306
  150. 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
  151. 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
  152. f,可以寫成 所以以上的範例 也可以改寫成 這種形式。 10.3.3. 向量函數的導數 假如空間中的點 P ,例如 (x,y,z)

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

    t (時間), 或者極座標的距離 (r) 所 所決定。此時我們就可以將點 P 寫成這些自變數的函數 , 或者寫 成 。 然後、我們就可以定義向量函數的偏導數慨念了,例如 f 對 t 的偏導數為: 也可以寫成 317
  154. 那麼、方向導數是甚麼意思呢?以下是方向導數的定義: 定義:方向導數 f 在某點 P 依向量 之方向的變化率,稱為 f 在 P

    沿 方向的方向導數。 方向導數與梯度兩者之間是有關係的,簡單來說、梯度是增加量最大的方向導數,原因如下: 由於 cos 必然小於 1,因此 必然 小於 。 接著、如果我們將多為空間中的曲面函數 f(P) 的每個點都取梯度,形成一個梯度函數,那麼該梯度函 數將會是一個向量函數 v(P)。 其中的函數 f(P) 在物理學中對應到「勢能」,而 v(P) 則是物體在該點所受到力的向量。 319
  155. 向量場的線積分 定義: 向量場的線積分是沿著某條線前進,對將向 量場位於該線上的向量 (藍線) 與線的方向 (紅線) 作內積,這個內積的値會形成下半部 的那條綠色積分線,該綠色區域的面積就是 這個線積分的積分値。

    上述圖形來自維基百科,事實上該圖為一個 動畫,若點選下列這個動畫連結,您可以更 清楚的看到線積分的概念。 http://zh.wikipedia.org/wiki/File:Line_integral_of_vector_field.gif 322
  156. 向量場的面積分 定義: 向量場的面積分是對某個曲面 S 進行向量 強度的加總,但由於向量與表面間不見得垂 直,因此必須考慮角度問題,所以要計算 S 的表面法向量與 F

    的場向量之間的內積, 然後進行積分加總動作。 但是、如果我們考慮的是表面的漩渦場,那 麼就可以用外積的方式去計算旋渦強度與方 向,這樣就變成在旋渦部份先以外積計算出 旋渦法向量 ,然後再與 S 表面的法向量進行內積後積分加總,於是 就得到上述公式。 324
  157. 3. 向量場 A 與整個曲面 S 的法向量內積總和,即是通量。 4. 通量代表通過曲面 S 表面的向量內積總和。

    5. 通量大於零 (通量 > 0) 代表有向外發射的傾向。 6. 通量小於零 (通量 < 0) 代表有向內匯集的傾向。 假如 S 是一個封閉曲面,那麼我們通常會用以下的環狀積分來代表這種封閉的情況。 對於電場而言 ,通常我們在意的是環狀曲面的通量,因此可以用上述環狀積分符號 來表示此種情 況。 通量的概念不只適用於一個粒子產生的電場,而是任何的電場都可以適用的。例如以下是兩個粒子所 產生的電場,其中圖 (a) 是兩個負電粒子所產生的電場,所以如果在兩者之外定義一個封閉曲面,那麼 331
  158. 4. 散度是發散點或內聚點的衡量值。 5. 發散點箭頭向外散射(散度 > 0)。 6. 內聚點箭頭向內聚射 (散度 <

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

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

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

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

    純量 微量長度 向量 微量面積 向量 注意:在迪卡兒座標系中,向量場 F 的散度為 ,但這個算式其實是 的內積值,因此數學上才會用類似內積的 符號代表散度。 339
  163. 為了衡量向量場的這種旋轉強度,數學家們定義了環量這個概念。 環量 直覺意義: 1. A 是一個向量場 (例如磁場),C 是一條封閉曲線, 是曲線邊緣的切線向量。 2.

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

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

    是環繞 S 邊緣的封閉曲線。 2. S 曲面上的旋度總和 ,等於 S 邊緣任一封閉曲線 C 的通量總和 。 證明的想法:在上圖中,S 曲面內方格的向量會互相取消,於是只要計算延著邊緣環繞線 C 的向量內 積總和 ,就可以算出整體的旋量 。 343 插圖 11: 斯托克定理 的適用情況
  166. 11.5. 馬克斯威方程式 在電磁學上,有四個重要的物理量,分別是 - 電場 (E)、磁場 (H)、電通量 (D) 與磁通量 (B)

    等,這四 個物理量之間,可形成四條重要的物理學關係式,這四條關係式就是著名的馬克斯威方程式。 符號 對應的物理量 (四個符號均代表向量場) 與其他符號間的關係式 E 電場強度 (Electric field intensity) ; 其中 為介電率 H 磁場強度 (Magnetic field intensity) ; 其中 為導磁率 D 電通量密度 (Electric flux density) B 磁通量密度 (Magnetic flux density) 345
  167. , ) 等算子重新詮釋之後,就成了表格中您所看到的簡潔版本了。 根據上述的馬克斯威方程組,我們可以看到介電率和磁導率是兩個重要的常數,通常介電率用符號 表示,而磁導率用符號 表示。 介電率是介質響應外加電場的極化的衡量值,介電率的測量單位是法拉/公尺(Farad/meter,F/m)。 真空狀態的介電率 (「真空介電常數」) 的數值是

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

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

    這個曲面而 言,並沒有任何電流通過,因此 ,但 是這個區域的磁通量應該不是零,而是與曲面 C 一樣,也就是 ,那這段差距到底應該用甚麼填補呢? 於是馬克斯威認為應該用電通量 來填補,因為充電的過 程當中,R 曲面的電通量是一直上升的。27 27 維基百科 安培定律的條目 中記載:應用流體力學的方法,馬克士威摹想磁場為電介質渦旋(vortex)大海,而位移電流 即為大海內的電極化電流。在他於 1861 年發表的論文《論物理力線》裡面,馬克士威將位移電流項目加入了安培定律。 351
  170. 11.6. 波動方程式 以下的向量場微分方程式可以用來描述電磁波的傳遞行為,因此稱為波動方程式 (其中的 E 代表電場, 是個向量場)。 根據上述的波動方程式 ,電磁波的速度為 ,在真空狀態下,電磁波的速度等於

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

    電流 J 與電場強度 E 的變化 會產生磁場 H 推導:波動方程式 根據上述的法拉第定律與安培定律,可推得下列結果 ; 354
  172. 以上這個式子就是波動方程式了。 (其中的 稱為拉普拉斯運算,在三度空間中定義為 ) 接著、我們就可以根據波動方程式推論電磁波的傳遞速度,讓我們用一個範例來看看這個推論: 範例:假設某電場 E 在三度空間中可用函數 描述,其中 ,而

    Q, R 均為 0,那麼那麼請問 c 是多少才會符合 波動方程式的解。 解答:讓我們透過計算波動方程式 的左右兩邊,以便看看 c 應該是多少。 首先看看左邊,根據 E 的函數 ,取 運算可得: 356
  173. 因此、上述範例中的電場之函數如下: 這代表 E 為一個往 z 軸方向行進的電磁波,其振幅為 A,而頻率為 ,且行進速度為 。 說明:上述電場波動的振幅為

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

    處的電場大小為 ; 在經過 dt 時間後,我們看到 向量移動到 z+dz ; 也就是該電場位置從 z 移到了 z+dz ; 於是我們找出 dt 與 dz 的關係式。 ; 也就是速度為 . 而且、我們知道在真空中,介電率 與 代入後,該速度 恰好為光速,這也正是馬克 359
  175. 附錄 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
  176. 仔細翻閱一下這個些範例,您會發現這個網站的神奇之處,他竟然可以解答 「數學、天文、地理、統計、化學、金融、物理、星象、工程、交通、電腦、....」等等問題。 既然 Wolfram 是 Mathematica 軟體的創造者,想必數學應該是他們的強項,就讓我們來用用看。 用 WolframAlpha 學數學

    當您進入 http://www.wolframalpha.com/examples/Math.html 這個數學領域的範例網頁, 您會看到 WolframAlpha 可以解答的數學問題真的是五花八門,從基本的「加減乘除」到 「微分方程」都有。 WolframAlpha 可以「畫函數曲線圖、做符號微積分、數值微積分、求方程式的解」等等, 由於筆者正在教授微積分的課程,因此就讓我們先用 WolframAlpha 來學學微積分好了。 364
  177. 附錄 B. 繪製函數圖的程式 本文描述一個使用 JavaScript / jQuery.flot 繪製函數圖的程式,您可以透過網頁介面輸入函數與範圍之 後利用此程式繪製圖形。 使用範例如右圖所示。

    1. 您可以輸入任何單變數函 數,變數名稱必須是 x,像 是右圖中的 sin(x) 與 cos(x)。 2. 您可以會出割線或切線, 語法是 cut(f, a, dx),其中 f 為某函數,割線的兩個端點 分別為 (a,a+dx) ,如果 dx 很小,那畫出來的割線就差 不多是切線了。 370
  178. 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
  179. <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
  180. 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
  181. 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
  182. 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