2010-07-24 1 views

ответ

7

Во-первых, вам необходимо уменьшить порядок. Пусть г = у '=> г' = у»

Ваш ОДА становится

z' = sqrt(-2*z - 3*y + sin(x)), with z(0) = 0 
y' = z, with y(0) = 1 

Теперь вы можете написать функцию в MATLAB, чтобы представить эту ОДУ: (где M = [з.ы.] ')

function dMdx = odefunc(x,M) 
    z = M(1); 
    y = M(2); 
    dMdx(1) = sqrt(-2*z - 3*y + sin(x)); 
    dMdx(2) = z; 
end 

Вы можете вызвать эту функцию следующим образом:

M0 = [ 0 1 ]; % Initial values of ODE 
tfinal = 12;  % Final integration time 
[x,M] = ode45(@odefunc,[0 tfinal],M0) % Integration using the RK-45 algorithm