SlideShare a Scribd company logo
範例 (一)
 畫出若干個函式的最大值,最小值,平均值
以下利用類別裝飾器計算若干個函式的最大值,最小值與平均值,
函式的數量可多可少,統一輸入裝飾器的函式運算子內計算。程式
最後利用 pylab 畫出各個圖形如下:
10附錄B 裝飾器
範例 (二)
11附錄B 裝飾器
import pylab
# 類別裝飾器
class Fn_Val :
# 起始設定方法
def __init__( self , fn ) :
self.fn = fn
# 函式運算子
def __call__( self , xs , *fns ) :
ys = []
for x in xs :
ys += [ self.fn( list( map( lambda f : f(x) , fns ) ) ) ]
return ys
@Fn_Val
def maxf(xs) : return max(xs)
@Fn_Val
def minf(xs) : return min(xs)
@Fn_Val
def avgf(xs) : return (max(xs)+min(xs))/2
# sin(x/2)
def sin2(x) : return pylab.sin(x/2)
範例 (三)
12附錄B 裝飾器
if __name__ == ’__main__’ :
pi = pylab.pi
# [0,2pi] 200 個點
xs = pylab.linspace(0, 2*pi, 200)
# 利用裝飾器計算若干函數的最大值,最小值,平均值
ys1 = maxf(xs, pylab.sin, pylab.cos, sin2)
ys2 = minf(xs, pylab.sin, pylab.cos, sin2)
ys3 = avgf(xs, pylab.sin, pylab.cos, sin2)
# 白底
pylab.figure(facecolor=’w’)
# 畫 sin(x) cos(x) sin(x/2) 函式圖形
pylab.plot(xs, pylab.sin(xs), color=’r’, lw=3, label=’sin(x)’)
pylab.plot(xs, pylab.cos(xs), color=’g’, lw=3, label=’cos(x)’)
pylab.plot(xs, sin2(xs), color=’b’, lw=3, label=’sin(x/2)’)
# 畫 max min avg 圖形
pylab.plot(xs, ys1, ’*c:’, lw=1, label=’max val’)
pylab.plot(xs, ys2, ’om:’, lw=1, label=’min val’)
pylab.plot(xs, ys3, ’.k:’, lw=1, label=’avg val’)
pylab.title("max, min, avg values of sin(x), cos(x), sin(x/2)", fontsize=20)
pylab.grid()
pylab.legend()
pylab.show()

More Related Content

PDF
Ch10 範例
PDF
Ch10 教學
PDF
Appendix B 教學
PDF
Ch9 教學
PDF
Ch7 教學
PDF
Ch8 教學
PDF
Ch11 教學
PDF
Ch12 教學
Ch10 範例
Ch10 教學
Appendix B 教學
Ch9 教學
Ch7 教學
Ch8 教學
Ch11 教學
Ch12 教學

What's hot (20)

PDF
Ppt 138-142
PDF
Ch12 範例
PDF
Ppt 120-126
PDF
Ppt 120-126
PDF
Ch4 教學
PDF
Ch5 教學
PDF
Ch9 範例
PDF
Ppt 78-100
PDF
Ppt 127-135
PDF
Ppt 136-140
PDF
Ppt 1-50
PDF
Ch6 教學
PDF
Ch7 範例
PDF
PDF
Ch5 範例
PDF
Ch10 習題
PDF
Ppt 127-135
PDF
Ch11 範例
PDF
Sym py edu
PDF
Python p.193 197
Ppt 138-142
Ch12 範例
Ppt 120-126
Ppt 120-126
Ch4 教學
Ch5 教學
Ch9 範例
Ppt 78-100
Ppt 127-135
Ppt 136-140
Ppt 1-50
Ch6 教學
Ch7 範例
Ch5 範例
Ch10 習題
Ppt 127-135
Ch11 範例
Sym py edu
Python p.193 197
Ad

Similar to Appendix B 範例 (20)

PDF
Appendix B
PDF
lambda/closure – JavaScript、Python、Scala 到 Java SE 7
PDF
functional-scala
PPTX
ncuma_函數微分計算.pptx
PPTX
函數微分_範例.pptx
PPTX
ncuma_函式.pptx
PDF
PPT
Php extension开发
PPTX
Scala+RDD
PDF
那些年,我們一起看的例外
PPTX
ncuma_函數畫圖.pptx
PPT
P127 135 new
PPTX
函數畫圖.pptx
PPTX
Introduction to Basic Haskell Components (In Chinese)
PDF
Sql培训 (1)
PPTX
ncuma_SymPy符號運算套件.pptx
PDF
PDF
PPTX
Python入門:5大概念初心者必備 2021/11/18
DOC
实验一 Mathematica软件简介
Appendix B
lambda/closure – JavaScript、Python、Scala 到 Java SE 7
functional-scala
ncuma_函數微分計算.pptx
函數微分_範例.pptx
ncuma_函式.pptx
Php extension开发
Scala+RDD
那些年,我們一起看的例外
ncuma_函數畫圖.pptx
P127 135 new
函數畫圖.pptx
Introduction to Basic Haskell Components (In Chinese)
Sql培训 (1)
ncuma_SymPy符號運算套件.pptx
Python入門:5大概念初心者必備 2021/11/18
实验一 Mathematica软件简介
Ad

More from hungchiayang1 (20)

PPT
Exercise 1 3
PDF
Python differential equation
PDF
化學系 python 習題
PDF
化學系 python 練習
PDF
化學系 python 教學
PDF
Ppt 151-151
PDF
Ppt 136-136
PDF
Ppt 143-143
PDF
Ppt 137-137
PDF
Ppt 150-150
PDF
Ppt 26-50
PDF
Ppt 145-149
PDF
Ppt 174-174
PDF
Ppt 1-25
PDF
Ppt 144-144
PDF
Ppt 167-173
PDF
Ppt 152-155
PDF
Ppt 156-156
PDF
Ppt 166-166
PDF
Ppt 165-165
Exercise 1 3
Python differential equation
化學系 python 習題
化學系 python 練習
化學系 python 教學
Ppt 151-151
Ppt 136-136
Ppt 143-143
Ppt 137-137
Ppt 150-150
Ppt 26-50
Ppt 145-149
Ppt 174-174
Ppt 1-25
Ppt 144-144
Ppt 167-173
Ppt 152-155
Ppt 156-156
Ppt 166-166
Ppt 165-165

Recently uploaded (16)

PPTX
《HSK标准教程4下》第15课课件new.pptx HSK chapter 15 pptx
PPTX
3分钟读懂肯塔基大学毕业证UK毕业证学历认证
PPTX
3分钟读懂滑铁卢大学毕业证Waterloo毕业证学历认证
PPTX
ONU and OLT from Baudcom Jenny training PPT
PPTX
3分钟读懂加州大学欧文分校毕业证UCI毕业证学历认证
PPTX
3分钟读懂佩珀代因大学毕业证Pepperdine毕业证学历认证
PPTX
3分钟读懂渥太华大学毕业证UO毕业证学历认证
PDF
想要安全提高成绩?我们的黑客技术采用深度伪装和多层加密手段,确保你的信息安全无忧。价格公道,流程简单,同时提供全面的信息保护和事后痕迹清理,让你轻松提升G...
DOCX
ALISON -COURSE ADVANCED CHEMISTRY -POLIMERIZATION 2025.docx
PPTX
3分钟读懂福特汉姆大学毕业证Fordham毕业证学历认证
PPTX
3分钟读懂圭尔夫大学毕业证U of G毕业证学历认证
PPTX
3分钟读懂贵湖大学毕业证U of G毕业证学历认证
PDF
01_Course_Introduction(20210916課後更新).pdf
PDF
學會學LHTL榮譽作業:結合實驗與理論學習(製作者:陽明交通大學醫學二年級馬品婷)
PDF
黑客技术,安全提分不是梦!我们采用最新的数据破解和隐藏技术,精准定位并修改你的成绩,同时采用深度隐藏技术确保你的操作不被发现。价格实惠,流程快速,事后无痕...
PPTX
A Digital Transformation Methodology.pptx
《HSK标准教程4下》第15课课件new.pptx HSK chapter 15 pptx
3分钟读懂肯塔基大学毕业证UK毕业证学历认证
3分钟读懂滑铁卢大学毕业证Waterloo毕业证学历认证
ONU and OLT from Baudcom Jenny training PPT
3分钟读懂加州大学欧文分校毕业证UCI毕业证学历认证
3分钟读懂佩珀代因大学毕业证Pepperdine毕业证学历认证
3分钟读懂渥太华大学毕业证UO毕业证学历认证
想要安全提高成绩?我们的黑客技术采用深度伪装和多层加密手段,确保你的信息安全无忧。价格公道,流程简单,同时提供全面的信息保护和事后痕迹清理,让你轻松提升G...
ALISON -COURSE ADVANCED CHEMISTRY -POLIMERIZATION 2025.docx
3分钟读懂福特汉姆大学毕业证Fordham毕业证学历认证
3分钟读懂圭尔夫大学毕业证U of G毕业证学历认证
3分钟读懂贵湖大学毕业证U of G毕业证学历认证
01_Course_Introduction(20210916課後更新).pdf
學會學LHTL榮譽作業:結合實驗與理論學習(製作者:陽明交通大學醫學二年級馬品婷)
黑客技术,安全提分不是梦!我们采用最新的数据破解和隐藏技术,精准定位并修改你的成绩,同时采用深度隐藏技术确保你的操作不被发现。价格实惠,流程快速,事后无痕...
A Digital Transformation Methodology.pptx

Appendix B 範例

  • 2. 範例 (二) 11附錄B 裝飾器 import pylab # 類別裝飾器 class Fn_Val : # 起始設定方法 def __init__( self , fn ) : self.fn = fn # 函式運算子 def __call__( self , xs , *fns ) : ys = [] for x in xs : ys += [ self.fn( list( map( lambda f : f(x) , fns ) ) ) ] return ys @Fn_Val def maxf(xs) : return max(xs) @Fn_Val def minf(xs) : return min(xs) @Fn_Val def avgf(xs) : return (max(xs)+min(xs))/2 # sin(x/2) def sin2(x) : return pylab.sin(x/2)
  • 3. 範例 (三) 12附錄B 裝飾器 if __name__ == ’__main__’ : pi = pylab.pi # [0,2pi] 200 個點 xs = pylab.linspace(0, 2*pi, 200) # 利用裝飾器計算若干函數的最大值,最小值,平均值 ys1 = maxf(xs, pylab.sin, pylab.cos, sin2) ys2 = minf(xs, pylab.sin, pylab.cos, sin2) ys3 = avgf(xs, pylab.sin, pylab.cos, sin2) # 白底 pylab.figure(facecolor=’w’) # 畫 sin(x) cos(x) sin(x/2) 函式圖形 pylab.plot(xs, pylab.sin(xs), color=’r’, lw=3, label=’sin(x)’) pylab.plot(xs, pylab.cos(xs), color=’g’, lw=3, label=’cos(x)’) pylab.plot(xs, sin2(xs), color=’b’, lw=3, label=’sin(x/2)’) # 畫 max min avg 圖形 pylab.plot(xs, ys1, ’*c:’, lw=1, label=’max val’) pylab.plot(xs, ys2, ’om:’, lw=1, label=’min val’) pylab.plot(xs, ys3, ’.k:’, lw=1, label=’avg val’) pylab.title("max, min, avg values of sin(x), cos(x), sin(x/2)", fontsize=20) pylab.grid() pylab.legend() pylab.show()