问题解决微分方程组
3视图(30天)
显示旧的评论
大家好,
我一直在试图解决一个二阶微分方程组几天,但我不能解决他们在matlab使用任何功能。我试着使用解决,dsolve、fsolve vpasolve, bvp4c(这个给错误的答案)…
clc
清晰的所有
x1 = 2;
日元= 1;
r1 = 1;
m1 = 0.5;
%方程
信谊x (t) y (t);
p1 = 0.65;
eqn1 = diff (x, 2) - p1 * (sqrt (m1 + r1 ^ 2 + (y-y1) ^ 2)) = = 0;
eqn2 = diff (y, 2) - p1 * (sqrt (m1 + r1 ^ 2 + (x-x1) ^ 2)) = = 0;
气孔导度= [y (0) = = 0, x (0) = = 0, y (2) = = 5, x (2) = = 5);
命令= [eqn1, eqn2];
索尔= dsolve(方程式,气孔导度)
我新matlab和搜索很多但没有参与我的问题找到答案。任何帮助将不胜感激。
提前谢谢你。
0评论
答案(3)
艾伦·韦斯
2022年2月14日
如果你愿意有一个数值解,而不是一个象征性的解决方案,然后使用
fsolve
随着
数值
可以工作。技术是解决ODE从最初想使用
数值
,然后改变最初的猜测
fsolve
满足边界条件。这里是一些代码我撞在一起。我假设ODE的形式给出
[x xdot y ydot]
。初始条件是x (0) = 0, y (0) = 0。最后一个条件是x (2) = 5, y (2) = 5。
myx = fsolve (@myval [1; 1])%获得解决方案
%检查终点
y0 = [0; myx (1); 0; myx (2)];%初始poiint方程
索尔=数值(@odefn [0 2],₀);
yend =德瓦尔(溶胶,2)
函数dydt = odefn (~, y)
% y (t) = [x y dx, dy]
x1 = 2;
日元= 1;
r1 = 1;
m1 = 0.5;
p1 = 0.65;
dydt = 0 (4,1);y %分配
dydt (1) = y (2);
dydt (3) = y (4);
dydt (2) = p1 * (sqrt (m1 + r1 ^ 2 + (y (3) y1) ^ 2));
dydt (4) = p1 * (sqrt (m1 + r1 ^ 2 + (y (1) x1) ^ 2));
结束
函数城市= myval (x)
y0 = [0, x (1); 0; x (2)];%初始poiint方程
索尔=数值(@odefn [0 2],₀);
yend =德瓦尔(溶胶,2);
城市= [yend (1) - 5; yend (3) - 5);
结束
艾伦·韦斯
MATLAB数学工具箱文档