实验 09 · 数值迭代
参数化牛顿法
用牛顿法近似多个正数的平方根,比较误差收敛。
核心问题
如何在迭代过程中不直接使用 sqrt(a),近似不同正数的平方根?
复用技能
- 辅助函数
- for 循环
- 绝对误差
- 收敛图
主要任务
- 运行 newton_method.m。
- 测试 a = 2, 3, 10。
- 改变初始猜测并解释收敛变化。
提交内容
- labs/lab09/newton_method.m
- labs/lab09/newtonSqrt.m
- figures/lab09-newton-errors.png
完整讲义
实验 9:参数化牛顿法
数学问题
如何在迭代过程中不直接使用 sqrt(a),近似不同正数 a 的平方根?
复用前面技能
- 用 VS Code 编辑多个 MATLAB 文件。
- 从课程根目录运行 MATLAB 脚本。
- 将图像保存到
figures/。 - 用 Codex 解释代码并调试错误。
- 用已知答案验证数值结果。
任务
- 打开课程根目录并创建实验文件夹:
``powershell cd Desktop\codex-matlab-class mkdir labs\lab09 code . ``
- 将这些 starter 文件复制到
labs/lab09/:
``text newton_method.m newtonSqrt.m ``
- 运行:
``matlab run("labs/lab09/newton_method.m") ``
- 查看
newtonSqrt(a, x0, numIterations)。 - 至少测试三个值:
``text a = 2 a = 3 a = 10 ``
- 将收敛图保存到:
``text figures/lab09-newton-errors.png ``
- 让 Codex 解释辅助函数和误差图。
- 改变初始猜测,并观察有什么变化。
验证要求
对于每个 a,将你的近似值与 MATLAB 的 sqrt(a) 比较,并记录最终绝对误差。
提交内容
labs/lab09/newton_method.mlabs/lab09/newtonSqrt.mfigures/lab09-newton-errors.pngnotes/lab09-notes.md
笔记要求
包括:
- 运行命令;
- Codex 解释提示词;
a、近似值、sqrt(a)、最终误差表;- 初始猜测如何影响收敛;
- 为什么迭代不能除以零。