笔记

只是感觉写着好玩,怕之后丢了,就放在这里

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")




posted @ 2025-11-23 18:07  SegmentTree  阅读(4)  评论(0)    收藏  举报