我想为一个系统om 4微分方程编程前转euler。这些是:
x'(t)=u
y'(t)=v
u'(t)=-kx*u*V
v'(t)=-g-ky(v*V)
其中kx,ky和g是常数,V = sqrt(u ^ 2 + v ^ 2)
我所做的第一件事就是我打电话:
w_1'=x'
w_2'=y'
w_3'=u'
w_4'=v'
所以我可以用w来表达DE的4系统:
w_3
w_4
-kx*w_3+sqrt((w_3)^2+(w_4)^2)
-g-ky*w_4*(sqrt((w_3)^2+(w_4)^2)
现在到MATLAB代码:
x0 = 0;
N = 16000;
h = 2./N;
kx=0.020;
ky=0.065;
g=9.81;
x_i = [0 ; 1.5; 19*cos(45); 19*sin(45)]; % initialconditons
for i = 1:N;
x_n = x0 + (i-1).*h;
diff=[x_n;x_n;-kx*(x_n*sqrt((x_n).^2+(x_n).^2));-g-ky*x_n*sqrt((x_n).^2+(x_n).^2)];
e= x_i + h.*diff; %euluerforward
end
这是对的吗?或者我应该用intialconditions替换x_n?比如x_i(3)等