【发布时间】:2015-05-11 09:03:49
【问题描述】:
给出以下等式。
我知道我需要将 2 个二阶 ODE 分解为 4 个一阶 ODE。这就是我所拥有的。我首先介绍了新变量 u,并在图片底部编写了我与 ODE45 一起使用的 matlab 函数。
现在的问题是我应该得到一个抛物线形状的图形(蓝线),但这不是我得到的。
我已经检查了我的代码一千次,但没有任何结果。可以检测到我的函数中的任何错误吗?
主程序
global g H R alfa
alfa=pi/2;
g = 20.0;
R = 1;
H=2.3;
k = 0:0.01:2;
[T,Y] = ode45(@fspace,k,[H 0 0 0]);
plot(T,Y(:,1))
hold on
fi= 0:2*pi/60:2*pi;
xx =R*cos(fi);
yy =R*sin(fi);
plot(xx,yy)
函数f
function f = fspace(x,u)
global g R H alfa G
G=(g*R.^2)./((R+H).^2);
f = [u(2) G*cos(alfa)-g*((R.^2)/u(1).^2)+u(1)*u(4)^2 u(4) (G*sin(alfa)-2*u(2)*u(4))/u(1)];
【问题讨论】:
-
你的问题与matlab有关吗?如果是,您需要发布相关的 matlab 代码。否则您的问题不适合 SO,而是应该移至 math.stackexchange.com
-
它是 matlab realted。该函数是用matlab代码编写的。
-
这是两个耦合的非线性 ODE;每个等式中的第二项就是这样。您必须以迭代、增量的方式解决这些问题。您必须先将这些线性化。
-
但是,当我使用 ODE45 时,这不是我在做什么吗?并且在问题描述中说使用ODE45求解方程。
-
我现在添加了matlab代码!谢谢!
标签: matlab math numerical-methods ode