python numpy 學習筆記(9)

1.矩陣的相關操作

轉置,求逆,組合

# -*- coding:utf-8 -*-
from numpy import *
A = mat('1 2 3; 4 5 6; 7 8 9')
#   構建一個矩陣
print A
print A.T
#   矩陣的轉置
print A.I
#   求矩陣的逆矩陣
B = A * 2
C = bmat("A B; A B")
print C
#   分塊矩陣的組合


2.使用斐波那契矩陣,黃金分割公式和定義式求解斐波那契數列

# -*- coding:utf-8 -*-
from numpy import *
F = matrix([[1, 1], [1, 0]])
for i in range(0, 8):
    print (F ** i)[0, 0],
print
#   用斐波那契矩陣表示斐波那契數列,是矩陣的連乘的第一個元素


n = range(1, 9)
sqrt5 = sqrt(5)
phi = (1 + sqrt5) / 2
fibonacci = rint((phi ** n - (-1/phi)** n) / sqrt5)
print fibonacci
#   用黃金分割公式得到斐波那契數列


Fa = [1, 1]
for i in range(6):
    Fa.append(Fa[-1] + Fa[-2])
print Fa
#   用定義式


3.繪製方波

理論依據傅里葉級數

import numpy as np
from matplotlib.pyplot import plot
from matplotlib.pyplot import show
import sys

t = np.linspace(-np.pi, np.pi, 201)
k = np.arange(1, 99)
k = 2 * k - 1
f = np.zeros_like(t)

for i in range(len(t)):
   f[i] = np.sum(np.sin(k * t[i])/k)
f = (4 / np.pi) * f
plot(t, f)
show()

值得注意的是:

linspace(a,b,c)可以得到從a至b均勻分佈的c個點。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章