
function dy = odefunc2(t, y, strfunc)

% Вектор-функция правой части дифференциального уравнения второго порядка
% определяется строкой strfunc, в которой задается функция 
% переменных  t, y, y1, F(t, y)
% переменная y -- двумерная, состоит из двух компонент
% y = (y, y1) = (y(1), y(2)) 

% Создается из строки при помощи функций inline и feval 

% Пример:
% y'' - 2y' -6y = cos(3t)
% y'' = cos(3t) + 2y' + 6y 
% Для записи строки выражение заменяем y' на yprime:
%    strfunc = ' cos(3*t) + 2*yprime + 6*y '

% Переменную y обозначаем y(1) и пусть y(2) = y'(1)
% Тогда получается система
 
% y'(1)=y(2)
% y'(2) = cos(3*t) + 2*y'(1) + 6*y(1) 


% Создание функции f1(x)=x для задания соотношения y'(1)=y(2)

f1 = inline('x') ;
dy(1,:) = feval(f1, y(2)) ;

% Если нет переменных t, y, yprime, то правильнее их добавить формально:

strfunction = strcat(strfunc, '+ 0*t + 0*y1 + 0*y') ;

f2 = inline(strfunction) ;
dy(2,:) = feval(f2, t, y(1), y(2)) ;







