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
# 用定义式
理论依据傅里叶级数
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个点。