{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "6bd24ad0",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "plt.rcParams['font.sans-serif'] = ['SimHei']   # 用来正常显示中文\n",
    "plt.rcParams['axes.unicode_minus'] = False      # 用来正常显示负号"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "5b329729",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "特征值 λ = [3. 1.]\n",
      "特征向量列 =\n",
      " [[ 0.70710678 -0.70710678]\n",
      " [ 0.70710678  0.70710678]]\n",
      "λ=3.0000: Av=[2.12132034 2.12132034], λv=[2.12132034 2.12132034]\n",
      "λ=1.0000: Av=[-0.70710678  0.70710678], λv=[-0.70710678  0.70710678]\n"
     ]
    }
   ],
   "source": [
    "# 定义矩阵 A\n",
    "A = np.array([[2.0, 1.0], [1.0, 2.0]])\n",
    "\n",
    "# 求特征值和特征向量\n",
    "w, V = np.linalg.eig(A)\n",
    "print('特征值 λ =', w)\n",
    "print('特征向量列 =\\n', V)\n",
    "\n",
    "# 验证 A·v = λ·v\n",
    "for i in range(2):\n",
    "    v = V[:, i]                      # 取第 i 列特征向量\n",
    "    print(f'λ={w[i]:.4f}: Av={A@v}, λv={w[i]*v}')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "765079cb",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 600x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 1. 定义矩阵并求特征值/特征向量\n",
    "A = np.array([[2.0, 1.0], [1.0, 2.0]])\n",
    "w, V = np.linalg.eigh(A)\n",
    "\n",
    "# 2. 生成单位圆，并用 A 变换成椭圆\n",
    "theta = np.linspace(0, 2*np.pi, 200)\n",
    "circle = np.vstack([np.cos(theta), np.sin(theta)])\n",
    "ellipse = A @ circle\n",
    "\n",
    "# 3. 画图\n",
    "plt.figure(figsize=(6, 6))\n",
    "plt.plot(circle[0], circle[1], label='单位圆')\n",
    "plt.plot(ellipse[0], ellipse[1], label='A·圆')\n",
    "\n",
    "# 4. 画两个特征向量箭头\n",
    "for i in range(2):\n",
    "    v = V[:, i] * w[i]\n",
    "    plt.arrow(0, 0, v[0], v[1], head_width=0.1,\n",
    "              color=['#16a34a', '#d97706'][i],\n",
    "              length_includes_head=True,\n",
    "              label=f'λ={w[i]:.2f}')\n",
    "\n",
    "# 5. 收尾：等比例 + 图例 + 显示\n",
    "plt.gca().set_aspect('equal')\n",
    "plt.legend()\n",
    "plt.grid(True,alpha=0.3)\n",
    "plt.title(\"特征方向=椭圆主轴\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "fbcef05f",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "曲率相关 s=1.0: λ=[2. 2.], cond=1.0\n",
      "曲率相关 s=0.5: λ=[1. 2.], cond=2.0\n",
      "曲率相关 s=0.1: λ=[0.2 2. ], cond=10.0\n"
     ]
    }
   ],
   "source": [
    "\n",
    "for s in [1.0, 0.5, 0.1]:\n",
    "    H = np.diag([2.0, 2.0*s])\n",
    "    w = np.linalg.eigvalsh(H)\n",
    "    print(f'曲率相关 s={s}: λ={w}, cond={w.max()/w.min():.1f}')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "adab9b26",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "det 0.0 特征值 [0. 5.]\n"
     ]
    }
   ],
   "source": [
    "B = np.array([[1.0, 2.0], [2.0, 4.0]])\n",
    "print('det', np.linalg.det(B), '特征值', np.linalg.eigvalsh(B))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "d209a1d3",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0. 5.]\n",
      "[0. 5.]\n"
     ]
    }
   ],
   "source": [
    "B = np.array([[1.0, 2.0], [2.0, 4.0]])\n",
    "# eigvals：通用函数，可能返回复数\n",
    "print(np.linalg.eigvals(B))\n",
    "# 输出：[0.+0.j 5.+0.j]   ← 带 .+0.j，虽然虚部为 0，但类型是复数\n",
    "\n",
    "# eigvalsh：专门用于对称矩阵，返回实数\n",
    "print(np.linalg.eigvalsh(B))\n",
    "# 输出：[0. 5.]             ← 纯实数，没有虚部"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "3efb20f2",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.0\n",
      "0.0\n"
     ]
    }
   ],
   "source": [
    "print(np.linalg.eigvals(B)[0])       # (0+0j)   ← 复数\n",
    "print(np.linalg.eigvalsh(B)[0])      # 0.0      ← 实数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "e4d93907",
   "metadata": {},
   "outputs": [
    {
     "ename": "",
     "evalue": "",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m运行具有“msc (Python 3.12.14)”的单元格需要ipykernel包。\n",
      "\u001b[1;31m使用所需的包 <a href='command:jupyter.createPythonEnvAndSelectController'>创建 Python 环境</a>。\n",
      "\u001b[1;31m或使用命令“conda install -n msc ipykernel --update-deps --force-reinstall”安装“ipykernel”"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "B = np.array([[1.0, 2.0], [2.0, 4.0]])\n",
    "print('det', np.linalg.det(B), '特征值', np.linalg.eigvalsh(B))"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "msc",
   "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.12.14"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
