Я попытался сделать простое приложение, которое решает оду для данного начального значения y_0
.
Например, мы можем иметь:
dy / dt = -2ty
Используя некоторые учебные пособия (сайт scilab и учебник YouTube), я получаю текущую версию:
function dy = f(t,y)
dy = -2*t*y;
endfunction
function updatePlot()
clf(right)
y0 = get(y0CONTROL,"value");
t0 = 0;
t = 0:0.1:10
solution = ode(y0,t0,t,f);
plot(solution, right)
endfunction
gui = figure();
gui.visible = "on";
gui.immediate_drawing = "on";
left = uicontrol(gui,...
'style','frame',...
'layout','gridbag',...
'constraints', createConstraints('border', 'left',))
right = uicontrol(gui,...
'style','frame',...
'layout','border',...
'constraints', createConstraints('border', 'center'))
y0CONTROL = uicontrol(left, ...
'style','slider', ...
'max', 10, ...
'min', -10, ...
'value',-1,...
'callback', 'updatePlot')
updatePlot()
Как видно, я пытался использовать clf(right)
для очистки предыдущего графика и plot(solution,right)
для построения теперь предположительно пустого right
кадра.
И все же эта попытка не удалась - старые линии остаются на графике после перемещения ползунка.
Пожалуйста, скажите мне, как это исправить.