{ "cells": [ { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Matrix A:\n", " [[ 8 8 10 0 -1 11 -2 2 7]\n", " [ 1 11 4 2 7 4 12 11 9]\n", " [-2 -3 5 9 8 6 9 -1 5]\n", " [10 2 8 6 8 7 3 3 -2]\n", " [12 5 8 -3 -1 12 7 -4 1]] \n", "\n", "Vector v:\n", " [[8 6 7 8 5]] \n", "\n", "v@A:\n", " [[196 150 243 108 149 270 178 79 134]] \n", "\n", "||v@A||\n", " 531.6117003979502\n", "Frobenius norm of A (tr(A@A.T)): \n", " 2078\n", "||v||*||A_f||: 32057.822633485262 \n", "\n", "531.6117003979502 <= 32057.822633485262 ? \n", "\n", "Yes.\n" ] } ], "source": [ "# D. Scott\n", "# Linear Algebra: TCI\n", "# Code Challenge 6.4\n", "# Cauchy-Schwarz inequality verification\n", "\n", "import random\n", "import numpy as np\n", "\n", "A = np.empty((5,9),dtype=int)\n", "v = np.empty((1,5),dtype=int)\n", "\n", "# generate diagonal 6 x 6 matrix\n", "for i in range(0,5):\n", " for j in range(0,9):\n", " A[i][j] = random.randint(-4,12)\n", "\n", "# generate 1 x 5 vector\n", "for i in range(0,5):\n", " v[0][i] = random.randint(-4,12)\n", "\n", "print(\"Matrix A:\\n\",A,\"\\n\")\n", "print(\"Vector v:\\n\",v,\"\\n\")\n", "\n", "print(\"v@A:\\n\",v@A,\"\\n\")\n", "print(\"||v@A||\\n\",np.linalg.norm(v@A))\n", "\n", "F_norm = np.trace(A@A.transpose())\n", "print(\"Frobenius norm of A (tr(A@A.T)): \\n\",F_norm)\n", "print(\"||v||*||A_f||: \",np.linalg.norm(v)*F_norm,\"\\n\")\n", "\n", "print(np.linalg.norm(v@A),\"<=\",np.linalg.norm(v)*F_norm,\" ? \\n\")\n", "print(\"Yes.\")" ] } ], "metadata": { "kernelspec": { "display_name": "base", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.12" }, "orig_nbformat": 4 }, "nbformat": 4, "nbformat_minor": 2 }