【matlab】科学计算与MATLAB语言(MOOC课程)笔记七

专题六    数值微积分与方程求解

目录

一    数值微分与数值积分

1. 数值微分

2. 数值积分

二    线性方程组求解


一    数值微分与数值积分

1. 数值微分

先说差分。差分可以分为向前差分,向后差分和中心差分。三者分别如下表述:

  • 向前差分:\bigtriangleup f(x_{0})=f(x_{0}+h)-f(x_{0})
  • 向后差分:\triangledown f(x_{0})=f(x_{0})-f(x_{0}-h)
  • 中心差分:\delta f(x_{0})=f(x_{0}+h/2)-f(x_{0}-h/2)

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用来控制积分精度,默认时取tol=10^{^{-6}};trace控制是否展现积分过程,若取非0则展现积分过程,若取0则不展现积分过程,默认时取trace=0;返回参数中I表示定积分的值,n为被积函数的调用次数。

举个例子。


二    线性方程组求解

此处只举个简单的例子,更详细的用法待使用时再具体了解。总的来说,线性方程组求解的方法主要有直接法和迭代法。

用直接法求解下列线性方程组。

\left\{\begin{matrix}2x_{1}+x_{2}-5x_{3}+x_{4}=13 \\ x_{1}-5x_{2}+7x_{4}=-9 \\ 2x_{2}+x_{3}-x_{4}=6 \\ x_{1}+6x_{2}-x_{3}-4x_{4}=0 \end{matrix}\right.

代码如下:

猜你喜欢

转载自blog.csdn.net/qq_15971883/article/details/81083210