在MATLAB中为4 DE系统转发euler

时间:2013-12-05 14:27:47

标签: matlab differential-equations

我想为一个系统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)等

1 个答案:

答案 0 :(得分:0)

我认为您在查看以下网址上发布的euler.m代码方面会有很大的帮助:

Initial Value Problems, Numerical Analysis