2013-12-05 3 views
0

Я хочу запрограммировать передний эйлер для системы дифференциального уравнения om 4. К ним относятся:Передвижной эйлер для системы из 4 DE в MATLAB

x'(t)=u  

y'(t)=v 

u'(t)=-kx*u*V 

v'(t)=-g-ky(v*V) 

, где кх, ку и г являются постоянными и V = SQRT (и^2 + у^2)

Первое, что у меня dones является то, что я назвал:

w_1'=x' 

w_2'=y' 

w_3'=u' 

w_4'=v' 

так что я могу выразить 4 систему DE в терминах ш:

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 

Это все верно? или я должен заменить x_n на intialconditions? как X_i (3) и т.д.

ответ

0

Я думаю, что вы найдете большую помощь в том, чтобы взглянуть на код euler.m опубликованную на следующий URL:

Initial Value Problems, Numerical Analysis

+0

Ну очень отличается от моей проблемы ? – John