搞定Python與管理數學,是成為數據分析專家的必備基礎
第一本結合管理數學和Python應用的工具書,輕鬆獲得雙倍效果!
管理的問題,就用數學來解決吧!
令人驚呼的三大特色:
1.淺顯易懂的口吻加上超豐富內容,一本掌握管理數學!
2.附有精彩的範例、習題與解析,滿足所有練習慾望!
3.用Python簡單搞定繁雜的數學計算,手把手跟著步驟走!
讓數據分析成為管理的後盾,成就更無懈可擊的經營決策!
管理數學為一門重要的基礎,不只是為了商業管理和決策,也是學習資料科學的第一步。現今不論是商管領域的學生或是從業人員,為了跟上世界的腳步,都必須踏上學習程式語言之路,如果能在學習管理數學時搭配Python做使用,不只符合世界潮流,也等同開啟資料分析的大門。
本書作者投入融合「計量經濟學和資料科學」的計量資料科學 (Econometric Data Science)
多年,對於以計量經濟學為基礎的資料科學猶有心得,本書由淺入深的介紹函數、微積分、矩陣代數和數學規劃等管理數學必需的基礎與商管應用,此外,為達到與程式學習相輔相成之效,作者編排章節亦十分用心,在管理數學的16堂課中,穿插步驟式的Python教學,讓讀者學完數學原理和計算之後,能立刻熟悉Python的應用方式,學習效率更加倍!輕鬆就學會管理數學!
作者介紹
作者簡介
何宗武
美國猶他大學(University of Utah)經濟學博士,現為國立台灣師範大學全球經營與策略研究所教授,教學資歷豐富,曾任世新大學經濟學系及財務金融學系教授。專長為財務經濟學、金融大數據、計量經濟資料科學及程式語言等,著作多本相關書籍如:《大數據決策分析盲點大突破10講:我分類故我在》《R語言:深入淺出財經計量》、《R資料採礦與數據分析:以GUI套件Rattle結合程式語言實作》、《資料分析輕鬆學:R Commander高手捷徑》。
何宗武
美國猶他大學(University of Utah)經濟學博士,現為國立台灣師範大學全球經營與策略研究所教授,教學資歷豐富,曾任世新大學經濟學系及財務金融學系教授。專長為財務經濟學、金融大數據、計量經濟資料科學及程式語言等,著作多本相關書籍如:《大數據決策分析盲點大突破10講:我分類故我在》《R語言:深入淺出財經計量》、《R資料採礦與數據分析:以GUI套件Rattle結合程式語言實作》、《資料分析輕鬆學:R Commander高手捷徑》。
目錄
管理數學
目錄
推薦序
序
第1部份 管理數學原理
第1章 函數原理
第2章 函數與導函數
Python Part 1
第2部份 微分
第3章 微分方法— 單變數函數
第4章 微分方法— 多變數函數偏微分
第5章 微分商管應用
Python Part 2
第3部份 積分
第6章 積分原理— 反導函數與微積分基本定理
第7章 積分方法— 單變數函數
第8章 積分方法— 多變數函數重積分
第9章 積分的商管應用
Python Part 3
第4部份 矩陣代數
第10章 矩陣代數基礎
第11章 矩陣的基本運算與應用
第12章 矩陣的進一步性質
Python Part 4
第5部份 數學規劃與管理決策
第13章 數學規劃-- 單變數函數的極值
第14章 數學規劃--多變數函數的極值
第15章 數學規劃—具限制條件下函數的極值問題
第16章 選擇性主題
Python Part 5
Python Part 6
Python Part 7
Python Part 8
目錄
推薦序
序
第1部份 管理數學原理
第1章 函數原理
第2章 函數與導函數
Python Part 1
第2部份 微分
第3章 微分方法— 單變數函數
第4章 微分方法— 多變數函數偏微分
第5章 微分商管應用
Python Part 2
第3部份 積分
第6章 積分原理— 反導函數與微積分基本定理
第7章 積分方法— 單變數函數
第8章 積分方法— 多變數函數重積分
第9章 積分的商管應用
Python Part 3
第4部份 矩陣代數
第10章 矩陣代數基礎
第11章 矩陣的基本運算與應用
第12章 矩陣的進一步性質
Python Part 4
第5部份 數學規劃與管理決策
第13章 數學規劃-- 單變數函數的極值
第14章 數學規劃--多變數函數的極值
第15章 數學規劃—具限制條件下函數的極值問題
第16章 選擇性主題
Python Part 5
Python Part 6
Python Part 7
Python Part 8
序
序
過去20年,如果要處理資料都需要去圖書館拿年鑑或月報,然後用人工輸入。近來因為科技發展,讓數據的蒐集和使用愈來愈便捷,很多領域都開始面對大量數據躺在那邊。數字多的學科,須要瞭解資料探勘和數據分析的用途;用文字多的學門,則面臨文字分析和自然語言處理的學習。自己用不用沒關係,但是要能看的懂他人產生的報告。
坊間不缺管理數學的書,但是就內容編寫而言,會反應作者心中的核心學科。例如,有的側重微積分,有的側重作業研究(Operation Research)或數學規劃,有的甚至沒有足夠的矩陣代數篇幅。因此,以管理數學為經,本書設想的是以企業管理為主的學習架構,分四部分:微分和積分與矩陣代數和數學規劃。對於上學期可以講授3學分微積分,下學期可以講授矩陣代數和數學規劃。這是本書內容的第一個特色。
另外,目前商管學院和人文社會相關科系,幾乎都須要有一點程式概念,各校均增添程式教育課程。非資訊相關學門,程式學習入門最好能融入特定課程,而不要一開始就開一門獨立的程式語言課程。在這樣的背景之下,每一個部分結尾,納入循序漸進的Python章節,先把Python當成計算機,可以手算習題,然後用五六行的Python碼驗算。這樣一年課程下來,就會熟悉Python的運行邏輯。將Python融入課程,這是本書第二個特色。
然而,在四部分之後,本書依然續編了5-8部分的Python介紹,以供有興趣的同學在整門課結束後可以利用暑假繼續學習。每部分的Python學習手冊,可以使用Python於習題練習,確認答案,繪圖,以及符號運算。
本書完成,一要感謝臺灣師範大學提供優良的研究與教學環境,讓本人能專心工作;二要感謝五南出版社別具慧眼,在教科書市場競爭之下,願意出版這樣一本教科書。本書有任何疏漏與未竟之處,皆是本人的責任。
過去20年,如果要處理資料都需要去圖書館拿年鑑或月報,然後用人工輸入。近來因為科技發展,讓數據的蒐集和使用愈來愈便捷,很多領域都開始面對大量數據躺在那邊。數字多的學科,須要瞭解資料探勘和數據分析的用途;用文字多的學門,則面臨文字分析和自然語言處理的學習。自己用不用沒關係,但是要能看的懂他人產生的報告。
坊間不缺管理數學的書,但是就內容編寫而言,會反應作者心中的核心學科。例如,有的側重微積分,有的側重作業研究(Operation Research)或數學規劃,有的甚至沒有足夠的矩陣代數篇幅。因此,以管理數學為經,本書設想的是以企業管理為主的學習架構,分四部分:微分和積分與矩陣代數和數學規劃。對於上學期可以講授3學分微積分,下學期可以講授矩陣代數和數學規劃。這是本書內容的第一個特色。
另外,目前商管學院和人文社會相關科系,幾乎都須要有一點程式概念,各校均增添程式教育課程。非資訊相關學門,程式學習入門最好能融入特定課程,而不要一開始就開一門獨立的程式語言課程。在這樣的背景之下,每一個部分結尾,納入循序漸進的Python章節,先把Python當成計算機,可以手算習題,然後用五六行的Python碼驗算。這樣一年課程下來,就會熟悉Python的運行邏輯。將Python融入課程,這是本書第二個特色。
然而,在四部分之後,本書依然續編了5-8部分的Python介紹,以供有興趣的同學在整門課結束後可以利用暑假繼續學習。每部分的Python學習手冊,可以使用Python於習題練習,確認答案,繪圖,以及符號運算。
本書完成,一要感謝臺灣師範大學提供優良的研究與教學環境,讓本人能專心工作;二要感謝五南出版社別具慧眼,在教科書市場競爭之下,願意出版這樣一本教科書。本書有任何疏漏與未竟之處,皆是本人的責任。
何宗武
於臺師大管理學院 2019/5/17
於臺師大管理學院 2019/5/17
內容連載
主題3. 最佳化演算(Optimization) 求極值
前面的主題是解滿足一階導函數的根,因此,我們必須先微分求出導函數。但是,最簡單的方法是直接對目標函數求解:同時解出目標極值和臨界值。
Python完成這件事有sympy和scipy,筆者覺得sympy需要宣告的參數太多,尤其是在帶限制式時。所以我們使用模組scipy內的函數optimize()和minimize(),Python程式碼的步驟解說如下。
5.3-1 單變數
我們先看本章範例1的簡單方程式,如下:
第1步:定義函數
from scipy import optimize
def f(x, sign=-1):
return sign*(2*x**3+3*x**2-12*x-7)
兩行就OK,相當簡易。待會我們再解釋sign的意義。接下來執行求極值:
第2步:求解與結果
Result1 = optimize. minimize_scalar(f)
Result1.x
Result1.fun
f(Result1.x)
optimize. minimize_scalar()是求解函數。Result1內有許多物件,主要有三個:
(1) Result1.x: 解出的x值。
(2) Result1.fun: 解出的極小值,可以和f(Result1.x)對照是否一樣。
(3) Result1.success: 回傳求解是否成功(True/False)。
我們看看列印在螢幕的結果,如下:
Result1.x
Out[2]: 1.0
Result1.fun
Out[3]: -14.0
f(Result1.x)
Out[4]: -14.0
我們回去看範例1的圖形,可能的臨界值有兩個,從圖形看的出來,我們解出的只是極小值(1, -14)。那另一極大值的解呢?根據scipy說明文件,須把函數取負值 ,這也是我們為什麼寫函數時,要增加一個參數 sign,因為這樣比較方便,判斷極大值時,可以如下這樣處理:
第1步:定義函數
def f(x, sign = -1):
return sign*(2*x**3+3*x**2-12*x-7)
前面的主題是解滿足一階導函數的根,因此,我們必須先微分求出導函數。但是,最簡單的方法是直接對目標函數求解:同時解出目標極值和臨界值。
Python完成這件事有sympy和scipy,筆者覺得sympy需要宣告的參數太多,尤其是在帶限制式時。所以我們使用模組scipy內的函數optimize()和minimize(),Python程式碼的步驟解說如下。
5.3-1 單變數
我們先看本章範例1的簡單方程式,如下:
第1步:定義函數
from scipy import optimize
def f(x, sign=-1):
return sign*(2*x**3+3*x**2-12*x-7)
兩行就OK,相當簡易。待會我們再解釋sign的意義。接下來執行求極值:
第2步:求解與結果
Result1 = optimize. minimize_scalar(f)
Result1.x
Result1.fun
f(Result1.x)
optimize. minimize_scalar()是求解函數。Result1內有許多物件,主要有三個:
(1) Result1.x: 解出的x值。
(2) Result1.fun: 解出的極小值,可以和f(Result1.x)對照是否一樣。
(3) Result1.success: 回傳求解是否成功(True/False)。
我們看看列印在螢幕的結果,如下:
Result1.x
Out[2]: 1.0
Result1.fun
Out[3]: -14.0
f(Result1.x)
Out[4]: -14.0
我們回去看範例1的圖形,可能的臨界值有兩個,從圖形看的出來,我們解出的只是極小值(1, -14)。那另一極大值的解呢?根據scipy說明文件,須把函數取負值 ,這也是我們為什麼寫函數時,要增加一個參數 sign,因為這樣比較方便,判斷極大值時,可以如下這樣處理:
第1步:定義函數
def f(x, sign = -1):
return sign*(2*x**3+3*x**2-12*x-7)
網路書店
類別
折扣
價格
-
新書9折$468
-
新書9折$468
-
新書9折$468
-
新書93折$484
-
新書93折$484
-
新書95折$494
-
新書95折$494
-
新書95折$494