笔记
只是感觉写着好玩,怕之后丢了,就放在这里
from fractions import Fraction
import numpy as np
Q = np.array([[Fraction(2, 1), Fraction(-1, 1)],
[Fraction(-1, 1), Fraction(4, 1)]], dtype=object)
b = np.array([[Fraction(-3, 1), Fraction(2, 1)]], dtype=object).T
n = 2
d = []
g = []
x = []
alpha = []
beta = []
x.append(np.zeros((n, 1), dtype=object))
g.append(Q @ x[0] - b)
d.append(-g[0])
for i in range(n):
alpha.append(-(g[i].T @ d[i]) / (d[i].T @ Q @ d[i]))
x.append(x[i] + alpha[i] * d[i])
g.append(Q @ x[i + 1] - b)
beta.append((g[i + 1].T @ Q @ d[i]) / (d[i].T @ Q @ d[i]))
d.append(-g[i + 1] + beta[i] * d[i])
print(f"x[{i+1}] = \n{x[i+1]}\ng[{i+1}] = \n{g[i+1]}\nd[{i+1}] = \n{d[i+1]}\n")
print(f"beta[{i}] = \n{beta[i]}\nalpha[{i}] = \n{alpha[i]}\n")

浙公网安备 33010602011771号