【matlab】科学计算与MATLAB语言(MOOC课程)笔记七
专题六 数值微积分与方程求解
目录
一 数值微分与数值积分
1. 数值微分
先说差分。差分可以分为向前差分,向后差分和中心差分。三者分别如下表述:
- 向前差分:
- 向后差分:
- 中心差分:
MATLAB提供了求向前差分的函数diff,其调用格式有3种:
- dx = diff(x):计算向量x的一阶向前差分。如果向量x有n个元素,那么向量dx有n-1个元素。dx(i) = x(i+1) - x(i),其中i=1, 2, 3, ... , n-1。
举个例子:求向量[1, 34, 54, 32, 56, 78]的一阶向前差分。
- dx = diff(x, n):计算向量x的n阶向前差分。例如,diff(x,2)等价于diff(diff(x))。
- dx = diff(A, n, dim):计算矩阵A的n阶差分,默认dim=1。dim=1时,按列计算差分;dim=2时,按行计算差分。
2. 数值积分
MATLAB中提供了基于全局自适应积分方法的积分函数integral,其调用格式是:l = integral(filename, a, b),其中,l表示计算得到的积分值;filename是被积函数名;a和b分别是定积分的下限和上限,积分限可以为无穷大(inf)。
此外,MATLAB中还有两种常用的积分函数:
- 基于自适应辛普森方法:[l, n] = quad(filename, a, b, tol, trace)
- 基于自适应Gauss-Lobatto方法:[l, n] = quadl(filename, a, b, tol, trace)
其中,filename是被积函数名;a和b分别是定积分的下限和上限,积分限[a, b]必须是有限的,不能为无穷大(inf);tol用来控制积分精度,默认时取;trace控制是否展现积分过程,若取非0则展现积分过程,若取0则不展现积分过程,默认时取trace=0;返回参数中I表示定积分的值,n为被积函数的调用次数。
举个例子。
二 线性方程组求解
此处只举个简单的例子,更详细的用法待使用时再具体了解。总的来说,线性方程组求解的方法主要有直接法和迭代法。
用直接法求解下列线性方程组。
代码如下: