问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

MATLAB使用速成:定积分计算与微分方程求解

创作时间:
作者:
@小白创作中心

MATLAB使用速成:定积分计算与微分方程求解

引用
CSDN
1.
https://m.blog.csdn.net/Zevalin/article/details/138073902

在科学研究和工程计算中,数值积分和微分方程的求解是常见的计算任务。MATLAB作为一款功能强大的数学软件,提供了多种方法来解决这些问题。本文将详细介绍MATLAB中计算定积分的三种主要方法:梯形法、自适应抛物线法和全局自适应积分法,以及微分方程的求解方法。

一、计算定积分的相关函数

1、trapz(梯形法)

(1)梯形法求解定积分的步骤:

①曲边小梯形的面积可以由直边小梯形的面积来近似,那么整个曲边梯形的面积S为

②将区间[a,b]进行n等分,即令

③整个曲边梯形的面积为

(2)对于语句“trapz(x, y)”,x为分割点(节点)组成的向量,y为被积函数在节点上的函数值组成的向量,它可计算x、y代表的区域的面积,也就是使用梯形法求定积分。另外需要注意的是,其中涉及的运算必须采用数组运算。

2、quad(自适应抛物线法)

(1)自适应抛物线法求解定积分的步骤:

①如下图所示,n等分区间[a,b],得

②计算节点和中点上的函数值:

③在区间上,用过以下三点的抛物线来近似原函数f(x)。

④设过以上三点的抛物线方程为

⑤在区间上,有

⑥最终求得f(x)在区间[a,b]上的定积分为

(2)对于语句“quad(f,a,b,tol)”,f = f(x)为被积函数(用函数句柄表示),[a,b]为积分区间,tol为计算精度(若不指定,缺省精度是10-6;精度越高,函数运行的时间越长)。另外需要注意的是,其中涉及的运算必须采用数组运算。

3、integral(全局自适应积分法,适用于R2012a以后的版本)

(1)函数integral可用于求解一重积分,具体使用方法为“integral(f,a,b,'RelTol',tol)”,其中f为被积函数的函数句柄(函数涉及的运算必须采用数组运算),[a,b]为积分区间,tol为计算精度(若不指定,缺省精度是10-6,不指定tol时'RelTol'需省略)。

(2)函数integral2可用于求解二重积分,具体使用方法为“integral2(f,a,b,c,d,'RelTol',tol)”,其中f为被积函数的函数句柄(函数涉及的运算必须采用数组运算),[a,b]为第一次积分区间,[c,d]为第二次积分区间,tol为计算精度(若不指定,缺省精度是10-6,不指定tol时'RelTol'需省略)。

二、微分方程求解

(1)对于语句“[T,Y] = solver(odefun,tspan,y0)”:

①y0为初值条件,tspan为求解区间。

②solver为MATLAB的ODE求解器(可以是ode45、ode23、ode113、ode15s、ode23s、ode23t、ode23tb)。

③odefun为显式常微分方程(可理解为一阶导数的函数式),可以用命令inline定义,或在函数文件中定义,然后通过函数句柄调用。

④MATLAB在数值求解时自动对求解区间进行分割,T(列向量)中返回的是分割点的值(自变量),Y(数组)中返回的是这些分割点上的近似解,其列数等于因变量的个数。

(2)没有一种算法可以有效地解决所有的ODE问题,因此MATLAB提供了多种ODE求解器,对于不同的ODE,可以调用不同的求解器。

(3)如果需求解的问题是高阶常微分方程,则需将其化为一阶常微分方程组,此时必须用函数文件来定义该常微分方程组。

①先编写函数文件verderpol.m。

function xprime=verderpol(t,x)
global mu;
xprime=[x(2); mu*(1-x(1)^2)*x(2) - x(1)];

②再编写脚本文件vdpl.m,然后在命令窗口直接运行该文件。

clear;
global mu;
mu=7; y0=[1; 0];
[t,x]=ode45(@verderpol, [0,40], y0);
plot(t,x(:,1));

本文原文来自CSDN

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号