matlab - 在 Scilab 上求解非线性二阶微分方程?
问题描述
我需要解决以下问题
-cos(y)y''+sin(y)y'^2+sin(y)=0, y'(0)=y'(1)=0, such that y=y(t)
y'^2
由于术语和边界条件,我发现很难解决。
解决方案
这是您的 bvp 的 Scilab 代码
-cos(y)y''+sin(y)y'^2+sin(y)=0, y'(0)=y'(1)=0, y(0)=0, y(1) =1.5
但不同的边界条件不能给出平凡的解决方案。您必须首先将 y'' 写为 y 和 y' 的函数。该函数fsub
计算 y'' 作为u=[y,y']
function ysecond=fsub(x,u)
y=u(1);
yprime=u(2);
ysecond = sin(y)/cos(y)*(1+yprime^2);
end
function g=gsub(i, u),
y=u(1);
select i
case 1 then // x=zeta(1)=0
g = y // y(0)=0
case 2 then // x=zeta(2)=1
g = y-1.5 // y(1)=1.5
end
end
N=1;
m=2;
x_low=0
x_up=1;
xpoints=linspace(0,1,100);
zeta=[0,1];
u = bvodeS(xpoints,m,N,x_low,x_up,fsub,gsub,zeta)
plot(xpoints,u(1,:))
推荐阅读
- java - Java Pixelbot(并将鼠标移动到这一点)
- json - 使用 Azure ARM 模板参数数组的 PowerShell 问题(我使用数组执行 ConvertFrom-Json 失败)
- azure - 用于公共应用程序的 Azure Graph 预订 API
- google-apps-script - 添加/设置部门名称以联系
- acumatica - Feature.xml 更改未显示在启用/禁用自定义功能 UI 中?
- python - 如何使用数据框的数值变量的欧几里得距离计算距离矩阵?
- sql - 具有多行结果集的 SQL Server 存储过程
- python-3.x - 如何在同一类python3中调用其他方法?
- python - Python __init__ 文件无法导入模块
- php - 如何按日期限制查询