### MATLAB 数值积分与微分 #### 一、数值积分 **1. 变步长辛普生法(quad)** - **调用格式**: \[ [I,n]=quad('fname',a,b,tol,trace); \] - `fname` 是被积函数。 - `a`, `b` 是积分上下限。 - `tol` 用来控制积分精度,默认为0.001。 - `trace` 控制是否展现积分过程,默认为0(不展现);若 `trace ≠ 0`,则展现。 - **`fname` 的使用方法**: - **建立函数文件**: ```matlab function f = fesin(x) f = ...; % 具体函数表达式 ``` - **使用内联函数**: ```matlab g = inline('exp(-0.5*x)', 'x'); ``` **2. 牛顿—科特斯法** - **调用格式**: \[ [I,n] = quad8('fname',a,b,tol,trace); \] - 参数含义与 `quad` 相同。 - 效果比 `quad` 更好。 **3. 当被积函数只有离散解时积分的方法** - **调用格式**: \[ trapz(X,Y); \] - `X`, `Y` 是等长的向量,满足 `Y = f(X)`。 #### 二、二重定积分的数值求解 - **调用格式**: \[ I = dblquad(f,a,b,c,d,tol,trace); \] - `f` 为被积函数,可以通过两种方式给出:建立函数文件或使用内联函数。 - `a`, `b`, `c`, `d` 定义了被积区间。 - `tol` 为精度。 - `trace` 为是否展示过程。 ### 二、数值微分 #### 1. 数值差分与差商 - **导数定义**: 导数是函数在某一点的变化率。 - **差分定义**: 差分是函数值在相邻点之间的差值。 - **差商定义**: 差商是指函数在某区间上的平均变化率。 #### 2. 数值微分的实现 - **方法一**: 使用多项式或者样条函数进行拟合,对拟合函数进行求导,得到需要点的导数。 - **方法二**: 使用差商作为导数。 - **方法三**: 如果被积函数可导,可以直接求导,再带入。 #### 3. 示例 - **函数定义**: \[ f(x) = \sqrt{x^3 + 2x^2 - x + 12} + (x + 5)^{\frac{1}{6}} + 5x + 2 \] - **导数定义**: \[ g(x) = \frac{(3x^2 + 4x - 1)}{2\sqrt{x^3 + 2x^2 - x + 12}} + \frac{1}{6}(x + 5)^{-\frac{5}{6}} + 5 \] - **求导数点**: \[ x = -3:0.01:3 \] - **方法一** (多项式拟合): - `p = polyfit(x, f(x), 5);` - `dp = polyder(p);` - `dpx = polyval(dp, x);` - **方法二** (差商): - `dx = diff(f([x, 3.01])) / 0.01;` - **方法三** (直接求导): - `gx = g(x);` - **绘图**: ```matlab plot(x, dpx, x, dx, '.', x, gx, '-'); ``` ### 总结 MATLAB 提供了多种数值积分与微分的方法,包括但不限于变步长辛普生法 (`quad`)、牛顿—科特斯法 (`quad8`) 和二重定积分 (`dblquad`)。对于数值微分,MATLAB 支持多项式拟合、差商以及直接求导等多种方式。通过这些方法,用户可以根据具体需求选择最适合的算法来进行数值积分和微分的计算。
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助