MATLAB在数值计算中的应用:从初值问题到微积分计算
1. 龙格 - 库塔方法中收敛阶的估计
在处理初值问题时,我们常常需要估计数值方法的收敛阶。具体做法是在一个循环中,通过不断将 (n) 翻倍来计算给定的近似值以及后续的上确界或 (L^2) 误差近似值 (err),并将这些误差累积到数组 (errs) 中。循环结束后,使用以下代码来估计收敛阶:
order = log(errs(1:end-1)./errs(2:end)) ./ log(2);
累积数组的一种方法是在循环开始前将数组初始化为空,即 errs = []; ,然后在计算出误差 (err) 后,使用 errs = [errs, err] 将误差添加到数组中。
需要注意的是,这种向不断增长的列表追加元素的技术属于动态内存分配,因为数组 (errs) 的长度在不断增加。MATLAB 可能会发出效率低下的警告。不过,当数组较短时(例如 (n) 翻倍十次左右),这并不是什么大问题。但对于非常长的计算(数千次或更多),预先分配足够长度的数组来存储所有预期值是至关重要的。
2. MATLAB 基础命令和语法
2.1 ones 和 zeros 命令
ones 和 zeros 是 MATLAB 的内置命令,用于方便地生成常量或零值数组。例如:
超级会员免费看
订阅专栏 解锁全文
393

被折叠的 条评论
为什么被折叠?



