习题2.8代码
import numpy as np
import pandas as pd
import sympy as sp
sp.init_printing(use_unicode=True)
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['Times New Roman + SimSun + WFM Sans SC']
plt.rcParams['mathtext.fontset']='cm'
Times New Roman + SimSun + WFM Sans SC
simsum宋体, times new roman -*, simhei黑体, kaiti楷体,
dengxian等线, fangsong仿宋, Microsoft Yahei微软雅黑
plt.rcParams['axes.unicode_minus']=False
plt.rcParams['figure.dpi'] = 200
plt.rcParams['figure.figsize'] = [4, 3]
plt.rcParams['font.size'] = 12
plt.rcParams['xtick.direction'] = 'in'
plt.rcParams['ytick.direction'] = 'in'
from scipy.optimize import root
def fx(x):
ret = []
ret.append(4x[0] + x[1] - 1)
for i in range(1, 999):
ret.append(x[i-1] + 4x[i] + x[i+1] - i - 1)
ret.append(x[998] + 4*x[999] - 1000)
return ret
root(fx, np.random.randn(1000))
A = 4*np.eye(1000) + np.eye(1000, k=-1) + np.eye(1000, k=1)
print(np.linalg.inv(A)@np.arange(1, 1001).reshape(1000, 1))
以下只展示部分解