import%20marimo%0A%0A__generated_with%20%3D%20%220.24.0%22%0Aapp%20%3D%20marimo.App()%0A%0A%0A%40app.cell%0Adef%20_()%3A%0A%20%20%20%20import%20marimo%20as%20mo%0A%0A%20%20%20%20return%20(mo%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%20%E5%9B%BA%E6%9C%89%E5%80%A4%E5%95%8F%E9%A1%8C%E3%81%A8%E7%89%B9%E7%95%B0%E5%80%A4%E5%88%86%E8%A7%A3%0A%0A%20%20%20%20%E8%A1%8C%E5%88%97%E3%81%AE%E5%9B%BA%E6%9C%89%E5%80%A4%E3%82%92%E6%95%B0%E5%80%A4%E7%9A%84%E3%81%AB%E6%B1%82%E3%82%81%E3%82%8B%E6%96%B9%E6%B3%95%E3%82%92%E3%80%81%E7%B4%A0%E6%9C%B4%E3%81%AA%E3%81%B9%E3%81%8D%E4%B9%97%E6%B3%95%E3%81%8B%E3%82%89%E5%AE%9F%E7%94%A8%E7%9A%84%E3%81%AA%20QR%20%E6%B3%95%E3%81%BE%E3%81%A7%0A%20%20%20%20%E9%A0%86%E3%81%AB%E5%AE%9F%E8%A3%85%E3%81%99%E3%82%8B%E3%80%825%20%E6%AC%A1%E4%BB%A5%E4%B8%8A%E3%81%AE%E4%BB%A3%E6%95%B0%E6%96%B9%E7%A8%8B%E5%BC%8F%E3%81%AB%E3%81%AF%E8%A7%A3%E3%81%AE%E5%85%AC%E5%BC%8F%E3%81%8C%E7%84%A1%E3%81%84%E3%81%9F%E3%82%81%E3%80%81%E5%9B%BA%E6%9C%89%E5%80%A4%E8%A8%88%E7%AE%97%E3%81%AF%0A%20%20%20%20%E6%9C%AC%E8%B3%AA%E7%9A%84%E3%81%AB%E5%8F%8D%E5%BE%A9%E6%B3%95%E3%81%AB%E3%81%AA%E3%82%8B%E3%80%82%E5%BE%8C%E5%8D%8A%E3%81%A7%E3%81%AF%E5%89%8D%E5%87%A6%E7%90%86%EF%BC%88%E3%83%8F%E3%82%A6%E3%82%B9%E3%83%9B%E3%83%AB%E3%83%80%E3%83%BC%E5%A4%89%E6%8F%9B%E3%83%BB%E3%82%AE%E3%83%96%E3%83%B3%E3%82%B9%E5%9B%9E%E8%BB%A2%EF%BC%89%0A%20%20%20%20%E3%81%AB%E3%82%88%E3%82%8B%E9%AB%98%E9%80%9F%E5%8C%96%E3%81%A8%E3%80%81%E5%9B%BA%E6%9C%89%E5%80%A4%E5%95%8F%E9%A1%8C%E3%81%AB%E5%B8%B0%E7%9D%80%E3%81%95%E3%81%9B%E3%82%8B%E7%89%B9%E7%95%B0%E5%80%A4%E5%88%86%E8%A7%A3%E3%82%92%E6%89%B1%E3%81%86%E3%80%82%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20%E5%9B%BA%E6%9C%89%E5%80%A4%E8%A8%88%E7%AE%97%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%E3%82%A2%E3%83%BC%E3%83%99%E3%83%AB%E3%83%BB%E3%83%AB%E3%83%95%E3%82%A3%E3%83%8B%E3%81%AE%E5%AE%9A%E7%90%86%E3%82%88%E3%82%8A5%E6%AC%A1%E4%BB%A5%E4%B8%8A%E3%81%AE%E4%BB%A3%E6%95%B0%E6%96%B9%E7%A8%8B%E5%BC%8F%E3%81%AB%E3%81%AF%E5%85%AC%E5%BC%8F%E3%81%8C%E5%AD%98%E5%9C%A8%E3%81%97%E3%81%AA%E3%81%84%E3%80%82%E3%82%88%E3%81%A3%E3%81%A65x5%E8%A1%8C%E5%88%97%E3%81%AE%E7%89%B9%E6%80%A7%E6%96%B9%E7%A8%8B%E5%BC%8F%E3%81%AF%E7%9B%B4%E6%8E%A5%E7%9A%84%E3%81%AB%E8%A7%A3%E3%81%91%E3%81%AA%E3%81%84%E3%81%9F%E3%82%81%E3%80%81%E5%8F%8D%E5%BE%A9%E6%B3%95%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B%E3%80%82%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%E3%81%93%E3%81%AE%E3%83%8E%E3%83%BC%E3%83%88%E3%83%96%E3%83%83%E3%82%AF%E3%81%A7%E3%81%AF%E3%80%81%E6%95%B0%E5%80%A4%E8%A8%88%E7%AE%97%E3%81%AE%E6%B5%81%E3%82%8C%E3%82%92%E8%BF%BD%E3%81%84%E3%82%84%E3%81%99%E3%81%8F%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AB%20**4x4%20%2F%204x5%20%E3%81%AE%E4%BB%A3%E8%A1%A8%E4%BE%8B**%20%E3%81%A8%0A%20%20%20%20**%E5%B0%8F%E3%81%95%E3%82%81%E3%81%AE%E5%8F%8D%E5%BE%A9%E4%B8%8A%E9%99%90**%20%E3%82%92%E4%BD%BF%E3%81%86%E3%80%82%E7%89%B9%E3%81%AB%E5%BE%8C%E5%8D%8A%E3%81%AE%E3%83%8F%E3%82%A6%E3%82%B9%E3%83%9B%E3%83%AB%E3%83%80%E3%83%BC%E5%A4%89%E6%8F%9B%20%2B%20%E3%82%AE%E3%83%96%E3%83%B3%E3%82%B9%E5%9B%9E%E8%BB%A2%E3%81%AE%E7%AF%80%E3%81%A7%E3%81%AF%E3%80%81%0A%20%20%20%20%E5%90%84%E3%82%A2%E3%82%AF%E3%83%86%E3%82%A3%E3%83%96%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%81%AE%20QR%20%E5%8F%8D%E5%BE%A9%E5%9B%9E%E6%95%B0%E3%82%92%E4%B8%8A%E9%99%90%E4%BB%98%E3%81%8D%E3%81%AB%E3%81%97%E3%81%A6%E3%80%81HTML%20%E3%82%A8%E3%82%AF%E3%82%B9%E3%83%9D%E3%83%BC%E3%83%88%E3%81%A7%E3%82%82%0A%20%20%20%20%E5%AE%9F%E8%A1%8C%E6%99%82%E9%96%93%E3%81%8C%E7%99%BA%E6%95%A3%E3%81%97%E3%81%AA%E3%81%84%E3%82%88%E3%81%86%E3%81%AB%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%80%82%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%20%E3%81%B9%E3%81%8D%E4%B9%97%E6%B3%95%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%E3%83%A9%E3%83%B3%E3%83%80%E3%83%A0%E8%A1%8C%E5%88%97%E3%82%92%E4%BD%9C%E6%88%90%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_()%3A%0A%20%20%20%20import%20matplotlib.pyplot%20as%20plt%0A%20%20%20%20import%20numpy%20as%20np%0A%20%20%20%20import%20seaborn%20as%20sns%0A%0A%20%20%20%20%23%20%E8%A1%A8%E7%A4%BA%E3%81%AE%E7%B2%BE%E5%BA%A6%E3%82%92%E8%A8%AD%E5%AE%9A%0A%20%20%20%20np.set_printoptions(precision%3D3%2C%20suppress%3DFalse)%0A%20%20%20%20plt.rcParams%5B'figure.figsize'%5D%20%3D%20(5%2C%202)%0A%20%20%20%20np.random.seed(42)%0A%0A%20%20%20%20N%20%3D%204%0A%0A%20%20%20%20%23%20A%20%3D%20np.random.rand(N%2C%20N)%0A%20%20%20%20%23%20A%20%3D%20A.T%20%40%20A%0A%20%20%20%20A%20%3D%20np.array(%5B%0A%20%20%20%20%20%20%20%20%5B16.%2C%20-1.%2C%201.%2C%202.%5D%2C%0A%20%20%20%20%20%20%20%20%5B2.%2C%2012.%2C%201.%2C%20-1.%5D%2C%0A%20%20%20%20%20%20%20%20%5B1.%2C%203.%2C%20-24.%2C%202.%5D%2C%0A%20%20%20%20%20%20%20%20%5B4.%2C%20-2.%2C%201.%2C%2020.%5D%0A%20%20%20%20%5D)%0A%0A%20%20%20%20print(%22A%3D%22)%0A%20%20%20%20sns.heatmap(A%2C%20annot%3DTrue%2C%20cmap%3D'coolwarm')%0A%20%20%20%20plt.show()%0A%20%20%20%20return%20A%2C%20N%2C%20np%2C%20plt%2C%20sns%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%E3%81%B9%E3%81%8D%E4%B9%97%E6%B3%95%E3%81%AF%E8%A1%8C%E5%88%97%20%24A%24%20%E3%81%AE%E3%81%B9%E3%81%8D%E4%B9%97%E3%82%92%E5%88%9D%E6%9C%9F%E3%83%99%E3%82%AF%E3%83%88%E3%83%AB%E3%81%AB%E4%BD%9C%E7%94%A8%E3%81%95%E3%81%9B%E3%81%A6%E3%80%81%E7%B5%B6%E5%AF%BE%E5%80%A4%E6%9C%80%E5%A4%A7%E3%81%AE%E5%9B%BA%E6%9C%89%E5%80%A4%E3%81%A8%0A%20%20%20%20%E3%81%9D%E3%81%AE%E5%9B%BA%E6%9C%89%E3%83%99%E3%82%AF%E3%83%88%E3%83%AB%E3%82%92%E6%B1%82%E3%82%81%E3%82%8B%E6%96%B9%E6%B3%95%E3%81%A7%E3%81%82%E3%82%8B%E3%80%82%0A%0A%20%20%20%20%24A%24%20%E3%81%AE%E5%9B%BA%E6%9C%89%E3%83%99%E3%82%AF%E3%83%88%E3%83%AB%20%24%5Cvec%7Bv%7D_i%24%20%E3%81%8C%E5%9F%BA%E5%BA%95%E3%82%92%E3%81%AA%E3%81%99%E3%81%A8%E3%81%8D%E3%80%81%E5%88%9D%E6%9C%9F%E3%83%99%E3%82%AF%E3%83%88%E3%83%AB%E3%81%AF%0A%20%20%20%20%24%24%0A%20%20%20%20%5Cvec%7Bx%7D%5E%7B(0)%7D%3D%5Csum_i%20c_i%5Cvec%7Bv%7D_i%0A%20%20%20%20%24%24%0A%20%20%20%20%E3%81%A8%E5%B1%95%E9%96%8B%E3%81%A7%E3%81%8D%E3%82%8B%E3%80%82%E3%81%93%E3%82%8C%E3%81%AB%20%24A%24%20%E3%82%92%20%24k%24%20%E5%9B%9E%E4%BD%9C%E7%94%A8%E3%81%95%E3%81%9B%E3%82%8B%E3%81%A8%0A%20%20%20%20%24%24%0A%20%20%20%20A%5Ek%5Cvec%7Bx%7D%5E%7B(0)%7D%3D%5Clambda_1%5Ek%5Cleft(c_1%5Cvec%7Bv%7D_1%0A%20%20%20%20%2B%5Csum_%7Bi%5Cgeq2%7Dc_i%5Cleft(%5Cfrac%7B%5Clambda_i%7D%7B%5Clambda_1%7D%5Cright)%5Ek%5Cvec%7Bv%7D_i%5Cright)%0A%20%20%20%20%24%24%0A%20%20%20%20%E3%81%A8%E3%81%AA%E3%82%8B%E3%80%82%24%7C%5Clambda_1%7C%3E%7C%5Clambda_2%7C%5Cgeq%5Ccdots%24%20%E3%81%A7%E3%81%82%E3%82%8C%E3%81%B0%E7%AC%AC%202%20%E9%A0%85%E4%BB%A5%E9%99%8D%E3%81%AF%0A%20%20%20%20%24%7C%5Clambda_2%2F%5Clambda_1%7C%5Ek%24%20%E3%81%A7%E6%B8%9B%E8%A1%B0%E3%81%99%E3%82%8B%E3%81%AE%E3%81%A7%E3%80%81%24A%5Ek%5Cvec%7Bx%7D%5E%7B(0)%7D%24%20%E3%81%AE%E5%90%91%E3%81%8D%E3%81%AF%20%24%5Cvec%7Bv%7D_1%24%20%E3%81%AB%E5%8F%8E%E6%9D%9F%E3%81%99%E3%82%8B%E3%80%82%0A%20%20%20%20%E3%81%93%E3%82%8C%E3%81%8C%20%24A(A%5E%7B%5Cinfty%7D%5Cvec%7Bx%7D)%3D%5Clambda(A%5E%7B%5Cinfty%7D%5Cvec%7Bx%7D)%24%20%E3%81%A8%E3%81%AA%E3%82%8B%E3%81%93%E3%81%A8%E3%81%AE%E4%B8%AD%E8%BA%AB%E3%81%A7%E3%81%82%E3%82%8B%E3%80%82%0A%0A%20%20%20%20%E5%89%8D%E6%8F%90%E3%81%AF%E6%AC%A1%E3%81%AE%202%20%E3%81%A4%E3%80%82%0A%0A%20%20%20%201.%20%E7%B5%B6%E5%AF%BE%E5%80%A4%E6%9C%80%E5%A4%A7%E3%81%AE%E5%9B%BA%E6%9C%89%E5%80%A4%E3%81%8C%E3%81%9F%E3%81%A0%201%20%E3%81%A4%E3%81%A7%E3%81%82%E3%82%8B%E3%81%93%E3%81%A8%E3%80%82%E7%B8%AE%E9%80%80%E3%81%97%E3%81%A6%E3%81%84%E3%81%9F%E3%82%8A%E8%A4%87%E7%B4%A0%E5%85%B1%E5%BD%B9%E5%AF%BE%E3%81%A0%E3%81%A3%E3%81%9F%E3%82%8A%E3%81%99%E3%82%8B%E3%81%A8%E5%90%91%E3%81%8D%E3%81%8C%E5%AE%9A%E3%81%BE%E3%82%89%E3%81%AA%E3%81%84%E3%80%82%0A%20%20%20%202.%20%E5%88%9D%E6%9C%9F%E3%83%99%E3%82%AF%E3%83%88%E3%83%AB%E3%81%8C%20%24c_1%5Cneq0%24%20%E3%82%92%E6%BA%80%E3%81%9F%E3%81%99%E3%81%93%E3%81%A8%E3%80%82%E4%B9%B1%E6%95%B0%E3%81%A7%E9%81%B8%E3%81%B9%E3%81%B0%E3%81%BB%E3%81%BC%E7%A2%BA%E5%AE%9F%E3%81%AB%E6%BA%80%E3%81%9F%E3%81%95%E3%82%8C%E3%82%8B%E3%80%82%0A%0A%20%20%20%20%E5%8F%8E%E6%9D%9F%E3%81%AF%E7%B7%9A%E5%BD%A2%E3%81%A7%E3%80%81%E6%AF%94%20%24%7C%5Clambda_2%2F%5Clambda_1%7C%24%20%E3%81%8C%201%20%E3%81%AB%E8%BF%91%E3%81%84%E3%81%BB%E3%81%A9%E9%81%85%E3%81%84%E3%80%82%0A%0A%20%20%20%20%E5%AE%9F%E8%A3%85%E3%81%A7%E3%81%AF%E6%AF%8E%E5%9B%9E%20%24%5Cvec%7Bx%7D%24%20%E3%82%92%E6%AD%A3%E8%A6%8F%E5%8C%96%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%80%81%E5%9B%BA%E6%9C%89%E5%80%A4%E3%81%AE%E6%8E%A8%E5%AE%9A%E3%81%AB%E3%81%AF%E3%83%AC%E3%82%A4%E3%83%AA%E3%83%BC%E5%95%86%0A%20%20%20%20%24%5Clambda%5Csimeq(%5Cvec%7Bx%7D%2CA%5Cvec%7Bx%7D)%24%20%E3%82%92%E4%BD%BF%E3%81%86%E3%80%82%E5%81%9C%E6%AD%A2%E6%9D%A1%E4%BB%B6%E3%81%AE%20%60np.dot(v%2C%20v)%20-%20lambda_%20**%202%60%20%E3%81%AF%0A%20%20%20%20%24%5C%7C%5Cvec%7Bx%7D%5C%7C%3D1%24%20%E3%81%AE%E3%81%A8%E3%81%8D%0A%20%20%20%20%24%24%0A%20%20%20%20%5C%7CA%5Cvec%7Bx%7D-%5Clambda%5Cvec%7Bx%7D%5C%7C%5E2%3D%5C%7CA%5Cvec%7Bx%7D%5C%7C%5E2-%5Clambda%5E2%0A%20%20%20%20%24%24%0A%20%20%20%20%E3%81%AB%E4%B8%80%E8%87%B4%E3%81%99%E3%82%8B%E3%81%AE%E3%81%A7%E3%80%81%E6%AE%8B%E5%B7%AE%E3%83%8E%E3%83%AB%E3%83%A0%E3%81%AE%202%20%E4%B9%97%E3%82%92%E8%A6%8B%E3%81%A6%E3%81%84%E3%82%8B%E3%81%93%E3%81%A8%E3%81%AB%E3%81%AA%E3%82%8B%E3%80%82%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(A%2C%20N%2C%20np)%3A%0A%20%20%20%20def%20power_iteration(A_%2C%20eps%3D1e-6%2C%20max_iter%3D100)%3A%0A%20%20%20%20%20%20A%20%3D%20A_.copy()%0A%20%20%20%20%20%20x%20%3D%20(_%20%3A%3D%20np.random.rand(N))%20%2F%20np.linalg.norm(_)%0A%20%20%20%20%20%20lambda_%20%3D%200%0A%20%20%20%20%20%20for%20i%20in%20range(max_iter)%3A%0A%20%20%20%20%20%20%20%20%23%20%E3%81%B9%E3%81%8D%E4%B9%97%EF%BC%9A%E5%8F%8D%E5%BE%A9%E6%AF%8E%E3%81%AB%E6%9C%80%E5%A4%A7%E5%9B%BA%E6%9C%89%E5%80%A4%E3%81%AE%E5%9B%BA%E6%9C%89%E3%83%99%E3%82%AF%E3%83%88%E3%83%AB%E6%88%90%E5%88%86%E3%81%8C%E5%A4%A7%E3%81%8D%E3%81%8F%0A%20%20%20%20%20%20%20%20v%20%3D%20A%20%40%20x%0A%20%20%20%20%20%20%20%20%23%20%E6%9C%80%E7%B5%82%E7%9A%84%E3%81%AB(x%2CAx)%3D(x%2C%CE%BBx)%3D%CE%BB%E3%81%A8%E3%81%AA%E3%82%8B%E3%81%AF%E3%81%9A%0A%20%20%20%20%20%20%20%20lambda_%20%3D%20np.dot(x%2C%20v)%0A%20%20%20%20%20%20%20%20x%20%3D%20v%20%2F%20np.linalg.norm(v)%0A%20%20%20%20%20%20%20%20if%20np.dot(v%2C%20v)%20-%20lambda_%20**%202%20%3C%20eps%3A%0A%20%20%20%20%20%20%20%20%20%20print(f%22early%20stop%3A%20%7Bi%3D%7D%22)%0A%20%20%20%20%20%20%20%20%20%20break%0A%20%20%20%20%20%20return%20lambda_%2C%20x%0A%0A%20%20%20%20lambda_%2C%20x%20%3D%20power_iteration(A)%0A%0A%20%20%20%20print(f%22%7Blambda_%3D%3A.3%7D%22)%0A%20%20%20%20print(f%22%7Bx%3D%7D%22)%0A%20%20%20%20print(f%22%7BA%40x-lambda_*x%3D%7D%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%20QR%20%E5%88%86%E8%A7%A3%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%E6%9C%80%E3%82%82%E5%9F%BA%E6%9C%AC%E7%9A%84%E3%81%AA%20QR%20%E5%88%86%E8%A7%A3%E3%81%AF%E3%82%B0%E3%83%A9%E3%83%A0%E3%83%BB%E3%82%B7%E3%83%A5%E3%83%9F%E3%83%83%E3%83%88%E3%81%AE%E7%9B%B4%E4%BA%A4%E5%8C%96%E3%82%92%E5%88%A9%E7%94%A8%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(A%2C%20np%2C%20plt%2C%20sns)%3A%0A%20%20%20%20def%20gram_schmidt(vec_in_)%3A%0A%20%20%20%20%20%20%20%20vec_in%20%3D%20vec_in_.copy()%0A%20%20%20%20%20%20%20%20vec_out%20%3D%20np.zeros_like(vec_in)%0A%20%20%20%20%20%20%20%20for%20k%20in%20range(vec_in.shape%5B1%5D)%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20u%20%3D%20vec_in%5B%3A%2C%20k%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20for%20j%20in%20range(k)%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20u%20%3D%20u%20-%20np.dot(vec_in%5B%3A%2C%20k%5D%2C%20vec_out%5B%3A%2C%20j%5D)%20*%20vec_out%5B%3A%2C%20j%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20vec_out%5B%3A%2C%20k%5D%20%3D%20u%20%2F%20np.linalg.norm(u)%0A%20%20%20%20%20%20%20%20return%20vec_out%0A%20%20%20%20_Q%20%3D%20gram_schmidt(A)%0A%20%20%20%20print('Q%20%40%20Q.T%3D')%0A%20%20%20%20sns.heatmap(_Q%20%40%20_Q.T%2C%20annot%3DTrue%2C%20cmap%3D'coolwarm')%0A%20%20%20%20plt.show()%0A%20%20%20%20return%20(gram_schmidt%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%E5%AF%BE%E8%B1%A1%E3%81%AE%E6%AD%A3%E5%89%87%E8%A1%8C%E5%88%97%24A%24%E3%81%AE%E5%90%84%E5%88%97%E3%82%92%E4%B8%80%E6%AC%A1%E7%8B%AC%E7%AB%8B%E3%81%AA%E3%83%99%E3%82%AF%E3%83%88%E3%83%AB%E3%81%A8%E3%81%BF%E3%81%AA%E3%81%97%E3%81%A6%E3%80%81%E3%82%B0%E3%83%A9%E3%83%A0%E3%83%BB%E3%82%B7%E3%83%A5%E3%83%9F%E3%83%83%E3%83%88%E3%81%A7%E7%9B%B4%E4%BA%A4%E5%8C%96%E3%80%82%0A%0A%20%20%20%20%E7%9B%B4%E4%BA%A4%E5%8C%96%E3%81%97%E3%81%9F%E3%83%99%E3%82%AF%E3%83%88%E3%83%AB%E3%82%92%E4%B8%A6%E3%81%B9%E3%81%9F%E3%82%82%E3%81%AE%E3%82%92%E8%A1%8C%E5%88%97%24Q%24%E3%81%A8%E3%81%97%E3%81%A6%E3%80%81%24A%3DQR%24%E3%81%A8%E3%81%AA%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E8%A1%8C%E5%88%97%24R%24%E3%82%92%E6%A7%8B%E6%88%90%E3%80%82%0A%0A%20%20%20%20%24R%24%20%E3%81%AE%E6%88%90%E5%88%86%E3%81%AF%20%24Q%24%20%E3%81%AE%E5%88%97%20%24%5Cvec%7Bq%7D_j%24%20%E3%81%A8%20%24A%24%20%E3%81%AE%E5%88%97%20%24%5Cvec%7Ba%7D_k%24%20%E3%81%8B%E3%82%89%0A%20%20%20%20%24%24%0A%20%20%20%20R_%7Bjk%7D%3D(%5Cvec%7Bq%7D_j%2C%5Cvec%7Ba%7D_k)%5Cquad(j%3Ck)%2C%5Cqquad%0A%20%20%20%20R_%7Bkk%7D%3D%5Cleft%5C%7C%5Cvec%7Ba%7D_k-%5Csum_%7Bj%3Ck%7D(%5Cvec%7Bq%7D_j%2C%5Cvec%7Ba%7D_k)%5Cvec%7Bq%7D_j%5Cright%5C%7C%0A%20%20%20%20%24%24%0A%20%20%20%20%E3%81%A7%E6%B1%BA%E3%81%BE%E3%82%8B%E3%80%82%E3%82%B0%E3%83%A9%E3%83%A0%E3%83%BB%E3%82%B7%E3%83%A5%E3%83%9F%E3%83%83%E3%83%88%E3%81%AE%E6%A7%8B%E6%88%90%E4%B8%8A%20%24%5Cvec%7Ba%7D_k%24%20%E3%81%AF%0A%20%20%20%20%24%5Cvec%7Bq%7D_1%2C%5Cdots%2C%5Cvec%7Bq%7D_k%24%20%E3%81%AE%E5%BC%B5%E3%82%8B%E7%A9%BA%E9%96%93%E3%81%AB%E5%90%AB%E3%81%BE%E3%82%8C%E3%82%8B%E3%81%AE%E3%81%A7%E3%80%81%24j%3Ek%24%20%E3%81%A7%E3%81%AF%20%24R_%7Bjk%7D%3D0%24%E3%80%81%0A%20%20%20%20%E3%81%A4%E3%81%BE%E3%82%8A%20%24R%24%20%E3%81%AF%E4%B8%8A%E4%B8%89%E8%A7%92%E8%A1%8C%E5%88%97%E3%81%AB%E3%81%AA%E3%82%8B%E3%80%82%0A%0A%20%20%20%20%E3%81%AA%E3%81%8A%E3%81%93%E3%81%93%E3%81%A7%E5%AE%9F%E8%A3%85%E3%81%97%E3%81%9F%E5%8F%A4%E5%85%B8%E3%82%B0%E3%83%A9%E3%83%A0%E3%83%BB%E3%82%B7%E3%83%A5%E3%83%9F%E3%83%83%E3%83%88%E3%81%AF%E3%80%81%E5%88%97%E3%81%8C%E3%81%BB%E3%81%BC%E5%B9%B3%E8%A1%8C%E3%81%AA%E3%81%A8%E3%81%8D%E6%A1%81%E8%90%BD%E3%81%A1%E3%81%A7%E7%9B%B4%E4%BA%A4%E6%80%A7%E3%82%92%E5%A4%B1%E3%81%86%E3%80%82%0A%20%20%20%20%E5%AE%9F%E7%94%A8%E3%81%AE%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA%E3%81%A7%E3%81%AF%E4%BF%AE%E6%AD%A3%E3%82%B0%E3%83%A9%E3%83%A0%E3%83%BB%E3%82%B7%E3%83%A5%E3%83%9F%E3%83%83%E3%83%88%E3%81%8B%E3%80%81%E5%BE%8C%E8%BF%B0%E3%81%AE%E3%83%8F%E3%82%A6%E3%82%B9%E3%83%9B%E3%83%AB%E3%83%80%E3%83%BC%E5%A4%89%E6%8F%9B%E3%82%92%E4%BD%BF%E3%81%86%E3%80%82%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(A%2C%20gram_schmidt%2C%20np%2C%20plt%2C%20sns)%3A%0A%20%20%20%20def%20QR_decomp(A_)%3A%0A%20%20%20%20%20%20%20%20A%20%3D%20A_.copy()%0A%20%20%20%20%20%20%20%20_Q%20%3D%20gram_schmidt(A)%0A%20%20%20%20%20%20%20%20_R%20%3D%20np.zeros_like(A)%0A%20%20%20%20%20%20%20%20for%20j%20in%20range(len(A))%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20for%20k%20in%20range(j%2C%20len(A))%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20j%20%3D%3D%20k%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20a_k%20%3D%20A%5B%3A%2C%20k%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20for%20col_idx%20in%20range(j)%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20a_k%20%3D%20a_k%20-%20np.dot(A%5B%3A%2C%20k%5D%2C%20_Q%5B%3A%2C%20col_idx%5D)%20*%20_Q%5B%3A%2C%20col_idx%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20_R%5Bj%2C%20k%5D%20%3D%20np.linalg.norm(a_k)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20else%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20_R%5Bj%2C%20k%5D%20%3D%20np.dot(A%5B%3A%2C%20k%5D%2C%20_Q%5B%3A%2C%20j%5D)%0A%20%20%20%20%20%20%20%20return%20(_Q%2C%20_R)%0A%20%20%20%20_Q%2C%20_R%20%3D%20QR_decomp(A)%0A%20%20%20%20print('Q%3D')%0A%20%20%20%20sns.heatmap(_Q%2C%20annot%3DTrue%2C%20cmap%3D'coolwarm')%0A%20%20%20%20plt.show()%0A%20%20%20%20print('R%3D')%0A%20%20%20%20sns.heatmap(_R%2C%20annot%3DTrue%2C%20cmap%3D'coolwarm')%0A%20%20%20%20plt.show()%0A%20%20%20%20print('A-QR%3D')%0A%20%20%20%20sns.heatmap(A%20-%20_Q%20%40%20_R%2C%20annot%3DTrue%2C%20cmap%3D'coolwarm')%0A%20%20%20%20plt.show()%0A%20%20%20%20return%20(QR_decomp%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20QR%20%E6%B3%95%E3%81%AF%20QR%20%E5%88%86%E8%A7%A3%E3%82%92%E7%B9%B0%E3%82%8A%E8%BF%94%E3%81%97%E3%81%A6%E5%9B%BA%E6%9C%89%E5%80%A4%E3%82%92%E5%AF%BE%E8%A7%92%E6%88%90%E5%88%86%E3%81%AB%E6%8C%81%E3%81%A4%E8%A1%8C%E5%88%97%E3%82%92%E4%BD%9C%E6%88%90%E3%80%82%0A%0A%20%20%20%20%24A_k%3DQ_kR_k%2C%20A_%7Bk%2B1%7D%3DR_kQ_k%3DQ_k%5E%7B-1%7DA_kQ_k%3DQ_k%5ETA_kQ_k%24%E3%82%92%E7%B9%B0%E3%82%8A%E8%BF%94%E3%81%97%E3%81%A6%E3%80%81%E7%9B%B4%E4%BA%A4%E5%A4%89%E6%8F%9B%E3%80%82%0A%0A%20%20%20%20%E5%90%84%E3%82%B9%E3%83%86%E3%83%83%E3%83%97%E3%81%AF%E7%9B%B4%E4%BA%A4%E8%A1%8C%E5%88%97%E3%81%AB%E3%82%88%E3%82%8B%E7%9B%B8%E4%BC%BC%E5%A4%89%E6%8F%9B%E3%81%AA%E3%81%AE%E3%81%A7%E3%80%81%E5%9B%BA%E6%9C%89%E5%80%A4%E3%81%AF%E5%A4%89%E3%82%8F%E3%82%89%E3%81%AA%E3%81%84%E3%80%82%0A%20%20%20%20%E5%9B%BA%E6%9C%89%E5%80%A4%E3%81%8C%E3%81%99%E3%81%B9%E3%81%A6%E5%AE%9F%E3%81%A7%E7%B5%B6%E5%AF%BE%E5%80%A4%E3%81%8C%E7%95%B0%E3%81%AA%E3%82%8B%EF%BC%88%24%7C%5Clambda_1%7C%3E%5Ccdots%3E%7C%5Clambda_n%7C%24%EF%BC%89%E3%81%A8%E3%81%8D%E3%80%81%0A%20%20%20%20%24A_k%24%20%E3%81%AE%E4%B8%8B%E4%B8%89%E8%A7%92%E6%88%90%E5%88%86%E3%81%AF%0A%20%20%20%20%24%24%0A%20%20%20%20(A_k)_%7Bij%7D%3DO%5Cleft(%5Cleft%7C%5Cfrac%7B%5Clambda_i%7D%7B%5Clambda_j%7D%5Cright%7C%5Ek%5Cright)%5Cquad(i%3Ej)%0A%20%20%20%20%24%24%0A%20%20%20%20%E3%81%A7%E6%B8%9B%E8%A1%B0%E3%81%97%E3%80%81%24A_k%24%20%E3%81%AF%E5%9B%BA%E6%9C%89%E5%80%A4%E3%82%92%E7%B5%B6%E5%AF%BE%E5%80%A4%E3%81%AE%E5%A4%A7%E3%81%8D%E3%81%84%E9%A0%86%E3%81%AB%E5%AF%BE%E8%A7%92%E3%81%B8%E4%B8%A6%E3%81%B9%E3%81%9F%E4%B8%8A%E4%B8%89%E8%A7%92%E8%A1%8C%E5%88%97%E3%81%B8%E5%8F%8E%E6%9D%9F%E3%81%99%E3%82%8B%E3%80%82%0A%20%20%20%20%E3%81%93%E3%82%8C%E3%81%AF%E4%BA%92%E3%81%84%E3%81%AB%E7%9B%B4%E4%BA%A4%E3%81%99%E3%82%8B%E9%83%A8%E5%88%86%E7%A9%BA%E9%96%93%E3%81%A7%E3%81%B9%E3%81%8D%E4%B9%97%E6%B3%95%E3%82%92%E5%90%8C%E6%99%82%E3%81%AB%E5%AE%9F%E8%A1%8C%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%81%93%E3%81%A8%E3%81%AB%E7%9B%B8%E5%BD%93%E3%81%99%E3%82%8B%E3%80%82%0A%0A%20%20%20%20%E7%B5%B6%E5%AF%BE%E5%80%A4%E3%81%8C%E7%AD%89%E3%81%97%E3%81%84%E5%9B%BA%E6%9C%89%E5%80%A4%E3%82%84%E8%A4%87%E7%B4%A0%E5%85%B1%E5%BD%B9%E5%AF%BE%E3%81%8C%E3%81%82%E3%82%8B%E3%81%A8%202x2%20%E3%81%AE%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%81%8C%E5%AF%BE%E8%A7%92%E3%81%AB%E6%AE%8B%E3%82%8B%EF%BC%88%E5%AE%9F%E3%82%B7%E3%83%A5%E3%83%BC%E3%82%A2%E5%88%86%E8%A7%A3%EF%BC%89%E3%80%82%0A%20%20%20%20%E3%81%BE%E3%81%9F%E5%8F%8E%E6%9D%9F%E3%81%AF%E9%9A%A3%E3%82%8A%E5%90%88%E3%81%86%E5%9B%BA%E6%9C%89%E5%80%A4%E3%81%AE%E6%AF%94%20%24%7C%5Clambda_%7Bi%2B1%7D%2F%5Clambda_i%7C%24%20%E3%81%A7%E6%B1%BA%E3%81%BE%E3%82%8B%E7%B7%9A%E5%BD%A2%E5%8F%8E%E6%9D%9F%E3%81%AA%E3%81%AE%E3%81%A7%E3%80%81%0A%20%20%20%20%E6%AF%94%E3%81%8C%201%20%E3%81%AB%E8%BF%91%E3%81%84%E3%81%A8%E9%9D%9E%E5%B8%B8%E3%81%AB%E9%81%85%E3%81%84%E3%80%82%E6%AC%A1%E7%AF%80%E3%81%AE%E5%8E%9F%E7%82%B9%E3%82%B7%E3%83%95%E3%83%88%E3%81%AF%E3%81%93%E3%81%AE%E6%AF%94%E3%82%92%E4%BA%BA%E7%82%BA%E7%9A%84%E3%81%AB%E5%B0%8F%E3%81%95%E3%81%8F%E3%81%99%E3%82%8B%E5%B7%A5%E5%A4%AB%E3%81%A7%E3%81%82%E3%82%8B%E3%80%82%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(A%2C%20QR_decomp%2C%20np%2C%20plt%2C%20sns)%3A%0A%20%20%20%20def%20QR_iteration(A_%2C%20eps%3D1e-06%2C%20max_iter%3D100)%3A%0A%20%20%20%20%20%20%20%20A%20%3D%20A_.copy()%0A%20%20%20%20%20%20%20%20for%20i%20in%20range(max_iter)%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20_Q%2C%20_R%20%3D%20QR_decomp(A)%0A%20%20%20%20%20%20%20%20%20%20%20%20A%20%3D%20_R%20%40%20_Q%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20np.tril(np.abs(A)%2C%20-1).max()%20%3C%20eps%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20print(f'early%20stop%3A%20i%3D%7Bi!r%7D')%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%0A%20%20%20%20%20%20%20%20return%20A%0A%20%20%20%20diag_A%20%3D%20QR_iteration(A)%0A%20%20%20%20print('diag_A%3D')%0A%20%20%20%20sns.heatmap(diag_A%2C%20annot%3DTrue%2C%20cmap%3D'coolwarm')%0A%20%20%20%20plt.show()%0A%20%20%20%20return%20QR_iteration%2C%20diag_A%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20numpy%20%E3%81%AE%E7%B5%90%E6%9E%9C%E3%81%A8%E7%AA%81%E3%81%8D%E5%90%88%E3%82%8F%E3%81%9B%E3%81%A6%E6%A4%9C%E7%AE%97%E3%81%99%E3%82%8B%E3%80%82%E3%81%93%E3%81%93%E3%81%A7%E6%89%B1%E3%81%86%20%24A%24%20%E3%81%AF%E9%9D%9E%E5%AF%BE%E7%A7%B0%E3%81%AA%E3%81%AE%E3%81%A7%E3%80%81%0A%20%20%20%20%E5%AF%BE%E7%A7%B0%E8%A1%8C%E5%88%97%E5%B0%82%E7%94%A8%E3%81%AE%20%60np.linalg.eigh%60%EF%BC%88%E4%B8%8B%E4%B8%89%E8%A7%92%E3%81%97%E3%81%8B%E5%8F%82%E7%85%A7%E3%81%97%E3%81%AA%E3%81%84%EF%BC%89%E3%81%A7%E3%81%AF%E3%81%AA%E3%81%8F%20%60np.linalg.eig%60%20%E3%82%92%E4%BD%BF%E3%81%86%E3%80%82%0A%0A%20%20%20%20%E3%81%BE%E3%81%9F%E5%8F%8D%E5%BE%A9%E6%B3%95%E3%81%8C%E8%BF%94%E3%81%99%E5%9B%BA%E6%9C%89%E5%80%A4%E3%81%AE%E4%B8%A6%E3%81%B3%E9%A0%86%E3%81%AF%E6%89%8B%E6%B3%95%E3%81%94%E3%81%A8%E3%81%AB%E9%81%95%E3%81%86%E3%81%9F%E3%82%81%E3%80%81%0A%20%20%20%20%E6%AF%94%E8%BC%83%E3%81%AE%E9%9A%9B%E3%81%AF%20numpy%20%E5%81%B4%E3%82%92%E5%8F%8D%E5%BE%A9%E6%B3%95%E3%81%AE%E4%B8%A6%E3%81%B3%E9%A0%86%E3%81%AB%E5%AF%BE%E5%BF%9C%E4%BB%98%E3%81%91%E3%81%A6%E3%81%8B%E3%82%89%E5%B7%AE%E3%82%92%E5%8F%96%E3%82%8B%E3%80%82%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(A%2C%20diag_A%2C%20np)%3A%0A%20%20%20%20def%20ordered_eig(A_%2C%20reference%3DNone)%3A%0A%20%20%20%20%20%20%20%20%23%20A%20%E3%81%AF%E9%9D%9E%E5%AF%BE%E7%A7%B0%E3%81%AA%E3%81%AE%E3%81%A7%E3%80%81%E5%AF%BE%E7%A7%B0%E8%A1%8C%E5%88%97%E5%B0%82%E7%94%A8%E3%81%AE%20eigh%20%E3%81%A7%E3%81%AF%E3%81%AA%E3%81%8F%20eig%20%E3%82%92%E4%BD%BF%E3%81%86%0A%20%20%20%20%20%20%20%20evalues%2C%20evectors%20%3D%20np.linalg.eig(A_)%0A%20%20%20%20%20%20%20%20if%20reference%20is%20None%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20idx%20%3D%20np.abs(evalues).argsort()%5B%3A%3A-1%5D%20%20%23%20%E5%9B%BA%E6%9C%89%E5%80%A4%E3%81%AE%E7%B5%B6%E5%AF%BE%E5%80%A4%E3%81%8C%E5%A4%A7%E3%81%8D%E3%81%84%E9%A0%86%E3%81%AB%E4%B8%A6%E3%81%B9%E3%82%8B%0A%20%20%20%20%20%20%20%20else%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%23%20%E5%8F%8D%E5%BE%A9%E6%B3%95%E3%81%8C%E8%BF%94%E3%81%99%E4%B8%A6%E3%81%B3%E9%A0%86%E3%81%AB%E3%80%81%E6%9C%80%E3%82%82%E8%BF%91%E3%81%84%E5%9B%BA%E6%9C%89%E5%80%A4%E3%82%92%201%20%E5%AF%BE%201%20%E3%81%A7%E5%AF%BE%E5%BF%9C%E4%BB%98%E3%81%91%E3%82%8B%0A%20%20%20%20%20%20%20%20%20%20%20%20rest%20%3D%20list(range(len(evalues)))%0A%20%20%20%20%20%20%20%20%20%20%20%20idx%20%3D%20%5B%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20for%20value%20in%20reference%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20nearest%20%3D%20min(rest%2C%20key%3Dlambda%20j%3A%20abs(evalues%5Bj%5D%20-%20value))%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20rest.remove(nearest)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20idx.append(nearest)%0A%20%20%20%20%20%20%20%20%20%20%20%20idx%20%3D%20np.array(idx)%0A%20%20%20%20%20%20%20%20return%20(evalues%5Bidx%5D%2C%20evectors%5B%3A%2C%20idx%5D)%0A%20%20%20%20_evalues_np%2C%20_%20%3D%20ordered_eig(A%2C%20np.diag(diag_A))%0A%20%20%20%20print(f'np.diag(diag_A)%3D%7Bnp.diag(diag_A)!r%7D')%0A%20%20%20%20print(f'evalues_np%3D%7B_evalues_np!r%7D')%0A%20%20%20%20print(f'residuals%3D%7Bnp.diag(diag_A)%20-%20_evalues_np%7D')%0A%20%20%20%20return%20(ordered_eig%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%20%E5%8E%9F%E7%82%B9%E3%82%B7%E3%83%95%E3%83%88%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20QR%20%E6%B3%95%E3%81%AE%E5%8F%8E%E6%9D%9F%E9%80%9F%E5%BA%A6%E3%81%AF%E9%9A%A3%E3%82%8A%E5%90%88%E3%81%86%E5%9B%BA%E6%9C%89%E5%80%A4%E3%81%AE%E6%AF%94%20%24%7C%5Clambda_%7Bi%2B1%7D%2F%5Clambda_i%7C%24%20%E3%81%A7%E6%B1%BA%E3%81%BE%E3%82%8B%E3%80%82%0A%20%20%20%20%E3%81%9D%E3%81%93%E3%81%A7%E5%8E%9F%E7%82%B9%E3%82%92%E3%81%9A%E3%82%89%E3%81%99%E9%87%8F%EF%BC%88%E3%82%B7%E3%83%95%E3%83%88%EF%BC%89%24%5Cmu_k%24%20%E3%82%92%E5%B0%8E%E5%85%A5%E3%81%97%0A%20%20%20%20%24%24%0A%20%20%20%20A_k-%5Cmu_k%20I%3DQ_kR_k%2C%5Cquad%0A%20%20%20%20A_%7Bk%2B1%7D%3DR_kQ_k%2B%5Cmu_kI%0A%20%20%20%20%24%24%0A%20%20%20%20%E3%81%A8%E5%8F%8D%E5%BE%A9%E3%81%99%E3%82%8B%E3%80%82%24A_%7Bk%2B1%7D%3DQ_k%5ET%20A_k%20Q_k%24%20%E3%81%AF%E5%A4%89%E3%82%8F%E3%82%89%E3%81%AA%E3%81%84%E3%81%AE%E3%81%A7%E5%9B%BA%E6%9C%89%E5%80%A4%E3%81%AF%E4%BF%9D%E5%AD%98%E3%81%95%E3%82%8C%E3%82%8B%E3%81%8C%E3%80%81%0A%20%20%20%20%E5%8F%8E%E6%9D%9F%E3%82%92%E6%94%AF%E9%85%8D%E3%81%99%E3%82%8B%E6%AF%94%E3%81%AF%0A%20%20%20%20%24%24%0A%20%20%20%20%5Cleft%7C%5Cfrac%7B%5Clambda_%7Bi%2B1%7D-%5Cmu_k%7D%7B%5Clambda_i-%5Cmu_k%7D%5Cright%7C%0A%20%20%20%20%24%24%0A%20%20%20%20%E3%81%AB%E7%BD%AE%E3%81%8D%E6%8F%9B%E3%82%8F%E3%82%8B%E3%80%82%24%5Cmu_k%24%20%E3%82%92%E3%81%A9%E3%82%8C%E3%81%8B%201%20%E3%81%A4%E3%81%AE%E5%9B%BA%E6%9C%89%E5%80%A4%E3%81%AB%E8%BF%91%E3%81%A5%E3%81%91%E3%82%8B%E3%81%BB%E3%81%A9%E3%81%93%E3%81%AE%E6%AF%94%E3%81%AF%E5%B0%8F%E3%81%95%E3%81%8F%E3%81%AA%E3%82%8A%E3%80%81%0A%20%20%20%20%E5%8F%B3%E4%B8%8B%E9%9A%85%E3%81%AE%E5%8A%A3%E5%AF%BE%E8%A7%92%E6%88%90%E5%88%86%E3%81%8C%E6%80%A5%E9%80%9F%E3%81%AB%200%20%E3%81%B8%E5%90%91%E3%81%8B%E3%81%86%E3%80%82%0A%0A%20%20%20%20%E3%82%A6%E3%82%A3%E3%83%AB%E3%82%AD%E3%83%B3%E3%82%BD%E3%83%B3%E3%81%AE%E7%A7%BB%E5%8B%95%E6%B3%95%E3%81%AF%24A_k%24%E5%8F%B3%E4%B8%8B%E9%9A%85%E3%81%AE2x2%E5%B0%8F%E8%A1%8C%E5%88%97%E3%81%AE%E5%9B%BA%E6%9C%89%E5%80%A4%E3%81%AE%E3%81%86%E3%81%A1%E3%80%81%0A%20%20%20%20%24A_k%24%E3%81%AE%E5%8F%B3%E4%B8%8B%E9%9A%85%E3%81%AE%E5%80%A4%E3%81%AB%E8%BF%91%E3%81%84%E3%81%BB%E3%81%86%E3%82%92%24%5Cmu_k%24%E3%81%A8%E3%81%97%E3%81%A6%E5%88%A9%E7%94%A8%E3%80%82%0A%20%20%20%202x2%20%E8%A1%8C%E5%88%97%E3%81%AE%E5%9B%BA%E6%9C%89%E5%80%A4%E3%81%AF%E7%89%B9%E6%80%A7%E6%96%B9%E7%A8%8B%E5%BC%8F%0A%20%20%20%20%24%24%0A%20%20%20%20%5Clambda%5E2-(%5Cmathrm%7Btr%7DA)%5Clambda%2B%5Cdet%20A%3D0%0A%20%20%20%20%24%24%0A%20%20%20%20%E3%81%8B%E3%82%89%0A%20%20%20%20%24%24%0A%20%20%20%20%5Clambda%3D%5Cfrac%7B%5Cmathrm%7Btr%7DA%5Cpm%5Csqrt%7B(%5Cmathrm%7Btr%7DA)%5E2-4%5Cdet%20A%7D%7D%7B2%7D%0A%20%20%20%20%24%24%0A%20%20%20%20%E3%81%A8%E9%96%89%E3%81%98%E3%81%9F%E5%BD%A2%E3%81%A7%E6%9B%B8%E3%81%91%E3%82%8B%E3%80%82%E6%AC%A1%E3%81%AE%E3%82%BB%E3%83%AB%E3%81%AE%20%60minimal_eigh%60%20%E3%81%AF%E3%81%93%E3%81%AE%E5%85%AC%E5%BC%8F%E3%81%9D%E3%81%AE%E3%82%82%E3%81%AE%E3%81%A7%E3%80%81%0A%20%20%20%20%60b%60%20%E3%81%8C%E3%83%88%E3%83%AC%E3%83%BC%E3%82%B9%E3%80%81%60c%60%20%E3%81%8C%E8%A1%8C%E5%88%97%E5%BC%8F%E3%80%81%60D%60%20%E3%81%8C%E5%88%A4%E5%88%A5%E5%BC%8F%E3%81%AB%E5%AF%BE%E5%BF%9C%E3%81%99%E3%82%8B%E3%80%82%0A%20%20%20%20%E5%88%A4%E5%88%A5%E5%BC%8F%E3%81%8C%E8%B2%A0%EF%BC%88%E8%A4%87%E7%B4%A0%E5%85%B1%E5%BD%B9%E5%AF%BE%EF%BC%89%E3%81%AE%E5%A0%B4%E5%90%88%E3%81%AF%E5%AE%9F%E6%95%B0%E3%81%AE%E7%AF%84%E5%9B%B2%E3%81%A7%E3%81%AF%E6%89%B1%E3%81%88%E3%81%AA%E3%81%84%E3%81%9F%E3%82%81%E3%80%81%0A%20%20%20%20%E3%81%93%E3%81%93%E3%81%A7%E3%81%AF%E5%9B%BA%E6%9C%89%E5%80%A4%E3%81%8C%E3%81%99%E3%81%B9%E3%81%A6%E5%AE%9F%E3%81%A7%E3%81%82%E3%82%8B%E8%A1%8C%E5%88%97%E3%82%92%E5%89%8D%E6%8F%90%E3%81%AB%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%80%82%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(A%2C%20np)%3A%0A%20%20%20%20def%20minimal_eigh(A)%3A%0A%20%20%20%20%20%20if%20A.shape%20!%3D%20(2%2C%202)%3A%0A%20%20%20%20%20%20%20%20raise%20ValueError(%22A%20must%20be%202x2%20matrix%22)%0A%20%20%20%20%20%20b%20%3D%20np.trace(A)%0A%20%20%20%20%20%20c%20%3D%20np.linalg.det(A)%0A%20%20%20%20%20%20D%20%3D%20b**2-4*c%0A%20%20%20%20%20%20return%20np.array(%5B(b%2Bnp.sqrt(D))%2F2%2C%20(b-np.sqrt(D))%2F2%5D)%0A%0A%20%20%20%20def%20wilkinson_shift(A)%3A%0A%20%20%20%20%20%20evalues%20%3D%20minimal_eigh(A%5B-2%3A%2C%20-2%3A%5D)%0A%20%20%20%20%20%20idx%20%3D%20np.argmin(np.abs(evalues-A%5B-1%2C-1%5D))%0A%20%20%20%20%20%20return%20evalues%5Bidx%5D%0A%0A%20%20%20%20print(f%22%7Bwilkinson_shift(A)%3D%3A.2f%7D%22)%0A%20%20%20%20return%20(wilkinson_shift%2C)%0A%0A%0A%40app.cell%0Adef%20_(A%2C%20QR_decomp%2C%20np%2C%20ordered_eig%2C%20plt%2C%20sns%2C%20wilkinson_shift)%3A%0A%20%20%20%20def%20shifted_QR_iteration(A_%2C%20eps%3D1e-06%2C%20max_iter%3D100)%3A%0A%20%20%20%20%20%20%20%20A%20%3D%20A_.copy()%0A%20%20%20%20%20%20%20%20N%20%3D%20A.shape%5B0%5D%0A%20%20%20%20%20%20%20%20for%20i%20in%20range(max_iter)%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20mu%20%3D%20wilkinson_shift(A)%0A%20%20%20%20%20%20%20%20%20%20%20%20_Q%2C%20_R%20%3D%20QR_decomp(A%20-%20mu%20*%20np.eye(N))%0A%20%20%20%20%20%20%20%20%20%20%20%20A%20%3D%20_R%20%40%20_Q%20%2B%20mu%20*%20np.eye(N)%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20np.tril(np.abs(A)%2C%20-1).max()%20%3C%20eps%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20print(f'early%20stop%3A%20i%3D%7Bi!r%7D')%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%0A%20%20%20%20%20%20%20%20return%20A%0A%20%20%20%20diag_A_1%20%3D%20shifted_QR_iteration(A)%0A%20%20%20%20print('diag_A%3D')%0A%20%20%20%20sns.heatmap(diag_A_1%2C%20annot%3DTrue%2C%20cmap%3D'coolwarm')%0A%20%20%20%20plt.show()%0A%20%20%20%20%23%20%E3%82%B7%E3%83%95%E3%83%88%E3%82%92%E5%85%A5%E3%82%8C%E3%82%8B%E3%81%A8%E5%9B%BA%E6%9C%89%E5%80%A4%E3%81%AE%E4%B8%A6%E3%81%B3%E9%A0%86%E3%81%AF%E7%B5%B6%E5%AF%BE%E5%80%A4%E9%A0%86%E3%81%AB%E3%81%AA%E3%82%89%E3%81%AA%E3%81%84%E3%81%AE%E3%81%A7%E3%80%81numpy%20%E5%81%B4%E3%82%92%E5%AF%BE%E5%BF%9C%E4%BB%98%E3%81%91%E3%82%8B%0A%20%20%20%20_evalues_np%2C%20_%20%3D%20ordered_eig(A%2C%20np.diag(diag_A_1))%0A%20%20%20%20print(f'residuals%3D%7Bnp.diag(diag_A_1)%20-%20_evalues_np%7D')%0A%20%20%20%20return%20(diag_A_1%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%20%E9%80%86%E5%8F%8D%E5%BE%A9%E6%B3%95%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B%E5%A4%89%E6%95%B0%E3%82%92%E6%95%B4%E7%90%86%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(A%2C%20diag_A_1%2C%20np%2C%20plt%2C%20sns)%3A%0A%20%20%20%20print('A%3D')%0A%20%20%20%20sns.heatmap(A%2C%20annot%3DTrue%2C%20cmap%3D'coolwarm')%0A%20%20%20%20plt.show()%0A%20%20%20%20evalues%20%3D%20np.diag(diag_A_1)%0A%20%20%20%20print(f'evalues%3D%7Bevalues!r%7D')%0A%20%20%20%20return%20(evalues%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%E9%80%86%E5%8F%8D%E5%BE%A9%E6%B3%95%E3%81%AF%E8%BF%91%E4%BC%BC%E5%9B%BA%E6%9C%89%E5%80%A4%24%5Clambda'%24%E3%81%AB%E5%AF%BE%E3%81%99%E3%82%8B%24((A-%5Clambda'E)%5E%7B-1%7D)%5E%5Cinfty%24%E3%82%92%E5%9B%BA%E6%9C%89%E3%83%99%E3%82%AF%E3%83%88%E3%83%AB%E3%81%A8%E3%81%97%E3%81%A6%E8%A8%88%E7%AE%97%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%E3%80%82%0A%0A%20%20%20%20%24A%24%20%E3%81%AE%E5%9B%BA%E6%9C%89%E5%80%A4%E3%82%92%20%24%5Clambda_i%24%20%E3%81%A8%E3%81%99%E3%82%8B%E3%81%A8%20%24(A-%5Clambda'E)%5E%7B-1%7D%24%20%E3%81%AE%E5%9B%BA%E6%9C%89%E5%80%A4%E3%81%AF%0A%20%20%20%20%241%2F(%5Clambda_i-%5Clambda')%24%20%E3%81%A7%E3%81%82%E3%82%8A%E3%80%81%E5%9B%BA%E6%9C%89%E3%83%99%E3%82%AF%E3%83%88%E3%83%AB%E3%81%AF%20%24A%24%20%E3%81%AE%E3%82%82%E3%81%AE%E3%81%A8%E5%85%B1%E9%80%9A%E3%81%A7%E3%81%82%E3%82%8B%E3%80%82%0A%20%20%20%20%24%5Clambda'%24%20%E3%82%92%E7%9B%AE%E7%9A%84%E3%81%AE%E5%9B%BA%E6%9C%89%E5%80%A4%20%24%5Clambda%24%20%E3%81%AE%E8%BF%91%E3%81%8F%E3%81%AB%E5%8F%96%E3%82%8C%E3%81%B0%20%241%2F(%5Clambda-%5Clambda')%24%20%E3%81%A0%E3%81%91%E3%81%8C%E7%AA%81%E5%87%BA%E3%81%97%E3%81%A6%E5%A4%A7%E3%81%8D%E3%81%8F%E3%81%AA%E3%82%8B%E3%81%AE%E3%81%A7%E3%80%81%0A%20%20%20%20%E3%81%93%E3%81%AE%E8%A1%8C%E5%88%97%E3%81%AB%E3%81%B9%E3%81%8D%E4%B9%97%E6%B3%95%E3%82%92%E9%81%A9%E7%94%A8%E3%81%99%E3%82%8C%E3%81%B0%E7%9B%AE%E7%9A%84%E3%81%AE%E5%9B%BA%E6%9C%89%E3%83%99%E3%82%AF%E3%83%88%E3%83%AB%E3%81%A0%E3%81%91%E3%81%8C%E6%AE%8B%E3%82%8B%E3%80%82%0A%20%20%20%20%E3%81%B9%E3%81%8D%E4%B9%97%E6%B3%95%E3%81%8C%E7%B5%B6%E5%AF%BE%E5%80%A4%E6%9C%80%E5%A4%A7%E3%81%AE%E5%9B%BA%E6%9C%89%E5%80%A4%E3%81%97%E3%81%8B%E5%8F%96%E3%82%8C%E3%81%AA%E3%81%84%E3%81%AE%E3%81%AB%E5%AF%BE%E3%81%97%E3%80%81%E9%80%86%E5%8F%8D%E5%BE%A9%E6%B3%95%E3%81%AF%20%24%5Clambda'%24%20%E3%82%92%E5%A4%89%E3%81%88%E3%82%8B%E3%81%93%E3%81%A8%E3%81%A7%0A%20%20%20%20%E4%BB%BB%E6%84%8F%E3%81%AE%E5%9B%BA%E6%9C%89%E5%80%A4%E3%81%AE%E5%9B%BA%E6%9C%89%E3%83%99%E3%82%AF%E3%83%88%E3%83%AB%E3%82%92%E5%8F%96%E3%82%8A%E5%87%BA%E3%81%9B%E3%82%8B%E3%80%82%0A%0A%20%20%20%20%24%5Clambda'%24%20%E3%81%8C%E5%9B%BA%E6%9C%89%E5%80%A4%E3%81%AB%E8%BF%91%E3%81%84%E3%81%BB%E3%81%A9%20%24A-%5Clambda'E%24%20%E3%81%AF%E7%89%B9%E7%95%B0%E3%81%AB%E8%BF%91%E3%81%A5%E3%81%8D%E9%80%A3%E7%AB%8B%E6%96%B9%E7%A8%8B%E5%BC%8F%E3%81%AF%E6%82%AA%E6%9D%A1%E4%BB%B6%E3%81%AB%E3%81%AA%E3%82%8B%E3%81%8C%E3%80%81%0A%20%20%20%20%E8%AA%A4%E5%B7%AE%E3%82%82%E3%81%BE%E3%81%9F%E7%9B%AE%E7%9A%84%E3%81%AE%E5%9B%BA%E6%9C%89%E3%83%99%E3%82%AF%E3%83%88%E3%83%AB%E3%81%AE%E6%96%B9%E5%90%91%E3%81%B8%E5%A2%97%E5%B9%85%E3%81%95%E3%82%8C%E3%82%8B%E3%81%9F%E3%82%81%E3%80%81%E5%9B%BA%E6%9C%89%E3%83%99%E3%82%AF%E3%83%88%E3%83%AB%E3%81%AE%E7%B2%BE%E5%BA%A6%E3%81%AF%E8%90%BD%E3%81%A1%E3%81%AA%E3%81%84%E3%80%82%0A%0A%20%20%20%20%E8%A8%88%E7%AE%97%E3%81%AE%E9%81%8E%E7%A8%8B%E3%81%A7%E3%83%AC%E3%82%A4%E3%83%AA%E3%83%BC%E5%95%86%E3%81%AB%E3%82%88%E3%82%8B%E8%A8%88%E7%AE%97%0A%20%20%20%20%24%24%0A%20%20%20%20R(%5Cvec%7Bx%7D%5E%7B(k)%7D)%3D%5Cfrac%7B(%5Cvec%7Bx%7D%5E%7B(k)%7D%2C(A-%5Clambda'E)%5E%7B-1%7D%5Cvec%7Bx%7D%5E%7B(k)%7D)%7D%7B(%5Cvec%7Bx%7D%5E%7B(k)%7D%2C%5Cvec%7Bx%7D%5E%7B(k)%7D)%7D%0A%20%20%20%20%3D%5Cfrac%7B1%7D%7B%5Clambda-%5Clambda'%7D%5Cequiv%5Cmu%0A%20%20%20%20%24%24%0A%20%20%20%20%E3%81%A7%E5%9B%BA%E6%9C%89%E5%80%A4%E3%81%AE%E9%AB%98%E7%B2%BE%E5%BA%A6%E5%8C%96%E3%81%8C%E5%9B%B3%E3%82%8C%E3%82%8B%E3%80%82%24%5Cmu%24%20%E3%82%92%E9%80%86%E3%81%AB%E8%A7%A3%E3%81%8F%E3%81%A8%20%24%5Clambda%3D%5Clambda'%2B1%2F%5Cmu%24%20%E3%81%A8%E3%81%AA%E3%82%8B%E3%81%AE%E3%81%A7%E3%80%81%0A%20%20%20%20%E5%AE%9F%E8%A3%85%E3%81%A7%E3%81%AF%E3%81%93%E3%82%8C%E3%81%A7%20%24%5Clambda'%24%20%E3%82%92%E6%AF%8E%E5%9B%9E%E6%9B%B4%E6%96%B0%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%EF%BC%88%E3%83%AC%E3%82%A4%E3%83%AA%E3%83%BC%E5%95%86%E5%8F%8D%E5%BE%A9%EF%BC%89%E3%80%82%0A%20%20%20%20%E3%83%AC%E3%82%A4%E3%83%AA%E3%83%BC%E5%95%86%E3%81%AF%E6%AD%A3%E8%A6%8F%E5%8C%96%E5%89%8D%E3%81%AE%20%24%5Cvec%7Bx%7D%5E%7B(k)%7D%24%20%E3%81%A8%E3%81%AE%E5%86%85%E7%A9%8D%E3%81%A7%E8%A8%88%E7%AE%97%E3%81%99%E3%82%8B%E5%BF%85%E8%A6%81%E3%81%8C%E3%81%82%E3%82%8B%E3%80%82%0A%20%20%20%20%E5%85%88%E3%81%AB%20%24%5Cvec%7Bx%7D%5E%7B(k)%7D%24%20%E3%82%92%E6%9B%B4%E6%96%B0%E3%81%97%E3%81%A6%E3%81%97%E3%81%BE%E3%81%86%E3%81%A8%20%24%5C%7C%5Cvec%7Bv%7D%5C%7C%24%20%E3%82%92%E8%A8%88%E7%AE%97%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%81%AB%E3%81%AA%E3%82%8A%E7%AC%A6%E5%8F%B7%E3%81%8C%E8%90%BD%E3%81%A1%E3%82%8B%E3%80%82%0A%0A%20%20%20%20%E3%82%B7%E3%83%95%E3%83%88%E3%81%8C%E5%9B%BA%E6%9C%89%E5%80%A4%E3%81%B8%E8%BF%91%E3%81%A5%E3%81%8F%E3%81%AB%E3%81%A4%E3%82%8C%E5%8F%8E%E6%9D%9F%E3%81%AF%E5%8A%A0%E9%80%9F%E3%81%99%E3%82%8B%E3%80%82%E5%AF%BE%E7%A7%B0%E8%A1%8C%E5%88%97%E3%81%A7%E3%81%AF%203%20%E6%AC%A1%E5%8F%8E%E6%9D%9F%E3%81%99%E3%82%8B%E3%81%8C%E3%80%81%0A%20%20%20%20%E3%81%93%E3%81%93%E3%81%A7%E6%89%B1%E3%81%86%20%24A%24%20%E3%81%AF%E9%9D%9E%E5%AF%BE%E7%A7%B0%E3%81%AA%E3%81%AE%E3%81%A7%E4%B8%80%E8%88%AC%E3%81%AB%E3%81%AF%202%20%E6%AC%A1%E5%8F%8E%E6%9D%9F%E3%81%A7%E3%81%82%E3%82%8B%E3%80%82%0A%20%20%20%20%E5%81%9C%E6%AD%A2%E5%88%A4%E5%AE%9A%E3%81%AB%E3%81%AF%E6%AE%8B%E5%B7%AE%20%24%5C%7CA%5Cvec%7Bx%7D-%5Clambda%5Cvec%7Bx%7D%5C%7C%24%20%E3%82%92%E4%BD%BF%E3%81%86%E3%80%82%0A%20%20%20%20%E5%88%9D%E6%9C%9F%E3%83%99%E3%82%AF%E3%83%88%E3%83%AB%E3%81%AF%E5%8D%98%E4%BD%8D%E3%83%99%E3%82%AF%E3%83%88%E3%83%AB%E3%81%AE%E3%81%BE%E3%81%BE%E3%81%A0%E3%81%8C%E3%80%81%E3%82%B7%E3%83%95%E3%83%88%E3%81%AB%20QR%20%E6%B3%95%E3%81%A7%E6%B1%82%E3%82%81%E3%81%9F%E9%AB%98%E7%B2%BE%E5%BA%A6%E3%81%AA%E5%9B%BA%E6%9C%89%E5%80%A4%E3%82%92%E4%BD%BF%E3%81%86%E3%81%9F%E3%82%81%E3%80%81%0A%20%20%20%202%20%E5%9B%9E%E3%81%AE%E5%8F%8D%E5%BE%A9%E3%81%A7%E6%A9%9F%E6%A2%B0%E7%B2%BE%E5%BA%A6%E3%81%AB%E9%81%94%E3%81%99%E3%82%8B%E3%80%82%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(A%2C%20evalues%2C%20np%2C%20plt%2C%20sns)%3A%0A%20%20%20%20def%20inverse_iteration(A%2C%20evalues_%2C%20eps%3D1e-10%2C%20max_iter%3D100)%3A%0A%20%20%20%20%20%20%20%20evalues%20%3D%20evalues_.copy()%0A%20%20%20%20%20%20%20%20N%20%3D%20A.shape%5B0%5D%0A%20%20%20%20%20%20%20%20evectors%20%3D%20np.eye(N)%0A%20%20%20%20%20%20%20%20for%20i%20in%20range(N)%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20x%20%3D%20evectors%5B%3A%2C%20i%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20for%20_%20in%20range(max_iter)%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20v%20%3D%20np.linalg.solve(A%20-%20evalues%5Bi%5D%20*%20np.eye(N)%2C%20x)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20%E3%83%AC%E3%82%A4%E3%83%AA%E3%83%BC%E5%95%86%E3%81%AF%E6%AD%A3%E8%A6%8F%E5%8C%96%E5%89%8D%E3%81%AE%20x%20%E3%81%A7%E8%A8%88%E7%AE%97%E3%81%99%E3%82%8B%EF%BC%88%E5%85%88%E3%81%AB%20x%20%E3%82%92%E6%9B%B4%E6%96%B0%E3%81%99%E3%82%8B%E3%81%A8%E7%AC%A6%E5%8F%B7%E3%81%8C%E8%90%BD%E3%81%A1%E3%82%8B%EF%BC%89%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20mu%20%3D%20np.dot(x%2C%20v)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20x%20%3D%20v%20%2F%20np.linalg.norm(v)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20evalues%5Bi%5D%20%3D%20evalues%5Bi%5D%20%2B%201%20%2F%20mu%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20np.linalg.norm(A%20%40%20x%20-%20evalues%5Bi%5D%20*%20x)%20%3C%20eps%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%0A%20%20%20%20%20%20%20%20%20%20%20%20evectors%5B%3A%2C%20i%5D%20%3D%20x%0A%20%20%20%20%20%20%20%20return%20(evalues%2C%20evectors)%0A%20%20%20%20evalues_1%2C%20evectors%20%3D%20inverse_iteration(A%2C%20evalues)%0A%20%20%20%20lambda_mat%20%3D%20np.diag(evalues_1)%0A%20%20%20%20_residuals%20%3D%20A%20%40%20evectors%20-%20evectors%20%40%20lambda_mat%0A%20%20%20%20print('residuals%3D')%0A%20%20%20%20sns.heatmap(_residuals%2C%20annot%3DTrue%2C%20cmap%3D'coolwarm')%0A%20%20%20%20plt.show()%0A%20%20%20%20return%20evalues_1%2C%20evectors%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%E8%A8%88%E7%AE%97%E7%B5%90%E6%9E%9C%E3%82%92%20numpy%20%E3%81%AB%E3%82%88%E3%82%8B%E7%B5%90%E6%9E%9C%E3%81%A8%E6%AF%94%E8%BC%83%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(A%2C%20evalues_1%2C%20evectors%2C%20ordered_eig%2C%20plt%2C%20sns)%3A%0A%20%20%20%20evalues_np_1%2C%20_evectors_np%20%3D%20ordered_eig(A%2C%20evalues_1)%0A%20%20%20%20for%20idx%20in%20range(_evectors_np.shape%5B1%5D)%3A%0A%20%20%20%20%20%20%20%20if%20_evectors_np%5B0%2C%20idx%5D%20*%20evectors%5B0%2C%20idx%5D%20%3C%200%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20_evectors_np%5B%3A%2C%20idx%5D%20%3D%20_evectors_np%5B%3A%2C%20idx%5D%20*%20-1%0A%20%20%20%20print(f'evalues%3D%7Bevalues_1!r%7D')%0A%20%20%20%20print(f'evalues_np%3D%7Bevalues_np_1!r%7D')%0A%20%20%20%20print(f'evectors%3D%7Bevectors!r%7D')%0A%20%20%20%20print(f'evectors_np%3D%7B_evectors_np!r%7D')%0A%20%20%20%20print(f'evalues-evalues_np%3D%7Bevalues_1%20-%20evalues_np_1!r%7D')%0A%20%20%20%20print('residuals%3D')%0A%20%20%20%20sns.heatmap(evectors%20-%20_evectors_np%2C%20annot%3DTrue%2C%20cmap%3D'coolwarm')%0A%20%20%20%20plt.show()%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20%E5%9B%BA%E6%9C%89%E5%80%A4%E8%A8%88%E7%AE%97%E3%81%AE%E9%AB%98%E9%80%9F%E5%8C%96%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%20%E3%83%8F%E3%82%A6%E3%82%B9%E3%83%9B%E3%83%AB%E3%83%80%E3%83%BC%E5%A4%89%E6%8F%9B%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%E5%AF%BE%E8%A7%92%E6%88%90%E5%88%86%E3%82%88%E3%82%8A2%E4%BB%A5%E4%B8%8A%E5%B7%A6%E3%81%AE%E6%88%90%E5%88%86%E3%81%8C0%E3%81%A8%E3%81%AA%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8B%E8%A1%8C%E5%88%97%E3%82%92%E3%83%98%E3%83%83%E3%82%BB%E3%83%B3%E3%83%99%E3%83%AB%E3%82%B0%E8%A1%8C%E5%88%97%E3%81%A8%E3%81%84%E3%81%86%E3%80%82%0A%20%20%20%20QR%20%E5%88%86%E8%A7%A3%E3%81%AE%E5%89%8D%E5%87%A6%E7%90%86%E3%81%A8%E3%81%97%E3%81%A6%E3%83%8F%E3%82%A6%E3%82%B9%E3%83%9B%E3%83%AB%E3%83%80%E3%83%BC%E5%A4%89%E6%8F%9B%E3%81%A8%E5%91%BC%E3%81%B0%E3%82%8C%E3%82%8B%E7%9B%B4%E4%BA%A4%E3%83%BB%E9%8F%A1%E6%98%A0%E5%A4%89%E6%8F%9B%E3%81%A7%E3%80%81%0A%20%20%20%20%E5%AF%BE%E8%B1%A1%E8%A1%8C%E5%88%97%E3%82%92%E3%83%98%E3%83%83%E3%82%BB%E3%83%B3%E3%83%99%E3%83%AB%E3%82%B0%E8%A1%8C%E5%88%97%E3%81%B8%E5%A4%89%E6%8F%9B%E3%81%99%E3%82%8B%E3%80%82%0A%0A%20%20%20%20%E5%8D%98%E4%BD%8D%E3%83%99%E3%82%AF%E3%83%88%E3%83%AB%20%24%5Cvec%7Bu%7D%24%20%E3%81%AB%E5%AF%BE%E3%81%97%E3%81%A6%0A%20%20%20%20%24%24%0A%20%20%20%20P%3DI-2%5Cvec%7Bu%7D%5Cvec%7Bu%7D%5ET%0A%20%20%20%20%24%24%0A%20%20%20%20%E3%81%AF%20%24%5Cvec%7Bu%7D%24%20%E3%81%AB%E7%9B%B4%E4%BA%A4%E3%81%99%E3%82%8B%E8%B6%85%E5%B9%B3%E9%9D%A2%E3%81%AB%E9%96%A2%E3%81%99%E3%82%8B%E9%8F%A1%E6%98%A0%E3%82%92%E8%A1%A8%E3%81%99%E3%80%82%24P%5ET%3DP%24%20%E3%81%8B%E3%81%A4%20%24P%5ETP%3DP%5E2%3DI%24%20%E3%81%AA%E3%81%AE%E3%81%A7%0A%20%20%20%20%E7%9B%B4%E4%BA%A4%E8%A1%8C%E5%88%97%E3%81%A7%E3%81%82%E3%82%8A%E3%80%81%24P%5E%7B-1%7D%3DP%5ET%3DP%24%20%E3%81%8C%E6%88%90%E3%82%8A%E7%AB%8B%E3%81%A4%E3%80%82%0A%20%20%20%20%E3%81%97%E3%81%9F%E3%81%8C%E3%81%A3%E3%81%A6%20%24PAP%24%20%E3%81%AF%E7%9B%B8%E4%BC%BC%E5%A4%89%E6%8F%9B%E3%81%A7%E3%81%82%E3%82%8A%E5%9B%BA%E6%9C%89%E5%80%A4%E3%82%92%E5%A4%89%E3%81%88%E3%81%AA%E3%81%84%E3%80%82%0A%0A%20%20%20%20%E3%83%99%E3%82%AF%E3%83%88%E3%83%AB%20%24%5Cvec%7Bb%7D%24%20%E3%82%92%E7%AC%AC%201%20%E8%BB%B8%E3%81%B8%E5%86%99%E3%81%99%EF%BC%88%24P%5Cvec%7Bb%7D%3Ds%5Cvec%7Be%7D_1%24%EF%BC%89%E3%81%AB%E3%81%AF%0A%20%20%20%20%24%24%0A%20%20%20%20s%3D%5Cmp%5C%7C%5Cvec%7Bb%7D%5C%7C%2C%5Cquad%0A%20%20%20%20%5Cvec%7Bu%7D%3D%5Cfrac%7B%5Cvec%7Bb%7D-s%5Cvec%7Be%7D_1%7D%7B%5C%7C%5Cvec%7Bb%7D-s%5Cvec%7Be%7D_1%5C%7C%7D%0A%20%20%20%20%24%24%0A%20%20%20%20%E3%81%A8%E5%8F%96%E3%82%8C%E3%81%B0%E3%82%88%E3%81%84%E3%80%82%E7%AC%A6%E5%8F%B7%E3%81%AF%20%24s%3D-%5Cmathrm%7Bsign%7D(b_1)%5C%7C%5Cvec%7Bb%7D%5C%7C%24%20%E3%81%A8%20%24b_1%24%20%E3%81%AE%E9%80%86%E3%81%AB%E9%81%B8%E3%81%B6%E3%80%82%0A%20%20%20%20%E5%90%8C%E7%AC%A6%E5%8F%B7%E3%81%AB%E3%81%99%E3%82%8B%E3%81%A8%20%24%5Cvec%7Bb%7D-s%5Cvec%7Be%7D_1%24%20%E3%81%AE%E7%AC%AC%201%20%E6%88%90%E5%88%86%E3%81%A7%E6%A1%81%E8%90%BD%E3%81%A1%E3%81%8C%E8%B5%B7%E3%81%8D%E3%82%8B%E3%81%9F%E3%82%81%E3%81%A7%E3%81%82%E3%82%8B%E3%80%82%0A%0A%20%20%20%20%E7%AC%AC%20%24k%24%20%E5%88%97%E3%81%AB%E5%AF%BE%E3%81%99%E3%82%8B%20%24P_k%24%20%E3%81%AF%E5%85%88%E9%A0%AD%20%24k%2B1%24%20%E8%A1%8C%E3%83%BB%E5%88%97%E3%82%92%E5%8D%98%E4%BD%8D%E8%A1%8C%E5%88%97%E3%81%AE%E3%81%BE%E3%81%BE%E3%81%AB%E3%81%97%E3%81%A6%E3%81%82%E3%82%8B%E3%81%AE%E3%81%A7%E3%80%81%0A%20%20%20%20%E7%9B%B8%E4%BC%BC%E5%A4%89%E6%8F%9B%20%24P_kHP_k%24%20%E3%81%AF%E6%97%A2%E3%81%AB%E4%BD%9C%E3%81%A3%E3%81%9F%200%20%E3%82%92%E5%A3%8A%E3%81%95%E3%81%AA%E3%81%84%E3%80%82%E3%81%93%E3%81%AE%E5%88%B6%E7%B4%84%E3%81%8C%E3%81%82%E3%82%8B%E3%81%9F%E3%82%81%E4%B8%8A%E4%B8%89%E8%A7%92%E3%81%BE%E3%81%A7%E3%81%AF%E8%90%BD%E3%81%A8%E3%81%9B%E3%81%9A%E3%80%81%0A%20%20%20%20%E5%8A%A3%E5%AF%BE%E8%A7%92%E6%88%90%E5%88%86%E3%81%8C%201%20%E6%9C%AC%E6%AE%8B%E3%82%8B%E3%83%98%E3%83%83%E3%82%BB%E3%83%B3%E3%83%99%E3%83%AB%E3%82%B0%E5%BD%A2%E3%81%8C%E9%99%90%E7%95%8C%E3%81%AB%E3%81%AA%E3%82%8B%0A%20%20%20%20%EF%BC%88%E4%B8%8A%E4%B8%89%E8%A7%92%E3%81%AB%E3%81%A7%E3%81%8D%E3%82%8B%E3%81%AA%E3%82%89%E5%8F%8D%E5%BE%A9%E7%84%A1%E3%81%97%E3%81%A7%E5%9B%BA%E6%9C%89%E5%80%A4%E3%81%8C%E6%B1%82%E3%81%BE%E3%81%A3%E3%81%A6%E3%81%97%E3%81%BE%E3%81%86%EF%BC%89%E3%80%82%24A%24%20%E3%81%8C%E5%AF%BE%E7%A7%B0%E3%81%AA%E3%82%89%E7%B5%90%E6%9E%9C%E3%81%AF%E4%B8%89%E9%87%8D%E5%AF%BE%E8%A7%92%E8%A1%8C%E5%88%97%E3%81%AB%E3%81%AA%E3%82%8B%E3%80%82%0A%0A%20%20%20%20%E5%88%A9%E7%82%B9%E3%81%AF%E8%A8%88%E7%AE%97%E9%87%8F%E3%81%A7%E3%81%82%E3%82%8B%E3%80%82%E5%AF%86%E8%A1%8C%E5%88%97%E3%81%AE%20QR%20%E5%88%86%E8%A7%A3%E3%81%AF%201%20%E5%9B%9E%20%24O(n%5E3)%24%20%E3%81%8B%E3%81%8B%E3%82%8B%E3%81%8C%E3%80%81%0A%20%20%20%20%E3%83%98%E3%83%83%E3%82%BB%E3%83%B3%E3%83%99%E3%83%AB%E3%82%B0%E8%A1%8C%E5%88%97%E3%81%AA%E3%82%89%E6%B6%88%E3%81%99%E3%81%B9%E3%81%8D%E6%88%90%E5%88%86%E3%81%8C%20%24n-1%24%20%E5%80%8B%E3%81%97%E3%81%8B%E3%81%AA%E3%81%84%E3%81%AE%E3%81%A7%20%24O(n%5E2)%24%20%E3%81%A7%E6%B8%88%E3%82%80%E3%80%82%0A%20%20%20%20%E3%81%95%E3%82%89%E3%81%AB%20%24RQ%24%20%E3%82%82%E3%83%98%E3%83%83%E3%82%BB%E3%83%B3%E3%83%99%E3%83%AB%E3%82%B0%E5%BD%A2%E3%82%92%E4%BF%9D%E3%81%A4%E3%81%AE%E3%81%A7%E3%80%81%E3%81%93%E3%81%AE%E5%BD%A2%E3%81%AF%E5%8F%8D%E5%BE%A9%E3%81%AE%E9%96%93%E3%81%9A%E3%81%A3%E3%81%A8%E7%B6%AD%E6%8C%81%E3%81%95%E3%82%8C%E3%82%8B%E3%80%82%0A%20%20%20%20%E5%89%8D%E5%87%A6%E7%90%86%E8%87%AA%E4%BD%93%E3%81%AF%20%24O(n%5E3)%24%20%E3%81%A0%E3%81%8C%201%20%E5%9B%9E%E3%81%A7%E7%B5%82%E3%82%8F%E3%82%8B%E3%80%82%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(A%2C%20N%2C%20np%2C%20plt%2C%20sns)%3A%0A%20%20%20%20def%20householder(b)%3A%0A%20%20%20%20%20%20%20%20e%20%3D%20np.zeros_like(b)%0A%20%20%20%20%20%20%20%20e%5B0%5D%20%3D%201%0A%20%20%20%20%20%20%20%20s%20%3D%20-np.sign(b%5B0%5D)%20*%20np.linalg.norm(b)%20%20%23%20%E6%A1%81%E8%90%BD%E3%81%A1%E5%AF%BE%E7%AD%96%E3%81%A7%E7%95%B0%E7%AC%A6%E5%8F%B7%E3%81%AB%0A%20%20%20%20%20%20%20%20u%20%3D%20(_%20%3A%3D%20(b%20-%20s%20*%20e))%20%2F%20np.linalg.norm(_)%0A%20%20%20%20%20%20%20%20_P%20%3D%20np.eye(len(b))%20-%202%20*%20np.outer(u%2C%20u)%0A%20%20%20%20%20%20%20%20return%20_P%0A%0A%20%20%20%20def%20hessenberg(A)%3A%0A%20%20%20%20%20%20%20%20_H%20%3D%20A.copy()%0A%20%20%20%20%20%20%20%20_P%20%3D%20np.eye(N)%0A%20%20%20%20%20%20%20%20for%20k%20in%20range(N%20-%202)%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20x%20%3D%20_H%5Bk%20%2B%201%3A%2C%20k%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20Pk%20%3D%20np.eye(N)%0A%20%20%20%20%20%20%20%20%20%20%20%20Pk%5Bk%20%2B%201%3A%2C%20k%20%2B%201%3A%5D%20%3D%20householder(x)%20%20%23%20%E3%83%8F%E3%82%A6%E3%82%B9%E3%83%9B%E3%83%AB%E3%83%80%E3%83%BC%E5%A4%89%E6%8F%9B%0A%20%20%20%20%20%20%20%20%20%20%20%20_H%20%3D%20Pk%20%40%20_H%20%40%20Pk%0A%20%20%20%20%20%20%20%20%20%20%20%20_P%20%3D%20_P%20%40%20Pk%0A%20%20%20%20%20%20%20%20return%20(_H%2C%20_P)%0A%20%20%20%20_H%2C%20_P%20%3D%20hessenberg(A)%0A%20%20%20%20print('P.T%20%40%20P%3D')%0A%20%20%20%20sns.heatmap(_P.T%20%40%20_P%2C%20annot%3DTrue%2C%20cmap%3D'coolwarm')%0A%20%20%20%20plt.show()%0A%20%20%20%20print('H%3D')%0A%20%20%20%20sns.heatmap(_H%2C%20annot%3DTrue%2C%20cmap%3D'coolwarm')%0A%20%20%20%20plt.show()%0A%20%20%20%20print('P.T%40A%40P-H%3D')%0A%20%20%20%20sns.heatmap(_P.T%20%40%20A%20%40%20_P%20-%20_H%2C%20annot%3DTrue%2C%20cmap%3D'coolwarm')%0A%20%20%20%20plt.show()%0A%20%20%20%20return%20(hessenberg%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%E3%83%98%E3%83%83%E3%82%BB%E3%83%B3%E3%83%99%E3%83%AB%E3%82%B0%E5%8C%96%E3%81%97%E3%81%9F%20%24H%3DP%5ETAP%24%20%E3%81%AB%20QR%20%E6%B3%95%E3%82%92%E9%81%A9%E7%94%A8%E3%81%97%E3%81%A6%E3%82%82%E3%80%81%0A%20%20%20%20%E7%9B%B8%E4%BC%BC%E5%A4%89%E6%8F%9B%E3%81%AA%E3%81%AE%E3%81%A7%E5%85%83%E3%81%AE%20%24A%24%20%E3%81%A8%E5%90%8C%E3%81%98%E5%9B%BA%E6%9C%89%E5%80%A4%E3%81%8C%E5%BE%97%E3%82%89%E3%82%8C%E3%82%8B%E3%80%82%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(A%2C%20QR_iteration%2C%20hessenberg%2C%20np%2C%20ordered_eig%2C%20plt%2C%20sns)%3A%0A%20%20%20%20_H%2C%20_%20%3D%20hessenberg(A)%0A%20%20%20%20H_qr%20%3D%20QR_iteration(_H)%0A%20%20%20%20print('QR%20%E5%8F%8D%E5%BE%A9%E5%BE%8C%E3%81%AE%20H%3D')%0A%20%20%20%20sns.heatmap(H_qr%2C%20annot%3DTrue%2C%20cmap%3D'coolwarm')%0A%20%20%20%20plt.show()%0A%20%20%20%20_evalues_np%2C%20_%20%3D%20ordered_eig(A%2C%20np.diag(H_qr))%0A%20%20%20%20print(f'residuals%3D%7Bnp.diag(H_qr)%20-%20_evalues_np%7D')%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%20%E3%82%AE%E3%83%96%E3%83%B3%E3%82%B9%E5%9B%9E%E8%BB%A2%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%E3%82%AE%E3%83%96%E3%83%B3%E3%82%B9%E5%9B%9E%E8%BB%A2%E3%81%AF%202%20%E3%81%A4%E3%81%AE%E5%BA%A7%E6%A8%99%E8%BB%B8%E3%81%8C%E5%BC%B5%E3%82%8B%E5%B9%B3%E9%9D%A2%E5%86%85%E3%81%A7%E3%81%AE%E5%9B%9E%E8%BB%A2%E3%81%A7%E3%80%81%E7%8B%99%E3%81%A3%E3%81%9F%201%20%E6%88%90%E5%88%86%E3%81%A0%E3%81%91%E3%82%92%200%20%E3%81%AB%E3%81%99%E3%82%8B%E7%9B%B4%E4%BA%A4%E5%A4%89%E6%8F%9B%E3%81%A7%E3%81%82%E3%82%8B%E3%80%82%0A%20%20%20%20%E7%AC%AC%20%24j%24%20%E5%88%97%E3%81%AE%E5%8A%A3%E5%AF%BE%E8%A7%92%E6%88%90%E5%88%86%20%24a_%7Bj%2B1%2Cj%7D%24%20%E3%82%92%E6%B6%88%E3%81%99%E3%81%AB%E3%81%AF%E3%80%81%24j%2C%20j%2B1%24%20%E8%A1%8C%E3%81%A0%E3%81%91%E3%81%AB%E4%BD%9C%E7%94%A8%E3%81%99%E3%82%8B%E8%A1%8C%E5%88%97%0A%20%20%20%20%24%24%0A%20%20%20%20P_j%3D%5Cbegin%7Bpmatrix%7D%5Ccos%5Ctheta%26%5Csin%5Ctheta%5C%5C-%5Csin%5Ctheta%26%5Ccos%5Ctheta%5Cend%7Bpmatrix%7D%2C%5Cquad%0A%20%20%20%20%5Ccos%5Ctheta%3D%5Cfrac%7Ba_%7Bjj%7D%7D%7Br%7D%2C%5Cquad%0A%20%20%20%20%5Csin%5Ctheta%3D%5Cfrac%7Ba_%7Bj%2B1%2Cj%7D%7D%7Br%7D%2C%5Cquad%0A%20%20%20%20r%3D%5Csqrt%7Ba_%7Bjj%7D%5E2%2Ba_%7Bj%2B1%2Cj%7D%5E2%7D%0A%20%20%20%20%24%24%0A%20%20%20%20%E3%82%92%E5%B7%A6%E3%81%8B%E3%82%89%E6%8E%9B%E3%81%91%E3%82%8C%E3%81%B0%E3%82%88%E3%81%84%E3%80%82%E5%AE%9F%E9%9A%9B%0A%20%20%20%20%24%24%0A%20%20%20%20P_j%5Cbegin%7Bpmatrix%7Da_%7Bjj%7D%5C%5Ca_%7Bj%2B1%2Cj%7D%5Cend%7Bpmatrix%7D%0A%20%20%20%20%3D%5Cbegin%7Bpmatrix%7Dr%5C%5C0%5Cend%7Bpmatrix%7D%0A%20%20%20%20%24%24%0A%20%20%20%20%E3%81%A8%E3%81%AA%E3%82%8B%EF%BC%88%24r%24%20%E3%81%8C%200%20%E3%81%AB%E8%BF%91%E3%81%84%E5%A0%B4%E5%90%88%E3%81%AF%E6%97%A2%E3%81%AB%E6%B6%88%E3%81%88%E3%81%A6%E3%81%84%E3%82%8B%E3%81%AE%E3%81%A7%E4%BD%95%E3%82%82%E3%81%97%E3%81%AA%E3%81%84%EF%BC%89%E3%80%82%0A%0A%20%20%20%20%E3%83%8F%E3%82%A6%E3%82%B9%E3%83%9B%E3%83%AB%E3%83%80%E3%83%BC%E5%A4%89%E6%8F%9B%E3%81%8C%201%20%E5%9B%9E%E3%81%A7%E5%88%97%E5%85%A8%E4%BD%93%E3%82%92%E6%B6%88%E3%81%99%E3%81%AE%E3%81%AB%E5%AF%BE%E3%81%97%E3%80%81%E3%82%AE%E3%83%96%E3%83%B3%E3%82%B9%E5%9B%9E%E8%BB%A2%E3%81%AF%201%20%E6%88%90%E5%88%86%E3%81%9A%E3%81%A4%E6%B6%88%E3%81%99%E3%80%82%0A%20%20%20%20%E5%AF%86%E8%A1%8C%E5%88%97%E3%81%A7%E3%81%AF%E5%89%B2%E3%81%AB%E5%90%88%E3%82%8F%E3%81%AA%E3%81%84%E3%81%8C%E3%80%81%E3%83%98%E3%83%83%E3%82%BB%E3%83%B3%E3%83%99%E3%83%AB%E3%82%B0%E8%A1%8C%E5%88%97%E3%81%AF%E6%B6%88%E3%81%99%E3%81%B9%E3%81%8D%E5%8A%A3%E5%AF%BE%E8%A7%92%E6%88%90%E5%88%86%E3%81%8C%20%24n-1%24%20%E5%80%8B%E3%81%97%E3%81%8B%E3%81%AA%E3%81%84%E3%81%9F%E3%82%81%E3%80%81%0A%20%20%20%20%24n-1%24%20%E5%9B%9E%E3%81%AE%E5%9B%9E%E8%BB%A2%E3%81%A0%E3%81%91%E3%81%A7%E4%B8%8A%E4%B8%89%E8%A7%92%E5%8C%96%E3%81%A7%E3%81%8D%20%24O(n%5E2)%24%20%E3%81%A7%20QR%20%E5%88%86%E8%A7%A3%E3%81%8C%E5%AE%8C%E4%BA%86%E3%81%99%E3%82%8B%E3%80%82%0A%0A%20%20%20%20%24R%3DP_%7Bn-2%7D%5Ccdots%20P_0A%24%20%E3%81%A7%E3%81%82%E3%82%8A%E3%80%81%E5%90%84%20%24P_j%24%20%E3%81%AF%E7%9B%B4%E4%BA%A4%E8%A1%8C%E5%88%97%E3%81%AA%E3%81%AE%E3%81%A7%0A%20%20%20%20%24Q%3D(P_%7Bn-2%7D%5Ccdots%20P_0)%5ET%24%20%E3%81%A8%E3%81%99%E3%82%8C%E3%81%B0%20%24A%3DQR%24%20%E3%81%A8%E3%81%AA%E3%82%8B%E3%80%82%0A%20%20%20%20%E5%AE%9F%E8%A3%85%E3%81%8C%E8%BF%94%E3%81%99%20%60_P.T%60%20%E3%81%8C%E3%81%93%E3%81%AE%20%24Q%24%20%E3%81%AB%E5%BD%93%E3%81%9F%E3%82%8B%E3%80%82%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(A%2C%20hessenberg%2C%20np%2C%20plt%2C%20sns)%3A%0A%20%20%20%20def%20gibbens_rotation(A%2C%20j%2C%20eps%3D1e-06)%3A%0A%20%20%20%20%20%20%20%20_P%20%3D%20np.eye(A.shape%5B0%5D)%0A%20%20%20%20%20%20%20%20sin%2C%20cos%20%3D%20(0%2C%200)%0A%20%20%20%20%20%20%20%20norm%20%3D%20np.linalg.norm(A%5Bj%3Aj%20%2B%202%2C%20j%5D)%0A%20%20%20%20%20%20%20%20if%20norm%20%3E%20eps%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20sin%2C%20cos%20%3D%20(A%5Bj%20%2B%201%2C%20j%5D%20%2F%20norm%2C%20A%5Bj%2C%20j%5D%20%2F%20norm)%0A%20%20%20%20%20%20%20%20_P%5Bj%3Aj%20%2B%202%2C%20j%3Aj%20%2B%202%5D%20%3D%20np.array(%5B%5Bcos%2C%20sin%5D%2C%20%5B-sin%2C%20cos%5D%5D)%0A%20%20%20%20%20%20%20%20return%20_P%0A%0A%20%20%20%20def%20gibbens_QR(A)%3A%0A%20%20%20%20%20%20%20%20N%20%3D%20A.shape%5B0%5D%0A%20%20%20%20%20%20%20%20_R%2C%20_P%20%3D%20(A.copy()%2C%20np.eye(N))%0A%20%20%20%20%20%20%20%20for%20j%20in%20range(N%20-%201)%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20P_%20%3D%20gibbens_rotation(_R%2C%20j)%0A%20%20%20%20%20%20%20%20%20%20%20%20_R%20%3D%20P_%20%40%20_R%0A%20%20%20%20%20%20%20%20%20%20%20%20_P%20%3D%20P_%20%40%20_P%0A%20%20%20%20%20%20%20%20return%20(_P.T%2C%20_R)%0A%20%20%20%20_H%2C%20_P%20%3D%20hessenberg(A)%0A%20%20%20%20_Q%2C%20_R%20%3D%20gibbens_QR(_H)%0A%20%20%20%20print('Q.T%20%40%20Q%3D')%0A%20%20%20%20sns.heatmap(_Q.T%20%40%20_Q%2C%20annot%3DTrue%2C%20cmap%3D'coolwarm')%0A%20%20%20%20plt.show()%0A%20%20%20%20print('R%3D')%0A%20%20%20%20sns.heatmap(_R%2C%20annot%3DTrue%2C%20cmap%3D'coolwarm')%0A%20%20%20%20plt.show()%0A%20%20%20%20print('P.T%40A%40P-QR%3D')%0A%20%20%20%20sns.heatmap(_P.T%20%40%20A%20%40%20_P%20-%20_Q%20%40%20_R%2C%20annot%3DTrue%2C%20cmap%3D'coolwarm')%0A%20%20%20%20plt.show()%0A%20%20%20%20return%20(gibbens_QR%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%20%E3%83%87%E3%83%95%E3%83%AC%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E4%BB%98%E3%81%8D%20QR%20%E5%8F%8D%E5%BE%A9%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%E3%81%93%E3%81%93%E3%81%BE%E3%81%A7%E3%81%AE%E9%83%A8%E5%93%81%E3%82%92%E7%B5%84%E3%81%BF%E5%90%88%E3%82%8F%E3%81%9B%E3%82%8B%E3%80%82%E3%83%8F%E3%82%A6%E3%82%B9%E3%83%9B%E3%83%AB%E3%83%80%E3%83%BC%E5%A4%89%E6%8F%9B%E3%81%A7%E3%83%98%E3%83%83%E3%82%BB%E3%83%B3%E3%83%99%E3%83%AB%E3%82%B0%E5%8C%96%E3%81%97%E3%80%81%0A%20%20%20%20%E3%82%AE%E3%83%96%E3%83%B3%E3%82%B9%E5%9B%9E%E8%BB%A2%E3%81%AB%E3%82%88%E3%82%8B%20QR%20%E5%88%86%E8%A7%A3%E3%81%A7%E3%82%B7%E3%83%95%E3%83%88%E4%BB%98%E3%81%8D%20QR%20%E5%8F%8D%E5%BE%A9%E3%82%92%E5%9B%9E%E3%81%99%E3%80%82%0A%0A%20%20%20%20%E4%BB%95%E4%B8%8A%E3%81%92%E3%81%8C%E3%83%87%E3%83%95%E3%83%AC%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%A7%E3%81%82%E3%82%8B%E3%80%82%E5%8A%A3%E5%AF%BE%E8%A7%92%E6%88%90%E5%88%86%20%24H_%7Bm%2Cm-1%7D%24%20%E3%81%8C%E5%8D%81%E5%88%86%E5%B0%8F%E3%81%95%E3%81%8F%E3%81%AA%E3%81%A3%E3%81%9F%E3%82%89%E3%81%93%E3%82%8C%E3%82%92%200%20%E3%81%A8%E3%81%BF%E3%81%AA%E3%81%99%E3%80%82%0A%20%20%20%20%E3%81%93%E3%81%AE%E3%81%A8%E3%81%8D%20%24H%24%20%E3%81%AF%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E4%B8%8A%E4%B8%89%E8%A7%92%E3%81%AB%E3%81%AA%E3%82%8A%E3%80%81%24H_%7Bmm%7D%24%20%E3%81%8C%E3%81%9D%E3%81%AE%E3%81%BE%E3%81%BE%E5%9B%BA%E6%9C%89%E5%80%A4%E3%81%A8%E3%81%97%E3%81%A6%E7%A2%BA%E5%AE%9A%E3%81%99%E3%82%8B%E3%80%82%0A%20%20%20%20%E4%BB%A5%E9%99%8D%E3%81%AF%E5%B7%A6%E4%B8%8A%E3%81%AE%20%24m%5Ctimes%20m%24%20%E9%83%A8%E5%88%86%E3%81%A0%E3%81%91%E3%82%92%E7%9B%B8%E6%89%8B%E3%81%AB%E3%81%99%E3%82%8C%E3%81%B0%E3%82%88%E3%81%8F%E3%80%81%0A%20%20%20%20%E3%82%A2%E3%82%AF%E3%83%86%E3%82%A3%E3%83%96%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%81%AE%E6%AC%A1%E5%85%83%E3%81%8C%201%20%E3%81%9A%E3%81%A4%E7%B8%AE%E3%82%93%E3%81%A7%E3%81%84%E3%81%8F%E3%80%82%E3%81%93%E3%82%8C%E3%82%92%20%24m%3D0%24%20%E3%81%BE%E3%81%A7%E7%B9%B0%E3%82%8A%E8%BF%94%E3%81%9B%E3%81%B0%E5%85%A8%E5%9B%BA%E6%9C%89%E5%80%A4%E3%81%8C%E6%B1%82%E3%81%BE%E3%82%8B%E3%80%82%0A%0A%20%20%20%20%E3%82%B7%E3%83%95%E3%83%88%E3%81%AB%E3%81%AF%E5%8F%B3%E4%B8%8B%E9%9A%85%E3%81%AE%E5%80%A4%20%24s%3DH_%7Bmm%7D%24%20%E3%82%92%E3%81%9D%E3%81%AE%E3%81%BE%E3%81%BE%E4%BD%BF%E3%81%86%EF%BC%88%E3%83%AC%E3%82%A4%E3%83%AA%E3%83%BC%E3%82%B7%E3%83%95%E3%83%88%EF%BC%89%E3%80%82%0A%20%20%20%20%E3%82%A6%E3%82%A3%E3%83%AB%E3%82%AD%E3%83%B3%E3%82%BD%E3%83%B3%E3%82%B7%E3%83%95%E3%83%88%E3%81%BB%E3%81%A9%E9%A0%91%E5%81%A5%E3%81%A7%E3%81%AF%E3%81%AA%E3%81%84%E3%81%8C%E3%80%81%E5%B9%B3%E6%96%B9%E6%A0%B9%E3%81%AE%E8%A8%88%E7%AE%97%E3%81%8C%E8%A6%81%E3%82%89%E3%81%9A%E5%AE%9F%E8%A3%85%E3%81%8C%E7%B0%A1%E5%8D%98%E3%81%A7%E3%81%82%E3%82%8B%E3%80%82%0A%0A%20%20%20%20%E8%A4%87%E7%B4%A0%E5%85%B1%E5%BD%B9%E5%AF%BE%E3%82%92%E6%8C%81%E3%81%A4%E8%A1%8C%E5%88%97%E3%81%A7%E3%81%AF%201x1%20%E3%81%BE%E3%81%A7%E6%BD%B0%E3%82%8C%E3%81%9A%E5%8F%8D%E5%BE%A9%E3%81%8C%E6%AD%A2%E3%81%BE%E3%82%89%E3%81%AA%E3%81%84%E3%81%9F%E3%82%81%E3%80%81%0A%20%20%20%20%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%81%94%E3%81%A8%E3%81%AE%E5%8F%8D%E5%BE%A9%E5%9B%9E%E6%95%B0%E3%81%AB%E4%B8%8A%E9%99%90%20%60max_block_iter%60%20%E3%82%92%E8%A8%AD%E3%81%91%E3%81%A6%E6%89%93%E3%81%A1%E5%88%87%E3%82%8B%E3%80%82%0A%20%20%20%20%E5%AE%9F%E7%94%A8%E3%81%AE%E5%AE%9F%E8%A3%85%E3%81%A7%E3%81%AF%E3%81%93%E3%81%AE%E5%A0%B4%E5%90%88%202x2%20%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%82%92%E6%AE%8B%E3%81%99%EF%BC%88%E5%AE%9F%E3%82%B7%E3%83%A5%E3%83%BC%E3%82%A2%E5%BD%A2%EF%BC%89%E3%80%82%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(A%2C%20gibbens_QR%2C%20hessenberg%2C%20np%2C%20ordered_eig%2C%20plt%2C%20sns)%3A%0A%20%20%20%20def%20householder_QR_iteration(A_%2C%20eps%3D1e-06%2C%20max_block_iter%3D40)%3A%0A%20%20%20%20%20%20%20%20_H%2C%20_ph%20%3D%20hessenberg(A_)%0A%20%20%20%20%20%20%20%20m%20%3D%20_H.shape%5B0%5D%20-%201%0A%20%20%20%20%20%20%20%20while%20m%20%3E%200%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20np.abs(_H%5Bm%2C%20m%20-%201%5D)%20%3C%20eps%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20_H%5Bm%2C%20m%20-%201%5D%20%3D%200%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20m%20%3D%20m%20-%201%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20continue%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20active_dim%20%3D%20m%20%2B%201%0A%20%20%20%20%20%20%20%20%20%20%20%20converged%20%3D%20False%0A%20%20%20%20%20%20%20%20%20%20%20%20for%20_iter%20in%20range(max_block_iter)%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20s%20%3D%20_H%5Bm%2C%20m%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20_Q%2C%20_R%20%3D%20gibbens_QR(_H%5B%3Aactive_dim%2C%20%3Aactive_dim%5D%20-%20s%20*%20np.eye(active_dim))%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20_H%5B%3Aactive_dim%2C%20%3Aactive_dim%5D%20%3D%20_R%20%40%20_Q%20%2B%20s%20*%20np.eye(active_dim)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20np.abs(_H%5Bm%2C%20m%20-%201%5D)%20%3C%20eps%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20_H%5Bm%2C%20m%20-%201%5D%20%3D%200%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20converged%20%3D%20True%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20not%20converged%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20print(f'bounded%20stop%3A%20active_dim%3D%7Bactive_dim%7D%2C%20iterations%3D%7Bmax_block_iter%7D')%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%0A%20%20%20%20%20%20%20%20return%20_H%0A%20%20%20%20_H%20%3D%20householder_QR_iteration(A)%0A%20%20%20%20print('H%3D')%0A%20%20%20%20sns.heatmap(_H%2C%20annot%3DTrue%2C%20cmap%3D'coolwarm')%0A%20%20%20%20plt.show()%0A%20%20%20%20_evalues_np%2C%20_%20%3D%20ordered_eig(A%2C%20np.diag(_H))%0A%20%20%20%20print(f'residuals%3D%7Bnp.diag(_H)%20-%20_evalues_np%7D')%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20%E7%89%B9%E7%95%B0%E5%80%A4%E5%88%86%E8%A7%A3%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%20%E5%8F%B3%E7%89%B9%E7%95%B0%E3%83%99%E3%82%AF%E3%83%88%E3%83%AB%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%E8%A1%8C%E5%88%97%20%24A%24%20%E3%81%AB%E5%AF%BE%E3%81%97%E3%81%A6%E8%A1%8C%E5%88%97%20%24A%5ETA%24%20%E3%82%92%E8%80%83%E3%81%88%E3%82%8B%E3%80%82%0A%20%20%20%20%E6%98%8E%E3%82%89%E3%81%8B%E3%81%AB%20%24(A%5ETA)%5ET%3DA%5ETA%24%20%E3%81%AA%E3%81%AE%E3%81%A7%E5%AF%BE%E7%A7%B0%E8%A1%8C%E5%88%97%E3%80%82%0A%20%20%20%20%5B%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AB%E5%AE%9A%E7%90%86%5D(https%3A%2F%2Fja.wikipedia.org%2Fwiki%2F%25E3%2582%25B9%25E3%2583%259A%25E3%2582%25AF%25E3%2583%2588%25E3%2583%25AB%25E5%25AE%259A%25E7%2590%2586)%E3%82%88%E3%82%8A%E5%9B%BA%E6%9C%89%E5%80%A4%E3%81%AF%E5%B8%B8%E3%81%AB%E5%AE%9F%E6%95%B0%E3%81%A7%E3%81%82%E3%82%8B%E3%80%82%0A%0A%20%20%20%20%E3%81%BE%E3%81%9F%E8%A1%8C%E5%88%97%20%24A%24%20%E3%81%AE%E9%9D%9E%E8%B2%A0%E5%AE%9A%E5%80%A4%E3%81%AE%E6%9D%A1%E4%BB%B6%E3%81%AF%E4%BB%BB%E6%84%8F%E3%81%AE%20%24%5Cvec%7Bx%7D%5Cneq%5Cvec%7B0%7D%24%20%E3%81%AB%E5%AF%BE%E3%81%97%E3%81%A6%20%24%5Cvec%7Bx%7D%5ETA%5Cvec%7Bx%7D%5Cgeq0%24%E3%80%82%0A%20%20%20%20%E3%82%88%E3%81%A3%E3%81%A6%E4%BB%BB%E6%84%8F%E3%81%AE%20%24A%2C%20%5Cvec%7Bx%7D%5Cneq%5Cvec%7B0%7D%24%20%E3%81%AB%E5%AF%BE%E3%81%97%E3%81%A6%20%24%5Cvec%7Bx%7D%5ET(A%5ETA)%5Cvec%7Bx%7D%3D%7C%7CA%5Cvec%7Bx%7D%7C%7C%5E2%5Cgeq0%24%E3%80%82%0A%20%20%20%20%E3%81%93%E3%82%8C%E3%82%88%E3%82%8A%E5%9B%BA%E6%9C%89%E5%80%A4%E3%81%AF%E5%B8%B8%E3%81%AB%E9%9D%9E%E8%B2%A0%E3%81%A7%E3%81%82%E3%82%8B%E3%80%82%E3%81%9D%E3%81%AE%E3%81%9F%E3%82%81%E5%9B%BA%E6%9C%89%E5%80%A4%E3%81%AE%E5%B9%B3%E6%96%B9%E6%A0%B9%E3%82%82%E5%B8%B8%E3%81%AB%E5%AE%9F%E6%95%B0%E3%81%A7%E3%81%82%E3%82%8B%E3%80%82%0A%0A%20%20%20%20%E3%81%93%E3%82%8C%E3%81%AF%20%24AA%5ET%24%20%E3%81%A7%E3%82%82%E5%90%8C%E6%A7%98%E3%81%AB%E6%88%90%E7%AB%8B%E3%80%82%0A%0A%20%20%20%20%E3%81%95%E3%82%89%E3%81%AB%20%24A%5ETA%5Cvec%7Bv%7D%3Dw%5Cvec%7Bv%7D%24%20%E3%81%AE%E4%B8%A1%E8%BE%BA%E3%81%AB%E5%B7%A6%E3%81%8B%E3%82%89%20%24A%24%20%E3%82%92%E6%8E%9B%E3%81%91%E3%82%8B%E3%81%A8%0A%20%20%20%20%24%24%0A%20%20%20%20(AA%5ET)(A%5Cvec%7Bv%7D)%3Dw(A%5Cvec%7Bv%7D)%0A%20%20%20%20%24%24%0A%20%20%20%20%E3%81%A8%E3%81%AA%E3%82%8B%E3%80%82%24w%5Cneq0%24%20%E3%81%AA%E3%82%89%20%24A%5Cvec%7Bv%7D%5Cneq%5Cvec%7B0%7D%24%20%E3%81%AA%E3%81%AE%E3%81%A7%E3%80%81%24A%5ETA%24%20%E3%81%A8%20%24AA%5ET%24%20%E3%81%AF%0A%20%20%20%20%E9%9D%9E%E9%9B%B6%E5%9B%BA%E6%9C%89%E5%80%A4%E3%82%92%E5%AE%8C%E5%85%A8%E3%81%AB%E5%85%B1%E6%9C%89%E3%81%99%E3%82%8B%E3%80%82%24A%24%20%E3%81%8C%20%24N%5Ctimes%20M%24%20%E8%A1%8C%E5%88%97%E3%81%AE%E3%81%A8%E3%81%8D%20%24A%5ETA%24%20%E3%81%AF%20%24M%5Ctimes%20M%24%E3%80%81%0A%20%20%20%20%24AA%5ET%24%20%E3%81%AF%20%24N%5Ctimes%20N%24%20%E3%81%A8%E3%82%B5%E3%82%A4%E3%82%BA%E3%81%8C%E9%81%95%E3%81%86%E3%81%8C%E3%80%81%E4%BD%99%E5%88%86%E3%81%AA%E5%88%86%E3%81%AF%E5%9B%BA%E6%9C%89%E5%80%A4%200%20%E3%81%8C%E5%9F%8B%E3%82%81%E3%81%A6%E3%81%84%E3%82%8B%E3%81%A0%E3%81%91%E3%81%A7%E3%81%82%E3%82%8B%E3%80%82%0A%20%20%20%20%E9%9D%9E%E9%9B%B6%E5%9B%BA%E6%9C%89%E5%80%A4%E3%81%AE%E5%80%8B%E6%95%B0%E3%81%AF%20%24%5Cmathrm%7Brank%7DA%24%20%E3%81%AB%E7%AD%89%E3%81%97%E3%81%8F%E3%80%81%E9%AB%98%E3%80%85%20%24%5Cmin(N%2CM)%24%20%E5%80%8B%E3%81%A7%E3%81%82%E3%82%8B%E3%80%82%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%E5%AE%9F%E9%9A%9B%E3%81%AB%E7%A2%BA%E3%81%8B%E3%82%81%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AB%E4%B9%B1%E6%95%B0%E7%94%9F%E6%88%90%E3%81%AE%E8%A1%8C%E5%88%97%E3%81%A7%E3%81%93%E3%82%8C%E3%82%92%E8%A8%88%E7%AE%97%E3%80%82%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(np%2C%20plt%2C%20sns)%3A%0A%20%20%20%20np.set_printoptions(precision%3D3%2C%20suppress%3DFalse)%0A%20%20%20%20plt.rcParams%5B'figure.figsize'%5D%20%3D%20(5%2C%202)%0A%20%20%20%20N_1%2C%20M%20%3D%20(4%2C%205)%0A%20%20%20%20A_1%20%3D%20np.random.rand(N_1%2C%20M)%0A%20%20%20%20%23%20%E8%A1%A8%E7%A4%BA%E3%81%AE%E7%B2%BE%E5%BA%A6%E3%82%92%E8%A8%AD%E5%AE%9A%0A%20%20%20%20sns.heatmap(A_1%2C%20annot%3DTrue%2C%20cmap%3D'coolwarm')%0A%20%20%20%20return%20(A_1%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%24A%5ETA%24%20%E3%81%AF%E5%AF%BE%E7%A7%B0%E8%A1%8C%E5%88%97%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(A_1%2C%20sns)%3A%0A%20%20%20%20ATA%20%3D%20A_1.T%20%40%20A_1%0A%20%20%20%20sns.heatmap(ATA%2C%20annot%3DTrue%2C%20cmap%3D'coolwarm')%0A%20%20%20%20return%20(ATA%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%E5%9B%BA%E6%9C%89%E5%80%A4%E3%81%AF%E3%81%99%E3%81%B9%E3%81%A6%E5%AE%9F%E6%95%B0%E3%81%A7%E9%9D%9E%E8%B2%A0%EF%BC%88%E6%95%B0%E5%80%A4%E8%AA%A4%E5%B7%AE%E3%81%AB%E6%B3%A8%E6%84%8F%EF%BC%89%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(ATA%2C%20sns)%3A%0A%20%20%20%20import%20numpy.linalg%20as%20la%0A%0A%20%20%20%20w_right%2C%20V%20%3D%20la.eigh(ATA)%0A%20%20%20%20%23%20%E5%9B%BA%E6%9C%89%E5%80%A4%E3%81%8C%E5%A4%A7%E3%81%8D%E3%81%84%E9%A0%86%0A%20%20%20%20w_right%2C%20V%20%3D%20w_right%5B%3A%3A-1%5D%2C%20V%5B%3A%2C%20%3A%3A-1%5D%0A%20%20%20%20print(f%22%7Bw_right%3D%7D%22)%0A%20%20%20%20sns.heatmap(V%2C%20annot%3DTrue%2C%20cmap%3D'coolwarm')%0A%20%20%20%20return%20V%2C%20la%2C%20w_right%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%E5%9B%BA%E6%9C%89%E3%83%99%E3%82%AF%E3%83%88%E3%83%AB%E3%81%AF%24V%24%E3%81%AE%E5%90%84%E5%88%97%E3%81%8C%E5%AF%BE%E5%BF%9C%E3%80%82%0A%20%20%20%20%E6%A4%9C%E7%AE%97%E3%81%A7%20%24%5Cvec%7Bv%7D%5ET(A%5ETA)%5Cvec%7Bv%7D-w%24%20%E3%82%92%E8%A8%88%E7%AE%97%E3%80%82%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(ATA%2C%20V%2C%20np%2C%20sns%2C%20w_right)%3A%0A%20%20%20%20_residuals%20%3D%20V.T%20%40%20ATA%20%40%20V%20-%20np.diag(w_right)%0A%20%20%20%20sns.heatmap(_residuals%2C%20annot%3DTrue%2C%20cmap%3D'coolwarm')%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%24V%24%20%E8%A1%8C%E5%88%97%E3%81%AF%E7%9B%B4%E4%BA%A4%E8%A1%8C%E5%88%97(%E3%83%A6%E3%83%8B%E3%82%BF%E3%83%AA%E3%83%BC%E8%A1%8C%E5%88%97)%E3%81%A7%5B%E5%8F%B3%E7%89%B9%E7%95%B0%E3%83%99%E3%82%AF%E3%83%88%E3%83%AB%5D(https%3A%2F%2Fmanabitimes.jp%2Fmath%2F1280%235)%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(V%2C%20sns)%3A%0A%20%20%20%20%23%20%E6%A4%9C%E7%AE%97%E3%80%82%E3%83%A6%E3%83%8B%E3%82%BF%E3%83%AA%E3%81%AA%E3%82%89%E5%8D%98%E4%BD%8D%E8%A1%8C%E5%88%97%E3%81%AB%E8%BF%91%E3%81%8F%E3%81%AA%E3%82%8B%E3%80%82%0A%20%20%20%20sns.heatmap(V.T%20%40%20V%2C%20annot%3DTrue%2C%20cmap%3D'coolwarm')%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%20%E5%B7%A6%E7%89%B9%E7%95%B0%E3%83%99%E3%82%AF%E3%83%88%E3%83%AB%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%E5%90%8C%E6%A7%98%E3%81%AB%20%24AA%5ET%24%20%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E8%A8%88%E7%AE%97%E3%81%97%E5%B7%A6%E7%89%B9%E7%95%B0%E3%83%99%E3%82%AF%E3%83%88%E3%83%AB%24U%24%E3%82%92%E6%B1%82%E3%82%81%E3%82%8B%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(A_1%2C%20la%2C%20sns)%3A%0A%20%20%20%20AAT%20%3D%20A_1%20%40%20A_1.T%0A%20%20%20%20w_left%2C%20U%20%3D%20la.eigh(AAT)%0A%20%20%20%20%23%20%E5%9B%BA%E6%9C%89%E5%80%A4%E3%81%8C%E5%A4%A7%E3%81%8D%E3%81%84%E9%A0%86%0A%20%20%20%20w_left%2C%20U%20%3D%20(w_left%5B%3A%3A-1%5D%2C%20U%5B%3A%2C%20%3A%3A-1%5D)%0A%20%20%20%20print(f'w_left%3D%7Bw_left!r%7D')%0A%20%20%20%20sns.heatmap(U%2C%20annot%3DTrue%2C%20cmap%3D'coolwarm')%0A%20%20%20%20return%20AAT%2C%20U%2C%20w_left%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%E5%B7%A6%E7%89%B9%E7%95%B0%E3%83%99%E3%82%AF%E3%83%88%E3%83%AB%E3%82%92%E6%A4%9C%E7%AE%97%E3%80%82%24U%5ET(AA%5ET)U%24%20%E3%81%8C%E5%9B%BA%E6%9C%89%E5%80%A4%E3%81%AE%E5%AF%BE%E8%A7%92%E8%A1%8C%E5%88%97%E3%81%AB%E3%81%AA%E3%82%8A%E3%80%81%0A%20%20%20%20%24U%24%20%E8%87%AA%E8%BA%AB%E3%81%AF%E7%9B%B4%E4%BA%A4%E8%A1%8C%E5%88%97%EF%BC%88%24U%5ETU%3DI%24%EF%BC%89%E3%81%AB%E3%81%AA%E3%82%8B%E3%80%82%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(AAT%2C%20U%2C%20np%2C%20sns%2C%20w_left)%3A%0A%20%20%20%20_residuals%20%3D%20U.T%20%40%20AAT%20%40%20U%20-%20np.diag(w_left)%0A%20%20%20%20sns.heatmap(_residuals%2C%20annot%3DTrue%2C%20cmap%3D'coolwarm')%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(U%2C%20sns)%3A%0A%20%20%20%20sns.heatmap(U.T%20%40%20U%2C%20annot%3DTrue%2C%20cmap%3D'coolwarm')%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%20%E7%89%B9%E7%95%B0%E5%80%A4%E5%88%86%E8%A7%A3%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%E6%95%B0%E5%80%A4%E8%AA%A4%E5%B7%AE%E3%81%AE%E5%AF%BE%E7%AD%96%E3%80%82%E3%81%BB%E3%81%BC0%E3%81%AF0%E3%81%A8%E3%81%99%E3%82%8B%E3%80%82%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(np%2C%20w_left%2C%20w_right)%3A%0A%20%20%20%20w_right_1%20%3D%20np.array(%5Bw%20if%20abs(w)%20%3E%201e-10%20else%200%20for%20w%20in%20w_right%5D)%0A%20%20%20%20w_left_1%20%3D%20np.array(%5Bw%20if%20abs(w)%20%3E%201e-10%20else%200%20for%20w%20in%20w_left%5D)%0A%20%20%20%20print(f'w_right%3D%7Bw_right_1!r%7D')%0A%20%20%20%20print(f'w_left%3D%7Bw_left_1!r%7D')%0A%20%20%20%20return%20w_left_1%2C%20w_right_1%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%24A%5ETA%2C%20AA%5ET%24%20%E3%81%AE%E5%9B%BA%E6%9C%89%E5%80%A4%E3%81%AE%E5%B9%B3%E6%96%B9%E6%A0%B9%E3%81%AF%E7%89%B9%E7%95%B0%E5%80%A4%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(np%2C%20w_left_1%2C%20w_right_1)%3A%0A%20%20%20%20sigma_right%20%3D%20np.sqrt(w_right_1)%0A%20%20%20%20sigma_left%20%3D%20np.sqrt(w_left_1)%0A%20%20%20%20print(f'sigma_right%3D%7Bsigma_right!r%7D')%0A%20%20%20%20print(f'sigma_left%3D%7Bsigma_left!r%7D')%0A%20%20%20%20return%20sigma_left%2C%20sigma_right%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%E7%89%B9%E7%95%B0%E5%80%A4%E3%81%AB%E3%82%88%E3%82%8B%E8%A1%8C%E5%88%97%20%24%5CSigma%24%20%E3%82%92%E4%BD%9C%E6%88%90%E3%80%82%24A%24%20%E3%81%8C%20%24N%5Ctimes%20M%24%20%E3%81%AA%E3%82%89%20%24%5CSigma%24%20%E3%82%82%20%24N%5Ctimes%20M%24%20%E3%81%A7%E3%80%81%0A%20%20%20%20%E5%B7%A6%E4%B8%8A%E3%81%AE%20%24%5Cmin(N%2CM)%24%20%E5%80%8B%E3%81%AE%E5%AF%BE%E8%A7%92%E6%88%90%E5%88%86%E3%81%AB%E7%89%B9%E7%95%B0%E5%80%A4%E3%82%92%E4%B8%A6%E3%81%B9%E3%80%81%E6%AE%8B%E3%82%8A%E3%81%AF%200%20%E3%81%A7%E5%9F%8B%E3%82%81%E3%82%8B%E3%80%82%0A%20%20%20%20%E5%AE%9F%E8%A3%85%E3%81%A7%20%60sigma_right%60%20%E3%81%A8%20%60sigma_left%60%20%E3%81%AE%E7%9F%AD%E3%81%84%E3%81%BB%E3%81%86%E3%82%92%E9%81%B8%E3%82%93%E3%81%A7%E3%81%84%E3%82%8B%E3%81%AE%E3%81%AF%E3%80%81%0A%20%20%20%20%E5%85%B1%E6%9C%89%E3%81%95%E3%82%8C%E3%82%8B%E9%9D%9E%E9%9B%B6%E7%89%B9%E7%95%B0%E5%80%A4%E3%81%AE%E5%80%8B%E6%95%B0%E3%81%8C%20%24%5Cmin(N%2CM)%24%20%E3%82%92%E8%B6%85%E3%81%88%E3%81%AA%E3%81%84%E3%81%9F%E3%82%81%E3%81%A7%E3%81%82%E3%82%8B%E3%80%82%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(A_1%2C%20np%2C%20sigma_left%2C%20sigma_right)%3A%0A%20%20%20%20Sigma%20%3D%20np.zeros_like(A_1)%0A%20%20%20%20sigma%20%3D%20sigma_right%20if%20len(sigma_right)%20%3C%20len(sigma_left)%20else%20sigma_left%0A%20%20%20%20Sigma%5B%3Alen(sigma)%2C%20%3Alen(sigma)%5D%20%3D%20np.diag(sigma)%0A%20%20%20%20print(f'Sigma%3D%7BSigma!r%7D')%0A%20%20%20%20return%20Sigma%2C%20sigma%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%E5%9B%BA%E6%9C%89%E3%83%99%E3%82%AF%E3%83%88%E3%83%AB%E3%81%AB%E3%81%AF%E7%AC%A6%E5%8F%B7%E3%81%AE%E4%B8%8D%E5%AE%9A%E6%80%A7%E3%81%8C%E3%81%82%E3%82%8B%E3%81%9F%E3%82%81%E3%81%9D%E3%81%AE%E3%81%BE%E3%81%BE%E3%81%A7%E3%81%AF%24A%3DU%5CSigma%20V%5ET%24%E3%82%92%E6%BA%80%E3%81%9F%E3%81%99%E3%81%A8%E3%81%AF%E9%99%90%E3%82%89%E3%81%AA%E3%81%84%E3%80%82%0A%0A%20%20%20%20%24%5CSigma%24%E3%81%AE%E6%88%90%E5%88%86%E3%81%AF%E9%9D%9E%E8%B2%A0%E3%81%AA%E3%81%AE%E3%81%A7%24(AV)_i%3D%5Clambda_iU_i%2C%20%5Clambda_i%5Cgeq0%24%E3%80%82%0A%20%20%20%20%E3%81%9D%E3%81%93%E3%81%A7%E3%81%93%E3%81%AE%5B%E6%9D%A1%E4%BB%B6%E3%82%92%E6%BA%80%E3%81%9F%E3%81%99%E3%82%88%E3%81%86%E3%81%AB%E7%AC%A6%E5%8F%B7%E3%81%AE%E5%8F%8D%E8%BB%A2%E3%82%92%E3%81%99%E3%82%8B%5D(%0A%20%20%20%20https%3A%2F%2Fmath.stackexchange.com%2Fquestions%2F4844816%2Fdiscrepancies-in-custom-svd-implementation-compared-to-np-linalg-svd-sign-issu)%E3%80%82%0A%0A%20%20%20%20%E3%81%A4%E3%81%BE%E3%82%8A%20%24A%5Cvec%7Bv%7D_i%3D%5Csigma_i%5Cvec%7Bu%7D_i%24%EF%BC%88%24%5Csigma_i%5Cgeq0%24%EF%BC%89%E3%81%8C%E7%89%B9%E7%95%B0%E5%80%A4%E5%88%86%E8%A7%A3%E3%81%AE%E5%AE%9A%E7%BE%A9%E3%81%A7%E3%81%82%E3%82%8A%E3%80%81%0A%20%20%20%20%24%5Cvec%7Bv%7D_i%24%20%E3%81%A8%20%24%5Cvec%7Bu%7D_i%24%20%E3%82%92%E7%8B%AC%E7%AB%8B%E3%81%AB%E5%AF%BE%E8%A7%92%E5%8C%96%E3%81%A7%E6%B1%82%E3%82%81%E3%82%8B%E3%81%A8%E7%AC%A6%E5%8F%B7%E3%81%AE%E6%95%B4%E5%90%88%E3%81%8C%E5%8F%96%E3%82%8C%E3%81%AA%E3%81%84%E3%80%82%0A%20%20%20%20%E3%81%9D%E3%81%93%E3%81%A7%20%24(A%5Cvec%7Bv%7D_i%2C%5Cvec%7Bu%7D_i)%24%20%E3%81%AE%E7%AC%A6%E5%8F%B7%E3%82%92%E8%A6%8B%E3%81%A6%E3%80%81%E8%B2%A0%E3%81%AA%E3%82%89%20%24%5Cvec%7Bu%7D_i%24%20%E3%82%92%E5%8F%8D%E8%BB%A2%E3%81%95%E3%81%9B%E3%82%8B%E3%80%82%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(A_1%2C%20U%2C%20V%2C%20np%2C%20sns)%3A%0A%20%20%20%20U_1%20%3D%20np.array(%5Bnp.sign(np.dot(A_1%20%40%20V%5B%3A%2C%20idx%5D%2C%20U%5B%3A%2C%20idx%5D))%20*%20U%5B%3A%2C%20idx%5D%20for%20idx%20in%20range(U.shape%5B1%5D)%5D).T%0A%20%20%20%20sns.heatmap(U_1%2C%20annot%3DTrue%2C%20cmap%3D'coolwarm')%0A%20%20%20%20return%20(U_1%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%5B%E7%89%B9%E7%95%B0%E5%80%A4%E5%88%86%E8%A7%A3%5D(https%3A%2F%2Fmanabitimes.jp%2Fmath%2F1280%235)%20%24A%3DU%5CSigma%20V%5ET%24%20%E3%81%AE%E6%A4%9C%E7%AE%97%E3%80%82%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(A_1%2C%20Sigma%2C%20U_1%2C%20V%2C%20sns)%3A%0A%20%20%20%20_residuals%20%3D%20A_1%20-%20U_1%20%40%20Sigma%20%40%20V.T%0A%20%20%20%20sns.heatmap(_residuals%2C%20annot%3DTrue%2C%20cmap%3D'coolwarm')%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20numpy%20%E3%81%AE%E6%A8%99%E6%BA%96%E6%A9%9F%E8%83%BD%E3%81%A7%E3%82%82%E7%89%B9%E7%95%B0%E5%80%A4%E5%88%86%E8%A7%A3%E3%80%82%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(A_1%2C%20la)%3A%0A%20%20%20%20U2%2C%20sigma2%2C%20V2h%20%3D%20la.svd(A_1)%0A%20%20%20%20print(sigma2)%0A%20%20%20%20return%20U2%2C%20V2h%2C%20sigma2%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%E7%89%B9%E7%95%B0%E3%83%99%E3%82%AF%E3%83%88%E3%83%AB%E3%81%AF%E7%AC%A6%E5%8F%B7%E3%81%AE%E4%B8%8D%E5%AE%9A%E6%80%A7%E3%81%8C%E3%81%82%E3%82%8B%E3%81%9F%E3%82%81%E3%80%81%E5%AF%BE%E8%A7%92%E5%8C%96%E3%81%8B%E3%82%89%E6%B1%82%E3%82%81%E3%81%9F%E7%B5%90%E6%9E%9C%E3%81%A8%E4%B8%80%E8%87%B4%E3%81%99%E3%82%8B%E3%81%A8%E3%81%AF%E9%99%90%E3%82%89%E3%81%AA%E3%81%84%E3%80%82%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(U2%2C%20U_1%2C%20V%2C%20V2h%2C%20plt%2C%20sigma%2C%20sigma2%2C%20sns)%3A%0A%20%20%20%20print(f'sigma2-sigma%3D%7Bsigma2%20-%20sigma!r%7D')%0A%20%20%20%20sns.heatmap(U_1%20-%20U2%2C%20annot%3DTrue%2C%20cmap%3D'coolwarm')%0A%20%20%20%20plt.show()%0A%20%20%20%20sns.heatmap(V.T%20-%20V2h%2C%20annot%3DTrue%2C%20cmap%3D'coolwarm')%0A%20%20%20%20plt.show()%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%E7%89%B9%E7%95%B0%E5%88%86%E8%A7%A3%24A%3DU%5CSigma%20V%5ET%24%E3%81%AF%E3%81%8D%E3%81%A1%E3%82%93%E3%81%A8%E6%BA%80%E3%81%9F%E3%81%99%E3%80%82%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(A_1%2C%20U2%2C%20V2h%2C%20np%2C%20sigma_left%2C%20sigma_right%2C%20sns)%3A%0A%20%20%20%20Sigma2%20%3D%20np.zeros_like(A_1)%0A%20%20%20%20sigma2_1%20%3D%20sigma_right%20if%20len(sigma_right)%20%3C%20len(sigma_left)%20else%20sigma_left%0A%20%20%20%20Sigma2%5B%3Alen(sigma2_1)%2C%20%3Alen(sigma2_1)%5D%20%3D%20np.diag(sigma2_1)%0A%20%20%20%20_residuals%20%3D%20A_1%20-%20U2%20%40%20Sigma2%20%40%20V2h%0A%20%20%20%20sns.heatmap(_residuals%2C%20annot%3DTrue%2C%20cmap%3D'coolwarm')%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%20%E8%A3%9C%E8%B6%B3%0A%0A%20%20%20%20%E3%81%93%E3%81%93%E3%81%A7%E3%81%AF%20%24A%5ETA%24%20%E3%81%A8%20%24AA%5ET%24%20%E3%82%92%E6%98%8E%E7%A4%BA%E7%9A%84%E3%81%AB%E4%BD%9C%E3%81%A3%E3%81%A6%E5%AF%BE%E8%A7%92%E5%8C%96%E3%81%97%E3%81%9F%E3%81%8C%E3%80%81%0A%20%20%20%20%E3%81%93%E3%81%AE%E6%96%B9%E6%B3%95%E3%81%AF%E6%9D%A1%E4%BB%B6%E6%95%B0%E3%81%8C%202%20%E4%B9%97%E3%81%AB%E3%81%AA%E3%82%8B%E3%81%9F%E3%82%81%E5%B0%8F%E3%81%95%E3%81%84%E7%89%B9%E7%95%B0%E5%80%A4%E3%81%AE%E7%B2%BE%E5%BA%A6%E3%81%8C%E8%90%BD%E3%81%A1%E3%82%8B%E3%80%82%0A%20%20%20%20%60np.linalg.svd%60%20%E3%82%92%E5%90%AB%E3%82%80%E5%AE%9F%E7%94%A8%E3%81%AE%E5%AE%9F%E8%A3%85%E3%81%A7%E3%81%AF%E3%80%81%24A%24%20%E3%82%92%E7%9B%B4%E6%8E%A5%E4%BA%8C%E9%87%8D%E5%AF%BE%E8%A7%92%E5%8C%96%E3%81%97%E3%81%A6%E3%81%8B%E3%82%89%0A%20%20%20%20QR%20%E6%B3%95%E7%B3%BB%E3%81%AE%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0%E3%82%92%E9%81%A9%E7%94%A8%E3%81%99%E3%82%8B%E3%80%82%0A%0A%20%20%20%20%E7%89%B9%E7%95%B0%E5%80%A4%E5%88%86%E8%A7%A3%E3%81%AE%E4%B8%BB%E3%81%AA%E7%94%A8%E9%80%94%E3%81%AF%E6%AC%A1%E3%81%AE%202%20%E3%81%A4%E3%80%82%0A%0A%20%20%20%201.%20%E4%BD%8E%E3%83%A9%E3%83%B3%E3%82%AF%E8%BF%91%E4%BC%BC%E3%80%82%E7%89%B9%E7%95%B0%E5%80%A4%E3%81%AE%E5%A4%A7%E3%81%8D%E3%81%84%E9%A0%86%E3%81%AB%20%24k%24%20%E5%80%8B%E3%81%A0%E3%81%91%E6%AE%8B%E3%81%97%E3%81%9F%20%24A_k%3DU_k%5CSigma_kV_k%5ET%24%20%E3%81%AF%E3%80%81%0A%20%20%20%20%20%20%20%E3%83%A9%E3%83%B3%E3%82%AF%20%24k%24%20%E3%81%AE%E8%A1%8C%E5%88%97%E3%81%AE%E4%B8%AD%E3%81%A7%E3%83%95%E3%83%AD%E3%83%99%E3%83%8B%E3%82%A6%E3%82%B9%E3%83%8E%E3%83%AB%E3%83%A0%E8%AA%A4%E5%B7%AE%E3%82%92%E6%9C%80%E5%B0%8F%E3%81%AB%E3%81%99%E3%82%8B%EF%BC%88%E3%82%A8%E3%83%83%E3%82%AB%E3%83%BC%E3%83%88%E3%83%BB%E3%83%A4%E3%83%B3%E3%82%B0%E3%81%AE%E5%AE%9A%E7%90%86%EF%BC%89%E3%80%82%0A%20%20%20%20%20%20%20%E4%B8%BB%E6%88%90%E5%88%86%E5%88%86%E6%9E%90%E3%82%84%E7%94%BB%E5%83%8F%E5%9C%A7%E7%B8%AE%E3%81%AF%E3%81%93%E3%82%8C%E3%82%92%E4%BD%BF%E3%81%86%E3%80%82%0A%20%20%20%202.%20%E6%93%AC%E4%BC%BC%E9%80%86%E8%A1%8C%E5%88%97%E3%80%82%24A%5E%2B%3DV%5CSigma%5E%2BU%5ET%24%EF%BC%88%24%5CSigma%5E%2B%24%20%E3%81%AF%E9%9D%9E%E9%9B%B6%E7%89%B9%E7%95%B0%E5%80%A4%E3%81%AE%E9%80%86%E6%95%B0%E3%82%92%E5%8F%96%E3%82%8A%E8%BB%A2%E7%BD%AE%E3%81%97%E3%81%9F%E3%82%82%E3%81%AE%EF%BC%89%E3%81%AF%E3%80%81%0A%20%20%20%20%20%20%20%E6%AD%A3%E6%96%B9%E3%81%A7%E3%81%AA%E3%81%84%E8%A1%8C%E5%88%97%E3%82%84%E7%89%B9%E7%95%B0%E3%81%AA%E8%A1%8C%E5%88%97%E3%81%AB%E5%AF%BE%E3%81%99%E3%82%8B%E6%9C%80%E5%B0%8F%E4%BA%8C%E4%B9%97%E8%A7%A3%E3%82%92%E4%B8%8E%E3%81%88%E3%82%8B%E3%80%82%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20app.run()%0A
c560313e3170346c7067a06bb4f567cf