matlab - 如何用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
解决方案
推荐阅读
- typescript - TypeScript 中有没有一种方法可以在不丢失对象特异性的情况下使用接口作为保护?
- c++ - 如何从精明的图像中去除高频区域?
- html - 如何使具有响应式设计的嵌套表与 Gmail 兼容
- javascript - 更新状态反应
- python - 如何使用 Python 分析 docx 文件中的注释语句?
- html - 角垫形式场不会扩大
- javascript - html-docx-js 在创建 docx 文件时不能应用外部 css 类样式
- python - 为 Teradata DB 表格式化 Python 时间戳
- azure-sql-data-warehouse - ALTER TABLE SWITCH 语句失败。表 X 中的分区 1 定义的范围不是表 Y 中的分区 2 定义的范围的子集
- python - 向 Scrapy Spider 添加标题