%23%20%2F%2F%2F%20script%0A%23%20requires-python%20%3D%20%22%3E%3D3.11%22%0A%23%20dependencies%20%3D%20%5B%0A%23%20%20%20%20%20%22marimo%3D%3D0.23.2%22%2C%0A%23%20%20%20%20%20%22cvx-linalg%22%2C%0A%23%20%20%20%20%20%22numpy%3E%3D2.0.0%22%2C%0A%23%20%5D%0A%23%20%5Btool.uv.sources%5D%0A%23%20cvx-linalg%20%3D%20%7B%20path%20%3D%20%22..%2F..%2F..%22%2C%20editable%20%3D%20true%20%7D%0A%23%20%2F%2F%2F%0A%0Aimport%20marimo%0A%0A__generated_with%20%3D%20%220.23.2%22%0Aapp%20%3D%20marimo.App(width%3D%22medium%22)%0A%0A%0A%40app.cell%0Adef%20_()%3A%0A%20%20%20%20import%20marimo%20as%20mo%0A%20%20%20%20import%20numpy%20as%20np%0A%0A%20%20%20%20from%20cvx.linalg%20import%20a_norm%2C%20inv_a_norm%2C%20valid%0A%0A%20%20%20%20return%20a_norm%2C%20inv_a_norm%2C%20mo%2C%20np%2C%20valid%0A%0A%0A%40app.cell%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%20cvx-linalg%20%E2%80%94%20Norms%20and%20validity%0A%0A%20%20%20%20This%20notebook%20shows%20how%20invalid%20(non-finite%20diagonal)%20rows%2Fcolumns%20are%0A%20%20%20%20removed%20by%20%60valid%60%2C%20then%20reused%20in%20%60a_norm%60%20and%20%60inv_a_norm%60.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(a_norm%2C%20inv_a_norm%2C%20np%2C%20valid)%3A%0A%20%20%20%20matrix%20%3D%20np.array(%0A%20%20%20%20%20%20%20%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%5B2.0%2C%200.3%2C%200.1%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%5B0.3%2C%20np.nan%2C%200.2%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%5B0.1%2C%200.2%2C%201.5%5D%2C%0A%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20)%0A%20%20%20%20vector%20%3D%20np.array(%5B1.0%2C%202.0%2C%20-1.0%5D%2C%20dtype%3Dfloat)%0A%20%20%20%20mask%2C%20reduced%20%3D%20valid(matrix)%0A%20%20%20%20norm_value%20%3D%20a_norm(vector%2C%20matrix)%0A%20%20%20%20inv_norm_value%20%3D%20inv_a_norm(vector%2C%20matrix)%0A%20%20%20%20return%20inv_norm_value%2C%20mask%2C%20matrix%2C%20norm_value%2C%20reduced%2C%20vector%0A%0A%0A%40app.cell%0Adef%20_(inv_norm_value%2C%20mask%2C%20matrix%2C%20mo%2C%20norm_value%2C%20reduced%2C%20vector)%3A%0A%20%20%20%20mo.vstack(%0A%20%20%20%20%20%20%20%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20mo.md(%22%23%23%20Result%20summary%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20mo.md(f%22**matrix**%5Cn%5Cn%60%60%60python%5Cn%7Bmatrix%7D%5Cn%60%60%60%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20mo.md(f%22**valid%20mask**%5Cn%5Cn%60%60%60python%5Cn%7Bmask%7D%5Cn%60%60%60%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20mo.md(f%22**reduced%20submatrix**%5Cn%5Cn%60%60%60python%5Cn%7Breduced%7D%5Cn%60%60%60%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20mo.md(f%22**vector**%5Cn%5Cn%60%60%60python%5Cn%7Bvector%7D%5Cn%60%60%60%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20mo.md(f%22**a_norm(vector%2C%20matrix)**%3A%20%60%7Bnorm_value%7D%60%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20mo.md(f%22**inv_a_norm(vector%2C%20matrix)**%3A%20%60%7Binv_norm_value%7D%60%22)%2C%0A%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20)%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
9607abdc6eed8857c0d11b899371616a