matlab想用ode45求解一个二阶常微分方程

matlab想用ode45求解一个二阶常微分方程,边界条件是y(0)=某值,y(10)=某值,我该怎么做,我看了很多例子都是给出y(0)=某值,y'(0)=某值作为起始条... matlab想用ode45求解一个二阶常微分方程,边界条件是y(0)=某值,y(10)=某值,我该怎么做,我看了很多例子都是给出y(0)=某值,y'(0)=某值作为起始条件的,我想换成两端的约定。 展开
 我来答
lhmhz
高粉答主

2020-04-10 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7263 获赞数:16991

向TA提问 私信TA
展开全部

想用ode45求解一个二阶常微分方程,但边界条件是y(0)=某值,y(10)=某值,这应该怎么去求解?

1、首先我们应该理清ode函数应用条件,由于二阶常微分方程的解有两个变量(y和y'),一般来说,给出的初始条件为 y(0)=某值和y'(0)=某值,这类问题是适合用ode函数求解。

2、对于题主提出另一种初始条件(同一变量的),即y(0)=某值,y(10)=某值,则不能用ode函数,而应使用bvp4c四阶边界值问题 求解函数,求解格式

sol = bvp4c(odefun,bcfun,solinit)

3、下面举例说明bvp4c函数使用方法

求微分方程 y′′+y=0,y(0)=0,y(π/2)=2。

第一步:自定义微分方程函数,其内容

function dydx = bvpfcn(x,y)

dydx = [y(2) -y(1)];

第二步:自定义微分方程边界条件函数,其内容

function res = bcfcn(ya,yb)

res = [ya(1), yb(1)-2];

第三步:创建初始估计值函数

function g = guess(x)

g = [sin(x), cos(x)];

第四步:使用bvpinit函数,得出边界值问题求解器的初始估计值

第五步:使用bvp4c函数求解方程

sol = bvp4c(@bvpfcn, @bcfcn, solinit);

第六步:使用plot函数

对解进行绘图

plot(sol.x, sol.y, '-o')

4、完善上述代码,运行结果如下。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式