Первоначально я задал этот вопрос вчера и сам нашел ответ; однако я использовал команду clear all
в Matlab, и теперь функция выдает ошибку Undefined function or variable 'y'
. Я использовал код из моей функции ответа [s1] = L_Analytic3(eqn,t0,h,numstep,y0)
%Differential Equation solver for specific inputs
% eqn is the differential equation
% t0 is start of evaluation interval
% h is stepize
% numstep is the number of steps
% y0 is the initial condition
syms y(x)
cond = y(0) == y0;
A = dsolve(eqn, cond);
s1 = A;
S1 = s1;
for x = t0 : h : h*(numstep)
subs(x);
if x == t0
S1 = subs(s1,x);
else
S1 = [subs(S1), subs(s1,vpa(x))];
end
end
end
а также введите L_Analytic3(diff(y) == y,0,0.1,5,1)
в командное окно после ввода clear all
. Мне нужно запустить отдельный код
syms y(x)
cond = y(0) == 1;
A = dsolve(diff(y) == y, cond);
перед использованием моей функции, чтобы функция работала. Это только потому, что A
,ans
,cond
,x
и y
уже определены 3-строчным кодом перед использованием функции? Если да, то есть ли способ использовать эту функцию без необходимости сначала использовать этот трехстрочный код?