首页 > 解决方案 > 如何用matlab函数求解高阶边界条件微分方程

问题描述

我正在尝试使用 matlab bvp4c 函数解决边界值条件问题。但我收到警告,但没有给出正确的解决方案。我的方程是 d4y/dx4=C/(ax^2 -y)^2 ,C 和 a 是常数,我的警告内容如下

警告:如果不使用超过 2500 个网格点,则无法满足公差。2152 个点的最后一个网格和解在输出参数中可用。最大残差为 9.25647e+11,而要求的精度为 0.001。

我的代码:

clc;clear
solinit = bvpinit([0,200],[1,1,1,1]);
sol = bvp4c(@deriv,@bcs,solinit);
plot(sol.x,sol.y)
function dydx = deriv(x,y)

c=1;a=1;
dydx = [y(2)
        y(3)
        y(4)
       (c/(a*x.^2 -y(1)).^2)];
end

function res = bcs(ya,yb)
res = [ ya(1) 
        ya(2)
        yb(3)
        yb(4)];
end

不知道是什么原因?!提前感谢您的帮助 在此处输入图像描述

标签: matlabodedifferential-equationsnumerical-analysis

解决方案


推荐阅读