Bisection metodu ile verilen fonksiyonun belirli bölgelerdeki kökünü bulmaya çalışıyorum. Kökünü doğru şekilde buluyor ancak her adımda hesapladığı xnew değerlerini fonksiyonun kendi grafiği üzerinde göstermek istiyorum. Nasıl yapabilirim?
Hallettim, plot yerine bunları yazdım:
ezplot(f)
hold on
plot(xnew,fnew,'b--*')
Kod:
function [xnew,step]=kokbulma(xleft,xright)
f=inline('x*(exp(x))-cos(x)','x');
a=xleft; b=xright; step=1;
xnew=(a+b)/2; fa=f(a);
error=100;
while (error>0.005)
fnew=f(xnew);
if sign(fnew) == sign(fa)
a = xnew;
fa = fnew;
else
b = xnew;
fb = fnew;
end
step=step+1; x_old=xnew; xnew=(a+b)/2;
error=abs(xnew-x_old)/xnew*100;
plot(xnew,f)
end
return;
end
Mesajlar otomatik olarak birleştirildi:
18. satıra plot(xnew,f) yazdığımda hata veriyor, ezplot(f) yazdığımda sadece fonksiyonun grafiğini çiziyor. Benim bu grafiğin üstünde hesaplanılan her yeni xnew değerini göstermem gerekiyor.Bisection metodu ile verilen fonksiyonun belirli bölgelerdeki kökünü bulmaya çalışıyorum. Kökünü doğru şekilde buluyor ancak her adımda hesapladığı xnew değerlerini fonksiyonun kendi grafiği üzerinde göstermek istiyorum. Nasıl yapabilirim?
Kod:function [xnew,step]=kokbulma(xleft,xright) f=inline('x*(exp(x))-cos(x)','x'); a=xleft; b=xright; step=1; xnew=(a+b)/2; fa=f(a); error=100; while (error>0.005) fnew=f(xnew); if sign(fnew) == sign(fa) a = xnew; fa = fnew; else b = xnew; fb = fnew; end step=step+1; x_old=xnew; xnew=(a+b)/2; error=abs(xnew-x_old)/xnew*100; plot(xnew,f) end return; end
Mesajlar otomatik olarak birleştirildi:
Hallettim, plot yerine bunları yazdım:
ezplot(f)
hold on
plot(xnew,fnew,'b--*')
Son düzenleme: