У меня есть домашняя работа, чтобы написать программу Matlab, но проблема, с которой я сталкиваюсь, заключается в том, что программа печатает обновленное значение. Мне нужно распечатать старое значение, а затем распечатать новое значение.
Я пытался использовать векторы и цикл, чтобы сделать это, но я вроде как потерян.
for i=2:10000 %Starting from 2 since Octave Index starts from 1.
xmid=(xu+xl)/2; %Finding the middle Value
if f(xl)*f(xmid)>0 %Test first condition for bisection.
xl=xmid;
else
xu=xmid;
end
fprintf('%2i \t %f \t %f \t %f \n', i-1, xl, xu, xmid);
xnew(1)=0;
xnew(i)=xmid;
if abs((xnew(i)-xnew(i-1))/xnew(i))<tol,break,end %Test the error value.
end
В приведенном выше коде, когдаf(xl)*f(xmid)>0
, программа должна напечатать старое значение xl
, затем обновить его до xmid
и то же самое для xu
и xmid
.