(謝爾賓斯基正方形)

 import matplotlib.pyplot as plt

plt.figure(figsize=(5,5),dpi=80)
def F(x1,y1,r):  #定義遞迴程式
    if(r<9) :return
    (x2,y2)=(x1+r/3,y1)
    (x3,y3)=(x2+r/3,y1)
    (x4,y4)=(x1,y1+r/3)
    (x5,y5)=(x4+r/3,y4)
    (x6,y6)=(x5+r/3,y4)
    (x7,y7)=(x1,y4+r/3)
    (x8,y8)=(x7+r/3,y7)
    (x9,y9)=(x8+r/3,y7)
    X=[x5,x6,x9,x8]
    Y=[y5,y6,y9,y8]
    plt.fill(X,Y,color="white")
    F(x1,y1,r/3)
    F(x2,y2,r/3)
    F(x3,y3,r/3)
    F(x4,y4,r/3)
    F(x6,y6,r/3)
    F(x7,y7,r/3)
    F(x8,y8,r/3)
    F(x9,y9,r/3)

#以下內容為主程式
(x1,y1,r)=(0,0,81)  #正方形左下的坐標與邊長
X=[x1,x1+r,x1+r,x1]
Y=[y1,y1,y1+r,y1+r]
plt.fill(X,Y,color="blue")
F(x1,y1,r)
plt.show()

(Sierpinski triangle)(謝爾賓斯基三角形)

 import matplotlib.pyplot as plt

plt.figure(figsize=(6,6),dpi=80)
def F(x1,y1,x2,y2,x3,y3):  #定義遞迴程式
    if((x2-x1) <0.2) :return
    (x4,y4)=((x1+x2)/2,(y1+y2)/2)
    (x5,y5)=((x2+x3)/2,(y2+y3)/2)
    (x6,y6)=((x3+x1)/2,(y3+y1)/2)
    X=[x4,x5,x6]
    Y=[y4,y5,y6]
    plt.fill(X,Y,color="white")
    F(x1,y1,x4,y4,x6,y6)
    F(x4,y4,x2,y2,x5,y5)
    F(x6,y6,x5,y5,x3,y3)

#以下內容為主程式
(x1,y1)=(0,0)
(x2,y2)=(1,0)
(x3,y3)=(0.5,0.5*3**0.5)

X=[x1,x2,x3]
Y=[y1,y2,y3]
plt.fill(X,Y,color="green")
F(x1,y1,x2,y2,x3,y3)
plt.show()

遞迴~(蕨葉)

import numpy as np

import matplotlib.pyplot as plt
plt.figure(figsize=(5,5),dpi=80)

def F(x0,y0,r,a): #定義遞迴程式
    if r <1 :return
    x1=x0+0.04*r*np.cos(a)       ; y1=y0+0.04*r*np.sin(a)
    x2=x1+0.04*r*np.cos(a-pi/90) ; y2=y1+0.04*r*np.sin(a-pi/90)

    X=[x0,x1,x2]
    Y=[y0,y1,y2]
    plt.plot(X,Y,color="green",linewidth=2)   #畫圖

    F(x1,y1,0.3*r,a+pi*4/9)
    F(x2,y2,0.3*r,a-pi*41/90)
    F(x2,y2,0.9*r,a-pi/90)
#以下內容為主程式
pi=3.14159     #圓周率
(x0,y0,r,a)=(0,0,90,pi/2)  #(基準點之x,y坐標,長度,方向角)
F(0,0,90,pi/2)
plt.show()

# Making Waves 與波共舞 (python 程式碼)


import numpy as np
import matplotlib.pyplot as plt
plt.figure(figsize=(9,12),dpi=80)

pi=3.14159 # 圓周率
x=np.linspace(0,6*pi,1001)

plt.subplot(4,1,1)    #作圖1
y1=np.sin(x)
plt.plot(x,y1,color="blue",linewidth=2)

plt.subplot(4,1,2)    #作圖2
y2=np.sin(2*x)
plt.plot(x,y2,color="blue",linewidth=2)

plt.subplot(4,1,3)    #作圖3
y3=np.sin(3*x)
plt.plot(x,y3,color="blue",linewidth=2)

plt.subplot(4,1,4)    #作圖4 合成波
y4=30*y1-80*y2+60*y3
plt.plot(x,y4,color="red",linewidth=4)

plt.show()

#執行結果如下~



#sin與cos之疊合 ( python 程式碼 )

import numpy as np

import matplotlib.pyplot as plt
plt.figure(figsize=(9,3),dpi=80)

pi=3.14159  # 圓周率
(A,B)=(2,1# 亦可自行修改
x=np.linspace(0,6*pi,1001#(起點,終點,共幾個點包含端點)

y1=np.sin(x)
y2=np.cos(x)
y3=A*np.sin(x)+B*np.cos(x)

plt.plot(x,y1,color="blue",linewidth=2)
plt.plot(x,y2,color="green",linewidth=2)
plt.plot(x,y3,color="red",linewidth=4)

plt.show()

#執行結果如下~



#特殊函數~絕對值,正弦,餘弦,對數(python 程式碼)

import numpy as np

pi=3.14159 #圓周率
x1=-5
x2=60*pi/180
x3=30*pi/180
x4=0.001

y1=abs(x1)
y2=np.sin(x2)
y3=np.cos(x3)
y4=np.log10(x4)

print("第1個值=",y1)
print("第2個值=",y2)
print("第3個值=",y3)
print("第4個值=",y4)

# 作 y=A*sin(x)+B*cos(x)的函數圖形 (python 程式碼)

#題目:作 y=A*sin(x)+B*cos(x)的函數圖形

#Python 程式碼如下

# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt

A=4.0
B= -3.0

# 產生x座標的資料,從 -2PI 到 2PI
X = np.linspace(-2*np.pi, 2*np.pi, 1000, endpoint=True)

# Y座標
Sin_y = np.sin(X)
Cos_y = np.cos(X)
Ans_y = A*Sin_y+B*Cos_y

plt.figure(figsize=(12,9),dpi=80)

ax = plt.gca()  # gca stands for 'get current axis'
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data',0))
ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data',0))

plt.plot(X, Sin_y, color="red", linewidth=2.0, linestyle=":", label="y=sin(x)")
plt.plot(X, Cos_y, color="green", linewidth=2.0, linestyle=":", label="y=cos(x)")
plt.plot(X, Ans_y, color="blue", linewidth=2.0, linestyle="-", label="y=A*sin(x)+B*cos(x)")

# 設定 x 座標文字
plt.xticks([-2*np.pi, -3*np.pi/2,-np.pi, -np.pi/2, 0, np.pi/2, np.pi, 3*np.pi/2,2*np.pi],
          [r'$-2\pi$', r'$-3\pi/2$',r'$-\pi$', r'$-\pi/2$', r'$0$', r'$+\pi/2$', r'$+\pi$', r'$3\pi/2$',r'$2\pi$'])


plt.legend(loc='upper right')

plt.show()

# 輸出結果如下: