可视化学习

石头爷爷

<p class="ql-block">eˣ 的泰勒级数逼近可视化方案</p><p class="ql-block"><br></p><p class="ql-block">1. 动态可视化设计</p><p class="ql-block"><br></p><p class="ql-block">核心动画效果</p><p class="ql-block"><br></p><p class="ql-block">初始状态:</p><p class="ql-block">1. 黑色画布上显示 y = eˣ 的真实曲线(白色)</p><p class="ql-block">2. 坐标轴显示,原点处有 (0,0) 标记</p><p class="ql-block">3. 底部有 y = 1 的参考线(橙色)</p><p class="ql-block"><br></p><p class="ql-block">逐步逼近动画:</p><p class="ql-block">步骤1: 显示 y = 1 (常数项)</p><p class="ql-block">步骤2: 显示 y = 1 + x (一次逼近)</p><p class="ql-block">步骤3: 显示 y = 1 + x + x²/2! (二次逼近)</p><p class="ql-block">...</p><p class="ql-block">步骤n: 显示 y = 1 + x + x²/2! + ... + xⁿ/n!</p><p class="ql-block"><br></p><p class="ql-block">2. 可视化特性设计</p><p class="ql-block"><br></p><p class="ql-block">颜色编码方案</p><p class="ql-block"><br></p><p class="ql-block">多项式阶数 曲线颜色 说明</p><p class="ql-block">真实 eˣ 白色 (#FFFFFF) 目标函数</p><p class="ql-block">0阶逼近 浅蓝色 (#87CEEB) 常数项</p><p class="ql-block">1阶逼近 绿色 (#32CD32) 线性逼近</p><p class="ql-block">2阶逼近 黄色 (#FFD700) 二次逼近</p><p class="ql-block">3阶逼近 粉色 (#FF69B4) 三次逼近</p><p class="ql-block">4阶逼近 紫色 (#9370DB) 四次逼近</p><p class="ql-block">更高阶 渐变色 从蓝到紫渐变</p><p class="ql-block"><br></p><p class="ql-block">交互控制面板</p><p class="ql-block"><br></p><p class="ql-block">[滑动条] 阶数控制:0 ━━━━━━━━━━━━━ 10</p><p class="ql-block">[复选框] □ 显示所有逼近曲线</p><p class="ql-block"> □ 仅显示当前阶数</p><p class="ql-block"> □ 显示误差范围</p><p class="ql-block">[按钮] ▶ 播放动画 ⏸ 暂停 ↺ 重置</p><p class="ql-block"><br></p><p class="ql-block">3. 误差可视化</p><p class="ql-block"><br></p><p class="ql-block">误差显示模式</p><p class="ql-block"><br></p><p class="ql-block">// 误差带显示</p><p class="ql-block">function showErrorBand(n) {</p><p class="ql-block"> // 显示当前n阶泰勒多项式与eˣ的差值</p><p class="ql-block"> // 用半透明红色区域表示误差范围</p><p class="ql-block">}</p><p class="ql-block"><br></p><p class="ql-block">// 逐点误差曲线</p><p class="ql-block">function showErrorCurve(n) {</p><p class="ql-block"> // 单独显示误差值曲线</p><p class="ql-block"> // error(x) = |eˣ - Tₙ(x)|</p><p class="ql-block">}</p><p class="ql-block"><br></p><p class="ql-block">4. 多视图布局</p><p class="ql-block"><br></p><p class="ql-block">方案A:并排对比</p><p class="ql-block"><br></p><p class="ql-block">┌─────────────────┬─────────────────┐</p><p class="ql-block">│ 动态逼近过程 │ 误差分析视图 │</p><p class="ql-block">│ │ │</p><p class="ql-block">│ • 曲线逐级逼近 │ • 误差随x变化 │</p><p class="ql-block">│ • 颜色区分阶数 │ • 收敛速度分析 │</p><p class="ql-block">└─────────────────┴─────────────────┘</p><p class="ql-block"><br></p><p class="ql-block">方案B:叠加模式</p><p class="ql-block"><br></p><p class="ql-block">主视图:所有逼近曲线叠加显示</p><p class="ql-block">右下角小窗口:局部放大图(如 x∈[0,2])</p><p class="ql-block">底部状态栏:显示当前阶数、最大误差、收敛半径</p><p class="ql-block"><br></p><p class="ql-block">5. 技术实现建议</p><p class="ql-block"><br></p><p class="ql-block">Web实现(D3.js + SVG)</p><p class="ql-block"><br></p><p class="ql-block"><div></p><p class="ql-block"> &lt;svg width="800" height="600"&gt;</p><p class="ql-block"> </p><p class="ql-block"> &lt;g class="axes"&gt;&lt;/g&gt;</p><p class="ql-block"> </p><p class="ql-block"> </p><p class="ql-block"> &lt;line class="reference-line" y1="..." y2="..."&gt;&lt;/line&gt;</p><p class="ql-block"> </p><p class="ql-block"> </p><p class="ql-block"> &lt;path class="true-function" d="..."&gt;&lt;/path&gt;</p><p class="ql-block"> </p><p class="ql-block"> </p><p class="ql-block"> &lt;g class="taylor-curves"&gt;</p><p class="ql-block"> &lt;path class="taylor-0" d="..."&gt;&lt;/path&gt;</p><p class="ql-block"> &lt;path class="taylor-1" d="..."&gt;&lt;/path&gt;</p><p class="ql-block"> </p><p class="ql-block"> &lt;/g&gt;</p><p class="ql-block"> &lt;/svg&gt;</p><p class="ql-block"> </p><p class="ql-block"> </p><p class="ql-block"> <div></p><p class="ql-block"> &lt;input type="range" id="order-slider" min="0" max="10" value="0"&gt;</p><p class="ql-block"> <span>阶数: 0</span></p><p class="ql-block"> </div></p><p class="ql-block"></div></p><p class="ql-block"><br></p><p class="ql-block">Python实现(Matplotlib + Jupyter)</p><p class="ql-block"><br></p><p class="ql-block">import numpy as np</p><p class="ql-block">import matplotlib.pyplot as plt</p><p class="ql-block">from matplotlib.animation import FuncAnimation</p><p class="ql-block"><br></p><p class="ql-block">def taylor_exp(x, n):</p><p class="ql-block"> """计算eˣ的n阶泰勒多项式"""</p><p class="ql-block"> result = np.zeros_like(x)</p><p class="ql-block"> for k in range(n+1):</p><p class="ql-block"> result += x**k / np.math.factorial(k)</p><p class="ql-block"> return result</p><p class="ql-block"><br></p><p class="ql-block"># 创建动画</p><p class="ql-block">fig, ax = plt.subplots(figsize=(10, 6))</p><p class="ql-block">x = np.linspace(-3, 3, 400)</p><p class="ql-block">y_true = np.exp(x)</p><p class="ql-block"><br></p><p class="ql-block"># 初始化曲线</p><p class="ql-block">true_line, = ax.plot(x, y_true, 'w-', linewidth=3, label='eˣ')</p><p class="ql-block">taylor_line, = ax.plot([], [], 'r--', linewidth=2, label='泰勒逼近')</p><p class="ql-block">ax.axhline(y=1, color='orange', linestyle=':', alpha=0.5)</p><p class="ql-block"><br></p><p class="ql-block">6. 教育功能增强</p><p class="ql-block"><br></p><p class="ql-block">信息显示区域</p><p class="ql-block"><br></p><p class="ql-block">当前逼近: Tₙ(x) = 1 + x + x²/2! + ... + xⁿ/n!</p><p class="ql-block">最大误差: max|eˣ - Tₙ(x)| = {计算值}</p><p class="ql-block">收敛半径: R = ∞ (对于eˣ)</p><p class="ql-block">局部放大: [ ] [-2,2] [ ] [-1,1] [ ] [0,2]</p><p class="ql-block"><br></p><p class="ql-block">特殊点标注</p><p class="ql-block"><br></p><p class="ql-block">- 原点 (0,1):所有逼近都通过此点</p><p class="ql-block">- x=1 点:显示 e 的逼近过程</p><p class="ql-block">- 收敛区域:用不同背景色表示</p><p class="ql-block"><br></p><p class="ql-block">7. 输出选项</p><p class="ql-block"><br></p><p class="ql-block">1. 交互式网页:可直接操作的HTML文件</p><p class="ql-block">2. 动画视频:MP4格式,展示完整逼近过程</p><p class="ql-block">3. 静态对比图:多阶逼近在同一坐标系中</p><p class="ql-block">4. 教育课件:分步讲解的PPT/GIF集合</p><p class="ql-block"><br></p><p class="ql-block">需要我具体实现哪个版本?我可以:</p><p class="ql-block"><br></p><p class="ql-block">1. 生成完整的HTML交互页面</p><p class="ql-block">2. 创建Python动画代码</p><p class="ql-block">3. 设计静态对比图</p><p class="ql-block">4. 制作分步讲解课件</p>