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个点。


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